From b06bce134044200b1d047e6b4c113a5f7ca7e727 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Wed, 4 Jun 2025 17:29:51 +0200 Subject: [PATCH 001/697] Prepare Vue 3, Vitest and package structure migration --- .eslintignore => vue2/.eslintignore | 0 .eslintrc.json => vue2/.eslintrc.json | 0 .../.github}/workflows/publish-packages.yml | 0 .../.github}/workflows/publish-pages.yml | 0 {.github => vue2/.github}/workflows/run-tests.yml | 0 .gitignore => vue2/.gitignore | 0 .npmrc => vue2/.npmrc | 0 .prettierignore => vue2/.prettierignore | 0 .prettierrc => vue2/.prettierrc | 0 {@types => vue2/@types}/i18next.d.ts | 0 {@types => vue2/@types}/vue-shims/index.d.ts | 0 {@types => vue2/@types}/vue-shims/json-loader.d.ts | 0 {@types => vue2/@types}/vue-shims/png-loader.d.ts | 0 {@types => vue2/@types}/vue-shims/shims-tsx.d.ts | 0 {@types => vue2/@types}/vue-shims/shims-vue.d.ts | 0 {@types => vue2/@types}/vue-shims/tsconfig.json | 0 README.md => vue2/README.md | 0 {__mocks__ => vue2/__mocks__}/.eslintrc | 0 {__mocks__ => vue2/__mocks__}/fileMock.js | 0 {__mocks__ => vue2/__mocks__}/jest.setup.js | 0 {__mocks__ => vue2/__mocks__}/styleMock.js | 0 arcana.md => vue2/arcana.md | 0 babel.config.js => vue2/babel.config.js | 0 {e2e => vue2/e2e}/draw.spec.ts | 0 {e2e => vue2/e2e}/iconMenu.spec.ts | 0 {e2e => vue2/e2e}/pins.spec.ts | 0 {e2e => vue2/e2e}/toast.spec.ts | 0 {e2e => vue2/e2e}/utils/clickTimes.ts | 0 {e2e => vue2/e2e}/utils/draw.ts | 0 {e2e => vue2/e2e}/utils/openSnowbox.ts | 0 {e2e => vue2/e2e}/utils/package.json | 0 {e2e => vue2/e2e}/utils/vuex.ts | 0 {e2e => vue2/e2e}/zoom.spec.ts | 0 gettingStarted.md => vue2/gettingStarted.md | 0 jest.config.ts => vue2/jest.config.ts | 0 nx.json => vue2/nx.json | 0 package-lock.json => vue2/package-lock.json | 0 package.json => vue2/package.json | 0 {packages => vue2/packages}/clients/afm/API.md | 0 .../packages}/clients/afm/CHANGELOG.md | 0 {packages => vue2/packages}/clients/afm/LICENSE | 0 {packages => vue2/packages}/clients/afm/README.md | 0 .../packages}/clients/afm/example/index.html | 0 .../packages}/clients/afm/example/polar-example.js | 0 .../packages}/clients/afm/example/prod-example.html | 0 .../packages}/clients/afm/example/reset.css | 0 .../packages}/clients/afm/package.json | 0 .../packages}/clients/afm/src/polar-client.ts | 0 .../packages}/clients/afm/vite.config.js | 0 .../packages}/clients/bgw/CHANGELOG.md | 0 {packages => vue2/packages}/clients/bgw/LICENSE | 0 {packages => vue2/packages}/clients/bgw/README.md | 0 .../packages}/clients/bgw/package.json | 0 .../packages}/clients/bgw/src/addPlugins.ts | 0 .../packages}/clients/bgw/src/html/index.html | 0 .../packages}/clients/bgw/src/index.html | 0 .../packages}/clients/bgw/src/mapConfiguration.ts | 0 .../clients/bgw/src/plugins/Gfi/ActionButton.vue | 0 .../clients/bgw/src/plugins/Gfi/Content.vue | 0 .../packages}/clients/bgw/src/polar-client.ts | 0 .../packages}/clients/bgw/src/services.ts | 0 .../packages}/clients/bgw/src/store/module.ts | 0 .../packages}/clients/bgw/src/style.json | 0 .../clients/bgw/src/utils/badestellenSearch.ts | 0 .../packages}/clients/bgw/tsconfig.json | 0 .../packages}/clients/bgw/vite.config.js | 0 .../packages}/clients/dish/CHANGELOG.md | 0 {packages => vue2/packages}/clients/dish/LICENSE | 0 {packages => vue2/packages}/clients/dish/README.md | 0 .../packages}/clients/dish/package.json | 0 .../packages}/clients/dish/src/addPlugins.ts | 0 .../packages}/clients/dish/src/colors.ts | 0 .../packages}/clients/dish/src/enums.ts | 0 .../packages}/clients/dish/src/html/index.html | 0 .../packages}/clients/dish/src/index.html | 0 .../packages}/clients/dish/src/locales.ts | 0 .../src/mapConfigurations/attributionsConfig.ts | 0 .../dish/src/mapConfigurations/layerConfigIntern.ts | 0 .../clients/dish/src/mapConfigurations/mapConfig.ts | 0 .../dish/src/mapConfigurations/mapConfigExtern.ts | 0 .../dish/src/mapConfigurations/mapConfigIntern.ts | 0 .../src/mapConfigurations/searchConfigParams.ts | 0 .../src/plugins/DishExportMap/DishExportMap.vue | 0 .../dish/src/plugins/DishExportMap/README.md | 0 .../clients/dish/src/plugins/DishExportMap/index.ts | 0 .../dish/src/plugins/DishExportMap/locales.ts | 0 .../clients/dish/src/plugins/Gfi/ActionButton.vue | 0 .../clients/dish/src/plugins/Gfi/ContentExtern.vue | 0 .../clients/dish/src/plugins/Gfi/ContentIntern.vue | 0 .../dish/src/plugins/Gfi/MonumentContent.vue | 0 .../clients/dish/src/plugins/Gfi/SharedContent.vue | 0 .../clients/dish/src/plugins/Gfi/SwitchButton.vue | 0 .../packages}/clients/dish/src/plugins/Gfi/index.ts | 0 .../clients/dish/src/plugins/Header/Header.vue | 0 .../clients/dish/src/plugins/Header/index.ts | 0 .../clients/dish/src/plugins/Header/locales.ts | 0 .../clients/dish/src/plugins/Modal/Hints.vue | 0 .../clients/dish/src/plugins/Modal/HintsIntern.vue | 0 .../clients/dish/src/plugins/Modal/Modal.vue | 0 .../clients/dish/src/plugins/Modal/SharedHints.vue | 0 .../clients/dish/src/plugins/Modal/Welcome.vue | 0 .../clients/dish/src/plugins/Modal/index.ts | 0 .../plugins/Modal/landesdachmarke_denkmalpflege.jpg | Bin .../clients/dish/src/plugins/Modal/locales.ts | 0 .../clients/dish/src/plugins/Modal/store.ts | 0 .../src/plugins/SelectionObject/SelectionObject.vue | 0 .../dish/src/plugins/SelectionObject/index.ts | 0 .../dish/src/plugins/SelectionObject/locales.ts | 0 .../dish/src/plugins/SelectionObject/store.ts | 0 .../packages}/clients/dish/src/polar-client.ts | 0 .../packages}/clients/dish/src/selectionLayer.ts | 0 .../packages}/clients/dish/src/services.ts | 0 .../packages}/clients/dish/src/servicesConstants.ts | 0 .../packages}/clients/dish/src/servicesIntern.ts | 0 .../packages}/clients/dish/src/styles.css | 0 .../packages}/clients/dish/src/types.ts | 0 .../clients/dish/src/utils/autocomplete.ts | 0 .../dish/src/utils/calculateScaleFromResolution.ts | 0 .../clients/dish/src/utils/denkmalSearchIntern.ts | 0 .../packages}/clients/dish/src/utils/extendGfi.ts | 0 .../clients/dish/src/utils/navigateToDenkmal.ts | 0 .../clients/dish/src/utils/prepareGfiDataIntern.ts | 0 .../packages}/clients/dish/src/utils/search.ts | 0 .../clients/dish/src/utils/zoomToFeatureById.ts | 0 .../packages}/clients/dish/vite.config.js | 0 {packages => vue2/packages}/clients/generic/API.md | 0 .../packages}/clients/generic/CHANGELOG.md | 0 {packages => vue2/packages}/clients/generic/LICENSE | 0 .../packages}/clients/generic/README.md | 0 .../packages}/clients/generic/package.json | 0 .../packages}/clients/generic/src/polar-client.ts | 0 .../packages}/clients/generic/vite.config.js | 0 .../packages}/clients/meldemichel/API.md | 0 .../packages}/clients/meldemichel/CHANGELOG.md | 0 .../packages}/clients/meldemichel/LICENSE | 0 .../packages}/clients/meldemichel/README.md | 0 .../clients/meldemichel/example/complete.html | 0 .../meldemichel/example/complete_embedded.html | 0 .../clients/meldemichel/example/index.html | 0 .../clients/meldemichel/example/report.html | 0 .../clients/meldemichel/example/simulateRecreate.js | 0 .../clients/meldemichel/example/single.html | 0 .../packages}/clients/meldemichel/package.json | 0 .../packages}/clients/meldemichel/src/addPlugins.ts | 0 .../packages}/clients/meldemichel/src/enums.ts | 0 .../clients/meldemichel/src/html/index.html | 0 .../packages}/clients/meldemichel/src/index.html | 0 .../packages}/clients/meldemichel/src/locales.ts | 0 .../clients/meldemichel/src/mapConfigurations.ts | 0 .../meldemichel/src/plugins/AfmButton/AfmButton.vue | 0 .../meldemichel/src/plugins/AfmButton/index.ts | 0 .../meldemichel/src/plugins/AfmButton/locales.ts | 0 .../meldemichel/src/plugins/Gfi/ActionButtons.vue | 0 .../clients/meldemichel/src/plugins/Gfi/Feature.vue | 0 .../clients/meldemichel/src/plugins/Gfi/index.ts | 0 .../clients/meldemichel/src/polar-client.ts | 0 .../clients/meldemichel/src/store/module.ts | 0 .../clients/meldemichel/src/styles/index.css | 0 .../packages}/clients/meldemichel/src/types.ts | 0 .../clients/meldemichel/src/utils/createMenus.ts | 0 .../meldemichel/src/utils/enableClustering.ts | 0 .../meldemichel/src/utils/setBackgroundImage.ts | 0 .../clients/meldemichel/src/utils/showTooltip.ts | 0 .../packages}/clients/meldemichel/vite.config.js | 0 {packages => vue2/packages}/clients/snowbox/API.md | 0 {packages => vue2/packages}/clients/snowbox/LICENSE | 0 .../packages}/clients/snowbox/README.md | 0 .../packages}/clients/snowbox/package.json | 0 .../packages}/clients/snowbox/src/addPlugins.ts | 0 .../packages}/clients/snowbox/src/authentication.ts | 0 .../snowbox/src/exampleFeatureInformation.ts | 0 .../packages}/clients/snowbox/src/html/index.html | 0 .../packages}/clients/snowbox/src/index.html | 0 .../packages}/clients/snowbox/src/locales.ts | 0 .../clients/snowbox/src/mapConfiguration.ts | 0 .../packages}/clients/snowbox/src/polar-client.ts | 0 .../packages}/clients/snowbox/src/style.json | 0 .../packages}/clients/snowbox/src/validateForm.ts | 0 .../packages}/clients/snowbox/vite.config.js | 0 .../packages}/clients/stylePreview/API.md | 0 .../packages}/clients/stylePreview/CHANGELOG.md | 0 .../packages}/clients/stylePreview/LICENSE | 0 .../packages}/clients/stylePreview/README.md | 0 .../clients/stylePreview/example/index.html | 0 .../clients/stylePreview/example/polar-example.js | 0 .../clients/stylePreview/example/prod-example.html | 0 .../clients/stylePreview/example/style.css | 0 .../packages}/clients/stylePreview/package.json | 0 .../clients/stylePreview/src/polar-client.ts | 0 .../stylePreview/src/stylePreview/features.ts | 0 .../clients/stylePreview/src/stylePreview/index.ts | 0 .../src/stylePreview/updatePositions.ts | 0 .../stylePreview/src/stylePreview/updateStyles.ts | 0 .../packages}/clients/stylePreview/vite.config.js | 0 .../packages}/clients/textLocator/API.md | 0 .../packages}/clients/textLocator/CHANGELOG.md | 0 .../packages}/clients/textLocator/LICENSE | 0 .../packages}/clients/textLocator/README.md | 0 .../packages}/clients/textLocator/package.json | 0 .../packages}/clients/textLocator/src/addPlugins.ts | 0 .../textLocator/src/components/ResultInfo.vue | 0 .../clients/textLocator/src/html/index.html | 0 .../packages}/clients/textLocator/src/html/index.js | 0 .../packages}/clients/textLocator/src/index.html | 0 .../packages}/clients/textLocator/src/locales.ts | 0 .../packages}/clients/textLocator/src/mapConfig.ts | 0 .../packages}/clients/textLocator/src/palettes.ts | 0 .../plugins/GeometrySearch/components/Action.vue | 0 .../plugins/GeometrySearch/components/DrawMode.vue | 0 .../GeometrySearch/components/GeometrySearch.vue | 0 .../src/plugins/GeometrySearch/components/Tree.vue | 0 .../GeometrySearch/components/ViewToggle.vue | 0 .../src/plugins/GeometrySearch/components/index.ts | 0 .../textLocator/src/plugins/GeometrySearch/index.ts | 0 .../src/plugins/GeometrySearch/locales.ts | 0 .../store/actions/setupDrawReaction.ts | 0 .../GeometrySearch/store/actions/setupTooltip.ts | 0 .../store/actions/updateFrequencies.ts | 0 .../src/plugins/GeometrySearch/store/index.ts | 0 .../textLocator/src/plugins/GeometrySearch/types.ts | 0 .../plugins/GeometrySearch/utils/makeTreeView.ts | 0 .../plugins/GeometrySearch/utils/vectorDisplay.ts | 0 .../plugins/GeometrySearch/utils/vectorStyles.ts | 0 .../textLocator/src/plugins/Header/Header.vue | 0 .../clients/textLocator/src/plugins/Header/index.ts | 0 .../textLocator/src/plugins/Header/locales.ts | 0 .../clients/textLocator/src/polar-client.ts | 0 .../packages}/clients/textLocator/src/services.ts | 0 .../packages}/clients/textLocator/src/styles.css | 0 .../packages}/clients/textLocator/src/types.ts | 0 .../src/utils/coastalGazetteer/common.ts | 0 .../src/utils/coastalGazetteer/getAllPages.ts | 0 .../src/utils/coastalGazetteer/getPrimaryName.ts | 0 .../src/utils/coastalGazetteer/makeRequestBody.ts | 0 .../utils/coastalGazetteer/responseInterpreter.ts | 0 .../src/utils/coastalGazetteer/searchGeometry.ts | 0 .../src/utils/coastalGazetteer/searchToponym.ts | 0 .../textLocator/src/utils/coastalGazetteer/types.ts | 0 .../clients/textLocator/src/utils/common.ts | 0 .../findLiterature/searchLiterature.ts | 0 .../findLiterature/selectLiterature.ts | 0 .../utils/textLocatorBackend/literatureByToponym.ts | 0 .../utils/textLocatorBackend/toponymByLiterature.ts | 0 .../src/utils/textLocatorBackend/urlSuffix.ts | 0 .../packages}/clients/textLocator/vite.config.js | 0 {packages => vue2/packages}/components/CHANGELOG.md | 0 {packages => vue2/packages}/components/LICENSE | 0 .../packages}/components/MoveHandle.vue | 0 {packages => vue2/packages}/components/README.md | 0 {packages => vue2/packages}/components/index.ts | 0 {packages => vue2/packages}/components/package.json | 0 .../packages}/components/tsconfig.json | 0 {packages => vue2/packages}/components/types.ts | 0 {packages => vue2/packages}/core/CHANGELOG.md | 0 {packages => vue2/packages}/core/LICENSE | 0 {packages => vue2/packages}/core/README.md | 0 {packages => vue2/packages}/core/package.json | 0 .../packages}/core/src/components/MapContainer.vue | 0 .../packages}/core/src/components/MapPlugin.vue | 0 .../packages}/core/src/components/MapUi.vue | 0 .../packages}/core/src/components/RadioCard.vue | 0 .../packages}/core/src/components/index.ts | 0 .../core/src/components/layouts/NineLayout.vue | 0 .../core/src/components/layouts/NineLayoutTag.ts | 0 .../packages}/core/src/components/layouts/index.ts | 0 {packages => vue2/packages}/core/src/i18n/index.ts | 0 {packages => vue2/packages}/core/src/index.ts | 0 {packages => vue2/packages}/core/src/locales.ts | 0 .../packages}/core/src/monkeyCrossOrigin.ts | 0 .../packages}/core/src/monkeyHeaderLoader.ts | 0 .../packages}/core/src/storeModules/capabilities.ts | 0 {packages => vue2/packages}/core/src/types.ts | 0 .../packages}/core/src/utils/addClusterStyle.ts | 0 .../packages}/core/src/utils/addPlugins.ts | 0 .../packages}/core/src/utils/constants.ts | 0 .../packages}/core/src/utils/createMap/defaults.ts | 0 .../packages}/core/src/utils/createMap/index.ts | 0 .../core/src/utils/createMap/makeShadowRoot.ts | 0 .../src/utils/createMap/pullPolarStyleToShadow.ts | 0 .../src/utils/createMap/pullVuetifyStyleToShadow.ts | 0 .../core/src/utils/createMap/setupFontawesome.ts | 0 .../packages}/core/src/utils/createMap/subscribe.ts | 0 .../core/src/utils/createMap/updateSizeOnReady.ts | 0 .../packages}/core/src/utils/interactions.ts | 0 .../packages}/core/src/utils/layout.ts | 0 .../packages}/core/src/utils/mapZoomOffset.ts | 0 .../packages}/core/src/utils/markers/hatches.ts | 0 .../packages}/core/src/utils/markers/index.ts | 0 .../packages}/core/src/utils/resolveClusterClick.ts | 0 .../packages}/core/src/utils/setupStyling.ts | 0 .../packages}/core/src/utils/sortPluginsByLayout.ts | 0 .../core/src/vuePlugins/actions/addInterceptor.ts | 0 .../vuePlugins/actions/checkServiceAvailability.ts | 0 .../useExtendedMasterportalapiMarkers/index.ts | 0 .../useExtendedMasterportalapiMarkers/setLayerId.ts | 0 .../packages}/core/src/vuePlugins/vuetify.ts | 0 .../packages}/core/src/vuePlugins/vuex.ts | 0 {packages => vue2/packages}/core/vite.config.js | 0 .../packages}/lib/getCluster/CHANGELOG.md | 0 {packages => vue2/packages}/lib/getCluster/LICENSE | 0 .../packages}/lib/getCluster/README.md | 0 {packages => vue2/packages}/lib/getCluster/index.ts | 0 .../packages}/lib/getCluster/package.json | 0 .../packages}/lib/getCluster/vite.config.js | 0 .../packages}/lib/getFeatures/CHANGELOG.md | 0 {packages => vue2/packages}/lib/getFeatures/LICENSE | 0 .../packages}/lib/getFeatures/README.md | 0 .../packages}/lib/getFeatures/index.ts | 0 .../packages}/lib/getFeatures/package.json | 0 .../packages}/lib/getFeatures/tests/wfs.spec.ts | 0 .../packages}/lib/getFeatures/types.ts | 0 .../packages}/lib/getFeatures/utils/errorCheck.ts | 0 .../packages}/lib/getFeatures/vector/index.ts | 0 .../packages}/lib/getFeatures/vite.config.js | 0 .../packages}/lib/getFeatures/wfs/buildWfsFilter.ts | 0 .../getFeatures/wfs/getFeatureTitleFromPattern.ts | 0 .../packages}/lib/getFeatures/wfs/index.ts | 0 .../packages}/lib/getFeatures/wfs/match.ts | 0 .../packages}/lib/getFeatures/wfs/parse.ts | 0 {packages => vue2/packages}/lib/idx/CHANGELOG.md | 0 {packages => vue2/packages}/lib/idx/LICENSE | 0 {packages => vue2/packages}/lib/idx/README.md | 0 {packages => vue2/packages}/lib/idx/index.ts | 0 {packages => vue2/packages}/lib/idx/package.json | 0 {packages => vue2/packages}/lib/idx/vite.config.js | 0 .../packages}/lib/invisibleStyle/CHANGELOG.md | 0 .../packages}/lib/invisibleStyle/LICENSE | 0 .../packages}/lib/invisibleStyle/README.md | 0 .../packages}/lib/invisibleStyle/index.ts | 0 .../packages}/lib/invisibleStyle/package.json | 0 .../packages}/lib/invisibleStyle/vite.config.js | 0 .../packages}/lib/passesBoundaryCheck/CHANGELOG.md | 0 .../packages}/lib/passesBoundaryCheck/LICENSE | 0 .../packages}/lib/passesBoundaryCheck/README.md | 0 .../packages}/lib/passesBoundaryCheck/index.ts | 0 .../packages}/lib/passesBoundaryCheck/package.json | 0 .../lib/passesBoundaryCheck/vite.config.js | 0 .../packages}/lib/testMountParameters/CHANGELOG.md | 0 .../packages}/lib/testMountParameters/LICENSE | 0 .../packages}/lib/testMountParameters/README.md | 0 .../packages}/lib/testMountParameters/index.ts | 0 .../packages}/lib/testMountParameters/package.json | 0 .../packages}/lib/tooltip/CHANGELOG.md | 0 {packages => vue2/packages}/lib/tooltip/LICENSE | 0 {packages => vue2/packages}/lib/tooltip/README.md | 0 {packages => vue2/packages}/lib/tooltip/index.ts | 0 .../packages}/lib/tooltip/package.json | 0 .../packages}/lib/tooltip/vite.config.js | 0 .../packages}/plugins/AddressSearch/CHANGELOG.md | 0 .../packages}/plugins/AddressSearch/LICENSE | 0 .../packages}/plugins/AddressSearch/README.md | 0 .../packages}/plugins/AddressSearch/package.json | 0 .../AddressSearch/src/components/AddressSearch.vue | 0 .../AddressSearch/src/components/GroupSelect.vue | 0 .../plugins/AddressSearch/src/components/Input.vue | 0 .../AddressSearch/src/components/Results.vue | 0 .../src/components/SearchContainer.vue | 0 .../plugins/AddressSearch/src/components/index.ts | 0 .../packages}/plugins/AddressSearch/src/index.ts | 0 .../packages}/plugins/AddressSearch/src/locales.ts | 0 .../plugins/AddressSearch/src/store/actions.ts | 0 .../plugins/AddressSearch/src/store/getters.ts | 0 .../plugins/AddressSearch/src/store/index.ts | 0 .../plugins/AddressSearch/src/store/state.ts | 0 .../packages}/plugins/AddressSearch/src/types.ts | 0 .../AddressSearch/src/utils/emTitleByInput.ts | 0 .../AddressSearch/src/utils/focusFirstResult.ts | 0 .../AddressSearch/src/utils/searchMethods/bkg.ts | 0 .../src/utils/searchMethods/getSearchMethod.ts | 0 .../AddressSearch/src/utils/searchMethods/mpapi.ts | 0 .../AddressSearch/src/utils/searchResultSymbols.ts | 0 .../packages}/plugins/AddressSearch/vite.config.js | 0 .../packages}/plugins/Attributions/CHANGELOG.md | 0 .../packages}/plugins/Attributions/LICENSE | 0 .../packages}/plugins/Attributions/README.md | 0 .../packages}/plugins/Attributions/package.json | 0 .../src/components/AttributionButton.vue | 0 .../src/components/AttributionContent.vue | 0 .../Attributions/src/components/Attributions.vue | 0 .../plugins/Attributions/src/components/index.ts | 0 .../packages}/plugins/Attributions/src/index.ts | 0 .../packages}/plugins/Attributions/src/locales.ts | 0 .../plugins/Attributions/src/store/index.ts | 0 .../packages}/plugins/Attributions/src/types.ts | 0 .../packages}/plugins/Attributions/src/utils/lib.ts | 0 .../plugins/Attributions/tests/attributions.spec.ts | 0 .../packages}/plugins/Attributions/vite.config.js | 0 .../packages}/plugins/Draw/CHANGELOG.md | 0 {packages => vue2/packages}/plugins/Draw/LICENSE | 0 {packages => vue2/packages}/plugins/Draw/README.md | 0 .../packages}/plugins/Draw/package.json | 0 .../packages}/plugins/Draw/src/components/Draw.vue | 0 .../plugins/Draw/src/components/DrawOptions.vue | 0 .../packages}/plugins/Draw/src/components/index.ts | 0 .../packages}/plugins/Draw/src/index.ts | 0 .../packages}/plugins/Draw/src/locales.ts | 0 .../packages}/plugins/Draw/src/store/actions.ts | 0 .../createCutInteractions/cutlery.ts | 0 .../createCutInteractions/index.ts | 0 .../createCutInteractions/makeDraw.ts | 0 .../createCutInteractions/style.ts | 0 .../createCutInteractions/types.ts | 0 .../createInteractions/createDeleteInteractions.ts | 0 .../createInteractions/createDrawInteractions.ts | 0 .../createDuplicateInteractions.ts | 0 .../createInteractions/createLassoInteractions.ts | 0 .../createInteractions/createMergeInteractions.ts | 0 .../createInteractions/createModifyInteractions.ts | 0 .../createInteractions/createTextInteractions.ts | 0 .../createTranslateInteractions.ts | 0 .../Draw/src/store/createInteractions/getSnaps.ts | 0 .../Draw/src/store/createInteractions/index.ts | 0 .../src/store/createInteractions/localSelector.ts | 0 .../src/store/createInteractions/modifyDrawStyle.ts | 0 .../src/store/createInteractions/modifyTextStyle.ts | 0 .../packages}/plugins/Draw/src/store/index.ts | 0 .../Draw/src/store/reviseFeatures/autofix.ts | 0 .../store/reviseFeatures/cloneFeatureCollection.ts | 0 .../store/reviseFeatures/enrichWithMetaServices.ts | 0 .../plugins/Draw/src/store/reviseFeatures/index.ts | 0 .../Draw/src/store/reviseFeatures/revisionStates.ts | 0 .../src/store/reviseFeatures/validateGeoJson.ts | 0 .../packages}/plugins/Draw/src/types.ts | 0 .../plugins/Draw/src/utils/createDrawLayer.ts | 0 .../plugins/Draw/src/utils/createDrawStyle.ts | 0 .../plugins/Draw/src/utils/createTextStyle.ts | 0 .../packages}/plugins/Draw/vite.config.js | 0 .../packages}/plugins/Export/CHANGELOG.md | 0 {packages => vue2/packages}/plugins/Export/LICENSE | 0 .../packages}/plugins/Export/README.md | 0 .../packages}/plugins/Export/package.json | 0 .../plugins/Export/src/components/Button.vue | 0 .../plugins/Export/src/components/Export.vue | 0 .../plugins/Export/src/components/index.ts | 0 .../packages}/plugins/Export/src/index.ts | 0 .../packages}/plugins/Export/src/locales.ts | 0 .../packages}/plugins/Export/src/store/actions.ts | 0 .../packages}/plugins/Export/src/store/index.ts | 0 .../packages}/plugins/Export/src/types.ts | 0 .../packages}/plugins/Export/vite.config.js | 0 .../packages}/plugins/Filter/CHANGELOG.md | 0 {packages => vue2/packages}/plugins/Filter/LICENSE | 0 .../packages}/plugins/Filter/README.md | 0 .../packages}/plugins/Filter/package.json | 0 .../Filter/src/components/ChooseTimeFrame.vue | 0 .../plugins/Filter/src/components/Filter.vue | 0 .../plugins/Filter/src/components/index.ts | 0 .../packages}/plugins/Filter/src/index.ts | 0 .../packages}/plugins/Filter/src/locales.ts | 0 .../packages}/plugins/Filter/src/store/index.ts | 0 .../packages}/plugins/Filter/src/types.ts | 0 .../plugins/Filter/src/utils/arrayOnlyContains.ts | 0 .../plugins/Filter/src/utils/parseTimeOption.ts | 0 .../packages}/plugins/Filter/src/utils/setState.ts | 0 .../Filter/src/utils/updateFeatureVisibility.ts | 0 .../packages}/plugins/Filter/vite.config.js | 0 .../packages}/plugins/Fullscreen/CHANGELOG.md | 0 .../packages}/plugins/Fullscreen/LICENSE | 0 .../packages}/plugins/Fullscreen/README.md | 0 .../packages}/plugins/Fullscreen/package.json | 0 .../Fullscreen/src/components/Fullscreen.vue | 0 .../plugins/Fullscreen/src/components/index.ts | 0 .../packages}/plugins/Fullscreen/src/index.ts | 0 .../packages}/plugins/Fullscreen/src/locales.ts | 0 .../packages}/plugins/Fullscreen/src/store/index.ts | 0 .../packages}/plugins/Fullscreen/src/types.ts | 0 .../plugins/Fullscreen/tests/fullscreen.spec.ts | 0 .../packages}/plugins/Fullscreen/vite.config.js | 0 .../packages}/plugins/GeoLocation/CHANGELOG.md | 0 .../packages}/plugins/GeoLocation/LICENSE | 0 .../packages}/plugins/GeoLocation/README.md | 0 .../packages}/plugins/GeoLocation/package.json | 0 .../GeoLocation/src/assets/geoLocationMarker.js | 0 .../GeoLocation/src/components/GeoLocation.vue | 0 .../plugins/GeoLocation/src/components/index.ts | 0 .../packages}/plugins/GeoLocation/src/index.ts | 0 .../packages}/plugins/GeoLocation/src/locales.ts | 0 .../plugins/GeoLocation/src/store/actions.ts | 0 .../GeoLocation/src/store/getInitialState.ts | 0 .../plugins/GeoLocation/src/store/getters.ts | 0 .../plugins/GeoLocation/src/store/index.ts | 0 .../packages}/plugins/GeoLocation/src/types.ts | 0 .../GeoLocation/src/utils/positionChanged.ts | 0 .../plugins/GeoLocation/tests/geoLocation.spec.ts | 0 .../plugins/GeoLocation/tests/store.spec.ts | 0 .../packages}/plugins/GeoLocation/vite.config.js | 0 .../packages}/plugins/Gfi/CHANGELOG.md | 0 {packages => vue2/packages}/plugins/Gfi/LICENSE | 0 {packages => vue2/packages}/plugins/Gfi/README.md | 0 .../packages}/plugins/Gfi/package.json | 0 .../plugins/Gfi/src/components/Feature.vue | 0 .../Gfi/src/components/FeatureButtonGroup.vue | 0 .../Gfi/src/components/FeatureSwitchButtons.vue | 0 .../plugins/Gfi/src/components/FeatureTableBody.vue | 0 .../plugins/Gfi/src/components/FeatureTableHead.vue | 0 .../packages}/plugins/Gfi/src/components/Gfi.vue | 0 .../packages}/plugins/Gfi/src/components/List.vue | 0 .../packages}/plugins/Gfi/src/components/index.ts | 0 .../packages}/plugins/Gfi/src/index.ts | 0 .../packages}/plugins/Gfi/src/locales.ts | 0 .../Gfi/src/store/actions/debouncedGfiRequest.ts | 0 .../plugins/Gfi/src/store/actions/index.ts | 0 .../plugins/Gfi/src/store/actions/setup.ts | 0 .../Gfi/src/store/actions/setupMultiSelection.ts | 0 .../plugins/Gfi/src/store/getInitialState.ts | 0 .../packages}/plugins/Gfi/src/store/getters.ts | 0 .../packages}/plugins/Gfi/src/store/index.ts | 0 .../packages}/plugins/Gfi/src/store/mutations.ts | 0 .../packages}/plugins/Gfi/src/types.ts | 0 .../plugins/Gfi/src/utils/displayFeatureLayer.ts | 0 .../plugins/Gfi/src/utils/filterFeatures.ts | 0 .../plugins/Gfi/src/utils/getOriginalFeature.ts | 0 .../plugins/Gfi/src/utils/isValidHttpUrl.js | 0 .../plugins/Gfi/src/utils/listableLayersFilter.ts | 0 .../plugins/Gfi/src/utils/renderFeatures.ts | 0 .../packages}/plugins/Gfi/src/utils/requestGfi.ts | 0 .../plugins/Gfi/src/utils/requestGfiGeoJson.ts | 0 .../plugins/Gfi/src/utils/requestGfiWfs.ts | 0 .../plugins/Gfi/src/utils/requestGfiWms.ts | 0 .../packages}/plugins/Gfi/src/utils/sortFeatures.ts | 0 .../packages}/plugins/Gfi/tests/actions.spec.ts | 0 .../plugins/Gfi/tests/filterFeatures.spec.ts | 0 .../plugins/Gfi/tests/sortFeatures.spec.ts | 0 .../packages}/plugins/Gfi/vite.config.js | 0 .../packages}/plugins/IconMenu/CHANGELOG.md | 0 .../packages}/plugins/IconMenu/LICENSE | 0 .../packages}/plugins/IconMenu/README.md | 0 .../packages}/plugins/IconMenu/package.json | 0 .../plugins/IconMenu/src/components/IconMenu.vue | 0 .../IconMenu/src/components/IconMenuButton.vue | 0 .../plugins/IconMenu/src/components/index.ts | 0 .../packages}/plugins/IconMenu/src/index.ts | 0 .../packages}/plugins/IconMenu/src/locales.ts | 0 .../packages}/plugins/IconMenu/src/store/index.ts | 0 .../packages}/plugins/IconMenu/src/types.ts | 0 .../packages}/plugins/IconMenu/tests/store.spec.ts | 0 .../packages}/plugins/IconMenu/vite.config.js | 0 .../packages}/plugins/LayerChooser/CHANGELOG.md | 0 .../packages}/plugins/LayerChooser/LICENSE | 0 .../packages}/plugins/LayerChooser/README.md | 0 .../packages}/plugins/LayerChooser/package.json | 0 .../LayerChooser/src/components/LayerChooser.vue | 0 .../LayerChooser/src/components/LayerWrapper.vue | 0 .../plugins/LayerChooser/src/components/Options.vue | 0 .../LayerChooser/src/components/Selection.vue | 0 .../plugins/LayerChooser/src/components/index.ts | 0 .../packages}/plugins/LayerChooser/src/index.ts | 0 .../packages}/plugins/LayerChooser/src/locales.ts | 0 .../plugins/LayerChooser/src/store/index.ts | 0 .../packages}/plugins/LayerChooser/src/types.ts | 0 .../LayerChooser/src/utils/findInCapabilities.ts | 0 .../src/utils/getBackgroundsAndMasks.ts | 0 .../src/utils/getOpenedOptionsServiceLayers.ts | 0 .../LayerChooser/src/utils/isLayerIdIncluded.ts | 0 .../plugins/LayerChooser/src/utils/layerFolding.ts | 0 .../LayerChooser/tests/findInCapabilities.spec.ts | 0 .../plugins/LayerChooser/tests/layerChooser.spec.ts | 0 .../plugins/LayerChooser/tests/store.spec.ts | 0 .../packages}/plugins/LayerChooser/vite.config.js | 0 .../packages}/plugins/Legend/CHANGELOG.md | 0 {packages => vue2/packages}/plugins/Legend/LICENSE | 0 .../packages}/plugins/Legend/README.md | 0 .../packages}/plugins/Legend/package.json | 0 .../plugins/Legend/src/components/Legend.vue | 0 .../plugins/Legend/src/components/index.ts | 0 .../packages}/plugins/Legend/src/index.ts | 0 .../packages}/plugins/Legend/src/locales.ts | 0 .../packages}/plugins/Legend/vite.config.js | 0 .../packages}/plugins/LoadingIndicator/CHANGELOG.md | 0 .../packages}/plugins/LoadingIndicator/LICENSE | 0 .../packages}/plugins/LoadingIndicator/README.md | 0 .../plugins/LoadingIndicator/assets/BasicLoader.gif | Bin .../LoadingIndicator/assets/CircleLoader.gif | Bin .../plugins/LoadingIndicator/assets/RingLoader.gif | Bin .../LoadingIndicator/assets/RollerLoader.gif | Bin .../LoadingIndicator/assets/SpinnerLoader.gif | Bin .../LoadingIndicator/assets/VuetifyLoader.gif | Bin .../packages}/plugins/LoadingIndicator/package.json | 0 .../plugins/LoadingIndicator/readme_example.png | Bin .../src/components/LoadingIndicator.vue | 0 .../LoadingIndicator/src/components/index.ts | 0 .../src/components/loaderStyles/Basic.vue | 0 .../src/components/loaderStyles/Circle.vue | 0 .../src/components/loaderStyles/Ring.vue | 0 .../src/components/loaderStyles/Roller.vue | 0 .../src/components/loaderStyles/Spinner.vue | 0 .../packages}/plugins/LoadingIndicator/src/index.ts | 0 .../plugins/LoadingIndicator/src/locales.ts | 0 .../plugins/LoadingIndicator/src/store/getters.ts | 0 .../plugins/LoadingIndicator/src/store/index.ts | 0 .../plugins/LoadingIndicator/src/store/mutations.ts | 0 .../plugins/LoadingIndicator/src/store/state.ts | 0 .../packages}/plugins/LoadingIndicator/src/types.ts | 0 .../plugins/LoadingIndicator/vite.config.js | 0 .../packages}/plugins/Pins/CHANGELOG.md | 0 {packages => vue2/packages}/plugins/Pins/LICENSE | 0 {packages => vue2/packages}/plugins/Pins/README.md | 0 .../packages}/plugins/Pins/package.json | 0 .../packages}/plugins/Pins/src/assets/mapMarker.js | 0 .../packages}/plugins/Pins/src/index.ts | 0 .../packages}/plugins/Pins/src/locales.ts | 0 .../packages}/plugins/Pins/src/store/getters.ts | 0 .../packages}/plugins/Pins/src/store/index.ts | 0 .../packages}/plugins/Pins/src/store/state.ts | 0 .../packages}/plugins/Pins/src/types.ts | 0 .../packages}/plugins/Pins/src/util/getPinStyle.ts | 0 .../packages}/plugins/Pins/src/util/getPinSvg.ts | 0 .../plugins/Pins/src/util/getPointCoordinate.ts | 0 .../packages}/plugins/Pins/vite.config.js | 0 .../packages}/plugins/PointerPosition/CHANGELOG.md | 0 .../packages}/plugins/PointerPosition/LICENSE | 0 .../packages}/plugins/PointerPosition/README.md | 0 .../packages}/plugins/PointerPosition/package.json | 0 .../src/components/PointerPosition.vue | 0 .../plugins/PointerPosition/src/components/index.ts | 0 .../packages}/plugins/PointerPosition/src/index.ts | 0 .../plugins/PointerPosition/src/locales.ts | 0 .../plugins/PointerPosition/src/store/index.ts | 0 .../packages}/plugins/PointerPosition/src/types.ts | 0 .../plugins/PointerPosition/vite.config.js | 0 .../packages}/plugins/ReverseGeocoder/CHANGELOG.md | 0 .../packages}/plugins/ReverseGeocoder/LICENSE | 0 .../packages}/plugins/ReverseGeocoder/README.md | 0 .../packages}/plugins/ReverseGeocoder/package.json | 0 .../packages}/plugins/ReverseGeocoder/src/index.ts | 0 .../plugins/ReverseGeocoder/src/store/index.ts | 0 .../packages}/plugins/ReverseGeocoder/src/types.ts | 0 .../ReverseGeocoder/src/utils/reverseGeocode.ts | 0 .../ReverseGeocoder/tests/reverseGeocode.spec.ts | 0 .../plugins/ReverseGeocoder/vite.config.js | 0 .../packages}/plugins/Scale/CHANGELOG.md | 0 {packages => vue2/packages}/plugins/Scale/LICENSE | 0 {packages => vue2/packages}/plugins/Scale/README.md | 0 .../packages}/plugins/Scale/package.json | 0 .../plugins/Scale/src/components/Scale.vue | 0 .../packages}/plugins/Scale/src/components/index.ts | 0 .../packages}/plugins/Scale/src/index.ts | 0 .../packages}/plugins/Scale/src/locales.ts | 0 .../packages}/plugins/Scale/src/store/index.ts | 0 .../packages}/plugins/Scale/src/types.ts | 0 .../plugins/Scale/src/utils/beautifyScale.ts | 0 .../Scale/src/utils/calculateScaleFromResolution.ts | 0 .../packages}/plugins/Scale/src/utils/getDpi.ts | 0 .../plugins/Scale/src/utils/thousandsSeperator.ts | 0 .../packages}/plugins/Scale/vite.config.js | 0 .../packages}/plugins/Toast/CHANGELOG.md | 0 {packages => vue2/packages}/plugins/Toast/LICENSE | 0 {packages => vue2/packages}/plugins/Toast/README.md | 0 .../packages}/plugins/Toast/package.json | 0 .../packages}/plugins/Toast/readme_example.png | Bin .../plugins/Toast/src/components/Toast.vue | 0 .../packages}/plugins/Toast/src/components/index.ts | 0 .../packages}/plugins/Toast/src/index.ts | 0 .../packages}/plugins/Toast/src/locales.ts | 0 .../packages}/plugins/Toast/src/store/index.ts | 0 .../packages}/plugins/Toast/src/types.ts | 0 .../packages}/plugins/Toast/tests/store.spec.ts | 0 .../packages}/plugins/Toast/tests/toast.spec.ts | 0 .../packages}/plugins/Toast/vite.config.js | 0 .../packages}/plugins/Zoom/CHANGELOG.md | 0 {packages => vue2/packages}/plugins/Zoom/LICENSE | 0 {packages => vue2/packages}/plugins/Zoom/README.md | 0 .../packages}/plugins/Zoom/package.json | 0 .../packages}/plugins/Zoom/src/components/Zoom.vue | 0 .../Zoom/src/components/ZoomButtonContainer.vue | 0 .../plugins/Zoom/src/components/ZoomSlider.vue | 0 .../packages}/plugins/Zoom/src/components/index.ts | 0 .../packages}/plugins/Zoom/src/index.ts | 0 .../packages}/plugins/Zoom/src/locales.ts | 0 .../packages}/plugins/Zoom/src/store/index.ts | 0 .../packages}/plugins/Zoom/src/types.ts | 0 .../packages}/plugins/Zoom/tests/unit/zoom.spec.ts | 0 .../packages}/plugins/Zoom/vite.config.js | 0 .../packages}/types/custom/CHANGELOG.md | 0 {packages => vue2/packages}/types/custom/LICENSE | 0 {packages => vue2/packages}/types/custom/README.md | 0 {packages => vue2/packages}/types/custom/core.ts | 0 {packages => vue2/packages}/types/custom/index.ts | 0 .../packages}/types/custom/package.json | 0 .../packages}/types/custom/tsconfig.json | 0 {pages => vue2/pages}/assets/iceberg.svg | 0 {pages => vue2/pages}/assets/iceberg_icon.svg | 0 {pages => vue2/pages}/assets/iframe-resizer/LICENSE | 0 .../pages}/assets/iframe-resizer/README.md | 0 .../js/iframeResizer.contentWindow.js | 0 .../assets/iframe-resizer/js/iframeResizer.js | 0 .../pages}/assets/landessymbole/bremen.svg | 0 .../pages}/assets/landessymbole/hamburg.svg | 0 .../pages}/assets/landessymbole/sachsen-anhalt.svg | 0 .../assets/landessymbole/schleswig-holstein.svg | 0 .../pages}/assets/landessymbole/sources.md | 0 .../pages}/assets/manypixels-decentralized.svg | 0 {pages => vue2/pages}/assets/manypixels-legal.svg | 0 {pages => vue2/pages}/assets/manypixels-map.svg | 0 {pages => vue2/pages}/assets/manypixels-mobile.svg | 0 {pages => vue2/pages}/assets/manypixels-puzzle.svg | 0 {pages => vue2/pages}/assets/maps_pin.jpg | Bin {pages => vue2/pages}/assets/polar-architecture.png | Bin .../pages}/assets/polar-outer-architecture.png | Bin .../pages}/assets/polar_example_screenshot.png | Bin .../assets/productive-users/dataport-logo.svg | 0 .../pages}/assets/productive-users/hamburg-logo.svg | 0 .../productive-users/schleswig-holstein-logo.svg | 0 .../pages}/assets/productive-users/sources.md | 0 {pages => vue2/pages}/assets/sources.md | 0 {pages => vue2/pages}/card.css | 0 {pages => vue2/pages}/documentation.html | 0 {pages => vue2/pages}/examples/address.html | 0 {pages => vue2/pages}/examples/draw.html | 0 {pages => vue2/pages}/examples/gfi.html | 0 {pages => vue2/pages}/examples/layer.html | 0 {pages => vue2/pages}/examples/locales.html | 0 {pages => vue2/pages}/examples/orientation.html | 0 {pages => vue2/pages}/examples/render.js | 0 {pages => vue2/pages}/index.html | 0 {pages => vue2/pages}/mobile.css | 0 {pages => vue2/pages}/mvp.css | 0 {pages => vue2/pages}/package.json | 0 playwright.config.ts => vue2/playwright.config.ts | 0 {scripts => vue2/scripts}/buildPages.sh | 0 {scripts => vue2/scripts}/clean.js | 0 {scripts => vue2/scripts}/createRelease.js | 0 {scripts => vue2/scripts}/makeDocs.ts | 0 {scripts => vue2/scripts}/packages.js | 0 {scripts => vue2/scripts}/precompileSvg.js | 0 {scripts => vue2/scripts}/publishPackages.js | 0 {scripts => vue2/scripts}/versionPackages.js | 0 tsconfig.json => vue2/tsconfig.json | 0 {viteConfigs => vue2/viteConfigs}/index.js | 0 {viteConfigs => vue2/viteConfigs}/vite.client.js | 0 {viteConfigs => vue2/viteConfigs}/vite.code.js | 0 731 files changed, 0 insertions(+), 0 deletions(-) rename .eslintignore => vue2/.eslintignore (100%) rename .eslintrc.json => vue2/.eslintrc.json (100%) rename {.github => vue2/.github}/workflows/publish-packages.yml (100%) rename {.github => vue2/.github}/workflows/publish-pages.yml (100%) rename {.github => vue2/.github}/workflows/run-tests.yml (100%) rename .gitignore => vue2/.gitignore (100%) rename .npmrc => vue2/.npmrc (100%) rename .prettierignore => vue2/.prettierignore (100%) rename .prettierrc => vue2/.prettierrc (100%) rename {@types => vue2/@types}/i18next.d.ts (100%) rename {@types => vue2/@types}/vue-shims/index.d.ts (100%) rename {@types => vue2/@types}/vue-shims/json-loader.d.ts (100%) rename {@types => vue2/@types}/vue-shims/png-loader.d.ts (100%) rename {@types => vue2/@types}/vue-shims/shims-tsx.d.ts (100%) rename {@types => vue2/@types}/vue-shims/shims-vue.d.ts (100%) rename {@types => vue2/@types}/vue-shims/tsconfig.json (100%) rename README.md => vue2/README.md (100%) rename {__mocks__ => vue2/__mocks__}/.eslintrc (100%) rename {__mocks__ => vue2/__mocks__}/fileMock.js (100%) rename {__mocks__ => vue2/__mocks__}/jest.setup.js (100%) rename {__mocks__ => vue2/__mocks__}/styleMock.js (100%) rename arcana.md => vue2/arcana.md (100%) rename babel.config.js => vue2/babel.config.js (100%) rename {e2e => vue2/e2e}/draw.spec.ts (100%) rename {e2e => vue2/e2e}/iconMenu.spec.ts (100%) rename {e2e => vue2/e2e}/pins.spec.ts (100%) rename {e2e => vue2/e2e}/toast.spec.ts (100%) rename {e2e => vue2/e2e}/utils/clickTimes.ts (100%) rename {e2e => vue2/e2e}/utils/draw.ts (100%) rename {e2e => vue2/e2e}/utils/openSnowbox.ts (100%) rename {e2e => vue2/e2e}/utils/package.json (100%) rename {e2e => vue2/e2e}/utils/vuex.ts (100%) rename {e2e => vue2/e2e}/zoom.spec.ts (100%) rename gettingStarted.md => vue2/gettingStarted.md (100%) rename jest.config.ts => vue2/jest.config.ts (100%) rename nx.json => vue2/nx.json (100%) rename package-lock.json => vue2/package-lock.json (100%) rename package.json => vue2/package.json (100%) rename {packages => vue2/packages}/clients/afm/API.md (100%) rename {packages => vue2/packages}/clients/afm/CHANGELOG.md (100%) rename {packages => vue2/packages}/clients/afm/LICENSE (100%) rename {packages => vue2/packages}/clients/afm/README.md (100%) rename {packages => vue2/packages}/clients/afm/example/index.html (100%) rename {packages => vue2/packages}/clients/afm/example/polar-example.js (100%) rename {packages => vue2/packages}/clients/afm/example/prod-example.html (100%) rename {packages => vue2/packages}/clients/afm/example/reset.css (100%) rename {packages => vue2/packages}/clients/afm/package.json (100%) rename {packages => vue2/packages}/clients/afm/src/polar-client.ts (100%) rename {packages => vue2/packages}/clients/afm/vite.config.js (100%) rename {packages => vue2/packages}/clients/bgw/CHANGELOG.md (100%) rename {packages => vue2/packages}/clients/bgw/LICENSE (100%) rename {packages => vue2/packages}/clients/bgw/README.md (100%) rename {packages => vue2/packages}/clients/bgw/package.json (100%) rename {packages => vue2/packages}/clients/bgw/src/addPlugins.ts (100%) rename {packages => vue2/packages}/clients/bgw/src/html/index.html (100%) rename {packages => vue2/packages}/clients/bgw/src/index.html (100%) rename {packages => vue2/packages}/clients/bgw/src/mapConfiguration.ts (100%) rename {packages => vue2/packages}/clients/bgw/src/plugins/Gfi/ActionButton.vue (100%) rename {packages => vue2/packages}/clients/bgw/src/plugins/Gfi/Content.vue (100%) rename {packages => vue2/packages}/clients/bgw/src/polar-client.ts (100%) rename {packages => vue2/packages}/clients/bgw/src/services.ts (100%) rename {packages => vue2/packages}/clients/bgw/src/store/module.ts (100%) rename {packages => vue2/packages}/clients/bgw/src/style.json (100%) rename {packages => vue2/packages}/clients/bgw/src/utils/badestellenSearch.ts (100%) rename {packages => vue2/packages}/clients/bgw/tsconfig.json (100%) rename {packages => vue2/packages}/clients/bgw/vite.config.js (100%) rename {packages => vue2/packages}/clients/dish/CHANGELOG.md (100%) rename {packages => vue2/packages}/clients/dish/LICENSE (100%) rename {packages => vue2/packages}/clients/dish/README.md (100%) rename {packages => vue2/packages}/clients/dish/package.json (100%) rename {packages => vue2/packages}/clients/dish/src/addPlugins.ts (100%) rename {packages => vue2/packages}/clients/dish/src/colors.ts (100%) rename {packages => vue2/packages}/clients/dish/src/enums.ts (100%) rename {packages => vue2/packages}/clients/dish/src/html/index.html (100%) rename {packages => vue2/packages}/clients/dish/src/index.html (100%) rename {packages => vue2/packages}/clients/dish/src/locales.ts (100%) rename {packages => vue2/packages}/clients/dish/src/mapConfigurations/attributionsConfig.ts (100%) rename {packages => vue2/packages}/clients/dish/src/mapConfigurations/layerConfigIntern.ts (100%) rename {packages => vue2/packages}/clients/dish/src/mapConfigurations/mapConfig.ts (100%) rename {packages => vue2/packages}/clients/dish/src/mapConfigurations/mapConfigExtern.ts (100%) rename {packages => vue2/packages}/clients/dish/src/mapConfigurations/mapConfigIntern.ts (100%) rename {packages => vue2/packages}/clients/dish/src/mapConfigurations/searchConfigParams.ts (100%) rename {packages => vue2/packages}/clients/dish/src/plugins/DishExportMap/DishExportMap.vue (100%) rename {packages => vue2/packages}/clients/dish/src/plugins/DishExportMap/README.md (100%) rename {packages => vue2/packages}/clients/dish/src/plugins/DishExportMap/index.ts (100%) rename {packages => vue2/packages}/clients/dish/src/plugins/DishExportMap/locales.ts (100%) rename {packages => vue2/packages}/clients/dish/src/plugins/Gfi/ActionButton.vue (100%) rename {packages => vue2/packages}/clients/dish/src/plugins/Gfi/ContentExtern.vue (100%) rename {packages => vue2/packages}/clients/dish/src/plugins/Gfi/ContentIntern.vue (100%) rename {packages => vue2/packages}/clients/dish/src/plugins/Gfi/MonumentContent.vue (100%) rename {packages => vue2/packages}/clients/dish/src/plugins/Gfi/SharedContent.vue (100%) rename {packages => vue2/packages}/clients/dish/src/plugins/Gfi/SwitchButton.vue (100%) rename {packages => vue2/packages}/clients/dish/src/plugins/Gfi/index.ts (100%) rename {packages => vue2/packages}/clients/dish/src/plugins/Header/Header.vue (100%) rename {packages => vue2/packages}/clients/dish/src/plugins/Header/index.ts (100%) rename {packages => vue2/packages}/clients/dish/src/plugins/Header/locales.ts (100%) rename {packages => vue2/packages}/clients/dish/src/plugins/Modal/Hints.vue (100%) rename {packages => vue2/packages}/clients/dish/src/plugins/Modal/HintsIntern.vue (100%) rename {packages => vue2/packages}/clients/dish/src/plugins/Modal/Modal.vue (100%) rename {packages => vue2/packages}/clients/dish/src/plugins/Modal/SharedHints.vue (100%) rename {packages => vue2/packages}/clients/dish/src/plugins/Modal/Welcome.vue (100%) rename {packages => vue2/packages}/clients/dish/src/plugins/Modal/index.ts (100%) rename {packages => vue2/packages}/clients/dish/src/plugins/Modal/landesdachmarke_denkmalpflege.jpg (100%) rename {packages => vue2/packages}/clients/dish/src/plugins/Modal/locales.ts (100%) rename {packages => vue2/packages}/clients/dish/src/plugins/Modal/store.ts (100%) rename {packages => vue2/packages}/clients/dish/src/plugins/SelectionObject/SelectionObject.vue (100%) rename {packages => vue2/packages}/clients/dish/src/plugins/SelectionObject/index.ts (100%) rename {packages => vue2/packages}/clients/dish/src/plugins/SelectionObject/locales.ts (100%) rename {packages => vue2/packages}/clients/dish/src/plugins/SelectionObject/store.ts (100%) rename {packages => vue2/packages}/clients/dish/src/polar-client.ts (100%) rename {packages => vue2/packages}/clients/dish/src/selectionLayer.ts (100%) rename {packages => vue2/packages}/clients/dish/src/services.ts (100%) rename {packages => vue2/packages}/clients/dish/src/servicesConstants.ts (100%) rename {packages => vue2/packages}/clients/dish/src/servicesIntern.ts (100%) rename {packages => vue2/packages}/clients/dish/src/styles.css (100%) rename {packages => vue2/packages}/clients/dish/src/types.ts (100%) rename {packages => vue2/packages}/clients/dish/src/utils/autocomplete.ts (100%) rename {packages => vue2/packages}/clients/dish/src/utils/calculateScaleFromResolution.ts (100%) rename {packages => vue2/packages}/clients/dish/src/utils/denkmalSearchIntern.ts (100%) rename {packages => vue2/packages}/clients/dish/src/utils/extendGfi.ts (100%) rename {packages => vue2/packages}/clients/dish/src/utils/navigateToDenkmal.ts (100%) rename {packages => vue2/packages}/clients/dish/src/utils/prepareGfiDataIntern.ts (100%) rename {packages => vue2/packages}/clients/dish/src/utils/search.ts (100%) rename {packages => vue2/packages}/clients/dish/src/utils/zoomToFeatureById.ts (100%) rename {packages => vue2/packages}/clients/dish/vite.config.js (100%) rename {packages => vue2/packages}/clients/generic/API.md (100%) rename {packages => vue2/packages}/clients/generic/CHANGELOG.md (100%) rename {packages => vue2/packages}/clients/generic/LICENSE (100%) rename {packages => vue2/packages}/clients/generic/README.md (100%) rename {packages => vue2/packages}/clients/generic/package.json (100%) rename {packages => vue2/packages}/clients/generic/src/polar-client.ts (100%) rename {packages => vue2/packages}/clients/generic/vite.config.js (100%) rename {packages => vue2/packages}/clients/meldemichel/API.md (100%) rename {packages => vue2/packages}/clients/meldemichel/CHANGELOG.md (100%) rename {packages => vue2/packages}/clients/meldemichel/LICENSE (100%) rename {packages => vue2/packages}/clients/meldemichel/README.md (100%) rename {packages => vue2/packages}/clients/meldemichel/example/complete.html (100%) rename {packages => vue2/packages}/clients/meldemichel/example/complete_embedded.html (100%) rename {packages => vue2/packages}/clients/meldemichel/example/index.html (100%) rename {packages => vue2/packages}/clients/meldemichel/example/report.html (100%) rename {packages => vue2/packages}/clients/meldemichel/example/simulateRecreate.js (100%) rename {packages => vue2/packages}/clients/meldemichel/example/single.html (100%) rename {packages => vue2/packages}/clients/meldemichel/package.json (100%) rename {packages => vue2/packages}/clients/meldemichel/src/addPlugins.ts (100%) rename {packages => vue2/packages}/clients/meldemichel/src/enums.ts (100%) rename {packages => vue2/packages}/clients/meldemichel/src/html/index.html (100%) rename {packages => vue2/packages}/clients/meldemichel/src/index.html (100%) rename {packages => vue2/packages}/clients/meldemichel/src/locales.ts (100%) rename {packages => vue2/packages}/clients/meldemichel/src/mapConfigurations.ts (100%) rename {packages => vue2/packages}/clients/meldemichel/src/plugins/AfmButton/AfmButton.vue (100%) rename {packages => vue2/packages}/clients/meldemichel/src/plugins/AfmButton/index.ts (100%) rename {packages => vue2/packages}/clients/meldemichel/src/plugins/AfmButton/locales.ts (100%) rename {packages => vue2/packages}/clients/meldemichel/src/plugins/Gfi/ActionButtons.vue (100%) rename {packages => vue2/packages}/clients/meldemichel/src/plugins/Gfi/Feature.vue (100%) rename {packages => vue2/packages}/clients/meldemichel/src/plugins/Gfi/index.ts (100%) rename {packages => vue2/packages}/clients/meldemichel/src/polar-client.ts (100%) rename {packages => vue2/packages}/clients/meldemichel/src/store/module.ts (100%) rename {packages => vue2/packages}/clients/meldemichel/src/styles/index.css (100%) rename {packages => vue2/packages}/clients/meldemichel/src/types.ts (100%) rename {packages => vue2/packages}/clients/meldemichel/src/utils/createMenus.ts (100%) rename {packages => vue2/packages}/clients/meldemichel/src/utils/enableClustering.ts (100%) rename {packages => vue2/packages}/clients/meldemichel/src/utils/setBackgroundImage.ts (100%) rename {packages => vue2/packages}/clients/meldemichel/src/utils/showTooltip.ts (100%) rename {packages => vue2/packages}/clients/meldemichel/vite.config.js (100%) rename {packages => vue2/packages}/clients/snowbox/API.md (100%) rename {packages => vue2/packages}/clients/snowbox/LICENSE (100%) rename {packages => vue2/packages}/clients/snowbox/README.md (100%) rename {packages => vue2/packages}/clients/snowbox/package.json (100%) rename {packages => vue2/packages}/clients/snowbox/src/addPlugins.ts (100%) rename {packages => vue2/packages}/clients/snowbox/src/authentication.ts (100%) rename {packages => vue2/packages}/clients/snowbox/src/exampleFeatureInformation.ts (100%) rename {packages => vue2/packages}/clients/snowbox/src/html/index.html (100%) rename {packages => vue2/packages}/clients/snowbox/src/index.html (100%) rename {packages => vue2/packages}/clients/snowbox/src/locales.ts (100%) rename {packages => vue2/packages}/clients/snowbox/src/mapConfiguration.ts (100%) rename {packages => vue2/packages}/clients/snowbox/src/polar-client.ts (100%) rename {packages => vue2/packages}/clients/snowbox/src/style.json (100%) rename {packages => vue2/packages}/clients/snowbox/src/validateForm.ts (100%) rename {packages => vue2/packages}/clients/snowbox/vite.config.js (100%) rename {packages => vue2/packages}/clients/stylePreview/API.md (100%) rename {packages => vue2/packages}/clients/stylePreview/CHANGELOG.md (100%) rename {packages => vue2/packages}/clients/stylePreview/LICENSE (100%) rename {packages => vue2/packages}/clients/stylePreview/README.md (100%) rename {packages => vue2/packages}/clients/stylePreview/example/index.html (100%) rename {packages => vue2/packages}/clients/stylePreview/example/polar-example.js (100%) rename {packages => vue2/packages}/clients/stylePreview/example/prod-example.html (100%) rename {packages => vue2/packages}/clients/stylePreview/example/style.css (100%) rename {packages => vue2/packages}/clients/stylePreview/package.json (100%) rename {packages => vue2/packages}/clients/stylePreview/src/polar-client.ts (100%) rename {packages => vue2/packages}/clients/stylePreview/src/stylePreview/features.ts (100%) rename {packages => vue2/packages}/clients/stylePreview/src/stylePreview/index.ts (100%) rename {packages => vue2/packages}/clients/stylePreview/src/stylePreview/updatePositions.ts (100%) rename {packages => vue2/packages}/clients/stylePreview/src/stylePreview/updateStyles.ts (100%) rename {packages => vue2/packages}/clients/stylePreview/vite.config.js (100%) rename {packages => vue2/packages}/clients/textLocator/API.md (100%) rename {packages => vue2/packages}/clients/textLocator/CHANGELOG.md (100%) rename {packages => vue2/packages}/clients/textLocator/LICENSE (100%) rename {packages => vue2/packages}/clients/textLocator/README.md (100%) rename {packages => vue2/packages}/clients/textLocator/package.json (100%) rename {packages => vue2/packages}/clients/textLocator/src/addPlugins.ts (100%) rename {packages => vue2/packages}/clients/textLocator/src/components/ResultInfo.vue (100%) rename {packages => vue2/packages}/clients/textLocator/src/html/index.html (100%) rename {packages => vue2/packages}/clients/textLocator/src/html/index.js (100%) rename {packages => vue2/packages}/clients/textLocator/src/index.html (100%) rename {packages => vue2/packages}/clients/textLocator/src/locales.ts (100%) rename {packages => vue2/packages}/clients/textLocator/src/mapConfig.ts (100%) rename {packages => vue2/packages}/clients/textLocator/src/palettes.ts (100%) rename {packages => vue2/packages}/clients/textLocator/src/plugins/GeometrySearch/components/Action.vue (100%) rename {packages => vue2/packages}/clients/textLocator/src/plugins/GeometrySearch/components/DrawMode.vue (100%) rename {packages => vue2/packages}/clients/textLocator/src/plugins/GeometrySearch/components/GeometrySearch.vue (100%) rename {packages => vue2/packages}/clients/textLocator/src/plugins/GeometrySearch/components/Tree.vue (100%) rename {packages => vue2/packages}/clients/textLocator/src/plugins/GeometrySearch/components/ViewToggle.vue (100%) rename {packages => vue2/packages}/clients/textLocator/src/plugins/GeometrySearch/components/index.ts (100%) rename {packages => vue2/packages}/clients/textLocator/src/plugins/GeometrySearch/index.ts (100%) rename {packages => vue2/packages}/clients/textLocator/src/plugins/GeometrySearch/locales.ts (100%) rename {packages => vue2/packages}/clients/textLocator/src/plugins/GeometrySearch/store/actions/setupDrawReaction.ts (100%) rename {packages => vue2/packages}/clients/textLocator/src/plugins/GeometrySearch/store/actions/setupTooltip.ts (100%) rename {packages => vue2/packages}/clients/textLocator/src/plugins/GeometrySearch/store/actions/updateFrequencies.ts (100%) rename {packages => vue2/packages}/clients/textLocator/src/plugins/GeometrySearch/store/index.ts (100%) rename {packages => vue2/packages}/clients/textLocator/src/plugins/GeometrySearch/types.ts (100%) rename {packages => vue2/packages}/clients/textLocator/src/plugins/GeometrySearch/utils/makeTreeView.ts (100%) rename {packages => vue2/packages}/clients/textLocator/src/plugins/GeometrySearch/utils/vectorDisplay.ts (100%) rename {packages => vue2/packages}/clients/textLocator/src/plugins/GeometrySearch/utils/vectorStyles.ts (100%) rename {packages => vue2/packages}/clients/textLocator/src/plugins/Header/Header.vue (100%) rename {packages => vue2/packages}/clients/textLocator/src/plugins/Header/index.ts (100%) rename {packages => vue2/packages}/clients/textLocator/src/plugins/Header/locales.ts (100%) rename {packages => vue2/packages}/clients/textLocator/src/polar-client.ts (100%) rename {packages => vue2/packages}/clients/textLocator/src/services.ts (100%) rename {packages => vue2/packages}/clients/textLocator/src/styles.css (100%) rename {packages => vue2/packages}/clients/textLocator/src/types.ts (100%) rename {packages => vue2/packages}/clients/textLocator/src/utils/coastalGazetteer/common.ts (100%) rename {packages => vue2/packages}/clients/textLocator/src/utils/coastalGazetteer/getAllPages.ts (100%) rename {packages => vue2/packages}/clients/textLocator/src/utils/coastalGazetteer/getPrimaryName.ts (100%) rename {packages => vue2/packages}/clients/textLocator/src/utils/coastalGazetteer/makeRequestBody.ts (100%) rename {packages => vue2/packages}/clients/textLocator/src/utils/coastalGazetteer/responseInterpreter.ts (100%) rename {packages => vue2/packages}/clients/textLocator/src/utils/coastalGazetteer/searchGeometry.ts (100%) rename {packages => vue2/packages}/clients/textLocator/src/utils/coastalGazetteer/searchToponym.ts (100%) rename {packages => vue2/packages}/clients/textLocator/src/utils/coastalGazetteer/types.ts (100%) rename {packages => vue2/packages}/clients/textLocator/src/utils/common.ts (100%) rename {packages => vue2/packages}/clients/textLocator/src/utils/textLocatorBackend/findLiterature/searchLiterature.ts (100%) rename {packages => vue2/packages}/clients/textLocator/src/utils/textLocatorBackend/findLiterature/selectLiterature.ts (100%) rename {packages => vue2/packages}/clients/textLocator/src/utils/textLocatorBackend/literatureByToponym.ts (100%) rename {packages => vue2/packages}/clients/textLocator/src/utils/textLocatorBackend/toponymByLiterature.ts (100%) rename {packages => vue2/packages}/clients/textLocator/src/utils/textLocatorBackend/urlSuffix.ts (100%) rename {packages => vue2/packages}/clients/textLocator/vite.config.js (100%) rename {packages => vue2/packages}/components/CHANGELOG.md (100%) rename {packages => vue2/packages}/components/LICENSE (100%) rename {packages => vue2/packages}/components/MoveHandle.vue (100%) rename {packages => vue2/packages}/components/README.md (100%) rename {packages => vue2/packages}/components/index.ts (100%) rename {packages => vue2/packages}/components/package.json (100%) rename {packages => vue2/packages}/components/tsconfig.json (100%) rename {packages => vue2/packages}/components/types.ts (100%) rename {packages => vue2/packages}/core/CHANGELOG.md (100%) rename {packages => vue2/packages}/core/LICENSE (100%) rename {packages => vue2/packages}/core/README.md (100%) rename {packages => vue2/packages}/core/package.json (100%) rename {packages => vue2/packages}/core/src/components/MapContainer.vue (100%) rename {packages => vue2/packages}/core/src/components/MapPlugin.vue (100%) rename {packages => vue2/packages}/core/src/components/MapUi.vue (100%) rename {packages => vue2/packages}/core/src/components/RadioCard.vue (100%) rename {packages => vue2/packages}/core/src/components/index.ts (100%) rename {packages => vue2/packages}/core/src/components/layouts/NineLayout.vue (100%) rename {packages => vue2/packages}/core/src/components/layouts/NineLayoutTag.ts (100%) rename {packages => vue2/packages}/core/src/components/layouts/index.ts (100%) rename {packages => vue2/packages}/core/src/i18n/index.ts (100%) rename {packages => vue2/packages}/core/src/index.ts (100%) rename {packages => vue2/packages}/core/src/locales.ts (100%) rename {packages => vue2/packages}/core/src/monkeyCrossOrigin.ts (100%) rename {packages => vue2/packages}/core/src/monkeyHeaderLoader.ts (100%) rename {packages => vue2/packages}/core/src/storeModules/capabilities.ts (100%) rename {packages => vue2/packages}/core/src/types.ts (100%) rename {packages => vue2/packages}/core/src/utils/addClusterStyle.ts (100%) rename {packages => vue2/packages}/core/src/utils/addPlugins.ts (100%) rename {packages => vue2/packages}/core/src/utils/constants.ts (100%) rename {packages => vue2/packages}/core/src/utils/createMap/defaults.ts (100%) rename {packages => vue2/packages}/core/src/utils/createMap/index.ts (100%) rename {packages => vue2/packages}/core/src/utils/createMap/makeShadowRoot.ts (100%) rename {packages => vue2/packages}/core/src/utils/createMap/pullPolarStyleToShadow.ts (100%) rename {packages => vue2/packages}/core/src/utils/createMap/pullVuetifyStyleToShadow.ts (100%) rename {packages => vue2/packages}/core/src/utils/createMap/setupFontawesome.ts (100%) rename {packages => vue2/packages}/core/src/utils/createMap/subscribe.ts (100%) rename {packages => vue2/packages}/core/src/utils/createMap/updateSizeOnReady.ts (100%) rename {packages => vue2/packages}/core/src/utils/interactions.ts (100%) rename {packages => vue2/packages}/core/src/utils/layout.ts (100%) rename {packages => vue2/packages}/core/src/utils/mapZoomOffset.ts (100%) rename {packages => vue2/packages}/core/src/utils/markers/hatches.ts (100%) rename {packages => vue2/packages}/core/src/utils/markers/index.ts (100%) rename {packages => vue2/packages}/core/src/utils/resolveClusterClick.ts (100%) rename {packages => vue2/packages}/core/src/utils/setupStyling.ts (100%) rename {packages => vue2/packages}/core/src/utils/sortPluginsByLayout.ts (100%) rename {packages => vue2/packages}/core/src/vuePlugins/actions/addInterceptor.ts (100%) rename {packages => vue2/packages}/core/src/vuePlugins/actions/checkServiceAvailability.ts (100%) rename {packages => vue2/packages}/core/src/vuePlugins/actions/useExtendedMasterportalapiMarkers/index.ts (100%) rename {packages => vue2/packages}/core/src/vuePlugins/actions/useExtendedMasterportalapiMarkers/setLayerId.ts (100%) rename {packages => vue2/packages}/core/src/vuePlugins/vuetify.ts (100%) rename {packages => vue2/packages}/core/src/vuePlugins/vuex.ts (100%) rename {packages => vue2/packages}/core/vite.config.js (100%) rename {packages => vue2/packages}/lib/getCluster/CHANGELOG.md (100%) rename {packages => vue2/packages}/lib/getCluster/LICENSE (100%) rename {packages => vue2/packages}/lib/getCluster/README.md (100%) rename {packages => vue2/packages}/lib/getCluster/index.ts (100%) rename {packages => vue2/packages}/lib/getCluster/package.json (100%) rename {packages => vue2/packages}/lib/getCluster/vite.config.js (100%) rename {packages => vue2/packages}/lib/getFeatures/CHANGELOG.md (100%) rename {packages => vue2/packages}/lib/getFeatures/LICENSE (100%) rename {packages => vue2/packages}/lib/getFeatures/README.md (100%) rename {packages => vue2/packages}/lib/getFeatures/index.ts (100%) rename {packages => vue2/packages}/lib/getFeatures/package.json (100%) rename {packages => vue2/packages}/lib/getFeatures/tests/wfs.spec.ts (100%) rename {packages => vue2/packages}/lib/getFeatures/types.ts (100%) rename {packages => vue2/packages}/lib/getFeatures/utils/errorCheck.ts (100%) rename {packages => vue2/packages}/lib/getFeatures/vector/index.ts (100%) rename {packages => vue2/packages}/lib/getFeatures/vite.config.js (100%) rename {packages => vue2/packages}/lib/getFeatures/wfs/buildWfsFilter.ts (100%) rename {packages => vue2/packages}/lib/getFeatures/wfs/getFeatureTitleFromPattern.ts (100%) rename {packages => vue2/packages}/lib/getFeatures/wfs/index.ts (100%) rename {packages => vue2/packages}/lib/getFeatures/wfs/match.ts (100%) rename {packages => vue2/packages}/lib/getFeatures/wfs/parse.ts (100%) rename {packages => vue2/packages}/lib/idx/CHANGELOG.md (100%) rename {packages => vue2/packages}/lib/idx/LICENSE (100%) rename {packages => vue2/packages}/lib/idx/README.md (100%) rename {packages => vue2/packages}/lib/idx/index.ts (100%) rename {packages => vue2/packages}/lib/idx/package.json (100%) rename {packages => vue2/packages}/lib/idx/vite.config.js (100%) rename {packages => vue2/packages}/lib/invisibleStyle/CHANGELOG.md (100%) rename {packages => vue2/packages}/lib/invisibleStyle/LICENSE (100%) rename {packages => vue2/packages}/lib/invisibleStyle/README.md (100%) rename {packages => vue2/packages}/lib/invisibleStyle/index.ts (100%) rename {packages => vue2/packages}/lib/invisibleStyle/package.json (100%) rename {packages => vue2/packages}/lib/invisibleStyle/vite.config.js (100%) rename {packages => vue2/packages}/lib/passesBoundaryCheck/CHANGELOG.md (100%) rename {packages => vue2/packages}/lib/passesBoundaryCheck/LICENSE (100%) rename {packages => vue2/packages}/lib/passesBoundaryCheck/README.md (100%) rename {packages => vue2/packages}/lib/passesBoundaryCheck/index.ts (100%) rename {packages => vue2/packages}/lib/passesBoundaryCheck/package.json (100%) rename {packages => vue2/packages}/lib/passesBoundaryCheck/vite.config.js (100%) rename {packages => vue2/packages}/lib/testMountParameters/CHANGELOG.md (100%) rename {packages => vue2/packages}/lib/testMountParameters/LICENSE (100%) rename {packages => vue2/packages}/lib/testMountParameters/README.md (100%) rename {packages => vue2/packages}/lib/testMountParameters/index.ts (100%) rename {packages => vue2/packages}/lib/testMountParameters/package.json (100%) rename {packages => vue2/packages}/lib/tooltip/CHANGELOG.md (100%) rename {packages => vue2/packages}/lib/tooltip/LICENSE (100%) rename {packages => vue2/packages}/lib/tooltip/README.md (100%) rename {packages => vue2/packages}/lib/tooltip/index.ts (100%) rename {packages => vue2/packages}/lib/tooltip/package.json (100%) rename {packages => vue2/packages}/lib/tooltip/vite.config.js (100%) rename {packages => vue2/packages}/plugins/AddressSearch/CHANGELOG.md (100%) rename {packages => vue2/packages}/plugins/AddressSearch/LICENSE (100%) rename {packages => vue2/packages}/plugins/AddressSearch/README.md (100%) rename {packages => vue2/packages}/plugins/AddressSearch/package.json (100%) rename {packages => vue2/packages}/plugins/AddressSearch/src/components/AddressSearch.vue (100%) rename {packages => vue2/packages}/plugins/AddressSearch/src/components/GroupSelect.vue (100%) rename {packages => vue2/packages}/plugins/AddressSearch/src/components/Input.vue (100%) rename {packages => vue2/packages}/plugins/AddressSearch/src/components/Results.vue (100%) rename {packages => vue2/packages}/plugins/AddressSearch/src/components/SearchContainer.vue (100%) rename {packages => vue2/packages}/plugins/AddressSearch/src/components/index.ts (100%) rename {packages => vue2/packages}/plugins/AddressSearch/src/index.ts (100%) rename {packages => vue2/packages}/plugins/AddressSearch/src/locales.ts (100%) rename {packages => vue2/packages}/plugins/AddressSearch/src/store/actions.ts (100%) rename {packages => vue2/packages}/plugins/AddressSearch/src/store/getters.ts (100%) rename {packages => vue2/packages}/plugins/AddressSearch/src/store/index.ts (100%) rename {packages => vue2/packages}/plugins/AddressSearch/src/store/state.ts (100%) rename {packages => vue2/packages}/plugins/AddressSearch/src/types.ts (100%) rename {packages => vue2/packages}/plugins/AddressSearch/src/utils/emTitleByInput.ts (100%) rename {packages => vue2/packages}/plugins/AddressSearch/src/utils/focusFirstResult.ts (100%) rename {packages => vue2/packages}/plugins/AddressSearch/src/utils/searchMethods/bkg.ts (100%) rename {packages => vue2/packages}/plugins/AddressSearch/src/utils/searchMethods/getSearchMethod.ts (100%) rename {packages => vue2/packages}/plugins/AddressSearch/src/utils/searchMethods/mpapi.ts (100%) rename {packages => vue2/packages}/plugins/AddressSearch/src/utils/searchResultSymbols.ts (100%) rename {packages => vue2/packages}/plugins/AddressSearch/vite.config.js (100%) rename {packages => vue2/packages}/plugins/Attributions/CHANGELOG.md (100%) rename {packages => vue2/packages}/plugins/Attributions/LICENSE (100%) rename {packages => vue2/packages}/plugins/Attributions/README.md (100%) rename {packages => vue2/packages}/plugins/Attributions/package.json (100%) rename {packages => vue2/packages}/plugins/Attributions/src/components/AttributionButton.vue (100%) rename {packages => vue2/packages}/plugins/Attributions/src/components/AttributionContent.vue (100%) rename {packages => vue2/packages}/plugins/Attributions/src/components/Attributions.vue (100%) rename {packages => vue2/packages}/plugins/Attributions/src/components/index.ts (100%) rename {packages => vue2/packages}/plugins/Attributions/src/index.ts (100%) rename {packages => vue2/packages}/plugins/Attributions/src/locales.ts (100%) rename {packages => vue2/packages}/plugins/Attributions/src/store/index.ts (100%) rename {packages => vue2/packages}/plugins/Attributions/src/types.ts (100%) rename {packages => vue2/packages}/plugins/Attributions/src/utils/lib.ts (100%) rename {packages => vue2/packages}/plugins/Attributions/tests/attributions.spec.ts (100%) rename {packages => vue2/packages}/plugins/Attributions/vite.config.js (100%) rename {packages => vue2/packages}/plugins/Draw/CHANGELOG.md (100%) rename {packages => vue2/packages}/plugins/Draw/LICENSE (100%) rename {packages => vue2/packages}/plugins/Draw/README.md (100%) rename {packages => vue2/packages}/plugins/Draw/package.json (100%) rename {packages => vue2/packages}/plugins/Draw/src/components/Draw.vue (100%) rename {packages => vue2/packages}/plugins/Draw/src/components/DrawOptions.vue (100%) rename {packages => vue2/packages}/plugins/Draw/src/components/index.ts (100%) rename {packages => vue2/packages}/plugins/Draw/src/index.ts (100%) rename {packages => vue2/packages}/plugins/Draw/src/locales.ts (100%) rename {packages => vue2/packages}/plugins/Draw/src/store/actions.ts (100%) rename {packages => vue2/packages}/plugins/Draw/src/store/createInteractions/createCutInteractions/cutlery.ts (100%) rename {packages => vue2/packages}/plugins/Draw/src/store/createInteractions/createCutInteractions/index.ts (100%) rename {packages => vue2/packages}/plugins/Draw/src/store/createInteractions/createCutInteractions/makeDraw.ts (100%) rename {packages => vue2/packages}/plugins/Draw/src/store/createInteractions/createCutInteractions/style.ts (100%) rename {packages => vue2/packages}/plugins/Draw/src/store/createInteractions/createCutInteractions/types.ts (100%) rename {packages => vue2/packages}/plugins/Draw/src/store/createInteractions/createDeleteInteractions.ts (100%) rename {packages => vue2/packages}/plugins/Draw/src/store/createInteractions/createDrawInteractions.ts (100%) rename {packages => vue2/packages}/plugins/Draw/src/store/createInteractions/createDuplicateInteractions.ts (100%) rename {packages => vue2/packages}/plugins/Draw/src/store/createInteractions/createLassoInteractions.ts (100%) rename {packages => vue2/packages}/plugins/Draw/src/store/createInteractions/createMergeInteractions.ts (100%) rename {packages => vue2/packages}/plugins/Draw/src/store/createInteractions/createModifyInteractions.ts (100%) rename {packages => vue2/packages}/plugins/Draw/src/store/createInteractions/createTextInteractions.ts (100%) rename {packages => vue2/packages}/plugins/Draw/src/store/createInteractions/createTranslateInteractions.ts (100%) rename {packages => vue2/packages}/plugins/Draw/src/store/createInteractions/getSnaps.ts (100%) rename {packages => vue2/packages}/plugins/Draw/src/store/createInteractions/index.ts (100%) rename {packages => vue2/packages}/plugins/Draw/src/store/createInteractions/localSelector.ts (100%) rename {packages => vue2/packages}/plugins/Draw/src/store/createInteractions/modifyDrawStyle.ts (100%) rename {packages => vue2/packages}/plugins/Draw/src/store/createInteractions/modifyTextStyle.ts (100%) rename {packages => vue2/packages}/plugins/Draw/src/store/index.ts (100%) rename {packages => vue2/packages}/plugins/Draw/src/store/reviseFeatures/autofix.ts (100%) rename {packages => vue2/packages}/plugins/Draw/src/store/reviseFeatures/cloneFeatureCollection.ts (100%) rename {packages => vue2/packages}/plugins/Draw/src/store/reviseFeatures/enrichWithMetaServices.ts (100%) rename {packages => vue2/packages}/plugins/Draw/src/store/reviseFeatures/index.ts (100%) rename {packages => vue2/packages}/plugins/Draw/src/store/reviseFeatures/revisionStates.ts (100%) rename {packages => vue2/packages}/plugins/Draw/src/store/reviseFeatures/validateGeoJson.ts (100%) rename {packages => vue2/packages}/plugins/Draw/src/types.ts (100%) rename {packages => vue2/packages}/plugins/Draw/src/utils/createDrawLayer.ts (100%) rename {packages => vue2/packages}/plugins/Draw/src/utils/createDrawStyle.ts (100%) rename {packages => vue2/packages}/plugins/Draw/src/utils/createTextStyle.ts (100%) rename {packages => vue2/packages}/plugins/Draw/vite.config.js (100%) rename {packages => vue2/packages}/plugins/Export/CHANGELOG.md (100%) rename {packages => vue2/packages}/plugins/Export/LICENSE (100%) rename {packages => vue2/packages}/plugins/Export/README.md (100%) rename {packages => vue2/packages}/plugins/Export/package.json (100%) rename {packages => vue2/packages}/plugins/Export/src/components/Button.vue (100%) rename {packages => vue2/packages}/plugins/Export/src/components/Export.vue (100%) rename {packages => vue2/packages}/plugins/Export/src/components/index.ts (100%) rename {packages => vue2/packages}/plugins/Export/src/index.ts (100%) rename {packages => vue2/packages}/plugins/Export/src/locales.ts (100%) rename {packages => vue2/packages}/plugins/Export/src/store/actions.ts (100%) rename {packages => vue2/packages}/plugins/Export/src/store/index.ts (100%) rename {packages => vue2/packages}/plugins/Export/src/types.ts (100%) rename {packages => vue2/packages}/plugins/Export/vite.config.js (100%) rename {packages => vue2/packages}/plugins/Filter/CHANGELOG.md (100%) rename {packages => vue2/packages}/plugins/Filter/LICENSE (100%) rename {packages => vue2/packages}/plugins/Filter/README.md (100%) rename {packages => vue2/packages}/plugins/Filter/package.json (100%) rename {packages => vue2/packages}/plugins/Filter/src/components/ChooseTimeFrame.vue (100%) rename {packages => vue2/packages}/plugins/Filter/src/components/Filter.vue (100%) rename {packages => vue2/packages}/plugins/Filter/src/components/index.ts (100%) rename {packages => vue2/packages}/plugins/Filter/src/index.ts (100%) rename {packages => vue2/packages}/plugins/Filter/src/locales.ts (100%) rename {packages => vue2/packages}/plugins/Filter/src/store/index.ts (100%) rename {packages => vue2/packages}/plugins/Filter/src/types.ts (100%) rename {packages => vue2/packages}/plugins/Filter/src/utils/arrayOnlyContains.ts (100%) rename {packages => vue2/packages}/plugins/Filter/src/utils/parseTimeOption.ts (100%) rename {packages => vue2/packages}/plugins/Filter/src/utils/setState.ts (100%) rename {packages => vue2/packages}/plugins/Filter/src/utils/updateFeatureVisibility.ts (100%) rename {packages => vue2/packages}/plugins/Filter/vite.config.js (100%) rename {packages => vue2/packages}/plugins/Fullscreen/CHANGELOG.md (100%) rename {packages => vue2/packages}/plugins/Fullscreen/LICENSE (100%) rename {packages => vue2/packages}/plugins/Fullscreen/README.md (100%) rename {packages => vue2/packages}/plugins/Fullscreen/package.json (100%) rename {packages => vue2/packages}/plugins/Fullscreen/src/components/Fullscreen.vue (100%) rename {packages => vue2/packages}/plugins/Fullscreen/src/components/index.ts (100%) rename {packages => vue2/packages}/plugins/Fullscreen/src/index.ts (100%) rename {packages => vue2/packages}/plugins/Fullscreen/src/locales.ts (100%) rename {packages => vue2/packages}/plugins/Fullscreen/src/store/index.ts (100%) rename {packages => vue2/packages}/plugins/Fullscreen/src/types.ts (100%) rename {packages => vue2/packages}/plugins/Fullscreen/tests/fullscreen.spec.ts (100%) rename {packages => vue2/packages}/plugins/Fullscreen/vite.config.js (100%) rename {packages => vue2/packages}/plugins/GeoLocation/CHANGELOG.md (100%) rename {packages => vue2/packages}/plugins/GeoLocation/LICENSE (100%) rename {packages => vue2/packages}/plugins/GeoLocation/README.md (100%) rename {packages => vue2/packages}/plugins/GeoLocation/package.json (100%) rename {packages => vue2/packages}/plugins/GeoLocation/src/assets/geoLocationMarker.js (100%) rename {packages => vue2/packages}/plugins/GeoLocation/src/components/GeoLocation.vue (100%) rename {packages => vue2/packages}/plugins/GeoLocation/src/components/index.ts (100%) rename {packages => vue2/packages}/plugins/GeoLocation/src/index.ts (100%) rename {packages => vue2/packages}/plugins/GeoLocation/src/locales.ts (100%) rename {packages => vue2/packages}/plugins/GeoLocation/src/store/actions.ts (100%) rename {packages => vue2/packages}/plugins/GeoLocation/src/store/getInitialState.ts (100%) rename {packages => vue2/packages}/plugins/GeoLocation/src/store/getters.ts (100%) rename {packages => vue2/packages}/plugins/GeoLocation/src/store/index.ts (100%) rename {packages => vue2/packages}/plugins/GeoLocation/src/types.ts (100%) rename {packages => vue2/packages}/plugins/GeoLocation/src/utils/positionChanged.ts (100%) rename {packages => vue2/packages}/plugins/GeoLocation/tests/geoLocation.spec.ts (100%) rename {packages => vue2/packages}/plugins/GeoLocation/tests/store.spec.ts (100%) rename {packages => vue2/packages}/plugins/GeoLocation/vite.config.js (100%) rename {packages => vue2/packages}/plugins/Gfi/CHANGELOG.md (100%) rename {packages => vue2/packages}/plugins/Gfi/LICENSE (100%) rename {packages => vue2/packages}/plugins/Gfi/README.md (100%) rename {packages => vue2/packages}/plugins/Gfi/package.json (100%) rename {packages => vue2/packages}/plugins/Gfi/src/components/Feature.vue (100%) rename {packages => vue2/packages}/plugins/Gfi/src/components/FeatureButtonGroup.vue (100%) rename {packages => vue2/packages}/plugins/Gfi/src/components/FeatureSwitchButtons.vue (100%) rename {packages => vue2/packages}/plugins/Gfi/src/components/FeatureTableBody.vue (100%) rename {packages => vue2/packages}/plugins/Gfi/src/components/FeatureTableHead.vue (100%) rename {packages => vue2/packages}/plugins/Gfi/src/components/Gfi.vue (100%) rename {packages => vue2/packages}/plugins/Gfi/src/components/List.vue (100%) rename {packages => vue2/packages}/plugins/Gfi/src/components/index.ts (100%) rename {packages => vue2/packages}/plugins/Gfi/src/index.ts (100%) rename {packages => vue2/packages}/plugins/Gfi/src/locales.ts (100%) rename {packages => vue2/packages}/plugins/Gfi/src/store/actions/debouncedGfiRequest.ts (100%) rename {packages => vue2/packages}/plugins/Gfi/src/store/actions/index.ts (100%) rename {packages => vue2/packages}/plugins/Gfi/src/store/actions/setup.ts (100%) rename {packages => vue2/packages}/plugins/Gfi/src/store/actions/setupMultiSelection.ts (100%) rename {packages => vue2/packages}/plugins/Gfi/src/store/getInitialState.ts (100%) rename {packages => vue2/packages}/plugins/Gfi/src/store/getters.ts (100%) rename {packages => vue2/packages}/plugins/Gfi/src/store/index.ts (100%) rename {packages => vue2/packages}/plugins/Gfi/src/store/mutations.ts (100%) rename {packages => vue2/packages}/plugins/Gfi/src/types.ts (100%) rename {packages => vue2/packages}/plugins/Gfi/src/utils/displayFeatureLayer.ts (100%) rename {packages => vue2/packages}/plugins/Gfi/src/utils/filterFeatures.ts (100%) rename {packages => vue2/packages}/plugins/Gfi/src/utils/getOriginalFeature.ts (100%) rename {packages => vue2/packages}/plugins/Gfi/src/utils/isValidHttpUrl.js (100%) rename {packages => vue2/packages}/plugins/Gfi/src/utils/listableLayersFilter.ts (100%) rename {packages => vue2/packages}/plugins/Gfi/src/utils/renderFeatures.ts (100%) rename {packages => vue2/packages}/plugins/Gfi/src/utils/requestGfi.ts (100%) rename {packages => vue2/packages}/plugins/Gfi/src/utils/requestGfiGeoJson.ts (100%) rename {packages => vue2/packages}/plugins/Gfi/src/utils/requestGfiWfs.ts (100%) rename {packages => vue2/packages}/plugins/Gfi/src/utils/requestGfiWms.ts (100%) rename {packages => vue2/packages}/plugins/Gfi/src/utils/sortFeatures.ts (100%) rename {packages => vue2/packages}/plugins/Gfi/tests/actions.spec.ts (100%) rename {packages => vue2/packages}/plugins/Gfi/tests/filterFeatures.spec.ts (100%) rename {packages => vue2/packages}/plugins/Gfi/tests/sortFeatures.spec.ts (100%) rename {packages => vue2/packages}/plugins/Gfi/vite.config.js (100%) rename {packages => vue2/packages}/plugins/IconMenu/CHANGELOG.md (100%) rename {packages => vue2/packages}/plugins/IconMenu/LICENSE (100%) rename {packages => vue2/packages}/plugins/IconMenu/README.md (100%) rename {packages => vue2/packages}/plugins/IconMenu/package.json (100%) rename {packages => vue2/packages}/plugins/IconMenu/src/components/IconMenu.vue (100%) rename {packages => vue2/packages}/plugins/IconMenu/src/components/IconMenuButton.vue (100%) rename {packages => vue2/packages}/plugins/IconMenu/src/components/index.ts (100%) rename {packages => vue2/packages}/plugins/IconMenu/src/index.ts (100%) rename {packages => vue2/packages}/plugins/IconMenu/src/locales.ts (100%) rename {packages => vue2/packages}/plugins/IconMenu/src/store/index.ts (100%) rename {packages => vue2/packages}/plugins/IconMenu/src/types.ts (100%) rename {packages => vue2/packages}/plugins/IconMenu/tests/store.spec.ts (100%) rename {packages => vue2/packages}/plugins/IconMenu/vite.config.js (100%) rename {packages => vue2/packages}/plugins/LayerChooser/CHANGELOG.md (100%) rename {packages => vue2/packages}/plugins/LayerChooser/LICENSE (100%) rename {packages => vue2/packages}/plugins/LayerChooser/README.md (100%) rename {packages => vue2/packages}/plugins/LayerChooser/package.json (100%) rename {packages => vue2/packages}/plugins/LayerChooser/src/components/LayerChooser.vue (100%) rename {packages => vue2/packages}/plugins/LayerChooser/src/components/LayerWrapper.vue (100%) rename {packages => vue2/packages}/plugins/LayerChooser/src/components/Options.vue (100%) rename {packages => vue2/packages}/plugins/LayerChooser/src/components/Selection.vue (100%) rename {packages => vue2/packages}/plugins/LayerChooser/src/components/index.ts (100%) rename {packages => vue2/packages}/plugins/LayerChooser/src/index.ts (100%) rename {packages => vue2/packages}/plugins/LayerChooser/src/locales.ts (100%) rename {packages => vue2/packages}/plugins/LayerChooser/src/store/index.ts (100%) rename {packages => vue2/packages}/plugins/LayerChooser/src/types.ts (100%) rename {packages => vue2/packages}/plugins/LayerChooser/src/utils/findInCapabilities.ts (100%) rename {packages => vue2/packages}/plugins/LayerChooser/src/utils/getBackgroundsAndMasks.ts (100%) rename {packages => vue2/packages}/plugins/LayerChooser/src/utils/getOpenedOptionsServiceLayers.ts (100%) rename {packages => vue2/packages}/plugins/LayerChooser/src/utils/isLayerIdIncluded.ts (100%) rename {packages => vue2/packages}/plugins/LayerChooser/src/utils/layerFolding.ts (100%) rename {packages => vue2/packages}/plugins/LayerChooser/tests/findInCapabilities.spec.ts (100%) rename {packages => vue2/packages}/plugins/LayerChooser/tests/layerChooser.spec.ts (100%) rename {packages => vue2/packages}/plugins/LayerChooser/tests/store.spec.ts (100%) rename {packages => vue2/packages}/plugins/LayerChooser/vite.config.js (100%) rename {packages => vue2/packages}/plugins/Legend/CHANGELOG.md (100%) rename {packages => vue2/packages}/plugins/Legend/LICENSE (100%) rename {packages => vue2/packages}/plugins/Legend/README.md (100%) rename {packages => vue2/packages}/plugins/Legend/package.json (100%) rename {packages => vue2/packages}/plugins/Legend/src/components/Legend.vue (100%) rename {packages => vue2/packages}/plugins/Legend/src/components/index.ts (100%) rename {packages => vue2/packages}/plugins/Legend/src/index.ts (100%) rename {packages => vue2/packages}/plugins/Legend/src/locales.ts (100%) rename {packages => vue2/packages}/plugins/Legend/vite.config.js (100%) rename {packages => vue2/packages}/plugins/LoadingIndicator/CHANGELOG.md (100%) rename {packages => vue2/packages}/plugins/LoadingIndicator/LICENSE (100%) rename {packages => vue2/packages}/plugins/LoadingIndicator/README.md (100%) rename {packages => vue2/packages}/plugins/LoadingIndicator/assets/BasicLoader.gif (100%) rename {packages => vue2/packages}/plugins/LoadingIndicator/assets/CircleLoader.gif (100%) rename {packages => vue2/packages}/plugins/LoadingIndicator/assets/RingLoader.gif (100%) rename {packages => vue2/packages}/plugins/LoadingIndicator/assets/RollerLoader.gif (100%) rename {packages => vue2/packages}/plugins/LoadingIndicator/assets/SpinnerLoader.gif (100%) rename {packages => vue2/packages}/plugins/LoadingIndicator/assets/VuetifyLoader.gif (100%) rename {packages => vue2/packages}/plugins/LoadingIndicator/package.json (100%) rename {packages => vue2/packages}/plugins/LoadingIndicator/readme_example.png (100%) rename {packages => vue2/packages}/plugins/LoadingIndicator/src/components/LoadingIndicator.vue (100%) rename {packages => vue2/packages}/plugins/LoadingIndicator/src/components/index.ts (100%) rename {packages => vue2/packages}/plugins/LoadingIndicator/src/components/loaderStyles/Basic.vue (100%) rename {packages => vue2/packages}/plugins/LoadingIndicator/src/components/loaderStyles/Circle.vue (100%) rename {packages => vue2/packages}/plugins/LoadingIndicator/src/components/loaderStyles/Ring.vue (100%) rename {packages => vue2/packages}/plugins/LoadingIndicator/src/components/loaderStyles/Roller.vue (100%) rename {packages => vue2/packages}/plugins/LoadingIndicator/src/components/loaderStyles/Spinner.vue (100%) rename {packages => vue2/packages}/plugins/LoadingIndicator/src/index.ts (100%) rename {packages => vue2/packages}/plugins/LoadingIndicator/src/locales.ts (100%) rename {packages => vue2/packages}/plugins/LoadingIndicator/src/store/getters.ts (100%) rename {packages => vue2/packages}/plugins/LoadingIndicator/src/store/index.ts (100%) rename {packages => vue2/packages}/plugins/LoadingIndicator/src/store/mutations.ts (100%) rename {packages => vue2/packages}/plugins/LoadingIndicator/src/store/state.ts (100%) rename {packages => vue2/packages}/plugins/LoadingIndicator/src/types.ts (100%) rename {packages => vue2/packages}/plugins/LoadingIndicator/vite.config.js (100%) rename {packages => vue2/packages}/plugins/Pins/CHANGELOG.md (100%) rename {packages => vue2/packages}/plugins/Pins/LICENSE (100%) rename {packages => vue2/packages}/plugins/Pins/README.md (100%) rename {packages => vue2/packages}/plugins/Pins/package.json (100%) rename {packages => vue2/packages}/plugins/Pins/src/assets/mapMarker.js (100%) rename {packages => vue2/packages}/plugins/Pins/src/index.ts (100%) rename {packages => vue2/packages}/plugins/Pins/src/locales.ts (100%) rename {packages => vue2/packages}/plugins/Pins/src/store/getters.ts (100%) rename {packages => vue2/packages}/plugins/Pins/src/store/index.ts (100%) rename {packages => vue2/packages}/plugins/Pins/src/store/state.ts (100%) rename {packages => vue2/packages}/plugins/Pins/src/types.ts (100%) rename {packages => vue2/packages}/plugins/Pins/src/util/getPinStyle.ts (100%) rename {packages => vue2/packages}/plugins/Pins/src/util/getPinSvg.ts (100%) rename {packages => vue2/packages}/plugins/Pins/src/util/getPointCoordinate.ts (100%) rename {packages => vue2/packages}/plugins/Pins/vite.config.js (100%) rename {packages => vue2/packages}/plugins/PointerPosition/CHANGELOG.md (100%) rename {packages => vue2/packages}/plugins/PointerPosition/LICENSE (100%) rename {packages => vue2/packages}/plugins/PointerPosition/README.md (100%) rename {packages => vue2/packages}/plugins/PointerPosition/package.json (100%) rename {packages => vue2/packages}/plugins/PointerPosition/src/components/PointerPosition.vue (100%) rename {packages => vue2/packages}/plugins/PointerPosition/src/components/index.ts (100%) rename {packages => vue2/packages}/plugins/PointerPosition/src/index.ts (100%) rename {packages => vue2/packages}/plugins/PointerPosition/src/locales.ts (100%) rename {packages => vue2/packages}/plugins/PointerPosition/src/store/index.ts (100%) rename {packages => vue2/packages}/plugins/PointerPosition/src/types.ts (100%) rename {packages => vue2/packages}/plugins/PointerPosition/vite.config.js (100%) rename {packages => vue2/packages}/plugins/ReverseGeocoder/CHANGELOG.md (100%) rename {packages => vue2/packages}/plugins/ReverseGeocoder/LICENSE (100%) rename {packages => vue2/packages}/plugins/ReverseGeocoder/README.md (100%) rename {packages => vue2/packages}/plugins/ReverseGeocoder/package.json (100%) rename {packages => vue2/packages}/plugins/ReverseGeocoder/src/index.ts (100%) rename {packages => vue2/packages}/plugins/ReverseGeocoder/src/store/index.ts (100%) rename {packages => vue2/packages}/plugins/ReverseGeocoder/src/types.ts (100%) rename {packages => vue2/packages}/plugins/ReverseGeocoder/src/utils/reverseGeocode.ts (100%) rename {packages => vue2/packages}/plugins/ReverseGeocoder/tests/reverseGeocode.spec.ts (100%) rename {packages => vue2/packages}/plugins/ReverseGeocoder/vite.config.js (100%) rename {packages => vue2/packages}/plugins/Scale/CHANGELOG.md (100%) rename {packages => vue2/packages}/plugins/Scale/LICENSE (100%) rename {packages => vue2/packages}/plugins/Scale/README.md (100%) rename {packages => vue2/packages}/plugins/Scale/package.json (100%) rename {packages => vue2/packages}/plugins/Scale/src/components/Scale.vue (100%) rename {packages => vue2/packages}/plugins/Scale/src/components/index.ts (100%) rename {packages => vue2/packages}/plugins/Scale/src/index.ts (100%) rename {packages => vue2/packages}/plugins/Scale/src/locales.ts (100%) rename {packages => vue2/packages}/plugins/Scale/src/store/index.ts (100%) rename {packages => vue2/packages}/plugins/Scale/src/types.ts (100%) rename {packages => vue2/packages}/plugins/Scale/src/utils/beautifyScale.ts (100%) rename {packages => vue2/packages}/plugins/Scale/src/utils/calculateScaleFromResolution.ts (100%) rename {packages => vue2/packages}/plugins/Scale/src/utils/getDpi.ts (100%) rename {packages => vue2/packages}/plugins/Scale/src/utils/thousandsSeperator.ts (100%) rename {packages => vue2/packages}/plugins/Scale/vite.config.js (100%) rename {packages => vue2/packages}/plugins/Toast/CHANGELOG.md (100%) rename {packages => vue2/packages}/plugins/Toast/LICENSE (100%) rename {packages => vue2/packages}/plugins/Toast/README.md (100%) rename {packages => vue2/packages}/plugins/Toast/package.json (100%) rename {packages => vue2/packages}/plugins/Toast/readme_example.png (100%) rename {packages => vue2/packages}/plugins/Toast/src/components/Toast.vue (100%) rename {packages => vue2/packages}/plugins/Toast/src/components/index.ts (100%) rename {packages => vue2/packages}/plugins/Toast/src/index.ts (100%) rename {packages => vue2/packages}/plugins/Toast/src/locales.ts (100%) rename {packages => vue2/packages}/plugins/Toast/src/store/index.ts (100%) rename {packages => vue2/packages}/plugins/Toast/src/types.ts (100%) rename {packages => vue2/packages}/plugins/Toast/tests/store.spec.ts (100%) rename {packages => vue2/packages}/plugins/Toast/tests/toast.spec.ts (100%) rename {packages => vue2/packages}/plugins/Toast/vite.config.js (100%) rename {packages => vue2/packages}/plugins/Zoom/CHANGELOG.md (100%) rename {packages => vue2/packages}/plugins/Zoom/LICENSE (100%) rename {packages => vue2/packages}/plugins/Zoom/README.md (100%) rename {packages => vue2/packages}/plugins/Zoom/package.json (100%) rename {packages => vue2/packages}/plugins/Zoom/src/components/Zoom.vue (100%) rename {packages => vue2/packages}/plugins/Zoom/src/components/ZoomButtonContainer.vue (100%) rename {packages => vue2/packages}/plugins/Zoom/src/components/ZoomSlider.vue (100%) rename {packages => vue2/packages}/plugins/Zoom/src/components/index.ts (100%) rename {packages => vue2/packages}/plugins/Zoom/src/index.ts (100%) rename {packages => vue2/packages}/plugins/Zoom/src/locales.ts (100%) rename {packages => vue2/packages}/plugins/Zoom/src/store/index.ts (100%) rename {packages => vue2/packages}/plugins/Zoom/src/types.ts (100%) rename {packages => vue2/packages}/plugins/Zoom/tests/unit/zoom.spec.ts (100%) rename {packages => vue2/packages}/plugins/Zoom/vite.config.js (100%) rename {packages => vue2/packages}/types/custom/CHANGELOG.md (100%) rename {packages => vue2/packages}/types/custom/LICENSE (100%) rename {packages => vue2/packages}/types/custom/README.md (100%) rename {packages => vue2/packages}/types/custom/core.ts (100%) rename {packages => vue2/packages}/types/custom/index.ts (100%) rename {packages => vue2/packages}/types/custom/package.json (100%) rename {packages => vue2/packages}/types/custom/tsconfig.json (100%) rename {pages => vue2/pages}/assets/iceberg.svg (100%) rename {pages => vue2/pages}/assets/iceberg_icon.svg (100%) rename {pages => vue2/pages}/assets/iframe-resizer/LICENSE (100%) rename {pages => vue2/pages}/assets/iframe-resizer/README.md (100%) rename {pages => vue2/pages}/assets/iframe-resizer/js/iframeResizer.contentWindow.js (100%) rename {pages => vue2/pages}/assets/iframe-resizer/js/iframeResizer.js (100%) rename {pages => vue2/pages}/assets/landessymbole/bremen.svg (100%) rename {pages => vue2/pages}/assets/landessymbole/hamburg.svg (100%) rename {pages => vue2/pages}/assets/landessymbole/sachsen-anhalt.svg (100%) rename {pages => vue2/pages}/assets/landessymbole/schleswig-holstein.svg (100%) rename {pages => vue2/pages}/assets/landessymbole/sources.md (100%) rename {pages => vue2/pages}/assets/manypixels-decentralized.svg (100%) rename {pages => vue2/pages}/assets/manypixels-legal.svg (100%) rename {pages => vue2/pages}/assets/manypixels-map.svg (100%) rename {pages => vue2/pages}/assets/manypixels-mobile.svg (100%) rename {pages => vue2/pages}/assets/manypixels-puzzle.svg (100%) rename {pages => vue2/pages}/assets/maps_pin.jpg (100%) rename {pages => vue2/pages}/assets/polar-architecture.png (100%) rename {pages => vue2/pages}/assets/polar-outer-architecture.png (100%) rename {pages => vue2/pages}/assets/polar_example_screenshot.png (100%) rename {pages => vue2/pages}/assets/productive-users/dataport-logo.svg (100%) rename {pages => vue2/pages}/assets/productive-users/hamburg-logo.svg (100%) rename {pages => vue2/pages}/assets/productive-users/schleswig-holstein-logo.svg (100%) rename {pages => vue2/pages}/assets/productive-users/sources.md (100%) rename {pages => vue2/pages}/assets/sources.md (100%) rename {pages => vue2/pages}/card.css (100%) rename {pages => vue2/pages}/documentation.html (100%) rename {pages => vue2/pages}/examples/address.html (100%) rename {pages => vue2/pages}/examples/draw.html (100%) rename {pages => vue2/pages}/examples/gfi.html (100%) rename {pages => vue2/pages}/examples/layer.html (100%) rename {pages => vue2/pages}/examples/locales.html (100%) rename {pages => vue2/pages}/examples/orientation.html (100%) rename {pages => vue2/pages}/examples/render.js (100%) rename {pages => vue2/pages}/index.html (100%) rename {pages => vue2/pages}/mobile.css (100%) rename {pages => vue2/pages}/mvp.css (100%) rename {pages => vue2/pages}/package.json (100%) rename playwright.config.ts => vue2/playwright.config.ts (100%) rename {scripts => vue2/scripts}/buildPages.sh (100%) rename {scripts => vue2/scripts}/clean.js (100%) rename {scripts => vue2/scripts}/createRelease.js (100%) rename {scripts => vue2/scripts}/makeDocs.ts (100%) rename {scripts => vue2/scripts}/packages.js (100%) rename {scripts => vue2/scripts}/precompileSvg.js (100%) rename {scripts => vue2/scripts}/publishPackages.js (100%) rename {scripts => vue2/scripts}/versionPackages.js (100%) rename tsconfig.json => vue2/tsconfig.json (100%) rename {viteConfigs => vue2/viteConfigs}/index.js (100%) rename {viteConfigs => vue2/viteConfigs}/vite.client.js (100%) rename {viteConfigs => vue2/viteConfigs}/vite.code.js (100%) diff --git a/.eslintignore b/vue2/.eslintignore similarity index 100% rename from .eslintignore rename to vue2/.eslintignore diff --git a/.eslintrc.json b/vue2/.eslintrc.json similarity index 100% rename from .eslintrc.json rename to vue2/.eslintrc.json diff --git a/.github/workflows/publish-packages.yml b/vue2/.github/workflows/publish-packages.yml similarity index 100% rename from .github/workflows/publish-packages.yml rename to vue2/.github/workflows/publish-packages.yml diff --git a/.github/workflows/publish-pages.yml b/vue2/.github/workflows/publish-pages.yml similarity index 100% rename from .github/workflows/publish-pages.yml rename to vue2/.github/workflows/publish-pages.yml diff --git a/.github/workflows/run-tests.yml b/vue2/.github/workflows/run-tests.yml similarity index 100% rename from .github/workflows/run-tests.yml rename to vue2/.github/workflows/run-tests.yml diff --git a/.gitignore b/vue2/.gitignore similarity index 100% rename from .gitignore rename to vue2/.gitignore diff --git a/.npmrc b/vue2/.npmrc similarity index 100% rename from .npmrc rename to vue2/.npmrc diff --git a/.prettierignore b/vue2/.prettierignore similarity index 100% rename from .prettierignore rename to vue2/.prettierignore diff --git a/.prettierrc b/vue2/.prettierrc similarity index 100% rename from .prettierrc rename to vue2/.prettierrc diff --git a/@types/i18next.d.ts b/vue2/@types/i18next.d.ts similarity index 100% rename from @types/i18next.d.ts rename to vue2/@types/i18next.d.ts diff --git a/@types/vue-shims/index.d.ts b/vue2/@types/vue-shims/index.d.ts similarity index 100% rename from @types/vue-shims/index.d.ts rename to vue2/@types/vue-shims/index.d.ts diff --git a/@types/vue-shims/json-loader.d.ts b/vue2/@types/vue-shims/json-loader.d.ts similarity index 100% rename from @types/vue-shims/json-loader.d.ts rename to vue2/@types/vue-shims/json-loader.d.ts diff --git a/@types/vue-shims/png-loader.d.ts b/vue2/@types/vue-shims/png-loader.d.ts similarity index 100% rename from @types/vue-shims/png-loader.d.ts rename to vue2/@types/vue-shims/png-loader.d.ts diff --git a/@types/vue-shims/shims-tsx.d.ts b/vue2/@types/vue-shims/shims-tsx.d.ts similarity index 100% rename from @types/vue-shims/shims-tsx.d.ts rename to vue2/@types/vue-shims/shims-tsx.d.ts diff --git a/@types/vue-shims/shims-vue.d.ts b/vue2/@types/vue-shims/shims-vue.d.ts similarity index 100% rename from @types/vue-shims/shims-vue.d.ts rename to vue2/@types/vue-shims/shims-vue.d.ts diff --git a/@types/vue-shims/tsconfig.json b/vue2/@types/vue-shims/tsconfig.json similarity index 100% rename from @types/vue-shims/tsconfig.json rename to vue2/@types/vue-shims/tsconfig.json diff --git a/README.md b/vue2/README.md similarity index 100% rename from README.md rename to vue2/README.md diff --git a/__mocks__/.eslintrc b/vue2/__mocks__/.eslintrc similarity index 100% rename from __mocks__/.eslintrc rename to vue2/__mocks__/.eslintrc diff --git a/__mocks__/fileMock.js b/vue2/__mocks__/fileMock.js similarity index 100% rename from __mocks__/fileMock.js rename to vue2/__mocks__/fileMock.js diff --git a/__mocks__/jest.setup.js b/vue2/__mocks__/jest.setup.js similarity index 100% rename from __mocks__/jest.setup.js rename to vue2/__mocks__/jest.setup.js diff --git a/__mocks__/styleMock.js b/vue2/__mocks__/styleMock.js similarity index 100% rename from __mocks__/styleMock.js rename to vue2/__mocks__/styleMock.js diff --git a/arcana.md b/vue2/arcana.md similarity index 100% rename from arcana.md rename to vue2/arcana.md diff --git a/babel.config.js b/vue2/babel.config.js similarity index 100% rename from babel.config.js rename to vue2/babel.config.js diff --git a/e2e/draw.spec.ts b/vue2/e2e/draw.spec.ts similarity index 100% rename from e2e/draw.spec.ts rename to vue2/e2e/draw.spec.ts diff --git a/e2e/iconMenu.spec.ts b/vue2/e2e/iconMenu.spec.ts similarity index 100% rename from e2e/iconMenu.spec.ts rename to vue2/e2e/iconMenu.spec.ts diff --git a/e2e/pins.spec.ts b/vue2/e2e/pins.spec.ts similarity index 100% rename from e2e/pins.spec.ts rename to vue2/e2e/pins.spec.ts diff --git a/e2e/toast.spec.ts b/vue2/e2e/toast.spec.ts similarity index 100% rename from e2e/toast.spec.ts rename to vue2/e2e/toast.spec.ts diff --git a/e2e/utils/clickTimes.ts b/vue2/e2e/utils/clickTimes.ts similarity index 100% rename from e2e/utils/clickTimes.ts rename to vue2/e2e/utils/clickTimes.ts diff --git a/e2e/utils/draw.ts b/vue2/e2e/utils/draw.ts similarity index 100% rename from e2e/utils/draw.ts rename to vue2/e2e/utils/draw.ts diff --git a/e2e/utils/openSnowbox.ts b/vue2/e2e/utils/openSnowbox.ts similarity index 100% rename from e2e/utils/openSnowbox.ts rename to vue2/e2e/utils/openSnowbox.ts diff --git a/e2e/utils/package.json b/vue2/e2e/utils/package.json similarity index 100% rename from e2e/utils/package.json rename to vue2/e2e/utils/package.json diff --git a/e2e/utils/vuex.ts b/vue2/e2e/utils/vuex.ts similarity index 100% rename from e2e/utils/vuex.ts rename to vue2/e2e/utils/vuex.ts diff --git a/e2e/zoom.spec.ts b/vue2/e2e/zoom.spec.ts similarity index 100% rename from e2e/zoom.spec.ts rename to vue2/e2e/zoom.spec.ts diff --git a/gettingStarted.md b/vue2/gettingStarted.md similarity index 100% rename from gettingStarted.md rename to vue2/gettingStarted.md diff --git a/jest.config.ts b/vue2/jest.config.ts similarity index 100% rename from jest.config.ts rename to vue2/jest.config.ts diff --git a/nx.json b/vue2/nx.json similarity index 100% rename from nx.json rename to vue2/nx.json diff --git a/package-lock.json b/vue2/package-lock.json similarity index 100% rename from package-lock.json rename to vue2/package-lock.json diff --git a/package.json b/vue2/package.json similarity index 100% rename from package.json rename to vue2/package.json diff --git a/packages/clients/afm/API.md b/vue2/packages/clients/afm/API.md similarity index 100% rename from packages/clients/afm/API.md rename to vue2/packages/clients/afm/API.md diff --git a/packages/clients/afm/CHANGELOG.md b/vue2/packages/clients/afm/CHANGELOG.md similarity index 100% rename from packages/clients/afm/CHANGELOG.md rename to vue2/packages/clients/afm/CHANGELOG.md diff --git a/packages/clients/afm/LICENSE b/vue2/packages/clients/afm/LICENSE similarity index 100% rename from packages/clients/afm/LICENSE rename to vue2/packages/clients/afm/LICENSE diff --git a/packages/clients/afm/README.md b/vue2/packages/clients/afm/README.md similarity index 100% rename from packages/clients/afm/README.md rename to vue2/packages/clients/afm/README.md diff --git a/packages/clients/afm/example/index.html b/vue2/packages/clients/afm/example/index.html similarity index 100% rename from packages/clients/afm/example/index.html rename to vue2/packages/clients/afm/example/index.html diff --git a/packages/clients/afm/example/polar-example.js b/vue2/packages/clients/afm/example/polar-example.js similarity index 100% rename from packages/clients/afm/example/polar-example.js rename to vue2/packages/clients/afm/example/polar-example.js diff --git a/packages/clients/afm/example/prod-example.html b/vue2/packages/clients/afm/example/prod-example.html similarity index 100% rename from packages/clients/afm/example/prod-example.html rename to vue2/packages/clients/afm/example/prod-example.html diff --git a/packages/clients/afm/example/reset.css b/vue2/packages/clients/afm/example/reset.css similarity index 100% rename from packages/clients/afm/example/reset.css rename to vue2/packages/clients/afm/example/reset.css diff --git a/packages/clients/afm/package.json b/vue2/packages/clients/afm/package.json similarity index 100% rename from packages/clients/afm/package.json rename to vue2/packages/clients/afm/package.json diff --git a/packages/clients/afm/src/polar-client.ts b/vue2/packages/clients/afm/src/polar-client.ts similarity index 100% rename from packages/clients/afm/src/polar-client.ts rename to vue2/packages/clients/afm/src/polar-client.ts diff --git a/packages/clients/afm/vite.config.js b/vue2/packages/clients/afm/vite.config.js similarity index 100% rename from packages/clients/afm/vite.config.js rename to vue2/packages/clients/afm/vite.config.js diff --git a/packages/clients/bgw/CHANGELOG.md b/vue2/packages/clients/bgw/CHANGELOG.md similarity index 100% rename from packages/clients/bgw/CHANGELOG.md rename to vue2/packages/clients/bgw/CHANGELOG.md diff --git a/packages/clients/bgw/LICENSE b/vue2/packages/clients/bgw/LICENSE similarity index 100% rename from packages/clients/bgw/LICENSE rename to vue2/packages/clients/bgw/LICENSE diff --git a/packages/clients/bgw/README.md b/vue2/packages/clients/bgw/README.md similarity index 100% rename from packages/clients/bgw/README.md rename to vue2/packages/clients/bgw/README.md diff --git a/packages/clients/bgw/package.json b/vue2/packages/clients/bgw/package.json similarity index 100% rename from packages/clients/bgw/package.json rename to vue2/packages/clients/bgw/package.json diff --git a/packages/clients/bgw/src/addPlugins.ts b/vue2/packages/clients/bgw/src/addPlugins.ts similarity index 100% rename from packages/clients/bgw/src/addPlugins.ts rename to vue2/packages/clients/bgw/src/addPlugins.ts diff --git a/packages/clients/bgw/src/html/index.html b/vue2/packages/clients/bgw/src/html/index.html similarity index 100% rename from packages/clients/bgw/src/html/index.html rename to vue2/packages/clients/bgw/src/html/index.html diff --git a/packages/clients/bgw/src/index.html b/vue2/packages/clients/bgw/src/index.html similarity index 100% rename from packages/clients/bgw/src/index.html rename to vue2/packages/clients/bgw/src/index.html diff --git a/packages/clients/bgw/src/mapConfiguration.ts b/vue2/packages/clients/bgw/src/mapConfiguration.ts similarity index 100% rename from packages/clients/bgw/src/mapConfiguration.ts rename to vue2/packages/clients/bgw/src/mapConfiguration.ts diff --git a/packages/clients/bgw/src/plugins/Gfi/ActionButton.vue b/vue2/packages/clients/bgw/src/plugins/Gfi/ActionButton.vue similarity index 100% rename from packages/clients/bgw/src/plugins/Gfi/ActionButton.vue rename to vue2/packages/clients/bgw/src/plugins/Gfi/ActionButton.vue diff --git a/packages/clients/bgw/src/plugins/Gfi/Content.vue b/vue2/packages/clients/bgw/src/plugins/Gfi/Content.vue similarity index 100% rename from packages/clients/bgw/src/plugins/Gfi/Content.vue rename to vue2/packages/clients/bgw/src/plugins/Gfi/Content.vue diff --git a/packages/clients/bgw/src/polar-client.ts b/vue2/packages/clients/bgw/src/polar-client.ts similarity index 100% rename from packages/clients/bgw/src/polar-client.ts rename to vue2/packages/clients/bgw/src/polar-client.ts diff --git a/packages/clients/bgw/src/services.ts b/vue2/packages/clients/bgw/src/services.ts similarity index 100% rename from packages/clients/bgw/src/services.ts rename to vue2/packages/clients/bgw/src/services.ts diff --git a/packages/clients/bgw/src/store/module.ts b/vue2/packages/clients/bgw/src/store/module.ts similarity index 100% rename from packages/clients/bgw/src/store/module.ts rename to vue2/packages/clients/bgw/src/store/module.ts diff --git a/packages/clients/bgw/src/style.json b/vue2/packages/clients/bgw/src/style.json similarity index 100% rename from packages/clients/bgw/src/style.json rename to vue2/packages/clients/bgw/src/style.json diff --git a/packages/clients/bgw/src/utils/badestellenSearch.ts b/vue2/packages/clients/bgw/src/utils/badestellenSearch.ts similarity index 100% rename from packages/clients/bgw/src/utils/badestellenSearch.ts rename to vue2/packages/clients/bgw/src/utils/badestellenSearch.ts diff --git a/packages/clients/bgw/tsconfig.json b/vue2/packages/clients/bgw/tsconfig.json similarity index 100% rename from packages/clients/bgw/tsconfig.json rename to vue2/packages/clients/bgw/tsconfig.json diff --git a/packages/clients/bgw/vite.config.js b/vue2/packages/clients/bgw/vite.config.js similarity index 100% rename from packages/clients/bgw/vite.config.js rename to vue2/packages/clients/bgw/vite.config.js diff --git a/packages/clients/dish/CHANGELOG.md b/vue2/packages/clients/dish/CHANGELOG.md similarity index 100% rename from packages/clients/dish/CHANGELOG.md rename to vue2/packages/clients/dish/CHANGELOG.md diff --git a/packages/clients/dish/LICENSE b/vue2/packages/clients/dish/LICENSE similarity index 100% rename from packages/clients/dish/LICENSE rename to vue2/packages/clients/dish/LICENSE diff --git a/packages/clients/dish/README.md b/vue2/packages/clients/dish/README.md similarity index 100% rename from packages/clients/dish/README.md rename to vue2/packages/clients/dish/README.md diff --git a/packages/clients/dish/package.json b/vue2/packages/clients/dish/package.json similarity index 100% rename from packages/clients/dish/package.json rename to vue2/packages/clients/dish/package.json diff --git a/packages/clients/dish/src/addPlugins.ts b/vue2/packages/clients/dish/src/addPlugins.ts similarity index 100% rename from packages/clients/dish/src/addPlugins.ts rename to vue2/packages/clients/dish/src/addPlugins.ts diff --git a/packages/clients/dish/src/colors.ts b/vue2/packages/clients/dish/src/colors.ts similarity index 100% rename from packages/clients/dish/src/colors.ts rename to vue2/packages/clients/dish/src/colors.ts diff --git a/packages/clients/dish/src/enums.ts b/vue2/packages/clients/dish/src/enums.ts similarity index 100% rename from packages/clients/dish/src/enums.ts rename to vue2/packages/clients/dish/src/enums.ts diff --git a/packages/clients/dish/src/html/index.html b/vue2/packages/clients/dish/src/html/index.html similarity index 100% rename from packages/clients/dish/src/html/index.html rename to vue2/packages/clients/dish/src/html/index.html diff --git a/packages/clients/dish/src/index.html b/vue2/packages/clients/dish/src/index.html similarity index 100% rename from packages/clients/dish/src/index.html rename to vue2/packages/clients/dish/src/index.html diff --git a/packages/clients/dish/src/locales.ts b/vue2/packages/clients/dish/src/locales.ts similarity index 100% rename from packages/clients/dish/src/locales.ts rename to vue2/packages/clients/dish/src/locales.ts diff --git a/packages/clients/dish/src/mapConfigurations/attributionsConfig.ts b/vue2/packages/clients/dish/src/mapConfigurations/attributionsConfig.ts similarity index 100% rename from packages/clients/dish/src/mapConfigurations/attributionsConfig.ts rename to vue2/packages/clients/dish/src/mapConfigurations/attributionsConfig.ts diff --git a/packages/clients/dish/src/mapConfigurations/layerConfigIntern.ts b/vue2/packages/clients/dish/src/mapConfigurations/layerConfigIntern.ts similarity index 100% rename from packages/clients/dish/src/mapConfigurations/layerConfigIntern.ts rename to vue2/packages/clients/dish/src/mapConfigurations/layerConfigIntern.ts diff --git a/packages/clients/dish/src/mapConfigurations/mapConfig.ts b/vue2/packages/clients/dish/src/mapConfigurations/mapConfig.ts similarity index 100% rename from packages/clients/dish/src/mapConfigurations/mapConfig.ts rename to vue2/packages/clients/dish/src/mapConfigurations/mapConfig.ts diff --git a/packages/clients/dish/src/mapConfigurations/mapConfigExtern.ts b/vue2/packages/clients/dish/src/mapConfigurations/mapConfigExtern.ts similarity index 100% rename from packages/clients/dish/src/mapConfigurations/mapConfigExtern.ts rename to vue2/packages/clients/dish/src/mapConfigurations/mapConfigExtern.ts diff --git a/packages/clients/dish/src/mapConfigurations/mapConfigIntern.ts b/vue2/packages/clients/dish/src/mapConfigurations/mapConfigIntern.ts similarity index 100% rename from packages/clients/dish/src/mapConfigurations/mapConfigIntern.ts rename to vue2/packages/clients/dish/src/mapConfigurations/mapConfigIntern.ts diff --git a/packages/clients/dish/src/mapConfigurations/searchConfigParams.ts b/vue2/packages/clients/dish/src/mapConfigurations/searchConfigParams.ts similarity index 100% rename from packages/clients/dish/src/mapConfigurations/searchConfigParams.ts rename to vue2/packages/clients/dish/src/mapConfigurations/searchConfigParams.ts diff --git a/packages/clients/dish/src/plugins/DishExportMap/DishExportMap.vue b/vue2/packages/clients/dish/src/plugins/DishExportMap/DishExportMap.vue similarity index 100% rename from packages/clients/dish/src/plugins/DishExportMap/DishExportMap.vue rename to vue2/packages/clients/dish/src/plugins/DishExportMap/DishExportMap.vue diff --git a/packages/clients/dish/src/plugins/DishExportMap/README.md b/vue2/packages/clients/dish/src/plugins/DishExportMap/README.md similarity index 100% rename from packages/clients/dish/src/plugins/DishExportMap/README.md rename to vue2/packages/clients/dish/src/plugins/DishExportMap/README.md diff --git a/packages/clients/dish/src/plugins/DishExportMap/index.ts b/vue2/packages/clients/dish/src/plugins/DishExportMap/index.ts similarity index 100% rename from packages/clients/dish/src/plugins/DishExportMap/index.ts rename to vue2/packages/clients/dish/src/plugins/DishExportMap/index.ts diff --git a/packages/clients/dish/src/plugins/DishExportMap/locales.ts b/vue2/packages/clients/dish/src/plugins/DishExportMap/locales.ts similarity index 100% rename from packages/clients/dish/src/plugins/DishExportMap/locales.ts rename to vue2/packages/clients/dish/src/plugins/DishExportMap/locales.ts diff --git a/packages/clients/dish/src/plugins/Gfi/ActionButton.vue b/vue2/packages/clients/dish/src/plugins/Gfi/ActionButton.vue similarity index 100% rename from packages/clients/dish/src/plugins/Gfi/ActionButton.vue rename to vue2/packages/clients/dish/src/plugins/Gfi/ActionButton.vue diff --git a/packages/clients/dish/src/plugins/Gfi/ContentExtern.vue b/vue2/packages/clients/dish/src/plugins/Gfi/ContentExtern.vue similarity index 100% rename from packages/clients/dish/src/plugins/Gfi/ContentExtern.vue rename to vue2/packages/clients/dish/src/plugins/Gfi/ContentExtern.vue diff --git a/packages/clients/dish/src/plugins/Gfi/ContentIntern.vue b/vue2/packages/clients/dish/src/plugins/Gfi/ContentIntern.vue similarity index 100% rename from packages/clients/dish/src/plugins/Gfi/ContentIntern.vue rename to vue2/packages/clients/dish/src/plugins/Gfi/ContentIntern.vue diff --git a/packages/clients/dish/src/plugins/Gfi/MonumentContent.vue b/vue2/packages/clients/dish/src/plugins/Gfi/MonumentContent.vue similarity index 100% rename from packages/clients/dish/src/plugins/Gfi/MonumentContent.vue rename to vue2/packages/clients/dish/src/plugins/Gfi/MonumentContent.vue diff --git a/packages/clients/dish/src/plugins/Gfi/SharedContent.vue b/vue2/packages/clients/dish/src/plugins/Gfi/SharedContent.vue similarity index 100% rename from packages/clients/dish/src/plugins/Gfi/SharedContent.vue rename to vue2/packages/clients/dish/src/plugins/Gfi/SharedContent.vue diff --git a/packages/clients/dish/src/plugins/Gfi/SwitchButton.vue b/vue2/packages/clients/dish/src/plugins/Gfi/SwitchButton.vue similarity index 100% rename from packages/clients/dish/src/plugins/Gfi/SwitchButton.vue rename to vue2/packages/clients/dish/src/plugins/Gfi/SwitchButton.vue diff --git a/packages/clients/dish/src/plugins/Gfi/index.ts b/vue2/packages/clients/dish/src/plugins/Gfi/index.ts similarity index 100% rename from packages/clients/dish/src/plugins/Gfi/index.ts rename to vue2/packages/clients/dish/src/plugins/Gfi/index.ts diff --git a/packages/clients/dish/src/plugins/Header/Header.vue b/vue2/packages/clients/dish/src/plugins/Header/Header.vue similarity index 100% rename from packages/clients/dish/src/plugins/Header/Header.vue rename to vue2/packages/clients/dish/src/plugins/Header/Header.vue diff --git a/packages/clients/dish/src/plugins/Header/index.ts b/vue2/packages/clients/dish/src/plugins/Header/index.ts similarity index 100% rename from packages/clients/dish/src/plugins/Header/index.ts rename to vue2/packages/clients/dish/src/plugins/Header/index.ts diff --git a/packages/clients/dish/src/plugins/Header/locales.ts b/vue2/packages/clients/dish/src/plugins/Header/locales.ts similarity index 100% rename from packages/clients/dish/src/plugins/Header/locales.ts rename to vue2/packages/clients/dish/src/plugins/Header/locales.ts diff --git a/packages/clients/dish/src/plugins/Modal/Hints.vue b/vue2/packages/clients/dish/src/plugins/Modal/Hints.vue similarity index 100% rename from packages/clients/dish/src/plugins/Modal/Hints.vue rename to vue2/packages/clients/dish/src/plugins/Modal/Hints.vue diff --git a/packages/clients/dish/src/plugins/Modal/HintsIntern.vue b/vue2/packages/clients/dish/src/plugins/Modal/HintsIntern.vue similarity index 100% rename from packages/clients/dish/src/plugins/Modal/HintsIntern.vue rename to vue2/packages/clients/dish/src/plugins/Modal/HintsIntern.vue diff --git a/packages/clients/dish/src/plugins/Modal/Modal.vue b/vue2/packages/clients/dish/src/plugins/Modal/Modal.vue similarity index 100% rename from packages/clients/dish/src/plugins/Modal/Modal.vue rename to vue2/packages/clients/dish/src/plugins/Modal/Modal.vue diff --git a/packages/clients/dish/src/plugins/Modal/SharedHints.vue b/vue2/packages/clients/dish/src/plugins/Modal/SharedHints.vue similarity index 100% rename from packages/clients/dish/src/plugins/Modal/SharedHints.vue rename to vue2/packages/clients/dish/src/plugins/Modal/SharedHints.vue diff --git a/packages/clients/dish/src/plugins/Modal/Welcome.vue b/vue2/packages/clients/dish/src/plugins/Modal/Welcome.vue similarity index 100% rename from packages/clients/dish/src/plugins/Modal/Welcome.vue rename to vue2/packages/clients/dish/src/plugins/Modal/Welcome.vue diff --git a/packages/clients/dish/src/plugins/Modal/index.ts b/vue2/packages/clients/dish/src/plugins/Modal/index.ts similarity index 100% rename from packages/clients/dish/src/plugins/Modal/index.ts rename to vue2/packages/clients/dish/src/plugins/Modal/index.ts diff --git a/packages/clients/dish/src/plugins/Modal/landesdachmarke_denkmalpflege.jpg b/vue2/packages/clients/dish/src/plugins/Modal/landesdachmarke_denkmalpflege.jpg similarity index 100% rename from packages/clients/dish/src/plugins/Modal/landesdachmarke_denkmalpflege.jpg rename to vue2/packages/clients/dish/src/plugins/Modal/landesdachmarke_denkmalpflege.jpg diff --git a/packages/clients/dish/src/plugins/Modal/locales.ts b/vue2/packages/clients/dish/src/plugins/Modal/locales.ts similarity index 100% rename from packages/clients/dish/src/plugins/Modal/locales.ts rename to vue2/packages/clients/dish/src/plugins/Modal/locales.ts diff --git a/packages/clients/dish/src/plugins/Modal/store.ts b/vue2/packages/clients/dish/src/plugins/Modal/store.ts similarity index 100% rename from packages/clients/dish/src/plugins/Modal/store.ts rename to vue2/packages/clients/dish/src/plugins/Modal/store.ts diff --git a/packages/clients/dish/src/plugins/SelectionObject/SelectionObject.vue b/vue2/packages/clients/dish/src/plugins/SelectionObject/SelectionObject.vue similarity index 100% rename from packages/clients/dish/src/plugins/SelectionObject/SelectionObject.vue rename to vue2/packages/clients/dish/src/plugins/SelectionObject/SelectionObject.vue diff --git a/packages/clients/dish/src/plugins/SelectionObject/index.ts b/vue2/packages/clients/dish/src/plugins/SelectionObject/index.ts similarity index 100% rename from packages/clients/dish/src/plugins/SelectionObject/index.ts rename to vue2/packages/clients/dish/src/plugins/SelectionObject/index.ts diff --git a/packages/clients/dish/src/plugins/SelectionObject/locales.ts b/vue2/packages/clients/dish/src/plugins/SelectionObject/locales.ts similarity index 100% rename from packages/clients/dish/src/plugins/SelectionObject/locales.ts rename to vue2/packages/clients/dish/src/plugins/SelectionObject/locales.ts diff --git a/packages/clients/dish/src/plugins/SelectionObject/store.ts b/vue2/packages/clients/dish/src/plugins/SelectionObject/store.ts similarity index 100% rename from packages/clients/dish/src/plugins/SelectionObject/store.ts rename to vue2/packages/clients/dish/src/plugins/SelectionObject/store.ts diff --git a/packages/clients/dish/src/polar-client.ts b/vue2/packages/clients/dish/src/polar-client.ts similarity index 100% rename from packages/clients/dish/src/polar-client.ts rename to vue2/packages/clients/dish/src/polar-client.ts diff --git a/packages/clients/dish/src/selectionLayer.ts b/vue2/packages/clients/dish/src/selectionLayer.ts similarity index 100% rename from packages/clients/dish/src/selectionLayer.ts rename to vue2/packages/clients/dish/src/selectionLayer.ts diff --git a/packages/clients/dish/src/services.ts b/vue2/packages/clients/dish/src/services.ts similarity index 100% rename from packages/clients/dish/src/services.ts rename to vue2/packages/clients/dish/src/services.ts diff --git a/packages/clients/dish/src/servicesConstants.ts b/vue2/packages/clients/dish/src/servicesConstants.ts similarity index 100% rename from packages/clients/dish/src/servicesConstants.ts rename to vue2/packages/clients/dish/src/servicesConstants.ts diff --git a/packages/clients/dish/src/servicesIntern.ts b/vue2/packages/clients/dish/src/servicesIntern.ts similarity index 100% rename from packages/clients/dish/src/servicesIntern.ts rename to vue2/packages/clients/dish/src/servicesIntern.ts diff --git a/packages/clients/dish/src/styles.css b/vue2/packages/clients/dish/src/styles.css similarity index 100% rename from packages/clients/dish/src/styles.css rename to vue2/packages/clients/dish/src/styles.css diff --git a/packages/clients/dish/src/types.ts b/vue2/packages/clients/dish/src/types.ts similarity index 100% rename from packages/clients/dish/src/types.ts rename to vue2/packages/clients/dish/src/types.ts diff --git a/packages/clients/dish/src/utils/autocomplete.ts b/vue2/packages/clients/dish/src/utils/autocomplete.ts similarity index 100% rename from packages/clients/dish/src/utils/autocomplete.ts rename to vue2/packages/clients/dish/src/utils/autocomplete.ts diff --git a/packages/clients/dish/src/utils/calculateScaleFromResolution.ts b/vue2/packages/clients/dish/src/utils/calculateScaleFromResolution.ts similarity index 100% rename from packages/clients/dish/src/utils/calculateScaleFromResolution.ts rename to vue2/packages/clients/dish/src/utils/calculateScaleFromResolution.ts diff --git a/packages/clients/dish/src/utils/denkmalSearchIntern.ts b/vue2/packages/clients/dish/src/utils/denkmalSearchIntern.ts similarity index 100% rename from packages/clients/dish/src/utils/denkmalSearchIntern.ts rename to vue2/packages/clients/dish/src/utils/denkmalSearchIntern.ts diff --git a/packages/clients/dish/src/utils/extendGfi.ts b/vue2/packages/clients/dish/src/utils/extendGfi.ts similarity index 100% rename from packages/clients/dish/src/utils/extendGfi.ts rename to vue2/packages/clients/dish/src/utils/extendGfi.ts diff --git a/packages/clients/dish/src/utils/navigateToDenkmal.ts b/vue2/packages/clients/dish/src/utils/navigateToDenkmal.ts similarity index 100% rename from packages/clients/dish/src/utils/navigateToDenkmal.ts rename to vue2/packages/clients/dish/src/utils/navigateToDenkmal.ts diff --git a/packages/clients/dish/src/utils/prepareGfiDataIntern.ts b/vue2/packages/clients/dish/src/utils/prepareGfiDataIntern.ts similarity index 100% rename from packages/clients/dish/src/utils/prepareGfiDataIntern.ts rename to vue2/packages/clients/dish/src/utils/prepareGfiDataIntern.ts diff --git a/packages/clients/dish/src/utils/search.ts b/vue2/packages/clients/dish/src/utils/search.ts similarity index 100% rename from packages/clients/dish/src/utils/search.ts rename to vue2/packages/clients/dish/src/utils/search.ts diff --git a/packages/clients/dish/src/utils/zoomToFeatureById.ts b/vue2/packages/clients/dish/src/utils/zoomToFeatureById.ts similarity index 100% rename from packages/clients/dish/src/utils/zoomToFeatureById.ts rename to vue2/packages/clients/dish/src/utils/zoomToFeatureById.ts diff --git a/packages/clients/dish/vite.config.js b/vue2/packages/clients/dish/vite.config.js similarity index 100% rename from packages/clients/dish/vite.config.js rename to vue2/packages/clients/dish/vite.config.js diff --git a/packages/clients/generic/API.md b/vue2/packages/clients/generic/API.md similarity index 100% rename from packages/clients/generic/API.md rename to vue2/packages/clients/generic/API.md diff --git a/packages/clients/generic/CHANGELOG.md b/vue2/packages/clients/generic/CHANGELOG.md similarity index 100% rename from packages/clients/generic/CHANGELOG.md rename to vue2/packages/clients/generic/CHANGELOG.md diff --git a/packages/clients/generic/LICENSE b/vue2/packages/clients/generic/LICENSE similarity index 100% rename from packages/clients/generic/LICENSE rename to vue2/packages/clients/generic/LICENSE diff --git a/packages/clients/generic/README.md b/vue2/packages/clients/generic/README.md similarity index 100% rename from packages/clients/generic/README.md rename to vue2/packages/clients/generic/README.md diff --git a/packages/clients/generic/package.json b/vue2/packages/clients/generic/package.json similarity index 100% rename from packages/clients/generic/package.json rename to vue2/packages/clients/generic/package.json diff --git a/packages/clients/generic/src/polar-client.ts b/vue2/packages/clients/generic/src/polar-client.ts similarity index 100% rename from packages/clients/generic/src/polar-client.ts rename to vue2/packages/clients/generic/src/polar-client.ts diff --git a/packages/clients/generic/vite.config.js b/vue2/packages/clients/generic/vite.config.js similarity index 100% rename from packages/clients/generic/vite.config.js rename to vue2/packages/clients/generic/vite.config.js diff --git a/packages/clients/meldemichel/API.md b/vue2/packages/clients/meldemichel/API.md similarity index 100% rename from packages/clients/meldemichel/API.md rename to vue2/packages/clients/meldemichel/API.md diff --git a/packages/clients/meldemichel/CHANGELOG.md b/vue2/packages/clients/meldemichel/CHANGELOG.md similarity index 100% rename from packages/clients/meldemichel/CHANGELOG.md rename to vue2/packages/clients/meldemichel/CHANGELOG.md diff --git a/packages/clients/meldemichel/LICENSE b/vue2/packages/clients/meldemichel/LICENSE similarity index 100% rename from packages/clients/meldemichel/LICENSE rename to vue2/packages/clients/meldemichel/LICENSE diff --git a/packages/clients/meldemichel/README.md b/vue2/packages/clients/meldemichel/README.md similarity index 100% rename from packages/clients/meldemichel/README.md rename to vue2/packages/clients/meldemichel/README.md diff --git a/packages/clients/meldemichel/example/complete.html b/vue2/packages/clients/meldemichel/example/complete.html similarity index 100% rename from packages/clients/meldemichel/example/complete.html rename to vue2/packages/clients/meldemichel/example/complete.html diff --git a/packages/clients/meldemichel/example/complete_embedded.html b/vue2/packages/clients/meldemichel/example/complete_embedded.html similarity index 100% rename from packages/clients/meldemichel/example/complete_embedded.html rename to vue2/packages/clients/meldemichel/example/complete_embedded.html diff --git a/packages/clients/meldemichel/example/index.html b/vue2/packages/clients/meldemichel/example/index.html similarity index 100% rename from packages/clients/meldemichel/example/index.html rename to vue2/packages/clients/meldemichel/example/index.html diff --git a/packages/clients/meldemichel/example/report.html b/vue2/packages/clients/meldemichel/example/report.html similarity index 100% rename from packages/clients/meldemichel/example/report.html rename to vue2/packages/clients/meldemichel/example/report.html diff --git a/packages/clients/meldemichel/example/simulateRecreate.js b/vue2/packages/clients/meldemichel/example/simulateRecreate.js similarity index 100% rename from packages/clients/meldemichel/example/simulateRecreate.js rename to vue2/packages/clients/meldemichel/example/simulateRecreate.js diff --git a/packages/clients/meldemichel/example/single.html b/vue2/packages/clients/meldemichel/example/single.html similarity index 100% rename from packages/clients/meldemichel/example/single.html rename to vue2/packages/clients/meldemichel/example/single.html diff --git a/packages/clients/meldemichel/package.json b/vue2/packages/clients/meldemichel/package.json similarity index 100% rename from packages/clients/meldemichel/package.json rename to vue2/packages/clients/meldemichel/package.json diff --git a/packages/clients/meldemichel/src/addPlugins.ts b/vue2/packages/clients/meldemichel/src/addPlugins.ts similarity index 100% rename from packages/clients/meldemichel/src/addPlugins.ts rename to vue2/packages/clients/meldemichel/src/addPlugins.ts diff --git a/packages/clients/meldemichel/src/enums.ts b/vue2/packages/clients/meldemichel/src/enums.ts similarity index 100% rename from packages/clients/meldemichel/src/enums.ts rename to vue2/packages/clients/meldemichel/src/enums.ts diff --git a/packages/clients/meldemichel/src/html/index.html b/vue2/packages/clients/meldemichel/src/html/index.html similarity index 100% rename from packages/clients/meldemichel/src/html/index.html rename to vue2/packages/clients/meldemichel/src/html/index.html diff --git a/packages/clients/meldemichel/src/index.html b/vue2/packages/clients/meldemichel/src/index.html similarity index 100% rename from packages/clients/meldemichel/src/index.html rename to vue2/packages/clients/meldemichel/src/index.html diff --git a/packages/clients/meldemichel/src/locales.ts b/vue2/packages/clients/meldemichel/src/locales.ts similarity index 100% rename from packages/clients/meldemichel/src/locales.ts rename to vue2/packages/clients/meldemichel/src/locales.ts diff --git a/packages/clients/meldemichel/src/mapConfigurations.ts b/vue2/packages/clients/meldemichel/src/mapConfigurations.ts similarity index 100% rename from packages/clients/meldemichel/src/mapConfigurations.ts rename to vue2/packages/clients/meldemichel/src/mapConfigurations.ts diff --git a/packages/clients/meldemichel/src/plugins/AfmButton/AfmButton.vue b/vue2/packages/clients/meldemichel/src/plugins/AfmButton/AfmButton.vue similarity index 100% rename from packages/clients/meldemichel/src/plugins/AfmButton/AfmButton.vue rename to vue2/packages/clients/meldemichel/src/plugins/AfmButton/AfmButton.vue diff --git a/packages/clients/meldemichel/src/plugins/AfmButton/index.ts b/vue2/packages/clients/meldemichel/src/plugins/AfmButton/index.ts similarity index 100% rename from packages/clients/meldemichel/src/plugins/AfmButton/index.ts rename to vue2/packages/clients/meldemichel/src/plugins/AfmButton/index.ts diff --git a/packages/clients/meldemichel/src/plugins/AfmButton/locales.ts b/vue2/packages/clients/meldemichel/src/plugins/AfmButton/locales.ts similarity index 100% rename from packages/clients/meldemichel/src/plugins/AfmButton/locales.ts rename to vue2/packages/clients/meldemichel/src/plugins/AfmButton/locales.ts diff --git a/packages/clients/meldemichel/src/plugins/Gfi/ActionButtons.vue b/vue2/packages/clients/meldemichel/src/plugins/Gfi/ActionButtons.vue similarity index 100% rename from packages/clients/meldemichel/src/plugins/Gfi/ActionButtons.vue rename to vue2/packages/clients/meldemichel/src/plugins/Gfi/ActionButtons.vue diff --git a/packages/clients/meldemichel/src/plugins/Gfi/Feature.vue b/vue2/packages/clients/meldemichel/src/plugins/Gfi/Feature.vue similarity index 100% rename from packages/clients/meldemichel/src/plugins/Gfi/Feature.vue rename to vue2/packages/clients/meldemichel/src/plugins/Gfi/Feature.vue diff --git a/packages/clients/meldemichel/src/plugins/Gfi/index.ts b/vue2/packages/clients/meldemichel/src/plugins/Gfi/index.ts similarity index 100% rename from packages/clients/meldemichel/src/plugins/Gfi/index.ts rename to vue2/packages/clients/meldemichel/src/plugins/Gfi/index.ts diff --git a/packages/clients/meldemichel/src/polar-client.ts b/vue2/packages/clients/meldemichel/src/polar-client.ts similarity index 100% rename from packages/clients/meldemichel/src/polar-client.ts rename to vue2/packages/clients/meldemichel/src/polar-client.ts diff --git a/packages/clients/meldemichel/src/store/module.ts b/vue2/packages/clients/meldemichel/src/store/module.ts similarity index 100% rename from packages/clients/meldemichel/src/store/module.ts rename to vue2/packages/clients/meldemichel/src/store/module.ts diff --git a/packages/clients/meldemichel/src/styles/index.css b/vue2/packages/clients/meldemichel/src/styles/index.css similarity index 100% rename from packages/clients/meldemichel/src/styles/index.css rename to vue2/packages/clients/meldemichel/src/styles/index.css diff --git a/packages/clients/meldemichel/src/types.ts b/vue2/packages/clients/meldemichel/src/types.ts similarity index 100% rename from packages/clients/meldemichel/src/types.ts rename to vue2/packages/clients/meldemichel/src/types.ts diff --git a/packages/clients/meldemichel/src/utils/createMenus.ts b/vue2/packages/clients/meldemichel/src/utils/createMenus.ts similarity index 100% rename from packages/clients/meldemichel/src/utils/createMenus.ts rename to vue2/packages/clients/meldemichel/src/utils/createMenus.ts diff --git a/packages/clients/meldemichel/src/utils/enableClustering.ts b/vue2/packages/clients/meldemichel/src/utils/enableClustering.ts similarity index 100% rename from packages/clients/meldemichel/src/utils/enableClustering.ts rename to vue2/packages/clients/meldemichel/src/utils/enableClustering.ts diff --git a/packages/clients/meldemichel/src/utils/setBackgroundImage.ts b/vue2/packages/clients/meldemichel/src/utils/setBackgroundImage.ts similarity index 100% rename from packages/clients/meldemichel/src/utils/setBackgroundImage.ts rename to vue2/packages/clients/meldemichel/src/utils/setBackgroundImage.ts diff --git a/packages/clients/meldemichel/src/utils/showTooltip.ts b/vue2/packages/clients/meldemichel/src/utils/showTooltip.ts similarity index 100% rename from packages/clients/meldemichel/src/utils/showTooltip.ts rename to vue2/packages/clients/meldemichel/src/utils/showTooltip.ts diff --git a/packages/clients/meldemichel/vite.config.js b/vue2/packages/clients/meldemichel/vite.config.js similarity index 100% rename from packages/clients/meldemichel/vite.config.js rename to vue2/packages/clients/meldemichel/vite.config.js diff --git a/packages/clients/snowbox/API.md b/vue2/packages/clients/snowbox/API.md similarity index 100% rename from packages/clients/snowbox/API.md rename to vue2/packages/clients/snowbox/API.md diff --git a/packages/clients/snowbox/LICENSE b/vue2/packages/clients/snowbox/LICENSE similarity index 100% rename from packages/clients/snowbox/LICENSE rename to vue2/packages/clients/snowbox/LICENSE diff --git a/packages/clients/snowbox/README.md b/vue2/packages/clients/snowbox/README.md similarity index 100% rename from packages/clients/snowbox/README.md rename to vue2/packages/clients/snowbox/README.md diff --git a/packages/clients/snowbox/package.json b/vue2/packages/clients/snowbox/package.json similarity index 100% rename from packages/clients/snowbox/package.json rename to vue2/packages/clients/snowbox/package.json diff --git a/packages/clients/snowbox/src/addPlugins.ts b/vue2/packages/clients/snowbox/src/addPlugins.ts similarity index 100% rename from packages/clients/snowbox/src/addPlugins.ts rename to vue2/packages/clients/snowbox/src/addPlugins.ts diff --git a/packages/clients/snowbox/src/authentication.ts b/vue2/packages/clients/snowbox/src/authentication.ts similarity index 100% rename from packages/clients/snowbox/src/authentication.ts rename to vue2/packages/clients/snowbox/src/authentication.ts diff --git a/packages/clients/snowbox/src/exampleFeatureInformation.ts b/vue2/packages/clients/snowbox/src/exampleFeatureInformation.ts similarity index 100% rename from packages/clients/snowbox/src/exampleFeatureInformation.ts rename to vue2/packages/clients/snowbox/src/exampleFeatureInformation.ts diff --git a/packages/clients/snowbox/src/html/index.html b/vue2/packages/clients/snowbox/src/html/index.html similarity index 100% rename from packages/clients/snowbox/src/html/index.html rename to vue2/packages/clients/snowbox/src/html/index.html diff --git a/packages/clients/snowbox/src/index.html b/vue2/packages/clients/snowbox/src/index.html similarity index 100% rename from packages/clients/snowbox/src/index.html rename to vue2/packages/clients/snowbox/src/index.html diff --git a/packages/clients/snowbox/src/locales.ts b/vue2/packages/clients/snowbox/src/locales.ts similarity index 100% rename from packages/clients/snowbox/src/locales.ts rename to vue2/packages/clients/snowbox/src/locales.ts diff --git a/packages/clients/snowbox/src/mapConfiguration.ts b/vue2/packages/clients/snowbox/src/mapConfiguration.ts similarity index 100% rename from packages/clients/snowbox/src/mapConfiguration.ts rename to vue2/packages/clients/snowbox/src/mapConfiguration.ts diff --git a/packages/clients/snowbox/src/polar-client.ts b/vue2/packages/clients/snowbox/src/polar-client.ts similarity index 100% rename from packages/clients/snowbox/src/polar-client.ts rename to vue2/packages/clients/snowbox/src/polar-client.ts diff --git a/packages/clients/snowbox/src/style.json b/vue2/packages/clients/snowbox/src/style.json similarity index 100% rename from packages/clients/snowbox/src/style.json rename to vue2/packages/clients/snowbox/src/style.json diff --git a/packages/clients/snowbox/src/validateForm.ts b/vue2/packages/clients/snowbox/src/validateForm.ts similarity index 100% rename from packages/clients/snowbox/src/validateForm.ts rename to vue2/packages/clients/snowbox/src/validateForm.ts diff --git a/packages/clients/snowbox/vite.config.js b/vue2/packages/clients/snowbox/vite.config.js similarity index 100% rename from packages/clients/snowbox/vite.config.js rename to vue2/packages/clients/snowbox/vite.config.js diff --git a/packages/clients/stylePreview/API.md b/vue2/packages/clients/stylePreview/API.md similarity index 100% rename from packages/clients/stylePreview/API.md rename to vue2/packages/clients/stylePreview/API.md diff --git a/packages/clients/stylePreview/CHANGELOG.md b/vue2/packages/clients/stylePreview/CHANGELOG.md similarity index 100% rename from packages/clients/stylePreview/CHANGELOG.md rename to vue2/packages/clients/stylePreview/CHANGELOG.md diff --git a/packages/clients/stylePreview/LICENSE b/vue2/packages/clients/stylePreview/LICENSE similarity index 100% rename from packages/clients/stylePreview/LICENSE rename to vue2/packages/clients/stylePreview/LICENSE diff --git a/packages/clients/stylePreview/README.md b/vue2/packages/clients/stylePreview/README.md similarity index 100% rename from packages/clients/stylePreview/README.md rename to vue2/packages/clients/stylePreview/README.md diff --git a/packages/clients/stylePreview/example/index.html b/vue2/packages/clients/stylePreview/example/index.html similarity index 100% rename from packages/clients/stylePreview/example/index.html rename to vue2/packages/clients/stylePreview/example/index.html diff --git a/packages/clients/stylePreview/example/polar-example.js b/vue2/packages/clients/stylePreview/example/polar-example.js similarity index 100% rename from packages/clients/stylePreview/example/polar-example.js rename to vue2/packages/clients/stylePreview/example/polar-example.js diff --git a/packages/clients/stylePreview/example/prod-example.html b/vue2/packages/clients/stylePreview/example/prod-example.html similarity index 100% rename from packages/clients/stylePreview/example/prod-example.html rename to vue2/packages/clients/stylePreview/example/prod-example.html diff --git a/packages/clients/stylePreview/example/style.css b/vue2/packages/clients/stylePreview/example/style.css similarity index 100% rename from packages/clients/stylePreview/example/style.css rename to vue2/packages/clients/stylePreview/example/style.css diff --git a/packages/clients/stylePreview/package.json b/vue2/packages/clients/stylePreview/package.json similarity index 100% rename from packages/clients/stylePreview/package.json rename to vue2/packages/clients/stylePreview/package.json diff --git a/packages/clients/stylePreview/src/polar-client.ts b/vue2/packages/clients/stylePreview/src/polar-client.ts similarity index 100% rename from packages/clients/stylePreview/src/polar-client.ts rename to vue2/packages/clients/stylePreview/src/polar-client.ts diff --git a/packages/clients/stylePreview/src/stylePreview/features.ts b/vue2/packages/clients/stylePreview/src/stylePreview/features.ts similarity index 100% rename from packages/clients/stylePreview/src/stylePreview/features.ts rename to vue2/packages/clients/stylePreview/src/stylePreview/features.ts diff --git a/packages/clients/stylePreview/src/stylePreview/index.ts b/vue2/packages/clients/stylePreview/src/stylePreview/index.ts similarity index 100% rename from packages/clients/stylePreview/src/stylePreview/index.ts rename to vue2/packages/clients/stylePreview/src/stylePreview/index.ts diff --git a/packages/clients/stylePreview/src/stylePreview/updatePositions.ts b/vue2/packages/clients/stylePreview/src/stylePreview/updatePositions.ts similarity index 100% rename from packages/clients/stylePreview/src/stylePreview/updatePositions.ts rename to vue2/packages/clients/stylePreview/src/stylePreview/updatePositions.ts diff --git a/packages/clients/stylePreview/src/stylePreview/updateStyles.ts b/vue2/packages/clients/stylePreview/src/stylePreview/updateStyles.ts similarity index 100% rename from packages/clients/stylePreview/src/stylePreview/updateStyles.ts rename to vue2/packages/clients/stylePreview/src/stylePreview/updateStyles.ts diff --git a/packages/clients/stylePreview/vite.config.js b/vue2/packages/clients/stylePreview/vite.config.js similarity index 100% rename from packages/clients/stylePreview/vite.config.js rename to vue2/packages/clients/stylePreview/vite.config.js diff --git a/packages/clients/textLocator/API.md b/vue2/packages/clients/textLocator/API.md similarity index 100% rename from packages/clients/textLocator/API.md rename to vue2/packages/clients/textLocator/API.md diff --git a/packages/clients/textLocator/CHANGELOG.md b/vue2/packages/clients/textLocator/CHANGELOG.md similarity index 100% rename from packages/clients/textLocator/CHANGELOG.md rename to vue2/packages/clients/textLocator/CHANGELOG.md diff --git a/packages/clients/textLocator/LICENSE b/vue2/packages/clients/textLocator/LICENSE similarity index 100% rename from packages/clients/textLocator/LICENSE rename to vue2/packages/clients/textLocator/LICENSE diff --git a/packages/clients/textLocator/README.md b/vue2/packages/clients/textLocator/README.md similarity index 100% rename from packages/clients/textLocator/README.md rename to vue2/packages/clients/textLocator/README.md diff --git a/packages/clients/textLocator/package.json b/vue2/packages/clients/textLocator/package.json similarity index 100% rename from packages/clients/textLocator/package.json rename to vue2/packages/clients/textLocator/package.json diff --git a/packages/clients/textLocator/src/addPlugins.ts b/vue2/packages/clients/textLocator/src/addPlugins.ts similarity index 100% rename from packages/clients/textLocator/src/addPlugins.ts rename to vue2/packages/clients/textLocator/src/addPlugins.ts diff --git a/packages/clients/textLocator/src/components/ResultInfo.vue b/vue2/packages/clients/textLocator/src/components/ResultInfo.vue similarity index 100% rename from packages/clients/textLocator/src/components/ResultInfo.vue rename to vue2/packages/clients/textLocator/src/components/ResultInfo.vue diff --git a/packages/clients/textLocator/src/html/index.html b/vue2/packages/clients/textLocator/src/html/index.html similarity index 100% rename from packages/clients/textLocator/src/html/index.html rename to vue2/packages/clients/textLocator/src/html/index.html diff --git a/packages/clients/textLocator/src/html/index.js b/vue2/packages/clients/textLocator/src/html/index.js similarity index 100% rename from packages/clients/textLocator/src/html/index.js rename to vue2/packages/clients/textLocator/src/html/index.js diff --git a/packages/clients/textLocator/src/index.html b/vue2/packages/clients/textLocator/src/index.html similarity index 100% rename from packages/clients/textLocator/src/index.html rename to vue2/packages/clients/textLocator/src/index.html diff --git a/packages/clients/textLocator/src/locales.ts b/vue2/packages/clients/textLocator/src/locales.ts similarity index 100% rename from packages/clients/textLocator/src/locales.ts rename to vue2/packages/clients/textLocator/src/locales.ts diff --git a/packages/clients/textLocator/src/mapConfig.ts b/vue2/packages/clients/textLocator/src/mapConfig.ts similarity index 100% rename from packages/clients/textLocator/src/mapConfig.ts rename to vue2/packages/clients/textLocator/src/mapConfig.ts diff --git a/packages/clients/textLocator/src/palettes.ts b/vue2/packages/clients/textLocator/src/palettes.ts similarity index 100% rename from packages/clients/textLocator/src/palettes.ts rename to vue2/packages/clients/textLocator/src/palettes.ts diff --git a/packages/clients/textLocator/src/plugins/GeometrySearch/components/Action.vue b/vue2/packages/clients/textLocator/src/plugins/GeometrySearch/components/Action.vue similarity index 100% rename from packages/clients/textLocator/src/plugins/GeometrySearch/components/Action.vue rename to vue2/packages/clients/textLocator/src/plugins/GeometrySearch/components/Action.vue diff --git a/packages/clients/textLocator/src/plugins/GeometrySearch/components/DrawMode.vue b/vue2/packages/clients/textLocator/src/plugins/GeometrySearch/components/DrawMode.vue similarity index 100% rename from packages/clients/textLocator/src/plugins/GeometrySearch/components/DrawMode.vue rename to vue2/packages/clients/textLocator/src/plugins/GeometrySearch/components/DrawMode.vue diff --git a/packages/clients/textLocator/src/plugins/GeometrySearch/components/GeometrySearch.vue b/vue2/packages/clients/textLocator/src/plugins/GeometrySearch/components/GeometrySearch.vue similarity index 100% rename from packages/clients/textLocator/src/plugins/GeometrySearch/components/GeometrySearch.vue rename to vue2/packages/clients/textLocator/src/plugins/GeometrySearch/components/GeometrySearch.vue diff --git a/packages/clients/textLocator/src/plugins/GeometrySearch/components/Tree.vue b/vue2/packages/clients/textLocator/src/plugins/GeometrySearch/components/Tree.vue similarity index 100% rename from packages/clients/textLocator/src/plugins/GeometrySearch/components/Tree.vue rename to vue2/packages/clients/textLocator/src/plugins/GeometrySearch/components/Tree.vue diff --git a/packages/clients/textLocator/src/plugins/GeometrySearch/components/ViewToggle.vue b/vue2/packages/clients/textLocator/src/plugins/GeometrySearch/components/ViewToggle.vue similarity index 100% rename from packages/clients/textLocator/src/plugins/GeometrySearch/components/ViewToggle.vue rename to vue2/packages/clients/textLocator/src/plugins/GeometrySearch/components/ViewToggle.vue diff --git a/packages/clients/textLocator/src/plugins/GeometrySearch/components/index.ts b/vue2/packages/clients/textLocator/src/plugins/GeometrySearch/components/index.ts similarity index 100% rename from packages/clients/textLocator/src/plugins/GeometrySearch/components/index.ts rename to vue2/packages/clients/textLocator/src/plugins/GeometrySearch/components/index.ts diff --git a/packages/clients/textLocator/src/plugins/GeometrySearch/index.ts b/vue2/packages/clients/textLocator/src/plugins/GeometrySearch/index.ts similarity index 100% rename from packages/clients/textLocator/src/plugins/GeometrySearch/index.ts rename to vue2/packages/clients/textLocator/src/plugins/GeometrySearch/index.ts diff --git a/packages/clients/textLocator/src/plugins/GeometrySearch/locales.ts b/vue2/packages/clients/textLocator/src/plugins/GeometrySearch/locales.ts similarity index 100% rename from packages/clients/textLocator/src/plugins/GeometrySearch/locales.ts rename to vue2/packages/clients/textLocator/src/plugins/GeometrySearch/locales.ts diff --git a/packages/clients/textLocator/src/plugins/GeometrySearch/store/actions/setupDrawReaction.ts b/vue2/packages/clients/textLocator/src/plugins/GeometrySearch/store/actions/setupDrawReaction.ts similarity index 100% rename from packages/clients/textLocator/src/plugins/GeometrySearch/store/actions/setupDrawReaction.ts rename to vue2/packages/clients/textLocator/src/plugins/GeometrySearch/store/actions/setupDrawReaction.ts diff --git a/packages/clients/textLocator/src/plugins/GeometrySearch/store/actions/setupTooltip.ts b/vue2/packages/clients/textLocator/src/plugins/GeometrySearch/store/actions/setupTooltip.ts similarity index 100% rename from packages/clients/textLocator/src/plugins/GeometrySearch/store/actions/setupTooltip.ts rename to vue2/packages/clients/textLocator/src/plugins/GeometrySearch/store/actions/setupTooltip.ts diff --git a/packages/clients/textLocator/src/plugins/GeometrySearch/store/actions/updateFrequencies.ts b/vue2/packages/clients/textLocator/src/plugins/GeometrySearch/store/actions/updateFrequencies.ts similarity index 100% rename from packages/clients/textLocator/src/plugins/GeometrySearch/store/actions/updateFrequencies.ts rename to vue2/packages/clients/textLocator/src/plugins/GeometrySearch/store/actions/updateFrequencies.ts diff --git a/packages/clients/textLocator/src/plugins/GeometrySearch/store/index.ts b/vue2/packages/clients/textLocator/src/plugins/GeometrySearch/store/index.ts similarity index 100% rename from packages/clients/textLocator/src/plugins/GeometrySearch/store/index.ts rename to vue2/packages/clients/textLocator/src/plugins/GeometrySearch/store/index.ts diff --git a/packages/clients/textLocator/src/plugins/GeometrySearch/types.ts b/vue2/packages/clients/textLocator/src/plugins/GeometrySearch/types.ts similarity index 100% rename from packages/clients/textLocator/src/plugins/GeometrySearch/types.ts rename to vue2/packages/clients/textLocator/src/plugins/GeometrySearch/types.ts diff --git a/packages/clients/textLocator/src/plugins/GeometrySearch/utils/makeTreeView.ts b/vue2/packages/clients/textLocator/src/plugins/GeometrySearch/utils/makeTreeView.ts similarity index 100% rename from packages/clients/textLocator/src/plugins/GeometrySearch/utils/makeTreeView.ts rename to vue2/packages/clients/textLocator/src/plugins/GeometrySearch/utils/makeTreeView.ts diff --git a/packages/clients/textLocator/src/plugins/GeometrySearch/utils/vectorDisplay.ts b/vue2/packages/clients/textLocator/src/plugins/GeometrySearch/utils/vectorDisplay.ts similarity index 100% rename from packages/clients/textLocator/src/plugins/GeometrySearch/utils/vectorDisplay.ts rename to vue2/packages/clients/textLocator/src/plugins/GeometrySearch/utils/vectorDisplay.ts diff --git a/packages/clients/textLocator/src/plugins/GeometrySearch/utils/vectorStyles.ts b/vue2/packages/clients/textLocator/src/plugins/GeometrySearch/utils/vectorStyles.ts similarity index 100% rename from packages/clients/textLocator/src/plugins/GeometrySearch/utils/vectorStyles.ts rename to vue2/packages/clients/textLocator/src/plugins/GeometrySearch/utils/vectorStyles.ts diff --git a/packages/clients/textLocator/src/plugins/Header/Header.vue b/vue2/packages/clients/textLocator/src/plugins/Header/Header.vue similarity index 100% rename from packages/clients/textLocator/src/plugins/Header/Header.vue rename to vue2/packages/clients/textLocator/src/plugins/Header/Header.vue diff --git a/packages/clients/textLocator/src/plugins/Header/index.ts b/vue2/packages/clients/textLocator/src/plugins/Header/index.ts similarity index 100% rename from packages/clients/textLocator/src/plugins/Header/index.ts rename to vue2/packages/clients/textLocator/src/plugins/Header/index.ts diff --git a/packages/clients/textLocator/src/plugins/Header/locales.ts b/vue2/packages/clients/textLocator/src/plugins/Header/locales.ts similarity index 100% rename from packages/clients/textLocator/src/plugins/Header/locales.ts rename to vue2/packages/clients/textLocator/src/plugins/Header/locales.ts diff --git a/packages/clients/textLocator/src/polar-client.ts b/vue2/packages/clients/textLocator/src/polar-client.ts similarity index 100% rename from packages/clients/textLocator/src/polar-client.ts rename to vue2/packages/clients/textLocator/src/polar-client.ts diff --git a/packages/clients/textLocator/src/services.ts b/vue2/packages/clients/textLocator/src/services.ts similarity index 100% rename from packages/clients/textLocator/src/services.ts rename to vue2/packages/clients/textLocator/src/services.ts diff --git a/packages/clients/textLocator/src/styles.css b/vue2/packages/clients/textLocator/src/styles.css similarity index 100% rename from packages/clients/textLocator/src/styles.css rename to vue2/packages/clients/textLocator/src/styles.css diff --git a/packages/clients/textLocator/src/types.ts b/vue2/packages/clients/textLocator/src/types.ts similarity index 100% rename from packages/clients/textLocator/src/types.ts rename to vue2/packages/clients/textLocator/src/types.ts diff --git a/packages/clients/textLocator/src/utils/coastalGazetteer/common.ts b/vue2/packages/clients/textLocator/src/utils/coastalGazetteer/common.ts similarity index 100% rename from packages/clients/textLocator/src/utils/coastalGazetteer/common.ts rename to vue2/packages/clients/textLocator/src/utils/coastalGazetteer/common.ts diff --git a/packages/clients/textLocator/src/utils/coastalGazetteer/getAllPages.ts b/vue2/packages/clients/textLocator/src/utils/coastalGazetteer/getAllPages.ts similarity index 100% rename from packages/clients/textLocator/src/utils/coastalGazetteer/getAllPages.ts rename to vue2/packages/clients/textLocator/src/utils/coastalGazetteer/getAllPages.ts diff --git a/packages/clients/textLocator/src/utils/coastalGazetteer/getPrimaryName.ts b/vue2/packages/clients/textLocator/src/utils/coastalGazetteer/getPrimaryName.ts similarity index 100% rename from packages/clients/textLocator/src/utils/coastalGazetteer/getPrimaryName.ts rename to vue2/packages/clients/textLocator/src/utils/coastalGazetteer/getPrimaryName.ts diff --git a/packages/clients/textLocator/src/utils/coastalGazetteer/makeRequestBody.ts b/vue2/packages/clients/textLocator/src/utils/coastalGazetteer/makeRequestBody.ts similarity index 100% rename from packages/clients/textLocator/src/utils/coastalGazetteer/makeRequestBody.ts rename to vue2/packages/clients/textLocator/src/utils/coastalGazetteer/makeRequestBody.ts diff --git a/packages/clients/textLocator/src/utils/coastalGazetteer/responseInterpreter.ts b/vue2/packages/clients/textLocator/src/utils/coastalGazetteer/responseInterpreter.ts similarity index 100% rename from packages/clients/textLocator/src/utils/coastalGazetteer/responseInterpreter.ts rename to vue2/packages/clients/textLocator/src/utils/coastalGazetteer/responseInterpreter.ts diff --git a/packages/clients/textLocator/src/utils/coastalGazetteer/searchGeometry.ts b/vue2/packages/clients/textLocator/src/utils/coastalGazetteer/searchGeometry.ts similarity index 100% rename from packages/clients/textLocator/src/utils/coastalGazetteer/searchGeometry.ts rename to vue2/packages/clients/textLocator/src/utils/coastalGazetteer/searchGeometry.ts diff --git a/packages/clients/textLocator/src/utils/coastalGazetteer/searchToponym.ts b/vue2/packages/clients/textLocator/src/utils/coastalGazetteer/searchToponym.ts similarity index 100% rename from packages/clients/textLocator/src/utils/coastalGazetteer/searchToponym.ts rename to vue2/packages/clients/textLocator/src/utils/coastalGazetteer/searchToponym.ts diff --git a/packages/clients/textLocator/src/utils/coastalGazetteer/types.ts b/vue2/packages/clients/textLocator/src/utils/coastalGazetteer/types.ts similarity index 100% rename from packages/clients/textLocator/src/utils/coastalGazetteer/types.ts rename to vue2/packages/clients/textLocator/src/utils/coastalGazetteer/types.ts diff --git a/packages/clients/textLocator/src/utils/common.ts b/vue2/packages/clients/textLocator/src/utils/common.ts similarity index 100% rename from packages/clients/textLocator/src/utils/common.ts rename to vue2/packages/clients/textLocator/src/utils/common.ts diff --git a/packages/clients/textLocator/src/utils/textLocatorBackend/findLiterature/searchLiterature.ts b/vue2/packages/clients/textLocator/src/utils/textLocatorBackend/findLiterature/searchLiterature.ts similarity index 100% rename from packages/clients/textLocator/src/utils/textLocatorBackend/findLiterature/searchLiterature.ts rename to vue2/packages/clients/textLocator/src/utils/textLocatorBackend/findLiterature/searchLiterature.ts diff --git a/packages/clients/textLocator/src/utils/textLocatorBackend/findLiterature/selectLiterature.ts b/vue2/packages/clients/textLocator/src/utils/textLocatorBackend/findLiterature/selectLiterature.ts similarity index 100% rename from packages/clients/textLocator/src/utils/textLocatorBackend/findLiterature/selectLiterature.ts rename to vue2/packages/clients/textLocator/src/utils/textLocatorBackend/findLiterature/selectLiterature.ts diff --git a/packages/clients/textLocator/src/utils/textLocatorBackend/literatureByToponym.ts b/vue2/packages/clients/textLocator/src/utils/textLocatorBackend/literatureByToponym.ts similarity index 100% rename from packages/clients/textLocator/src/utils/textLocatorBackend/literatureByToponym.ts rename to vue2/packages/clients/textLocator/src/utils/textLocatorBackend/literatureByToponym.ts diff --git a/packages/clients/textLocator/src/utils/textLocatorBackend/toponymByLiterature.ts b/vue2/packages/clients/textLocator/src/utils/textLocatorBackend/toponymByLiterature.ts similarity index 100% rename from packages/clients/textLocator/src/utils/textLocatorBackend/toponymByLiterature.ts rename to vue2/packages/clients/textLocator/src/utils/textLocatorBackend/toponymByLiterature.ts diff --git a/packages/clients/textLocator/src/utils/textLocatorBackend/urlSuffix.ts b/vue2/packages/clients/textLocator/src/utils/textLocatorBackend/urlSuffix.ts similarity index 100% rename from packages/clients/textLocator/src/utils/textLocatorBackend/urlSuffix.ts rename to vue2/packages/clients/textLocator/src/utils/textLocatorBackend/urlSuffix.ts diff --git a/packages/clients/textLocator/vite.config.js b/vue2/packages/clients/textLocator/vite.config.js similarity index 100% rename from packages/clients/textLocator/vite.config.js rename to vue2/packages/clients/textLocator/vite.config.js diff --git a/packages/components/CHANGELOG.md b/vue2/packages/components/CHANGELOG.md similarity index 100% rename from packages/components/CHANGELOG.md rename to vue2/packages/components/CHANGELOG.md diff --git a/packages/components/LICENSE b/vue2/packages/components/LICENSE similarity index 100% rename from packages/components/LICENSE rename to vue2/packages/components/LICENSE diff --git a/packages/components/MoveHandle.vue b/vue2/packages/components/MoveHandle.vue similarity index 100% rename from packages/components/MoveHandle.vue rename to vue2/packages/components/MoveHandle.vue diff --git a/packages/components/README.md b/vue2/packages/components/README.md similarity index 100% rename from packages/components/README.md rename to vue2/packages/components/README.md diff --git a/packages/components/index.ts b/vue2/packages/components/index.ts similarity index 100% rename from packages/components/index.ts rename to vue2/packages/components/index.ts diff --git a/packages/components/package.json b/vue2/packages/components/package.json similarity index 100% rename from packages/components/package.json rename to vue2/packages/components/package.json diff --git a/packages/components/tsconfig.json b/vue2/packages/components/tsconfig.json similarity index 100% rename from packages/components/tsconfig.json rename to vue2/packages/components/tsconfig.json diff --git a/packages/components/types.ts b/vue2/packages/components/types.ts similarity index 100% rename from packages/components/types.ts rename to vue2/packages/components/types.ts diff --git a/packages/core/CHANGELOG.md b/vue2/packages/core/CHANGELOG.md similarity index 100% rename from packages/core/CHANGELOG.md rename to vue2/packages/core/CHANGELOG.md diff --git a/packages/core/LICENSE b/vue2/packages/core/LICENSE similarity index 100% rename from packages/core/LICENSE rename to vue2/packages/core/LICENSE diff --git a/packages/core/README.md b/vue2/packages/core/README.md similarity index 100% rename from packages/core/README.md rename to vue2/packages/core/README.md diff --git a/packages/core/package.json b/vue2/packages/core/package.json similarity index 100% rename from packages/core/package.json rename to vue2/packages/core/package.json diff --git a/packages/core/src/components/MapContainer.vue b/vue2/packages/core/src/components/MapContainer.vue similarity index 100% rename from packages/core/src/components/MapContainer.vue rename to vue2/packages/core/src/components/MapContainer.vue diff --git a/packages/core/src/components/MapPlugin.vue b/vue2/packages/core/src/components/MapPlugin.vue similarity index 100% rename from packages/core/src/components/MapPlugin.vue rename to vue2/packages/core/src/components/MapPlugin.vue diff --git a/packages/core/src/components/MapUi.vue b/vue2/packages/core/src/components/MapUi.vue similarity index 100% rename from packages/core/src/components/MapUi.vue rename to vue2/packages/core/src/components/MapUi.vue diff --git a/packages/core/src/components/RadioCard.vue b/vue2/packages/core/src/components/RadioCard.vue similarity index 100% rename from packages/core/src/components/RadioCard.vue rename to vue2/packages/core/src/components/RadioCard.vue diff --git a/packages/core/src/components/index.ts b/vue2/packages/core/src/components/index.ts similarity index 100% rename from packages/core/src/components/index.ts rename to vue2/packages/core/src/components/index.ts diff --git a/packages/core/src/components/layouts/NineLayout.vue b/vue2/packages/core/src/components/layouts/NineLayout.vue similarity index 100% rename from packages/core/src/components/layouts/NineLayout.vue rename to vue2/packages/core/src/components/layouts/NineLayout.vue diff --git a/packages/core/src/components/layouts/NineLayoutTag.ts b/vue2/packages/core/src/components/layouts/NineLayoutTag.ts similarity index 100% rename from packages/core/src/components/layouts/NineLayoutTag.ts rename to vue2/packages/core/src/components/layouts/NineLayoutTag.ts diff --git a/packages/core/src/components/layouts/index.ts b/vue2/packages/core/src/components/layouts/index.ts similarity index 100% rename from packages/core/src/components/layouts/index.ts rename to vue2/packages/core/src/components/layouts/index.ts diff --git a/packages/core/src/i18n/index.ts b/vue2/packages/core/src/i18n/index.ts similarity index 100% rename from packages/core/src/i18n/index.ts rename to vue2/packages/core/src/i18n/index.ts diff --git a/packages/core/src/index.ts b/vue2/packages/core/src/index.ts similarity index 100% rename from packages/core/src/index.ts rename to vue2/packages/core/src/index.ts diff --git a/packages/core/src/locales.ts b/vue2/packages/core/src/locales.ts similarity index 100% rename from packages/core/src/locales.ts rename to vue2/packages/core/src/locales.ts diff --git a/packages/core/src/monkeyCrossOrigin.ts b/vue2/packages/core/src/monkeyCrossOrigin.ts similarity index 100% rename from packages/core/src/monkeyCrossOrigin.ts rename to vue2/packages/core/src/monkeyCrossOrigin.ts diff --git a/packages/core/src/monkeyHeaderLoader.ts b/vue2/packages/core/src/monkeyHeaderLoader.ts similarity index 100% rename from packages/core/src/monkeyHeaderLoader.ts rename to vue2/packages/core/src/monkeyHeaderLoader.ts diff --git a/packages/core/src/storeModules/capabilities.ts b/vue2/packages/core/src/storeModules/capabilities.ts similarity index 100% rename from packages/core/src/storeModules/capabilities.ts rename to vue2/packages/core/src/storeModules/capabilities.ts diff --git a/packages/core/src/types.ts b/vue2/packages/core/src/types.ts similarity index 100% rename from packages/core/src/types.ts rename to vue2/packages/core/src/types.ts diff --git a/packages/core/src/utils/addClusterStyle.ts b/vue2/packages/core/src/utils/addClusterStyle.ts similarity index 100% rename from packages/core/src/utils/addClusterStyle.ts rename to vue2/packages/core/src/utils/addClusterStyle.ts diff --git a/packages/core/src/utils/addPlugins.ts b/vue2/packages/core/src/utils/addPlugins.ts similarity index 100% rename from packages/core/src/utils/addPlugins.ts rename to vue2/packages/core/src/utils/addPlugins.ts diff --git a/packages/core/src/utils/constants.ts b/vue2/packages/core/src/utils/constants.ts similarity index 100% rename from packages/core/src/utils/constants.ts rename to vue2/packages/core/src/utils/constants.ts diff --git a/packages/core/src/utils/createMap/defaults.ts b/vue2/packages/core/src/utils/createMap/defaults.ts similarity index 100% rename from packages/core/src/utils/createMap/defaults.ts rename to vue2/packages/core/src/utils/createMap/defaults.ts diff --git a/packages/core/src/utils/createMap/index.ts b/vue2/packages/core/src/utils/createMap/index.ts similarity index 100% rename from packages/core/src/utils/createMap/index.ts rename to vue2/packages/core/src/utils/createMap/index.ts diff --git a/packages/core/src/utils/createMap/makeShadowRoot.ts b/vue2/packages/core/src/utils/createMap/makeShadowRoot.ts similarity index 100% rename from packages/core/src/utils/createMap/makeShadowRoot.ts rename to vue2/packages/core/src/utils/createMap/makeShadowRoot.ts diff --git a/packages/core/src/utils/createMap/pullPolarStyleToShadow.ts b/vue2/packages/core/src/utils/createMap/pullPolarStyleToShadow.ts similarity index 100% rename from packages/core/src/utils/createMap/pullPolarStyleToShadow.ts rename to vue2/packages/core/src/utils/createMap/pullPolarStyleToShadow.ts diff --git a/packages/core/src/utils/createMap/pullVuetifyStyleToShadow.ts b/vue2/packages/core/src/utils/createMap/pullVuetifyStyleToShadow.ts similarity index 100% rename from packages/core/src/utils/createMap/pullVuetifyStyleToShadow.ts rename to vue2/packages/core/src/utils/createMap/pullVuetifyStyleToShadow.ts diff --git a/packages/core/src/utils/createMap/setupFontawesome.ts b/vue2/packages/core/src/utils/createMap/setupFontawesome.ts similarity index 100% rename from packages/core/src/utils/createMap/setupFontawesome.ts rename to vue2/packages/core/src/utils/createMap/setupFontawesome.ts diff --git a/packages/core/src/utils/createMap/subscribe.ts b/vue2/packages/core/src/utils/createMap/subscribe.ts similarity index 100% rename from packages/core/src/utils/createMap/subscribe.ts rename to vue2/packages/core/src/utils/createMap/subscribe.ts diff --git a/packages/core/src/utils/createMap/updateSizeOnReady.ts b/vue2/packages/core/src/utils/createMap/updateSizeOnReady.ts similarity index 100% rename from packages/core/src/utils/createMap/updateSizeOnReady.ts rename to vue2/packages/core/src/utils/createMap/updateSizeOnReady.ts diff --git a/packages/core/src/utils/interactions.ts b/vue2/packages/core/src/utils/interactions.ts similarity index 100% rename from packages/core/src/utils/interactions.ts rename to vue2/packages/core/src/utils/interactions.ts diff --git a/packages/core/src/utils/layout.ts b/vue2/packages/core/src/utils/layout.ts similarity index 100% rename from packages/core/src/utils/layout.ts rename to vue2/packages/core/src/utils/layout.ts diff --git a/packages/core/src/utils/mapZoomOffset.ts b/vue2/packages/core/src/utils/mapZoomOffset.ts similarity index 100% rename from packages/core/src/utils/mapZoomOffset.ts rename to vue2/packages/core/src/utils/mapZoomOffset.ts diff --git a/packages/core/src/utils/markers/hatches.ts b/vue2/packages/core/src/utils/markers/hatches.ts similarity index 100% rename from packages/core/src/utils/markers/hatches.ts rename to vue2/packages/core/src/utils/markers/hatches.ts diff --git a/packages/core/src/utils/markers/index.ts b/vue2/packages/core/src/utils/markers/index.ts similarity index 100% rename from packages/core/src/utils/markers/index.ts rename to vue2/packages/core/src/utils/markers/index.ts diff --git a/packages/core/src/utils/resolveClusterClick.ts b/vue2/packages/core/src/utils/resolveClusterClick.ts similarity index 100% rename from packages/core/src/utils/resolveClusterClick.ts rename to vue2/packages/core/src/utils/resolveClusterClick.ts diff --git a/packages/core/src/utils/setupStyling.ts b/vue2/packages/core/src/utils/setupStyling.ts similarity index 100% rename from packages/core/src/utils/setupStyling.ts rename to vue2/packages/core/src/utils/setupStyling.ts diff --git a/packages/core/src/utils/sortPluginsByLayout.ts b/vue2/packages/core/src/utils/sortPluginsByLayout.ts similarity index 100% rename from packages/core/src/utils/sortPluginsByLayout.ts rename to vue2/packages/core/src/utils/sortPluginsByLayout.ts diff --git a/packages/core/src/vuePlugins/actions/addInterceptor.ts b/vue2/packages/core/src/vuePlugins/actions/addInterceptor.ts similarity index 100% rename from packages/core/src/vuePlugins/actions/addInterceptor.ts rename to vue2/packages/core/src/vuePlugins/actions/addInterceptor.ts diff --git a/packages/core/src/vuePlugins/actions/checkServiceAvailability.ts b/vue2/packages/core/src/vuePlugins/actions/checkServiceAvailability.ts similarity index 100% rename from packages/core/src/vuePlugins/actions/checkServiceAvailability.ts rename to vue2/packages/core/src/vuePlugins/actions/checkServiceAvailability.ts diff --git a/packages/core/src/vuePlugins/actions/useExtendedMasterportalapiMarkers/index.ts b/vue2/packages/core/src/vuePlugins/actions/useExtendedMasterportalapiMarkers/index.ts similarity index 100% rename from packages/core/src/vuePlugins/actions/useExtendedMasterportalapiMarkers/index.ts rename to vue2/packages/core/src/vuePlugins/actions/useExtendedMasterportalapiMarkers/index.ts diff --git a/packages/core/src/vuePlugins/actions/useExtendedMasterportalapiMarkers/setLayerId.ts b/vue2/packages/core/src/vuePlugins/actions/useExtendedMasterportalapiMarkers/setLayerId.ts similarity index 100% rename from packages/core/src/vuePlugins/actions/useExtendedMasterportalapiMarkers/setLayerId.ts rename to vue2/packages/core/src/vuePlugins/actions/useExtendedMasterportalapiMarkers/setLayerId.ts diff --git a/packages/core/src/vuePlugins/vuetify.ts b/vue2/packages/core/src/vuePlugins/vuetify.ts similarity index 100% rename from packages/core/src/vuePlugins/vuetify.ts rename to vue2/packages/core/src/vuePlugins/vuetify.ts diff --git a/packages/core/src/vuePlugins/vuex.ts b/vue2/packages/core/src/vuePlugins/vuex.ts similarity index 100% rename from packages/core/src/vuePlugins/vuex.ts rename to vue2/packages/core/src/vuePlugins/vuex.ts diff --git a/packages/core/vite.config.js b/vue2/packages/core/vite.config.js similarity index 100% rename from packages/core/vite.config.js rename to vue2/packages/core/vite.config.js diff --git a/packages/lib/getCluster/CHANGELOG.md b/vue2/packages/lib/getCluster/CHANGELOG.md similarity index 100% rename from packages/lib/getCluster/CHANGELOG.md rename to vue2/packages/lib/getCluster/CHANGELOG.md diff --git a/packages/lib/getCluster/LICENSE b/vue2/packages/lib/getCluster/LICENSE similarity index 100% rename from packages/lib/getCluster/LICENSE rename to vue2/packages/lib/getCluster/LICENSE diff --git a/packages/lib/getCluster/README.md b/vue2/packages/lib/getCluster/README.md similarity index 100% rename from packages/lib/getCluster/README.md rename to vue2/packages/lib/getCluster/README.md diff --git a/packages/lib/getCluster/index.ts b/vue2/packages/lib/getCluster/index.ts similarity index 100% rename from packages/lib/getCluster/index.ts rename to vue2/packages/lib/getCluster/index.ts diff --git a/packages/lib/getCluster/package.json b/vue2/packages/lib/getCluster/package.json similarity index 100% rename from packages/lib/getCluster/package.json rename to vue2/packages/lib/getCluster/package.json diff --git a/packages/lib/getCluster/vite.config.js b/vue2/packages/lib/getCluster/vite.config.js similarity index 100% rename from packages/lib/getCluster/vite.config.js rename to vue2/packages/lib/getCluster/vite.config.js diff --git a/packages/lib/getFeatures/CHANGELOG.md b/vue2/packages/lib/getFeatures/CHANGELOG.md similarity index 100% rename from packages/lib/getFeatures/CHANGELOG.md rename to vue2/packages/lib/getFeatures/CHANGELOG.md diff --git a/packages/lib/getFeatures/LICENSE b/vue2/packages/lib/getFeatures/LICENSE similarity index 100% rename from packages/lib/getFeatures/LICENSE rename to vue2/packages/lib/getFeatures/LICENSE diff --git a/packages/lib/getFeatures/README.md b/vue2/packages/lib/getFeatures/README.md similarity index 100% rename from packages/lib/getFeatures/README.md rename to vue2/packages/lib/getFeatures/README.md diff --git a/packages/lib/getFeatures/index.ts b/vue2/packages/lib/getFeatures/index.ts similarity index 100% rename from packages/lib/getFeatures/index.ts rename to vue2/packages/lib/getFeatures/index.ts diff --git a/packages/lib/getFeatures/package.json b/vue2/packages/lib/getFeatures/package.json similarity index 100% rename from packages/lib/getFeatures/package.json rename to vue2/packages/lib/getFeatures/package.json diff --git a/packages/lib/getFeatures/tests/wfs.spec.ts b/vue2/packages/lib/getFeatures/tests/wfs.spec.ts similarity index 100% rename from packages/lib/getFeatures/tests/wfs.spec.ts rename to vue2/packages/lib/getFeatures/tests/wfs.spec.ts diff --git a/packages/lib/getFeatures/types.ts b/vue2/packages/lib/getFeatures/types.ts similarity index 100% rename from packages/lib/getFeatures/types.ts rename to vue2/packages/lib/getFeatures/types.ts diff --git a/packages/lib/getFeatures/utils/errorCheck.ts b/vue2/packages/lib/getFeatures/utils/errorCheck.ts similarity index 100% rename from packages/lib/getFeatures/utils/errorCheck.ts rename to vue2/packages/lib/getFeatures/utils/errorCheck.ts diff --git a/packages/lib/getFeatures/vector/index.ts b/vue2/packages/lib/getFeatures/vector/index.ts similarity index 100% rename from packages/lib/getFeatures/vector/index.ts rename to vue2/packages/lib/getFeatures/vector/index.ts diff --git a/packages/lib/getFeatures/vite.config.js b/vue2/packages/lib/getFeatures/vite.config.js similarity index 100% rename from packages/lib/getFeatures/vite.config.js rename to vue2/packages/lib/getFeatures/vite.config.js diff --git a/packages/lib/getFeatures/wfs/buildWfsFilter.ts b/vue2/packages/lib/getFeatures/wfs/buildWfsFilter.ts similarity index 100% rename from packages/lib/getFeatures/wfs/buildWfsFilter.ts rename to vue2/packages/lib/getFeatures/wfs/buildWfsFilter.ts diff --git a/packages/lib/getFeatures/wfs/getFeatureTitleFromPattern.ts b/vue2/packages/lib/getFeatures/wfs/getFeatureTitleFromPattern.ts similarity index 100% rename from packages/lib/getFeatures/wfs/getFeatureTitleFromPattern.ts rename to vue2/packages/lib/getFeatures/wfs/getFeatureTitleFromPattern.ts diff --git a/packages/lib/getFeatures/wfs/index.ts b/vue2/packages/lib/getFeatures/wfs/index.ts similarity index 100% rename from packages/lib/getFeatures/wfs/index.ts rename to vue2/packages/lib/getFeatures/wfs/index.ts diff --git a/packages/lib/getFeatures/wfs/match.ts b/vue2/packages/lib/getFeatures/wfs/match.ts similarity index 100% rename from packages/lib/getFeatures/wfs/match.ts rename to vue2/packages/lib/getFeatures/wfs/match.ts diff --git a/packages/lib/getFeatures/wfs/parse.ts b/vue2/packages/lib/getFeatures/wfs/parse.ts similarity index 100% rename from packages/lib/getFeatures/wfs/parse.ts rename to vue2/packages/lib/getFeatures/wfs/parse.ts diff --git a/packages/lib/idx/CHANGELOG.md b/vue2/packages/lib/idx/CHANGELOG.md similarity index 100% rename from packages/lib/idx/CHANGELOG.md rename to vue2/packages/lib/idx/CHANGELOG.md diff --git a/packages/lib/idx/LICENSE b/vue2/packages/lib/idx/LICENSE similarity index 100% rename from packages/lib/idx/LICENSE rename to vue2/packages/lib/idx/LICENSE diff --git a/packages/lib/idx/README.md b/vue2/packages/lib/idx/README.md similarity index 100% rename from packages/lib/idx/README.md rename to vue2/packages/lib/idx/README.md diff --git a/packages/lib/idx/index.ts b/vue2/packages/lib/idx/index.ts similarity index 100% rename from packages/lib/idx/index.ts rename to vue2/packages/lib/idx/index.ts diff --git a/packages/lib/idx/package.json b/vue2/packages/lib/idx/package.json similarity index 100% rename from packages/lib/idx/package.json rename to vue2/packages/lib/idx/package.json diff --git a/packages/lib/idx/vite.config.js b/vue2/packages/lib/idx/vite.config.js similarity index 100% rename from packages/lib/idx/vite.config.js rename to vue2/packages/lib/idx/vite.config.js diff --git a/packages/lib/invisibleStyle/CHANGELOG.md b/vue2/packages/lib/invisibleStyle/CHANGELOG.md similarity index 100% rename from packages/lib/invisibleStyle/CHANGELOG.md rename to vue2/packages/lib/invisibleStyle/CHANGELOG.md diff --git a/packages/lib/invisibleStyle/LICENSE b/vue2/packages/lib/invisibleStyle/LICENSE similarity index 100% rename from packages/lib/invisibleStyle/LICENSE rename to vue2/packages/lib/invisibleStyle/LICENSE diff --git a/packages/lib/invisibleStyle/README.md b/vue2/packages/lib/invisibleStyle/README.md similarity index 100% rename from packages/lib/invisibleStyle/README.md rename to vue2/packages/lib/invisibleStyle/README.md diff --git a/packages/lib/invisibleStyle/index.ts b/vue2/packages/lib/invisibleStyle/index.ts similarity index 100% rename from packages/lib/invisibleStyle/index.ts rename to vue2/packages/lib/invisibleStyle/index.ts diff --git a/packages/lib/invisibleStyle/package.json b/vue2/packages/lib/invisibleStyle/package.json similarity index 100% rename from packages/lib/invisibleStyle/package.json rename to vue2/packages/lib/invisibleStyle/package.json diff --git a/packages/lib/invisibleStyle/vite.config.js b/vue2/packages/lib/invisibleStyle/vite.config.js similarity index 100% rename from packages/lib/invisibleStyle/vite.config.js rename to vue2/packages/lib/invisibleStyle/vite.config.js diff --git a/packages/lib/passesBoundaryCheck/CHANGELOG.md b/vue2/packages/lib/passesBoundaryCheck/CHANGELOG.md similarity index 100% rename from packages/lib/passesBoundaryCheck/CHANGELOG.md rename to vue2/packages/lib/passesBoundaryCheck/CHANGELOG.md diff --git a/packages/lib/passesBoundaryCheck/LICENSE b/vue2/packages/lib/passesBoundaryCheck/LICENSE similarity index 100% rename from packages/lib/passesBoundaryCheck/LICENSE rename to vue2/packages/lib/passesBoundaryCheck/LICENSE diff --git a/packages/lib/passesBoundaryCheck/README.md b/vue2/packages/lib/passesBoundaryCheck/README.md similarity index 100% rename from packages/lib/passesBoundaryCheck/README.md rename to vue2/packages/lib/passesBoundaryCheck/README.md diff --git a/packages/lib/passesBoundaryCheck/index.ts b/vue2/packages/lib/passesBoundaryCheck/index.ts similarity index 100% rename from packages/lib/passesBoundaryCheck/index.ts rename to vue2/packages/lib/passesBoundaryCheck/index.ts diff --git a/packages/lib/passesBoundaryCheck/package.json b/vue2/packages/lib/passesBoundaryCheck/package.json similarity index 100% rename from packages/lib/passesBoundaryCheck/package.json rename to vue2/packages/lib/passesBoundaryCheck/package.json diff --git a/packages/lib/passesBoundaryCheck/vite.config.js b/vue2/packages/lib/passesBoundaryCheck/vite.config.js similarity index 100% rename from packages/lib/passesBoundaryCheck/vite.config.js rename to vue2/packages/lib/passesBoundaryCheck/vite.config.js diff --git a/packages/lib/testMountParameters/CHANGELOG.md b/vue2/packages/lib/testMountParameters/CHANGELOG.md similarity index 100% rename from packages/lib/testMountParameters/CHANGELOG.md rename to vue2/packages/lib/testMountParameters/CHANGELOG.md diff --git a/packages/lib/testMountParameters/LICENSE b/vue2/packages/lib/testMountParameters/LICENSE similarity index 100% rename from packages/lib/testMountParameters/LICENSE rename to vue2/packages/lib/testMountParameters/LICENSE diff --git a/packages/lib/testMountParameters/README.md b/vue2/packages/lib/testMountParameters/README.md similarity index 100% rename from packages/lib/testMountParameters/README.md rename to vue2/packages/lib/testMountParameters/README.md diff --git a/packages/lib/testMountParameters/index.ts b/vue2/packages/lib/testMountParameters/index.ts similarity index 100% rename from packages/lib/testMountParameters/index.ts rename to vue2/packages/lib/testMountParameters/index.ts diff --git a/packages/lib/testMountParameters/package.json b/vue2/packages/lib/testMountParameters/package.json similarity index 100% rename from packages/lib/testMountParameters/package.json rename to vue2/packages/lib/testMountParameters/package.json diff --git a/packages/lib/tooltip/CHANGELOG.md b/vue2/packages/lib/tooltip/CHANGELOG.md similarity index 100% rename from packages/lib/tooltip/CHANGELOG.md rename to vue2/packages/lib/tooltip/CHANGELOG.md diff --git a/packages/lib/tooltip/LICENSE b/vue2/packages/lib/tooltip/LICENSE similarity index 100% rename from packages/lib/tooltip/LICENSE rename to vue2/packages/lib/tooltip/LICENSE diff --git a/packages/lib/tooltip/README.md b/vue2/packages/lib/tooltip/README.md similarity index 100% rename from packages/lib/tooltip/README.md rename to vue2/packages/lib/tooltip/README.md diff --git a/packages/lib/tooltip/index.ts b/vue2/packages/lib/tooltip/index.ts similarity index 100% rename from packages/lib/tooltip/index.ts rename to vue2/packages/lib/tooltip/index.ts diff --git a/packages/lib/tooltip/package.json b/vue2/packages/lib/tooltip/package.json similarity index 100% rename from packages/lib/tooltip/package.json rename to vue2/packages/lib/tooltip/package.json diff --git a/packages/lib/tooltip/vite.config.js b/vue2/packages/lib/tooltip/vite.config.js similarity index 100% rename from packages/lib/tooltip/vite.config.js rename to vue2/packages/lib/tooltip/vite.config.js diff --git a/packages/plugins/AddressSearch/CHANGELOG.md b/vue2/packages/plugins/AddressSearch/CHANGELOG.md similarity index 100% rename from packages/plugins/AddressSearch/CHANGELOG.md rename to vue2/packages/plugins/AddressSearch/CHANGELOG.md diff --git a/packages/plugins/AddressSearch/LICENSE b/vue2/packages/plugins/AddressSearch/LICENSE similarity index 100% rename from packages/plugins/AddressSearch/LICENSE rename to vue2/packages/plugins/AddressSearch/LICENSE diff --git a/packages/plugins/AddressSearch/README.md b/vue2/packages/plugins/AddressSearch/README.md similarity index 100% rename from packages/plugins/AddressSearch/README.md rename to vue2/packages/plugins/AddressSearch/README.md diff --git a/packages/plugins/AddressSearch/package.json b/vue2/packages/plugins/AddressSearch/package.json similarity index 100% rename from packages/plugins/AddressSearch/package.json rename to vue2/packages/plugins/AddressSearch/package.json diff --git a/packages/plugins/AddressSearch/src/components/AddressSearch.vue b/vue2/packages/plugins/AddressSearch/src/components/AddressSearch.vue similarity index 100% rename from packages/plugins/AddressSearch/src/components/AddressSearch.vue rename to vue2/packages/plugins/AddressSearch/src/components/AddressSearch.vue diff --git a/packages/plugins/AddressSearch/src/components/GroupSelect.vue b/vue2/packages/plugins/AddressSearch/src/components/GroupSelect.vue similarity index 100% rename from packages/plugins/AddressSearch/src/components/GroupSelect.vue rename to vue2/packages/plugins/AddressSearch/src/components/GroupSelect.vue diff --git a/packages/plugins/AddressSearch/src/components/Input.vue b/vue2/packages/plugins/AddressSearch/src/components/Input.vue similarity index 100% rename from packages/plugins/AddressSearch/src/components/Input.vue rename to vue2/packages/plugins/AddressSearch/src/components/Input.vue diff --git a/packages/plugins/AddressSearch/src/components/Results.vue b/vue2/packages/plugins/AddressSearch/src/components/Results.vue similarity index 100% rename from packages/plugins/AddressSearch/src/components/Results.vue rename to vue2/packages/plugins/AddressSearch/src/components/Results.vue diff --git a/packages/plugins/AddressSearch/src/components/SearchContainer.vue b/vue2/packages/plugins/AddressSearch/src/components/SearchContainer.vue similarity index 100% rename from packages/plugins/AddressSearch/src/components/SearchContainer.vue rename to vue2/packages/plugins/AddressSearch/src/components/SearchContainer.vue diff --git a/packages/plugins/AddressSearch/src/components/index.ts b/vue2/packages/plugins/AddressSearch/src/components/index.ts similarity index 100% rename from packages/plugins/AddressSearch/src/components/index.ts rename to vue2/packages/plugins/AddressSearch/src/components/index.ts diff --git a/packages/plugins/AddressSearch/src/index.ts b/vue2/packages/plugins/AddressSearch/src/index.ts similarity index 100% rename from packages/plugins/AddressSearch/src/index.ts rename to vue2/packages/plugins/AddressSearch/src/index.ts diff --git a/packages/plugins/AddressSearch/src/locales.ts b/vue2/packages/plugins/AddressSearch/src/locales.ts similarity index 100% rename from packages/plugins/AddressSearch/src/locales.ts rename to vue2/packages/plugins/AddressSearch/src/locales.ts diff --git a/packages/plugins/AddressSearch/src/store/actions.ts b/vue2/packages/plugins/AddressSearch/src/store/actions.ts similarity index 100% rename from packages/plugins/AddressSearch/src/store/actions.ts rename to vue2/packages/plugins/AddressSearch/src/store/actions.ts diff --git a/packages/plugins/AddressSearch/src/store/getters.ts b/vue2/packages/plugins/AddressSearch/src/store/getters.ts similarity index 100% rename from packages/plugins/AddressSearch/src/store/getters.ts rename to vue2/packages/plugins/AddressSearch/src/store/getters.ts diff --git a/packages/plugins/AddressSearch/src/store/index.ts b/vue2/packages/plugins/AddressSearch/src/store/index.ts similarity index 100% rename from packages/plugins/AddressSearch/src/store/index.ts rename to vue2/packages/plugins/AddressSearch/src/store/index.ts diff --git a/packages/plugins/AddressSearch/src/store/state.ts b/vue2/packages/plugins/AddressSearch/src/store/state.ts similarity index 100% rename from packages/plugins/AddressSearch/src/store/state.ts rename to vue2/packages/plugins/AddressSearch/src/store/state.ts diff --git a/packages/plugins/AddressSearch/src/types.ts b/vue2/packages/plugins/AddressSearch/src/types.ts similarity index 100% rename from packages/plugins/AddressSearch/src/types.ts rename to vue2/packages/plugins/AddressSearch/src/types.ts diff --git a/packages/plugins/AddressSearch/src/utils/emTitleByInput.ts b/vue2/packages/plugins/AddressSearch/src/utils/emTitleByInput.ts similarity index 100% rename from packages/plugins/AddressSearch/src/utils/emTitleByInput.ts rename to vue2/packages/plugins/AddressSearch/src/utils/emTitleByInput.ts diff --git a/packages/plugins/AddressSearch/src/utils/focusFirstResult.ts b/vue2/packages/plugins/AddressSearch/src/utils/focusFirstResult.ts similarity index 100% rename from packages/plugins/AddressSearch/src/utils/focusFirstResult.ts rename to vue2/packages/plugins/AddressSearch/src/utils/focusFirstResult.ts diff --git a/packages/plugins/AddressSearch/src/utils/searchMethods/bkg.ts b/vue2/packages/plugins/AddressSearch/src/utils/searchMethods/bkg.ts similarity index 100% rename from packages/plugins/AddressSearch/src/utils/searchMethods/bkg.ts rename to vue2/packages/plugins/AddressSearch/src/utils/searchMethods/bkg.ts diff --git a/packages/plugins/AddressSearch/src/utils/searchMethods/getSearchMethod.ts b/vue2/packages/plugins/AddressSearch/src/utils/searchMethods/getSearchMethod.ts similarity index 100% rename from packages/plugins/AddressSearch/src/utils/searchMethods/getSearchMethod.ts rename to vue2/packages/plugins/AddressSearch/src/utils/searchMethods/getSearchMethod.ts diff --git a/packages/plugins/AddressSearch/src/utils/searchMethods/mpapi.ts b/vue2/packages/plugins/AddressSearch/src/utils/searchMethods/mpapi.ts similarity index 100% rename from packages/plugins/AddressSearch/src/utils/searchMethods/mpapi.ts rename to vue2/packages/plugins/AddressSearch/src/utils/searchMethods/mpapi.ts diff --git a/packages/plugins/AddressSearch/src/utils/searchResultSymbols.ts b/vue2/packages/plugins/AddressSearch/src/utils/searchResultSymbols.ts similarity index 100% rename from packages/plugins/AddressSearch/src/utils/searchResultSymbols.ts rename to vue2/packages/plugins/AddressSearch/src/utils/searchResultSymbols.ts diff --git a/packages/plugins/AddressSearch/vite.config.js b/vue2/packages/plugins/AddressSearch/vite.config.js similarity index 100% rename from packages/plugins/AddressSearch/vite.config.js rename to vue2/packages/plugins/AddressSearch/vite.config.js diff --git a/packages/plugins/Attributions/CHANGELOG.md b/vue2/packages/plugins/Attributions/CHANGELOG.md similarity index 100% rename from packages/plugins/Attributions/CHANGELOG.md rename to vue2/packages/plugins/Attributions/CHANGELOG.md diff --git a/packages/plugins/Attributions/LICENSE b/vue2/packages/plugins/Attributions/LICENSE similarity index 100% rename from packages/plugins/Attributions/LICENSE rename to vue2/packages/plugins/Attributions/LICENSE diff --git a/packages/plugins/Attributions/README.md b/vue2/packages/plugins/Attributions/README.md similarity index 100% rename from packages/plugins/Attributions/README.md rename to vue2/packages/plugins/Attributions/README.md diff --git a/packages/plugins/Attributions/package.json b/vue2/packages/plugins/Attributions/package.json similarity index 100% rename from packages/plugins/Attributions/package.json rename to vue2/packages/plugins/Attributions/package.json diff --git a/packages/plugins/Attributions/src/components/AttributionButton.vue b/vue2/packages/plugins/Attributions/src/components/AttributionButton.vue similarity index 100% rename from packages/plugins/Attributions/src/components/AttributionButton.vue rename to vue2/packages/plugins/Attributions/src/components/AttributionButton.vue diff --git a/packages/plugins/Attributions/src/components/AttributionContent.vue b/vue2/packages/plugins/Attributions/src/components/AttributionContent.vue similarity index 100% rename from packages/plugins/Attributions/src/components/AttributionContent.vue rename to vue2/packages/plugins/Attributions/src/components/AttributionContent.vue diff --git a/packages/plugins/Attributions/src/components/Attributions.vue b/vue2/packages/plugins/Attributions/src/components/Attributions.vue similarity index 100% rename from packages/plugins/Attributions/src/components/Attributions.vue rename to vue2/packages/plugins/Attributions/src/components/Attributions.vue diff --git a/packages/plugins/Attributions/src/components/index.ts b/vue2/packages/plugins/Attributions/src/components/index.ts similarity index 100% rename from packages/plugins/Attributions/src/components/index.ts rename to vue2/packages/plugins/Attributions/src/components/index.ts diff --git a/packages/plugins/Attributions/src/index.ts b/vue2/packages/plugins/Attributions/src/index.ts similarity index 100% rename from packages/plugins/Attributions/src/index.ts rename to vue2/packages/plugins/Attributions/src/index.ts diff --git a/packages/plugins/Attributions/src/locales.ts b/vue2/packages/plugins/Attributions/src/locales.ts similarity index 100% rename from packages/plugins/Attributions/src/locales.ts rename to vue2/packages/plugins/Attributions/src/locales.ts diff --git a/packages/plugins/Attributions/src/store/index.ts b/vue2/packages/plugins/Attributions/src/store/index.ts similarity index 100% rename from packages/plugins/Attributions/src/store/index.ts rename to vue2/packages/plugins/Attributions/src/store/index.ts diff --git a/packages/plugins/Attributions/src/types.ts b/vue2/packages/plugins/Attributions/src/types.ts similarity index 100% rename from packages/plugins/Attributions/src/types.ts rename to vue2/packages/plugins/Attributions/src/types.ts diff --git a/packages/plugins/Attributions/src/utils/lib.ts b/vue2/packages/plugins/Attributions/src/utils/lib.ts similarity index 100% rename from packages/plugins/Attributions/src/utils/lib.ts rename to vue2/packages/plugins/Attributions/src/utils/lib.ts diff --git a/packages/plugins/Attributions/tests/attributions.spec.ts b/vue2/packages/plugins/Attributions/tests/attributions.spec.ts similarity index 100% rename from packages/plugins/Attributions/tests/attributions.spec.ts rename to vue2/packages/plugins/Attributions/tests/attributions.spec.ts diff --git a/packages/plugins/Attributions/vite.config.js b/vue2/packages/plugins/Attributions/vite.config.js similarity index 100% rename from packages/plugins/Attributions/vite.config.js rename to vue2/packages/plugins/Attributions/vite.config.js diff --git a/packages/plugins/Draw/CHANGELOG.md b/vue2/packages/plugins/Draw/CHANGELOG.md similarity index 100% rename from packages/plugins/Draw/CHANGELOG.md rename to vue2/packages/plugins/Draw/CHANGELOG.md diff --git a/packages/plugins/Draw/LICENSE b/vue2/packages/plugins/Draw/LICENSE similarity index 100% rename from packages/plugins/Draw/LICENSE rename to vue2/packages/plugins/Draw/LICENSE diff --git a/packages/plugins/Draw/README.md b/vue2/packages/plugins/Draw/README.md similarity index 100% rename from packages/plugins/Draw/README.md rename to vue2/packages/plugins/Draw/README.md diff --git a/packages/plugins/Draw/package.json b/vue2/packages/plugins/Draw/package.json similarity index 100% rename from packages/plugins/Draw/package.json rename to vue2/packages/plugins/Draw/package.json diff --git a/packages/plugins/Draw/src/components/Draw.vue b/vue2/packages/plugins/Draw/src/components/Draw.vue similarity index 100% rename from packages/plugins/Draw/src/components/Draw.vue rename to vue2/packages/plugins/Draw/src/components/Draw.vue diff --git a/packages/plugins/Draw/src/components/DrawOptions.vue b/vue2/packages/plugins/Draw/src/components/DrawOptions.vue similarity index 100% rename from packages/plugins/Draw/src/components/DrawOptions.vue rename to vue2/packages/plugins/Draw/src/components/DrawOptions.vue diff --git a/packages/plugins/Draw/src/components/index.ts b/vue2/packages/plugins/Draw/src/components/index.ts similarity index 100% rename from packages/plugins/Draw/src/components/index.ts rename to vue2/packages/plugins/Draw/src/components/index.ts diff --git a/packages/plugins/Draw/src/index.ts b/vue2/packages/plugins/Draw/src/index.ts similarity index 100% rename from packages/plugins/Draw/src/index.ts rename to vue2/packages/plugins/Draw/src/index.ts diff --git a/packages/plugins/Draw/src/locales.ts b/vue2/packages/plugins/Draw/src/locales.ts similarity index 100% rename from packages/plugins/Draw/src/locales.ts rename to vue2/packages/plugins/Draw/src/locales.ts diff --git a/packages/plugins/Draw/src/store/actions.ts b/vue2/packages/plugins/Draw/src/store/actions.ts similarity index 100% rename from packages/plugins/Draw/src/store/actions.ts rename to vue2/packages/plugins/Draw/src/store/actions.ts diff --git a/packages/plugins/Draw/src/store/createInteractions/createCutInteractions/cutlery.ts b/vue2/packages/plugins/Draw/src/store/createInteractions/createCutInteractions/cutlery.ts similarity index 100% rename from packages/plugins/Draw/src/store/createInteractions/createCutInteractions/cutlery.ts rename to vue2/packages/plugins/Draw/src/store/createInteractions/createCutInteractions/cutlery.ts diff --git a/packages/plugins/Draw/src/store/createInteractions/createCutInteractions/index.ts b/vue2/packages/plugins/Draw/src/store/createInteractions/createCutInteractions/index.ts similarity index 100% rename from packages/plugins/Draw/src/store/createInteractions/createCutInteractions/index.ts rename to vue2/packages/plugins/Draw/src/store/createInteractions/createCutInteractions/index.ts diff --git a/packages/plugins/Draw/src/store/createInteractions/createCutInteractions/makeDraw.ts b/vue2/packages/plugins/Draw/src/store/createInteractions/createCutInteractions/makeDraw.ts similarity index 100% rename from packages/plugins/Draw/src/store/createInteractions/createCutInteractions/makeDraw.ts rename to vue2/packages/plugins/Draw/src/store/createInteractions/createCutInteractions/makeDraw.ts diff --git a/packages/plugins/Draw/src/store/createInteractions/createCutInteractions/style.ts b/vue2/packages/plugins/Draw/src/store/createInteractions/createCutInteractions/style.ts similarity index 100% rename from packages/plugins/Draw/src/store/createInteractions/createCutInteractions/style.ts rename to vue2/packages/plugins/Draw/src/store/createInteractions/createCutInteractions/style.ts diff --git a/packages/plugins/Draw/src/store/createInteractions/createCutInteractions/types.ts b/vue2/packages/plugins/Draw/src/store/createInteractions/createCutInteractions/types.ts similarity index 100% rename from packages/plugins/Draw/src/store/createInteractions/createCutInteractions/types.ts rename to vue2/packages/plugins/Draw/src/store/createInteractions/createCutInteractions/types.ts diff --git a/packages/plugins/Draw/src/store/createInteractions/createDeleteInteractions.ts b/vue2/packages/plugins/Draw/src/store/createInteractions/createDeleteInteractions.ts similarity index 100% rename from packages/plugins/Draw/src/store/createInteractions/createDeleteInteractions.ts rename to vue2/packages/plugins/Draw/src/store/createInteractions/createDeleteInteractions.ts diff --git a/packages/plugins/Draw/src/store/createInteractions/createDrawInteractions.ts b/vue2/packages/plugins/Draw/src/store/createInteractions/createDrawInteractions.ts similarity index 100% rename from packages/plugins/Draw/src/store/createInteractions/createDrawInteractions.ts rename to vue2/packages/plugins/Draw/src/store/createInteractions/createDrawInteractions.ts diff --git a/packages/plugins/Draw/src/store/createInteractions/createDuplicateInteractions.ts b/vue2/packages/plugins/Draw/src/store/createInteractions/createDuplicateInteractions.ts similarity index 100% rename from packages/plugins/Draw/src/store/createInteractions/createDuplicateInteractions.ts rename to vue2/packages/plugins/Draw/src/store/createInteractions/createDuplicateInteractions.ts diff --git a/packages/plugins/Draw/src/store/createInteractions/createLassoInteractions.ts b/vue2/packages/plugins/Draw/src/store/createInteractions/createLassoInteractions.ts similarity index 100% rename from packages/plugins/Draw/src/store/createInteractions/createLassoInteractions.ts rename to vue2/packages/plugins/Draw/src/store/createInteractions/createLassoInteractions.ts diff --git a/packages/plugins/Draw/src/store/createInteractions/createMergeInteractions.ts b/vue2/packages/plugins/Draw/src/store/createInteractions/createMergeInteractions.ts similarity index 100% rename from packages/plugins/Draw/src/store/createInteractions/createMergeInteractions.ts rename to vue2/packages/plugins/Draw/src/store/createInteractions/createMergeInteractions.ts diff --git a/packages/plugins/Draw/src/store/createInteractions/createModifyInteractions.ts b/vue2/packages/plugins/Draw/src/store/createInteractions/createModifyInteractions.ts similarity index 100% rename from packages/plugins/Draw/src/store/createInteractions/createModifyInteractions.ts rename to vue2/packages/plugins/Draw/src/store/createInteractions/createModifyInteractions.ts diff --git a/packages/plugins/Draw/src/store/createInteractions/createTextInteractions.ts b/vue2/packages/plugins/Draw/src/store/createInteractions/createTextInteractions.ts similarity index 100% rename from packages/plugins/Draw/src/store/createInteractions/createTextInteractions.ts rename to vue2/packages/plugins/Draw/src/store/createInteractions/createTextInteractions.ts diff --git a/packages/plugins/Draw/src/store/createInteractions/createTranslateInteractions.ts b/vue2/packages/plugins/Draw/src/store/createInteractions/createTranslateInteractions.ts similarity index 100% rename from packages/plugins/Draw/src/store/createInteractions/createTranslateInteractions.ts rename to vue2/packages/plugins/Draw/src/store/createInteractions/createTranslateInteractions.ts diff --git a/packages/plugins/Draw/src/store/createInteractions/getSnaps.ts b/vue2/packages/plugins/Draw/src/store/createInteractions/getSnaps.ts similarity index 100% rename from packages/plugins/Draw/src/store/createInteractions/getSnaps.ts rename to vue2/packages/plugins/Draw/src/store/createInteractions/getSnaps.ts diff --git a/packages/plugins/Draw/src/store/createInteractions/index.ts b/vue2/packages/plugins/Draw/src/store/createInteractions/index.ts similarity index 100% rename from packages/plugins/Draw/src/store/createInteractions/index.ts rename to vue2/packages/plugins/Draw/src/store/createInteractions/index.ts diff --git a/packages/plugins/Draw/src/store/createInteractions/localSelector.ts b/vue2/packages/plugins/Draw/src/store/createInteractions/localSelector.ts similarity index 100% rename from packages/plugins/Draw/src/store/createInteractions/localSelector.ts rename to vue2/packages/plugins/Draw/src/store/createInteractions/localSelector.ts diff --git a/packages/plugins/Draw/src/store/createInteractions/modifyDrawStyle.ts b/vue2/packages/plugins/Draw/src/store/createInteractions/modifyDrawStyle.ts similarity index 100% rename from packages/plugins/Draw/src/store/createInteractions/modifyDrawStyle.ts rename to vue2/packages/plugins/Draw/src/store/createInteractions/modifyDrawStyle.ts diff --git a/packages/plugins/Draw/src/store/createInteractions/modifyTextStyle.ts b/vue2/packages/plugins/Draw/src/store/createInteractions/modifyTextStyle.ts similarity index 100% rename from packages/plugins/Draw/src/store/createInteractions/modifyTextStyle.ts rename to vue2/packages/plugins/Draw/src/store/createInteractions/modifyTextStyle.ts diff --git a/packages/plugins/Draw/src/store/index.ts b/vue2/packages/plugins/Draw/src/store/index.ts similarity index 100% rename from packages/plugins/Draw/src/store/index.ts rename to vue2/packages/plugins/Draw/src/store/index.ts diff --git a/packages/plugins/Draw/src/store/reviseFeatures/autofix.ts b/vue2/packages/plugins/Draw/src/store/reviseFeatures/autofix.ts similarity index 100% rename from packages/plugins/Draw/src/store/reviseFeatures/autofix.ts rename to vue2/packages/plugins/Draw/src/store/reviseFeatures/autofix.ts diff --git a/packages/plugins/Draw/src/store/reviseFeatures/cloneFeatureCollection.ts b/vue2/packages/plugins/Draw/src/store/reviseFeatures/cloneFeatureCollection.ts similarity index 100% rename from packages/plugins/Draw/src/store/reviseFeatures/cloneFeatureCollection.ts rename to vue2/packages/plugins/Draw/src/store/reviseFeatures/cloneFeatureCollection.ts diff --git a/packages/plugins/Draw/src/store/reviseFeatures/enrichWithMetaServices.ts b/vue2/packages/plugins/Draw/src/store/reviseFeatures/enrichWithMetaServices.ts similarity index 100% rename from packages/plugins/Draw/src/store/reviseFeatures/enrichWithMetaServices.ts rename to vue2/packages/plugins/Draw/src/store/reviseFeatures/enrichWithMetaServices.ts diff --git a/packages/plugins/Draw/src/store/reviseFeatures/index.ts b/vue2/packages/plugins/Draw/src/store/reviseFeatures/index.ts similarity index 100% rename from packages/plugins/Draw/src/store/reviseFeatures/index.ts rename to vue2/packages/plugins/Draw/src/store/reviseFeatures/index.ts diff --git a/packages/plugins/Draw/src/store/reviseFeatures/revisionStates.ts b/vue2/packages/plugins/Draw/src/store/reviseFeatures/revisionStates.ts similarity index 100% rename from packages/plugins/Draw/src/store/reviseFeatures/revisionStates.ts rename to vue2/packages/plugins/Draw/src/store/reviseFeatures/revisionStates.ts diff --git a/packages/plugins/Draw/src/store/reviseFeatures/validateGeoJson.ts b/vue2/packages/plugins/Draw/src/store/reviseFeatures/validateGeoJson.ts similarity index 100% rename from packages/plugins/Draw/src/store/reviseFeatures/validateGeoJson.ts rename to vue2/packages/plugins/Draw/src/store/reviseFeatures/validateGeoJson.ts diff --git a/packages/plugins/Draw/src/types.ts b/vue2/packages/plugins/Draw/src/types.ts similarity index 100% rename from packages/plugins/Draw/src/types.ts rename to vue2/packages/plugins/Draw/src/types.ts diff --git a/packages/plugins/Draw/src/utils/createDrawLayer.ts b/vue2/packages/plugins/Draw/src/utils/createDrawLayer.ts similarity index 100% rename from packages/plugins/Draw/src/utils/createDrawLayer.ts rename to vue2/packages/plugins/Draw/src/utils/createDrawLayer.ts diff --git a/packages/plugins/Draw/src/utils/createDrawStyle.ts b/vue2/packages/plugins/Draw/src/utils/createDrawStyle.ts similarity index 100% rename from packages/plugins/Draw/src/utils/createDrawStyle.ts rename to vue2/packages/plugins/Draw/src/utils/createDrawStyle.ts diff --git a/packages/plugins/Draw/src/utils/createTextStyle.ts b/vue2/packages/plugins/Draw/src/utils/createTextStyle.ts similarity index 100% rename from packages/plugins/Draw/src/utils/createTextStyle.ts rename to vue2/packages/plugins/Draw/src/utils/createTextStyle.ts diff --git a/packages/plugins/Draw/vite.config.js b/vue2/packages/plugins/Draw/vite.config.js similarity index 100% rename from packages/plugins/Draw/vite.config.js rename to vue2/packages/plugins/Draw/vite.config.js diff --git a/packages/plugins/Export/CHANGELOG.md b/vue2/packages/plugins/Export/CHANGELOG.md similarity index 100% rename from packages/plugins/Export/CHANGELOG.md rename to vue2/packages/plugins/Export/CHANGELOG.md diff --git a/packages/plugins/Export/LICENSE b/vue2/packages/plugins/Export/LICENSE similarity index 100% rename from packages/plugins/Export/LICENSE rename to vue2/packages/plugins/Export/LICENSE diff --git a/packages/plugins/Export/README.md b/vue2/packages/plugins/Export/README.md similarity index 100% rename from packages/plugins/Export/README.md rename to vue2/packages/plugins/Export/README.md diff --git a/packages/plugins/Export/package.json b/vue2/packages/plugins/Export/package.json similarity index 100% rename from packages/plugins/Export/package.json rename to vue2/packages/plugins/Export/package.json diff --git a/packages/plugins/Export/src/components/Button.vue b/vue2/packages/plugins/Export/src/components/Button.vue similarity index 100% rename from packages/plugins/Export/src/components/Button.vue rename to vue2/packages/plugins/Export/src/components/Button.vue diff --git a/packages/plugins/Export/src/components/Export.vue b/vue2/packages/plugins/Export/src/components/Export.vue similarity index 100% rename from packages/plugins/Export/src/components/Export.vue rename to vue2/packages/plugins/Export/src/components/Export.vue diff --git a/packages/plugins/Export/src/components/index.ts b/vue2/packages/plugins/Export/src/components/index.ts similarity index 100% rename from packages/plugins/Export/src/components/index.ts rename to vue2/packages/plugins/Export/src/components/index.ts diff --git a/packages/plugins/Export/src/index.ts b/vue2/packages/plugins/Export/src/index.ts similarity index 100% rename from packages/plugins/Export/src/index.ts rename to vue2/packages/plugins/Export/src/index.ts diff --git a/packages/plugins/Export/src/locales.ts b/vue2/packages/plugins/Export/src/locales.ts similarity index 100% rename from packages/plugins/Export/src/locales.ts rename to vue2/packages/plugins/Export/src/locales.ts diff --git a/packages/plugins/Export/src/store/actions.ts b/vue2/packages/plugins/Export/src/store/actions.ts similarity index 100% rename from packages/plugins/Export/src/store/actions.ts rename to vue2/packages/plugins/Export/src/store/actions.ts diff --git a/packages/plugins/Export/src/store/index.ts b/vue2/packages/plugins/Export/src/store/index.ts similarity index 100% rename from packages/plugins/Export/src/store/index.ts rename to vue2/packages/plugins/Export/src/store/index.ts diff --git a/packages/plugins/Export/src/types.ts b/vue2/packages/plugins/Export/src/types.ts similarity index 100% rename from packages/plugins/Export/src/types.ts rename to vue2/packages/plugins/Export/src/types.ts diff --git a/packages/plugins/Export/vite.config.js b/vue2/packages/plugins/Export/vite.config.js similarity index 100% rename from packages/plugins/Export/vite.config.js rename to vue2/packages/plugins/Export/vite.config.js diff --git a/packages/plugins/Filter/CHANGELOG.md b/vue2/packages/plugins/Filter/CHANGELOG.md similarity index 100% rename from packages/plugins/Filter/CHANGELOG.md rename to vue2/packages/plugins/Filter/CHANGELOG.md diff --git a/packages/plugins/Filter/LICENSE b/vue2/packages/plugins/Filter/LICENSE similarity index 100% rename from packages/plugins/Filter/LICENSE rename to vue2/packages/plugins/Filter/LICENSE diff --git a/packages/plugins/Filter/README.md b/vue2/packages/plugins/Filter/README.md similarity index 100% rename from packages/plugins/Filter/README.md rename to vue2/packages/plugins/Filter/README.md diff --git a/packages/plugins/Filter/package.json b/vue2/packages/plugins/Filter/package.json similarity index 100% rename from packages/plugins/Filter/package.json rename to vue2/packages/plugins/Filter/package.json diff --git a/packages/plugins/Filter/src/components/ChooseTimeFrame.vue b/vue2/packages/plugins/Filter/src/components/ChooseTimeFrame.vue similarity index 100% rename from packages/plugins/Filter/src/components/ChooseTimeFrame.vue rename to vue2/packages/plugins/Filter/src/components/ChooseTimeFrame.vue diff --git a/packages/plugins/Filter/src/components/Filter.vue b/vue2/packages/plugins/Filter/src/components/Filter.vue similarity index 100% rename from packages/plugins/Filter/src/components/Filter.vue rename to vue2/packages/plugins/Filter/src/components/Filter.vue diff --git a/packages/plugins/Filter/src/components/index.ts b/vue2/packages/plugins/Filter/src/components/index.ts similarity index 100% rename from packages/plugins/Filter/src/components/index.ts rename to vue2/packages/plugins/Filter/src/components/index.ts diff --git a/packages/plugins/Filter/src/index.ts b/vue2/packages/plugins/Filter/src/index.ts similarity index 100% rename from packages/plugins/Filter/src/index.ts rename to vue2/packages/plugins/Filter/src/index.ts diff --git a/packages/plugins/Filter/src/locales.ts b/vue2/packages/plugins/Filter/src/locales.ts similarity index 100% rename from packages/plugins/Filter/src/locales.ts rename to vue2/packages/plugins/Filter/src/locales.ts diff --git a/packages/plugins/Filter/src/store/index.ts b/vue2/packages/plugins/Filter/src/store/index.ts similarity index 100% rename from packages/plugins/Filter/src/store/index.ts rename to vue2/packages/plugins/Filter/src/store/index.ts diff --git a/packages/plugins/Filter/src/types.ts b/vue2/packages/plugins/Filter/src/types.ts similarity index 100% rename from packages/plugins/Filter/src/types.ts rename to vue2/packages/plugins/Filter/src/types.ts diff --git a/packages/plugins/Filter/src/utils/arrayOnlyContains.ts b/vue2/packages/plugins/Filter/src/utils/arrayOnlyContains.ts similarity index 100% rename from packages/plugins/Filter/src/utils/arrayOnlyContains.ts rename to vue2/packages/plugins/Filter/src/utils/arrayOnlyContains.ts diff --git a/packages/plugins/Filter/src/utils/parseTimeOption.ts b/vue2/packages/plugins/Filter/src/utils/parseTimeOption.ts similarity index 100% rename from packages/plugins/Filter/src/utils/parseTimeOption.ts rename to vue2/packages/plugins/Filter/src/utils/parseTimeOption.ts diff --git a/packages/plugins/Filter/src/utils/setState.ts b/vue2/packages/plugins/Filter/src/utils/setState.ts similarity index 100% rename from packages/plugins/Filter/src/utils/setState.ts rename to vue2/packages/plugins/Filter/src/utils/setState.ts diff --git a/packages/plugins/Filter/src/utils/updateFeatureVisibility.ts b/vue2/packages/plugins/Filter/src/utils/updateFeatureVisibility.ts similarity index 100% rename from packages/plugins/Filter/src/utils/updateFeatureVisibility.ts rename to vue2/packages/plugins/Filter/src/utils/updateFeatureVisibility.ts diff --git a/packages/plugins/Filter/vite.config.js b/vue2/packages/plugins/Filter/vite.config.js similarity index 100% rename from packages/plugins/Filter/vite.config.js rename to vue2/packages/plugins/Filter/vite.config.js diff --git a/packages/plugins/Fullscreen/CHANGELOG.md b/vue2/packages/plugins/Fullscreen/CHANGELOG.md similarity index 100% rename from packages/plugins/Fullscreen/CHANGELOG.md rename to vue2/packages/plugins/Fullscreen/CHANGELOG.md diff --git a/packages/plugins/Fullscreen/LICENSE b/vue2/packages/plugins/Fullscreen/LICENSE similarity index 100% rename from packages/plugins/Fullscreen/LICENSE rename to vue2/packages/plugins/Fullscreen/LICENSE diff --git a/packages/plugins/Fullscreen/README.md b/vue2/packages/plugins/Fullscreen/README.md similarity index 100% rename from packages/plugins/Fullscreen/README.md rename to vue2/packages/plugins/Fullscreen/README.md diff --git a/packages/plugins/Fullscreen/package.json b/vue2/packages/plugins/Fullscreen/package.json similarity index 100% rename from packages/plugins/Fullscreen/package.json rename to vue2/packages/plugins/Fullscreen/package.json diff --git a/packages/plugins/Fullscreen/src/components/Fullscreen.vue b/vue2/packages/plugins/Fullscreen/src/components/Fullscreen.vue similarity index 100% rename from packages/plugins/Fullscreen/src/components/Fullscreen.vue rename to vue2/packages/plugins/Fullscreen/src/components/Fullscreen.vue diff --git a/packages/plugins/Fullscreen/src/components/index.ts b/vue2/packages/plugins/Fullscreen/src/components/index.ts similarity index 100% rename from packages/plugins/Fullscreen/src/components/index.ts rename to vue2/packages/plugins/Fullscreen/src/components/index.ts diff --git a/packages/plugins/Fullscreen/src/index.ts b/vue2/packages/plugins/Fullscreen/src/index.ts similarity index 100% rename from packages/plugins/Fullscreen/src/index.ts rename to vue2/packages/plugins/Fullscreen/src/index.ts diff --git a/packages/plugins/Fullscreen/src/locales.ts b/vue2/packages/plugins/Fullscreen/src/locales.ts similarity index 100% rename from packages/plugins/Fullscreen/src/locales.ts rename to vue2/packages/plugins/Fullscreen/src/locales.ts diff --git a/packages/plugins/Fullscreen/src/store/index.ts b/vue2/packages/plugins/Fullscreen/src/store/index.ts similarity index 100% rename from packages/plugins/Fullscreen/src/store/index.ts rename to vue2/packages/plugins/Fullscreen/src/store/index.ts diff --git a/packages/plugins/Fullscreen/src/types.ts b/vue2/packages/plugins/Fullscreen/src/types.ts similarity index 100% rename from packages/plugins/Fullscreen/src/types.ts rename to vue2/packages/plugins/Fullscreen/src/types.ts diff --git a/packages/plugins/Fullscreen/tests/fullscreen.spec.ts b/vue2/packages/plugins/Fullscreen/tests/fullscreen.spec.ts similarity index 100% rename from packages/plugins/Fullscreen/tests/fullscreen.spec.ts rename to vue2/packages/plugins/Fullscreen/tests/fullscreen.spec.ts diff --git a/packages/plugins/Fullscreen/vite.config.js b/vue2/packages/plugins/Fullscreen/vite.config.js similarity index 100% rename from packages/plugins/Fullscreen/vite.config.js rename to vue2/packages/plugins/Fullscreen/vite.config.js diff --git a/packages/plugins/GeoLocation/CHANGELOG.md b/vue2/packages/plugins/GeoLocation/CHANGELOG.md similarity index 100% rename from packages/plugins/GeoLocation/CHANGELOG.md rename to vue2/packages/plugins/GeoLocation/CHANGELOG.md diff --git a/packages/plugins/GeoLocation/LICENSE b/vue2/packages/plugins/GeoLocation/LICENSE similarity index 100% rename from packages/plugins/GeoLocation/LICENSE rename to vue2/packages/plugins/GeoLocation/LICENSE diff --git a/packages/plugins/GeoLocation/README.md b/vue2/packages/plugins/GeoLocation/README.md similarity index 100% rename from packages/plugins/GeoLocation/README.md rename to vue2/packages/plugins/GeoLocation/README.md diff --git a/packages/plugins/GeoLocation/package.json b/vue2/packages/plugins/GeoLocation/package.json similarity index 100% rename from packages/plugins/GeoLocation/package.json rename to vue2/packages/plugins/GeoLocation/package.json diff --git a/packages/plugins/GeoLocation/src/assets/geoLocationMarker.js b/vue2/packages/plugins/GeoLocation/src/assets/geoLocationMarker.js similarity index 100% rename from packages/plugins/GeoLocation/src/assets/geoLocationMarker.js rename to vue2/packages/plugins/GeoLocation/src/assets/geoLocationMarker.js diff --git a/packages/plugins/GeoLocation/src/components/GeoLocation.vue b/vue2/packages/plugins/GeoLocation/src/components/GeoLocation.vue similarity index 100% rename from packages/plugins/GeoLocation/src/components/GeoLocation.vue rename to vue2/packages/plugins/GeoLocation/src/components/GeoLocation.vue diff --git a/packages/plugins/GeoLocation/src/components/index.ts b/vue2/packages/plugins/GeoLocation/src/components/index.ts similarity index 100% rename from packages/plugins/GeoLocation/src/components/index.ts rename to vue2/packages/plugins/GeoLocation/src/components/index.ts diff --git a/packages/plugins/GeoLocation/src/index.ts b/vue2/packages/plugins/GeoLocation/src/index.ts similarity index 100% rename from packages/plugins/GeoLocation/src/index.ts rename to vue2/packages/plugins/GeoLocation/src/index.ts diff --git a/packages/plugins/GeoLocation/src/locales.ts b/vue2/packages/plugins/GeoLocation/src/locales.ts similarity index 100% rename from packages/plugins/GeoLocation/src/locales.ts rename to vue2/packages/plugins/GeoLocation/src/locales.ts diff --git a/packages/plugins/GeoLocation/src/store/actions.ts b/vue2/packages/plugins/GeoLocation/src/store/actions.ts similarity index 100% rename from packages/plugins/GeoLocation/src/store/actions.ts rename to vue2/packages/plugins/GeoLocation/src/store/actions.ts diff --git a/packages/plugins/GeoLocation/src/store/getInitialState.ts b/vue2/packages/plugins/GeoLocation/src/store/getInitialState.ts similarity index 100% rename from packages/plugins/GeoLocation/src/store/getInitialState.ts rename to vue2/packages/plugins/GeoLocation/src/store/getInitialState.ts diff --git a/packages/plugins/GeoLocation/src/store/getters.ts b/vue2/packages/plugins/GeoLocation/src/store/getters.ts similarity index 100% rename from packages/plugins/GeoLocation/src/store/getters.ts rename to vue2/packages/plugins/GeoLocation/src/store/getters.ts diff --git a/packages/plugins/GeoLocation/src/store/index.ts b/vue2/packages/plugins/GeoLocation/src/store/index.ts similarity index 100% rename from packages/plugins/GeoLocation/src/store/index.ts rename to vue2/packages/plugins/GeoLocation/src/store/index.ts diff --git a/packages/plugins/GeoLocation/src/types.ts b/vue2/packages/plugins/GeoLocation/src/types.ts similarity index 100% rename from packages/plugins/GeoLocation/src/types.ts rename to vue2/packages/plugins/GeoLocation/src/types.ts diff --git a/packages/plugins/GeoLocation/src/utils/positionChanged.ts b/vue2/packages/plugins/GeoLocation/src/utils/positionChanged.ts similarity index 100% rename from packages/plugins/GeoLocation/src/utils/positionChanged.ts rename to vue2/packages/plugins/GeoLocation/src/utils/positionChanged.ts diff --git a/packages/plugins/GeoLocation/tests/geoLocation.spec.ts b/vue2/packages/plugins/GeoLocation/tests/geoLocation.spec.ts similarity index 100% rename from packages/plugins/GeoLocation/tests/geoLocation.spec.ts rename to vue2/packages/plugins/GeoLocation/tests/geoLocation.spec.ts diff --git a/packages/plugins/GeoLocation/tests/store.spec.ts b/vue2/packages/plugins/GeoLocation/tests/store.spec.ts similarity index 100% rename from packages/plugins/GeoLocation/tests/store.spec.ts rename to vue2/packages/plugins/GeoLocation/tests/store.spec.ts diff --git a/packages/plugins/GeoLocation/vite.config.js b/vue2/packages/plugins/GeoLocation/vite.config.js similarity index 100% rename from packages/plugins/GeoLocation/vite.config.js rename to vue2/packages/plugins/GeoLocation/vite.config.js diff --git a/packages/plugins/Gfi/CHANGELOG.md b/vue2/packages/plugins/Gfi/CHANGELOG.md similarity index 100% rename from packages/plugins/Gfi/CHANGELOG.md rename to vue2/packages/plugins/Gfi/CHANGELOG.md diff --git a/packages/plugins/Gfi/LICENSE b/vue2/packages/plugins/Gfi/LICENSE similarity index 100% rename from packages/plugins/Gfi/LICENSE rename to vue2/packages/plugins/Gfi/LICENSE diff --git a/packages/plugins/Gfi/README.md b/vue2/packages/plugins/Gfi/README.md similarity index 100% rename from packages/plugins/Gfi/README.md rename to vue2/packages/plugins/Gfi/README.md diff --git a/packages/plugins/Gfi/package.json b/vue2/packages/plugins/Gfi/package.json similarity index 100% rename from packages/plugins/Gfi/package.json rename to vue2/packages/plugins/Gfi/package.json diff --git a/packages/plugins/Gfi/src/components/Feature.vue b/vue2/packages/plugins/Gfi/src/components/Feature.vue similarity index 100% rename from packages/plugins/Gfi/src/components/Feature.vue rename to vue2/packages/plugins/Gfi/src/components/Feature.vue diff --git a/packages/plugins/Gfi/src/components/FeatureButtonGroup.vue b/vue2/packages/plugins/Gfi/src/components/FeatureButtonGroup.vue similarity index 100% rename from packages/plugins/Gfi/src/components/FeatureButtonGroup.vue rename to vue2/packages/plugins/Gfi/src/components/FeatureButtonGroup.vue diff --git a/packages/plugins/Gfi/src/components/FeatureSwitchButtons.vue b/vue2/packages/plugins/Gfi/src/components/FeatureSwitchButtons.vue similarity index 100% rename from packages/plugins/Gfi/src/components/FeatureSwitchButtons.vue rename to vue2/packages/plugins/Gfi/src/components/FeatureSwitchButtons.vue diff --git a/packages/plugins/Gfi/src/components/FeatureTableBody.vue b/vue2/packages/plugins/Gfi/src/components/FeatureTableBody.vue similarity index 100% rename from packages/plugins/Gfi/src/components/FeatureTableBody.vue rename to vue2/packages/plugins/Gfi/src/components/FeatureTableBody.vue diff --git a/packages/plugins/Gfi/src/components/FeatureTableHead.vue b/vue2/packages/plugins/Gfi/src/components/FeatureTableHead.vue similarity index 100% rename from packages/plugins/Gfi/src/components/FeatureTableHead.vue rename to vue2/packages/plugins/Gfi/src/components/FeatureTableHead.vue diff --git a/packages/plugins/Gfi/src/components/Gfi.vue b/vue2/packages/plugins/Gfi/src/components/Gfi.vue similarity index 100% rename from packages/plugins/Gfi/src/components/Gfi.vue rename to vue2/packages/plugins/Gfi/src/components/Gfi.vue diff --git a/packages/plugins/Gfi/src/components/List.vue b/vue2/packages/plugins/Gfi/src/components/List.vue similarity index 100% rename from packages/plugins/Gfi/src/components/List.vue rename to vue2/packages/plugins/Gfi/src/components/List.vue diff --git a/packages/plugins/Gfi/src/components/index.ts b/vue2/packages/plugins/Gfi/src/components/index.ts similarity index 100% rename from packages/plugins/Gfi/src/components/index.ts rename to vue2/packages/plugins/Gfi/src/components/index.ts diff --git a/packages/plugins/Gfi/src/index.ts b/vue2/packages/plugins/Gfi/src/index.ts similarity index 100% rename from packages/plugins/Gfi/src/index.ts rename to vue2/packages/plugins/Gfi/src/index.ts diff --git a/packages/plugins/Gfi/src/locales.ts b/vue2/packages/plugins/Gfi/src/locales.ts similarity index 100% rename from packages/plugins/Gfi/src/locales.ts rename to vue2/packages/plugins/Gfi/src/locales.ts diff --git a/packages/plugins/Gfi/src/store/actions/debouncedGfiRequest.ts b/vue2/packages/plugins/Gfi/src/store/actions/debouncedGfiRequest.ts similarity index 100% rename from packages/plugins/Gfi/src/store/actions/debouncedGfiRequest.ts rename to vue2/packages/plugins/Gfi/src/store/actions/debouncedGfiRequest.ts diff --git a/packages/plugins/Gfi/src/store/actions/index.ts b/vue2/packages/plugins/Gfi/src/store/actions/index.ts similarity index 100% rename from packages/plugins/Gfi/src/store/actions/index.ts rename to vue2/packages/plugins/Gfi/src/store/actions/index.ts diff --git a/packages/plugins/Gfi/src/store/actions/setup.ts b/vue2/packages/plugins/Gfi/src/store/actions/setup.ts similarity index 100% rename from packages/plugins/Gfi/src/store/actions/setup.ts rename to vue2/packages/plugins/Gfi/src/store/actions/setup.ts diff --git a/packages/plugins/Gfi/src/store/actions/setupMultiSelection.ts b/vue2/packages/plugins/Gfi/src/store/actions/setupMultiSelection.ts similarity index 100% rename from packages/plugins/Gfi/src/store/actions/setupMultiSelection.ts rename to vue2/packages/plugins/Gfi/src/store/actions/setupMultiSelection.ts diff --git a/packages/plugins/Gfi/src/store/getInitialState.ts b/vue2/packages/plugins/Gfi/src/store/getInitialState.ts similarity index 100% rename from packages/plugins/Gfi/src/store/getInitialState.ts rename to vue2/packages/plugins/Gfi/src/store/getInitialState.ts diff --git a/packages/plugins/Gfi/src/store/getters.ts b/vue2/packages/plugins/Gfi/src/store/getters.ts similarity index 100% rename from packages/plugins/Gfi/src/store/getters.ts rename to vue2/packages/plugins/Gfi/src/store/getters.ts diff --git a/packages/plugins/Gfi/src/store/index.ts b/vue2/packages/plugins/Gfi/src/store/index.ts similarity index 100% rename from packages/plugins/Gfi/src/store/index.ts rename to vue2/packages/plugins/Gfi/src/store/index.ts diff --git a/packages/plugins/Gfi/src/store/mutations.ts b/vue2/packages/plugins/Gfi/src/store/mutations.ts similarity index 100% rename from packages/plugins/Gfi/src/store/mutations.ts rename to vue2/packages/plugins/Gfi/src/store/mutations.ts diff --git a/packages/plugins/Gfi/src/types.ts b/vue2/packages/plugins/Gfi/src/types.ts similarity index 100% rename from packages/plugins/Gfi/src/types.ts rename to vue2/packages/plugins/Gfi/src/types.ts diff --git a/packages/plugins/Gfi/src/utils/displayFeatureLayer.ts b/vue2/packages/plugins/Gfi/src/utils/displayFeatureLayer.ts similarity index 100% rename from packages/plugins/Gfi/src/utils/displayFeatureLayer.ts rename to vue2/packages/plugins/Gfi/src/utils/displayFeatureLayer.ts diff --git a/packages/plugins/Gfi/src/utils/filterFeatures.ts b/vue2/packages/plugins/Gfi/src/utils/filterFeatures.ts similarity index 100% rename from packages/plugins/Gfi/src/utils/filterFeatures.ts rename to vue2/packages/plugins/Gfi/src/utils/filterFeatures.ts diff --git a/packages/plugins/Gfi/src/utils/getOriginalFeature.ts b/vue2/packages/plugins/Gfi/src/utils/getOriginalFeature.ts similarity index 100% rename from packages/plugins/Gfi/src/utils/getOriginalFeature.ts rename to vue2/packages/plugins/Gfi/src/utils/getOriginalFeature.ts diff --git a/packages/plugins/Gfi/src/utils/isValidHttpUrl.js b/vue2/packages/plugins/Gfi/src/utils/isValidHttpUrl.js similarity index 100% rename from packages/plugins/Gfi/src/utils/isValidHttpUrl.js rename to vue2/packages/plugins/Gfi/src/utils/isValidHttpUrl.js diff --git a/packages/plugins/Gfi/src/utils/listableLayersFilter.ts b/vue2/packages/plugins/Gfi/src/utils/listableLayersFilter.ts similarity index 100% rename from packages/plugins/Gfi/src/utils/listableLayersFilter.ts rename to vue2/packages/plugins/Gfi/src/utils/listableLayersFilter.ts diff --git a/packages/plugins/Gfi/src/utils/renderFeatures.ts b/vue2/packages/plugins/Gfi/src/utils/renderFeatures.ts similarity index 100% rename from packages/plugins/Gfi/src/utils/renderFeatures.ts rename to vue2/packages/plugins/Gfi/src/utils/renderFeatures.ts diff --git a/packages/plugins/Gfi/src/utils/requestGfi.ts b/vue2/packages/plugins/Gfi/src/utils/requestGfi.ts similarity index 100% rename from packages/plugins/Gfi/src/utils/requestGfi.ts rename to vue2/packages/plugins/Gfi/src/utils/requestGfi.ts diff --git a/packages/plugins/Gfi/src/utils/requestGfiGeoJson.ts b/vue2/packages/plugins/Gfi/src/utils/requestGfiGeoJson.ts similarity index 100% rename from packages/plugins/Gfi/src/utils/requestGfiGeoJson.ts rename to vue2/packages/plugins/Gfi/src/utils/requestGfiGeoJson.ts diff --git a/packages/plugins/Gfi/src/utils/requestGfiWfs.ts b/vue2/packages/plugins/Gfi/src/utils/requestGfiWfs.ts similarity index 100% rename from packages/plugins/Gfi/src/utils/requestGfiWfs.ts rename to vue2/packages/plugins/Gfi/src/utils/requestGfiWfs.ts diff --git a/packages/plugins/Gfi/src/utils/requestGfiWms.ts b/vue2/packages/plugins/Gfi/src/utils/requestGfiWms.ts similarity index 100% rename from packages/plugins/Gfi/src/utils/requestGfiWms.ts rename to vue2/packages/plugins/Gfi/src/utils/requestGfiWms.ts diff --git a/packages/plugins/Gfi/src/utils/sortFeatures.ts b/vue2/packages/plugins/Gfi/src/utils/sortFeatures.ts similarity index 100% rename from packages/plugins/Gfi/src/utils/sortFeatures.ts rename to vue2/packages/plugins/Gfi/src/utils/sortFeatures.ts diff --git a/packages/plugins/Gfi/tests/actions.spec.ts b/vue2/packages/plugins/Gfi/tests/actions.spec.ts similarity index 100% rename from packages/plugins/Gfi/tests/actions.spec.ts rename to vue2/packages/plugins/Gfi/tests/actions.spec.ts diff --git a/packages/plugins/Gfi/tests/filterFeatures.spec.ts b/vue2/packages/plugins/Gfi/tests/filterFeatures.spec.ts similarity index 100% rename from packages/plugins/Gfi/tests/filterFeatures.spec.ts rename to vue2/packages/plugins/Gfi/tests/filterFeatures.spec.ts diff --git a/packages/plugins/Gfi/tests/sortFeatures.spec.ts b/vue2/packages/plugins/Gfi/tests/sortFeatures.spec.ts similarity index 100% rename from packages/plugins/Gfi/tests/sortFeatures.spec.ts rename to vue2/packages/plugins/Gfi/tests/sortFeatures.spec.ts diff --git a/packages/plugins/Gfi/vite.config.js b/vue2/packages/plugins/Gfi/vite.config.js similarity index 100% rename from packages/plugins/Gfi/vite.config.js rename to vue2/packages/plugins/Gfi/vite.config.js diff --git a/packages/plugins/IconMenu/CHANGELOG.md b/vue2/packages/plugins/IconMenu/CHANGELOG.md similarity index 100% rename from packages/plugins/IconMenu/CHANGELOG.md rename to vue2/packages/plugins/IconMenu/CHANGELOG.md diff --git a/packages/plugins/IconMenu/LICENSE b/vue2/packages/plugins/IconMenu/LICENSE similarity index 100% rename from packages/plugins/IconMenu/LICENSE rename to vue2/packages/plugins/IconMenu/LICENSE diff --git a/packages/plugins/IconMenu/README.md b/vue2/packages/plugins/IconMenu/README.md similarity index 100% rename from packages/plugins/IconMenu/README.md rename to vue2/packages/plugins/IconMenu/README.md diff --git a/packages/plugins/IconMenu/package.json b/vue2/packages/plugins/IconMenu/package.json similarity index 100% rename from packages/plugins/IconMenu/package.json rename to vue2/packages/plugins/IconMenu/package.json diff --git a/packages/plugins/IconMenu/src/components/IconMenu.vue b/vue2/packages/plugins/IconMenu/src/components/IconMenu.vue similarity index 100% rename from packages/plugins/IconMenu/src/components/IconMenu.vue rename to vue2/packages/plugins/IconMenu/src/components/IconMenu.vue diff --git a/packages/plugins/IconMenu/src/components/IconMenuButton.vue b/vue2/packages/plugins/IconMenu/src/components/IconMenuButton.vue similarity index 100% rename from packages/plugins/IconMenu/src/components/IconMenuButton.vue rename to vue2/packages/plugins/IconMenu/src/components/IconMenuButton.vue diff --git a/packages/plugins/IconMenu/src/components/index.ts b/vue2/packages/plugins/IconMenu/src/components/index.ts similarity index 100% rename from packages/plugins/IconMenu/src/components/index.ts rename to vue2/packages/plugins/IconMenu/src/components/index.ts diff --git a/packages/plugins/IconMenu/src/index.ts b/vue2/packages/plugins/IconMenu/src/index.ts similarity index 100% rename from packages/plugins/IconMenu/src/index.ts rename to vue2/packages/plugins/IconMenu/src/index.ts diff --git a/packages/plugins/IconMenu/src/locales.ts b/vue2/packages/plugins/IconMenu/src/locales.ts similarity index 100% rename from packages/plugins/IconMenu/src/locales.ts rename to vue2/packages/plugins/IconMenu/src/locales.ts diff --git a/packages/plugins/IconMenu/src/store/index.ts b/vue2/packages/plugins/IconMenu/src/store/index.ts similarity index 100% rename from packages/plugins/IconMenu/src/store/index.ts rename to vue2/packages/plugins/IconMenu/src/store/index.ts diff --git a/packages/plugins/IconMenu/src/types.ts b/vue2/packages/plugins/IconMenu/src/types.ts similarity index 100% rename from packages/plugins/IconMenu/src/types.ts rename to vue2/packages/plugins/IconMenu/src/types.ts diff --git a/packages/plugins/IconMenu/tests/store.spec.ts b/vue2/packages/plugins/IconMenu/tests/store.spec.ts similarity index 100% rename from packages/plugins/IconMenu/tests/store.spec.ts rename to vue2/packages/plugins/IconMenu/tests/store.spec.ts diff --git a/packages/plugins/IconMenu/vite.config.js b/vue2/packages/plugins/IconMenu/vite.config.js similarity index 100% rename from packages/plugins/IconMenu/vite.config.js rename to vue2/packages/plugins/IconMenu/vite.config.js diff --git a/packages/plugins/LayerChooser/CHANGELOG.md b/vue2/packages/plugins/LayerChooser/CHANGELOG.md similarity index 100% rename from packages/plugins/LayerChooser/CHANGELOG.md rename to vue2/packages/plugins/LayerChooser/CHANGELOG.md diff --git a/packages/plugins/LayerChooser/LICENSE b/vue2/packages/plugins/LayerChooser/LICENSE similarity index 100% rename from packages/plugins/LayerChooser/LICENSE rename to vue2/packages/plugins/LayerChooser/LICENSE diff --git a/packages/plugins/LayerChooser/README.md b/vue2/packages/plugins/LayerChooser/README.md similarity index 100% rename from packages/plugins/LayerChooser/README.md rename to vue2/packages/plugins/LayerChooser/README.md diff --git a/packages/plugins/LayerChooser/package.json b/vue2/packages/plugins/LayerChooser/package.json similarity index 100% rename from packages/plugins/LayerChooser/package.json rename to vue2/packages/plugins/LayerChooser/package.json diff --git a/packages/plugins/LayerChooser/src/components/LayerChooser.vue b/vue2/packages/plugins/LayerChooser/src/components/LayerChooser.vue similarity index 100% rename from packages/plugins/LayerChooser/src/components/LayerChooser.vue rename to vue2/packages/plugins/LayerChooser/src/components/LayerChooser.vue diff --git a/packages/plugins/LayerChooser/src/components/LayerWrapper.vue b/vue2/packages/plugins/LayerChooser/src/components/LayerWrapper.vue similarity index 100% rename from packages/plugins/LayerChooser/src/components/LayerWrapper.vue rename to vue2/packages/plugins/LayerChooser/src/components/LayerWrapper.vue diff --git a/packages/plugins/LayerChooser/src/components/Options.vue b/vue2/packages/plugins/LayerChooser/src/components/Options.vue similarity index 100% rename from packages/plugins/LayerChooser/src/components/Options.vue rename to vue2/packages/plugins/LayerChooser/src/components/Options.vue diff --git a/packages/plugins/LayerChooser/src/components/Selection.vue b/vue2/packages/plugins/LayerChooser/src/components/Selection.vue similarity index 100% rename from packages/plugins/LayerChooser/src/components/Selection.vue rename to vue2/packages/plugins/LayerChooser/src/components/Selection.vue diff --git a/packages/plugins/LayerChooser/src/components/index.ts b/vue2/packages/plugins/LayerChooser/src/components/index.ts similarity index 100% rename from packages/plugins/LayerChooser/src/components/index.ts rename to vue2/packages/plugins/LayerChooser/src/components/index.ts diff --git a/packages/plugins/LayerChooser/src/index.ts b/vue2/packages/plugins/LayerChooser/src/index.ts similarity index 100% rename from packages/plugins/LayerChooser/src/index.ts rename to vue2/packages/plugins/LayerChooser/src/index.ts diff --git a/packages/plugins/LayerChooser/src/locales.ts b/vue2/packages/plugins/LayerChooser/src/locales.ts similarity index 100% rename from packages/plugins/LayerChooser/src/locales.ts rename to vue2/packages/plugins/LayerChooser/src/locales.ts diff --git a/packages/plugins/LayerChooser/src/store/index.ts b/vue2/packages/plugins/LayerChooser/src/store/index.ts similarity index 100% rename from packages/plugins/LayerChooser/src/store/index.ts rename to vue2/packages/plugins/LayerChooser/src/store/index.ts diff --git a/packages/plugins/LayerChooser/src/types.ts b/vue2/packages/plugins/LayerChooser/src/types.ts similarity index 100% rename from packages/plugins/LayerChooser/src/types.ts rename to vue2/packages/plugins/LayerChooser/src/types.ts diff --git a/packages/plugins/LayerChooser/src/utils/findInCapabilities.ts b/vue2/packages/plugins/LayerChooser/src/utils/findInCapabilities.ts similarity index 100% rename from packages/plugins/LayerChooser/src/utils/findInCapabilities.ts rename to vue2/packages/plugins/LayerChooser/src/utils/findInCapabilities.ts diff --git a/packages/plugins/LayerChooser/src/utils/getBackgroundsAndMasks.ts b/vue2/packages/plugins/LayerChooser/src/utils/getBackgroundsAndMasks.ts similarity index 100% rename from packages/plugins/LayerChooser/src/utils/getBackgroundsAndMasks.ts rename to vue2/packages/plugins/LayerChooser/src/utils/getBackgroundsAndMasks.ts diff --git a/packages/plugins/LayerChooser/src/utils/getOpenedOptionsServiceLayers.ts b/vue2/packages/plugins/LayerChooser/src/utils/getOpenedOptionsServiceLayers.ts similarity index 100% rename from packages/plugins/LayerChooser/src/utils/getOpenedOptionsServiceLayers.ts rename to vue2/packages/plugins/LayerChooser/src/utils/getOpenedOptionsServiceLayers.ts diff --git a/packages/plugins/LayerChooser/src/utils/isLayerIdIncluded.ts b/vue2/packages/plugins/LayerChooser/src/utils/isLayerIdIncluded.ts similarity index 100% rename from packages/plugins/LayerChooser/src/utils/isLayerIdIncluded.ts rename to vue2/packages/plugins/LayerChooser/src/utils/isLayerIdIncluded.ts diff --git a/packages/plugins/LayerChooser/src/utils/layerFolding.ts b/vue2/packages/plugins/LayerChooser/src/utils/layerFolding.ts similarity index 100% rename from packages/plugins/LayerChooser/src/utils/layerFolding.ts rename to vue2/packages/plugins/LayerChooser/src/utils/layerFolding.ts diff --git a/packages/plugins/LayerChooser/tests/findInCapabilities.spec.ts b/vue2/packages/plugins/LayerChooser/tests/findInCapabilities.spec.ts similarity index 100% rename from packages/plugins/LayerChooser/tests/findInCapabilities.spec.ts rename to vue2/packages/plugins/LayerChooser/tests/findInCapabilities.spec.ts diff --git a/packages/plugins/LayerChooser/tests/layerChooser.spec.ts b/vue2/packages/plugins/LayerChooser/tests/layerChooser.spec.ts similarity index 100% rename from packages/plugins/LayerChooser/tests/layerChooser.spec.ts rename to vue2/packages/plugins/LayerChooser/tests/layerChooser.spec.ts diff --git a/packages/plugins/LayerChooser/tests/store.spec.ts b/vue2/packages/plugins/LayerChooser/tests/store.spec.ts similarity index 100% rename from packages/plugins/LayerChooser/tests/store.spec.ts rename to vue2/packages/plugins/LayerChooser/tests/store.spec.ts diff --git a/packages/plugins/LayerChooser/vite.config.js b/vue2/packages/plugins/LayerChooser/vite.config.js similarity index 100% rename from packages/plugins/LayerChooser/vite.config.js rename to vue2/packages/plugins/LayerChooser/vite.config.js diff --git a/packages/plugins/Legend/CHANGELOG.md b/vue2/packages/plugins/Legend/CHANGELOG.md similarity index 100% rename from packages/plugins/Legend/CHANGELOG.md rename to vue2/packages/plugins/Legend/CHANGELOG.md diff --git a/packages/plugins/Legend/LICENSE b/vue2/packages/plugins/Legend/LICENSE similarity index 100% rename from packages/plugins/Legend/LICENSE rename to vue2/packages/plugins/Legend/LICENSE diff --git a/packages/plugins/Legend/README.md b/vue2/packages/plugins/Legend/README.md similarity index 100% rename from packages/plugins/Legend/README.md rename to vue2/packages/plugins/Legend/README.md diff --git a/packages/plugins/Legend/package.json b/vue2/packages/plugins/Legend/package.json similarity index 100% rename from packages/plugins/Legend/package.json rename to vue2/packages/plugins/Legend/package.json diff --git a/packages/plugins/Legend/src/components/Legend.vue b/vue2/packages/plugins/Legend/src/components/Legend.vue similarity index 100% rename from packages/plugins/Legend/src/components/Legend.vue rename to vue2/packages/plugins/Legend/src/components/Legend.vue diff --git a/packages/plugins/Legend/src/components/index.ts b/vue2/packages/plugins/Legend/src/components/index.ts similarity index 100% rename from packages/plugins/Legend/src/components/index.ts rename to vue2/packages/plugins/Legend/src/components/index.ts diff --git a/packages/plugins/Legend/src/index.ts b/vue2/packages/plugins/Legend/src/index.ts similarity index 100% rename from packages/plugins/Legend/src/index.ts rename to vue2/packages/plugins/Legend/src/index.ts diff --git a/packages/plugins/Legend/src/locales.ts b/vue2/packages/plugins/Legend/src/locales.ts similarity index 100% rename from packages/plugins/Legend/src/locales.ts rename to vue2/packages/plugins/Legend/src/locales.ts diff --git a/packages/plugins/Legend/vite.config.js b/vue2/packages/plugins/Legend/vite.config.js similarity index 100% rename from packages/plugins/Legend/vite.config.js rename to vue2/packages/plugins/Legend/vite.config.js diff --git a/packages/plugins/LoadingIndicator/CHANGELOG.md b/vue2/packages/plugins/LoadingIndicator/CHANGELOG.md similarity index 100% rename from packages/plugins/LoadingIndicator/CHANGELOG.md rename to vue2/packages/plugins/LoadingIndicator/CHANGELOG.md diff --git a/packages/plugins/LoadingIndicator/LICENSE b/vue2/packages/plugins/LoadingIndicator/LICENSE similarity index 100% rename from packages/plugins/LoadingIndicator/LICENSE rename to vue2/packages/plugins/LoadingIndicator/LICENSE diff --git a/packages/plugins/LoadingIndicator/README.md b/vue2/packages/plugins/LoadingIndicator/README.md similarity index 100% rename from packages/plugins/LoadingIndicator/README.md rename to vue2/packages/plugins/LoadingIndicator/README.md diff --git a/packages/plugins/LoadingIndicator/assets/BasicLoader.gif b/vue2/packages/plugins/LoadingIndicator/assets/BasicLoader.gif similarity index 100% rename from packages/plugins/LoadingIndicator/assets/BasicLoader.gif rename to vue2/packages/plugins/LoadingIndicator/assets/BasicLoader.gif diff --git a/packages/plugins/LoadingIndicator/assets/CircleLoader.gif b/vue2/packages/plugins/LoadingIndicator/assets/CircleLoader.gif similarity index 100% rename from packages/plugins/LoadingIndicator/assets/CircleLoader.gif rename to vue2/packages/plugins/LoadingIndicator/assets/CircleLoader.gif diff --git a/packages/plugins/LoadingIndicator/assets/RingLoader.gif b/vue2/packages/plugins/LoadingIndicator/assets/RingLoader.gif similarity index 100% rename from packages/plugins/LoadingIndicator/assets/RingLoader.gif rename to vue2/packages/plugins/LoadingIndicator/assets/RingLoader.gif diff --git a/packages/plugins/LoadingIndicator/assets/RollerLoader.gif b/vue2/packages/plugins/LoadingIndicator/assets/RollerLoader.gif similarity index 100% rename from packages/plugins/LoadingIndicator/assets/RollerLoader.gif rename to vue2/packages/plugins/LoadingIndicator/assets/RollerLoader.gif diff --git a/packages/plugins/LoadingIndicator/assets/SpinnerLoader.gif b/vue2/packages/plugins/LoadingIndicator/assets/SpinnerLoader.gif similarity index 100% rename from packages/plugins/LoadingIndicator/assets/SpinnerLoader.gif rename to vue2/packages/plugins/LoadingIndicator/assets/SpinnerLoader.gif diff --git a/packages/plugins/LoadingIndicator/assets/VuetifyLoader.gif b/vue2/packages/plugins/LoadingIndicator/assets/VuetifyLoader.gif similarity index 100% rename from packages/plugins/LoadingIndicator/assets/VuetifyLoader.gif rename to vue2/packages/plugins/LoadingIndicator/assets/VuetifyLoader.gif diff --git a/packages/plugins/LoadingIndicator/package.json b/vue2/packages/plugins/LoadingIndicator/package.json similarity index 100% rename from packages/plugins/LoadingIndicator/package.json rename to vue2/packages/plugins/LoadingIndicator/package.json diff --git a/packages/plugins/LoadingIndicator/readme_example.png b/vue2/packages/plugins/LoadingIndicator/readme_example.png similarity index 100% rename from packages/plugins/LoadingIndicator/readme_example.png rename to vue2/packages/plugins/LoadingIndicator/readme_example.png diff --git a/packages/plugins/LoadingIndicator/src/components/LoadingIndicator.vue b/vue2/packages/plugins/LoadingIndicator/src/components/LoadingIndicator.vue similarity index 100% rename from packages/plugins/LoadingIndicator/src/components/LoadingIndicator.vue rename to vue2/packages/plugins/LoadingIndicator/src/components/LoadingIndicator.vue diff --git a/packages/plugins/LoadingIndicator/src/components/index.ts b/vue2/packages/plugins/LoadingIndicator/src/components/index.ts similarity index 100% rename from packages/plugins/LoadingIndicator/src/components/index.ts rename to vue2/packages/plugins/LoadingIndicator/src/components/index.ts diff --git a/packages/plugins/LoadingIndicator/src/components/loaderStyles/Basic.vue b/vue2/packages/plugins/LoadingIndicator/src/components/loaderStyles/Basic.vue similarity index 100% rename from packages/plugins/LoadingIndicator/src/components/loaderStyles/Basic.vue rename to vue2/packages/plugins/LoadingIndicator/src/components/loaderStyles/Basic.vue diff --git a/packages/plugins/LoadingIndicator/src/components/loaderStyles/Circle.vue b/vue2/packages/plugins/LoadingIndicator/src/components/loaderStyles/Circle.vue similarity index 100% rename from packages/plugins/LoadingIndicator/src/components/loaderStyles/Circle.vue rename to vue2/packages/plugins/LoadingIndicator/src/components/loaderStyles/Circle.vue diff --git a/packages/plugins/LoadingIndicator/src/components/loaderStyles/Ring.vue b/vue2/packages/plugins/LoadingIndicator/src/components/loaderStyles/Ring.vue similarity index 100% rename from packages/plugins/LoadingIndicator/src/components/loaderStyles/Ring.vue rename to vue2/packages/plugins/LoadingIndicator/src/components/loaderStyles/Ring.vue diff --git a/packages/plugins/LoadingIndicator/src/components/loaderStyles/Roller.vue b/vue2/packages/plugins/LoadingIndicator/src/components/loaderStyles/Roller.vue similarity index 100% rename from packages/plugins/LoadingIndicator/src/components/loaderStyles/Roller.vue rename to vue2/packages/plugins/LoadingIndicator/src/components/loaderStyles/Roller.vue diff --git a/packages/plugins/LoadingIndicator/src/components/loaderStyles/Spinner.vue b/vue2/packages/plugins/LoadingIndicator/src/components/loaderStyles/Spinner.vue similarity index 100% rename from packages/plugins/LoadingIndicator/src/components/loaderStyles/Spinner.vue rename to vue2/packages/plugins/LoadingIndicator/src/components/loaderStyles/Spinner.vue diff --git a/packages/plugins/LoadingIndicator/src/index.ts b/vue2/packages/plugins/LoadingIndicator/src/index.ts similarity index 100% rename from packages/plugins/LoadingIndicator/src/index.ts rename to vue2/packages/plugins/LoadingIndicator/src/index.ts diff --git a/packages/plugins/LoadingIndicator/src/locales.ts b/vue2/packages/plugins/LoadingIndicator/src/locales.ts similarity index 100% rename from packages/plugins/LoadingIndicator/src/locales.ts rename to vue2/packages/plugins/LoadingIndicator/src/locales.ts diff --git a/packages/plugins/LoadingIndicator/src/store/getters.ts b/vue2/packages/plugins/LoadingIndicator/src/store/getters.ts similarity index 100% rename from packages/plugins/LoadingIndicator/src/store/getters.ts rename to vue2/packages/plugins/LoadingIndicator/src/store/getters.ts diff --git a/packages/plugins/LoadingIndicator/src/store/index.ts b/vue2/packages/plugins/LoadingIndicator/src/store/index.ts similarity index 100% rename from packages/plugins/LoadingIndicator/src/store/index.ts rename to vue2/packages/plugins/LoadingIndicator/src/store/index.ts diff --git a/packages/plugins/LoadingIndicator/src/store/mutations.ts b/vue2/packages/plugins/LoadingIndicator/src/store/mutations.ts similarity index 100% rename from packages/plugins/LoadingIndicator/src/store/mutations.ts rename to vue2/packages/plugins/LoadingIndicator/src/store/mutations.ts diff --git a/packages/plugins/LoadingIndicator/src/store/state.ts b/vue2/packages/plugins/LoadingIndicator/src/store/state.ts similarity index 100% rename from packages/plugins/LoadingIndicator/src/store/state.ts rename to vue2/packages/plugins/LoadingIndicator/src/store/state.ts diff --git a/packages/plugins/LoadingIndicator/src/types.ts b/vue2/packages/plugins/LoadingIndicator/src/types.ts similarity index 100% rename from packages/plugins/LoadingIndicator/src/types.ts rename to vue2/packages/plugins/LoadingIndicator/src/types.ts diff --git a/packages/plugins/LoadingIndicator/vite.config.js b/vue2/packages/plugins/LoadingIndicator/vite.config.js similarity index 100% rename from packages/plugins/LoadingIndicator/vite.config.js rename to vue2/packages/plugins/LoadingIndicator/vite.config.js diff --git a/packages/plugins/Pins/CHANGELOG.md b/vue2/packages/plugins/Pins/CHANGELOG.md similarity index 100% rename from packages/plugins/Pins/CHANGELOG.md rename to vue2/packages/plugins/Pins/CHANGELOG.md diff --git a/packages/plugins/Pins/LICENSE b/vue2/packages/plugins/Pins/LICENSE similarity index 100% rename from packages/plugins/Pins/LICENSE rename to vue2/packages/plugins/Pins/LICENSE diff --git a/packages/plugins/Pins/README.md b/vue2/packages/plugins/Pins/README.md similarity index 100% rename from packages/plugins/Pins/README.md rename to vue2/packages/plugins/Pins/README.md diff --git a/packages/plugins/Pins/package.json b/vue2/packages/plugins/Pins/package.json similarity index 100% rename from packages/plugins/Pins/package.json rename to vue2/packages/plugins/Pins/package.json diff --git a/packages/plugins/Pins/src/assets/mapMarker.js b/vue2/packages/plugins/Pins/src/assets/mapMarker.js similarity index 100% rename from packages/plugins/Pins/src/assets/mapMarker.js rename to vue2/packages/plugins/Pins/src/assets/mapMarker.js diff --git a/packages/plugins/Pins/src/index.ts b/vue2/packages/plugins/Pins/src/index.ts similarity index 100% rename from packages/plugins/Pins/src/index.ts rename to vue2/packages/plugins/Pins/src/index.ts diff --git a/packages/plugins/Pins/src/locales.ts b/vue2/packages/plugins/Pins/src/locales.ts similarity index 100% rename from packages/plugins/Pins/src/locales.ts rename to vue2/packages/plugins/Pins/src/locales.ts diff --git a/packages/plugins/Pins/src/store/getters.ts b/vue2/packages/plugins/Pins/src/store/getters.ts similarity index 100% rename from packages/plugins/Pins/src/store/getters.ts rename to vue2/packages/plugins/Pins/src/store/getters.ts diff --git a/packages/plugins/Pins/src/store/index.ts b/vue2/packages/plugins/Pins/src/store/index.ts similarity index 100% rename from packages/plugins/Pins/src/store/index.ts rename to vue2/packages/plugins/Pins/src/store/index.ts diff --git a/packages/plugins/Pins/src/store/state.ts b/vue2/packages/plugins/Pins/src/store/state.ts similarity index 100% rename from packages/plugins/Pins/src/store/state.ts rename to vue2/packages/plugins/Pins/src/store/state.ts diff --git a/packages/plugins/Pins/src/types.ts b/vue2/packages/plugins/Pins/src/types.ts similarity index 100% rename from packages/plugins/Pins/src/types.ts rename to vue2/packages/plugins/Pins/src/types.ts diff --git a/packages/plugins/Pins/src/util/getPinStyle.ts b/vue2/packages/plugins/Pins/src/util/getPinStyle.ts similarity index 100% rename from packages/plugins/Pins/src/util/getPinStyle.ts rename to vue2/packages/plugins/Pins/src/util/getPinStyle.ts diff --git a/packages/plugins/Pins/src/util/getPinSvg.ts b/vue2/packages/plugins/Pins/src/util/getPinSvg.ts similarity index 100% rename from packages/plugins/Pins/src/util/getPinSvg.ts rename to vue2/packages/plugins/Pins/src/util/getPinSvg.ts diff --git a/packages/plugins/Pins/src/util/getPointCoordinate.ts b/vue2/packages/plugins/Pins/src/util/getPointCoordinate.ts similarity index 100% rename from packages/plugins/Pins/src/util/getPointCoordinate.ts rename to vue2/packages/plugins/Pins/src/util/getPointCoordinate.ts diff --git a/packages/plugins/Pins/vite.config.js b/vue2/packages/plugins/Pins/vite.config.js similarity index 100% rename from packages/plugins/Pins/vite.config.js rename to vue2/packages/plugins/Pins/vite.config.js diff --git a/packages/plugins/PointerPosition/CHANGELOG.md b/vue2/packages/plugins/PointerPosition/CHANGELOG.md similarity index 100% rename from packages/plugins/PointerPosition/CHANGELOG.md rename to vue2/packages/plugins/PointerPosition/CHANGELOG.md diff --git a/packages/plugins/PointerPosition/LICENSE b/vue2/packages/plugins/PointerPosition/LICENSE similarity index 100% rename from packages/plugins/PointerPosition/LICENSE rename to vue2/packages/plugins/PointerPosition/LICENSE diff --git a/packages/plugins/PointerPosition/README.md b/vue2/packages/plugins/PointerPosition/README.md similarity index 100% rename from packages/plugins/PointerPosition/README.md rename to vue2/packages/plugins/PointerPosition/README.md diff --git a/packages/plugins/PointerPosition/package.json b/vue2/packages/plugins/PointerPosition/package.json similarity index 100% rename from packages/plugins/PointerPosition/package.json rename to vue2/packages/plugins/PointerPosition/package.json diff --git a/packages/plugins/PointerPosition/src/components/PointerPosition.vue b/vue2/packages/plugins/PointerPosition/src/components/PointerPosition.vue similarity index 100% rename from packages/plugins/PointerPosition/src/components/PointerPosition.vue rename to vue2/packages/plugins/PointerPosition/src/components/PointerPosition.vue diff --git a/packages/plugins/PointerPosition/src/components/index.ts b/vue2/packages/plugins/PointerPosition/src/components/index.ts similarity index 100% rename from packages/plugins/PointerPosition/src/components/index.ts rename to vue2/packages/plugins/PointerPosition/src/components/index.ts diff --git a/packages/plugins/PointerPosition/src/index.ts b/vue2/packages/plugins/PointerPosition/src/index.ts similarity index 100% rename from packages/plugins/PointerPosition/src/index.ts rename to vue2/packages/plugins/PointerPosition/src/index.ts diff --git a/packages/plugins/PointerPosition/src/locales.ts b/vue2/packages/plugins/PointerPosition/src/locales.ts similarity index 100% rename from packages/plugins/PointerPosition/src/locales.ts rename to vue2/packages/plugins/PointerPosition/src/locales.ts diff --git a/packages/plugins/PointerPosition/src/store/index.ts b/vue2/packages/plugins/PointerPosition/src/store/index.ts similarity index 100% rename from packages/plugins/PointerPosition/src/store/index.ts rename to vue2/packages/plugins/PointerPosition/src/store/index.ts diff --git a/packages/plugins/PointerPosition/src/types.ts b/vue2/packages/plugins/PointerPosition/src/types.ts similarity index 100% rename from packages/plugins/PointerPosition/src/types.ts rename to vue2/packages/plugins/PointerPosition/src/types.ts diff --git a/packages/plugins/PointerPosition/vite.config.js b/vue2/packages/plugins/PointerPosition/vite.config.js similarity index 100% rename from packages/plugins/PointerPosition/vite.config.js rename to vue2/packages/plugins/PointerPosition/vite.config.js diff --git a/packages/plugins/ReverseGeocoder/CHANGELOG.md b/vue2/packages/plugins/ReverseGeocoder/CHANGELOG.md similarity index 100% rename from packages/plugins/ReverseGeocoder/CHANGELOG.md rename to vue2/packages/plugins/ReverseGeocoder/CHANGELOG.md diff --git a/packages/plugins/ReverseGeocoder/LICENSE b/vue2/packages/plugins/ReverseGeocoder/LICENSE similarity index 100% rename from packages/plugins/ReverseGeocoder/LICENSE rename to vue2/packages/plugins/ReverseGeocoder/LICENSE diff --git a/packages/plugins/ReverseGeocoder/README.md b/vue2/packages/plugins/ReverseGeocoder/README.md similarity index 100% rename from packages/plugins/ReverseGeocoder/README.md rename to vue2/packages/plugins/ReverseGeocoder/README.md diff --git a/packages/plugins/ReverseGeocoder/package.json b/vue2/packages/plugins/ReverseGeocoder/package.json similarity index 100% rename from packages/plugins/ReverseGeocoder/package.json rename to vue2/packages/plugins/ReverseGeocoder/package.json diff --git a/packages/plugins/ReverseGeocoder/src/index.ts b/vue2/packages/plugins/ReverseGeocoder/src/index.ts similarity index 100% rename from packages/plugins/ReverseGeocoder/src/index.ts rename to vue2/packages/plugins/ReverseGeocoder/src/index.ts diff --git a/packages/plugins/ReverseGeocoder/src/store/index.ts b/vue2/packages/plugins/ReverseGeocoder/src/store/index.ts similarity index 100% rename from packages/plugins/ReverseGeocoder/src/store/index.ts rename to vue2/packages/plugins/ReverseGeocoder/src/store/index.ts diff --git a/packages/plugins/ReverseGeocoder/src/types.ts b/vue2/packages/plugins/ReverseGeocoder/src/types.ts similarity index 100% rename from packages/plugins/ReverseGeocoder/src/types.ts rename to vue2/packages/plugins/ReverseGeocoder/src/types.ts diff --git a/packages/plugins/ReverseGeocoder/src/utils/reverseGeocode.ts b/vue2/packages/plugins/ReverseGeocoder/src/utils/reverseGeocode.ts similarity index 100% rename from packages/plugins/ReverseGeocoder/src/utils/reverseGeocode.ts rename to vue2/packages/plugins/ReverseGeocoder/src/utils/reverseGeocode.ts diff --git a/packages/plugins/ReverseGeocoder/tests/reverseGeocode.spec.ts b/vue2/packages/plugins/ReverseGeocoder/tests/reverseGeocode.spec.ts similarity index 100% rename from packages/plugins/ReverseGeocoder/tests/reverseGeocode.spec.ts rename to vue2/packages/plugins/ReverseGeocoder/tests/reverseGeocode.spec.ts diff --git a/packages/plugins/ReverseGeocoder/vite.config.js b/vue2/packages/plugins/ReverseGeocoder/vite.config.js similarity index 100% rename from packages/plugins/ReverseGeocoder/vite.config.js rename to vue2/packages/plugins/ReverseGeocoder/vite.config.js diff --git a/packages/plugins/Scale/CHANGELOG.md b/vue2/packages/plugins/Scale/CHANGELOG.md similarity index 100% rename from packages/plugins/Scale/CHANGELOG.md rename to vue2/packages/plugins/Scale/CHANGELOG.md diff --git a/packages/plugins/Scale/LICENSE b/vue2/packages/plugins/Scale/LICENSE similarity index 100% rename from packages/plugins/Scale/LICENSE rename to vue2/packages/plugins/Scale/LICENSE diff --git a/packages/plugins/Scale/README.md b/vue2/packages/plugins/Scale/README.md similarity index 100% rename from packages/plugins/Scale/README.md rename to vue2/packages/plugins/Scale/README.md diff --git a/packages/plugins/Scale/package.json b/vue2/packages/plugins/Scale/package.json similarity index 100% rename from packages/plugins/Scale/package.json rename to vue2/packages/plugins/Scale/package.json diff --git a/packages/plugins/Scale/src/components/Scale.vue b/vue2/packages/plugins/Scale/src/components/Scale.vue similarity index 100% rename from packages/plugins/Scale/src/components/Scale.vue rename to vue2/packages/plugins/Scale/src/components/Scale.vue diff --git a/packages/plugins/Scale/src/components/index.ts b/vue2/packages/plugins/Scale/src/components/index.ts similarity index 100% rename from packages/plugins/Scale/src/components/index.ts rename to vue2/packages/plugins/Scale/src/components/index.ts diff --git a/packages/plugins/Scale/src/index.ts b/vue2/packages/plugins/Scale/src/index.ts similarity index 100% rename from packages/plugins/Scale/src/index.ts rename to vue2/packages/plugins/Scale/src/index.ts diff --git a/packages/plugins/Scale/src/locales.ts b/vue2/packages/plugins/Scale/src/locales.ts similarity index 100% rename from packages/plugins/Scale/src/locales.ts rename to vue2/packages/plugins/Scale/src/locales.ts diff --git a/packages/plugins/Scale/src/store/index.ts b/vue2/packages/plugins/Scale/src/store/index.ts similarity index 100% rename from packages/plugins/Scale/src/store/index.ts rename to vue2/packages/plugins/Scale/src/store/index.ts diff --git a/packages/plugins/Scale/src/types.ts b/vue2/packages/plugins/Scale/src/types.ts similarity index 100% rename from packages/plugins/Scale/src/types.ts rename to vue2/packages/plugins/Scale/src/types.ts diff --git a/packages/plugins/Scale/src/utils/beautifyScale.ts b/vue2/packages/plugins/Scale/src/utils/beautifyScale.ts similarity index 100% rename from packages/plugins/Scale/src/utils/beautifyScale.ts rename to vue2/packages/plugins/Scale/src/utils/beautifyScale.ts diff --git a/packages/plugins/Scale/src/utils/calculateScaleFromResolution.ts b/vue2/packages/plugins/Scale/src/utils/calculateScaleFromResolution.ts similarity index 100% rename from packages/plugins/Scale/src/utils/calculateScaleFromResolution.ts rename to vue2/packages/plugins/Scale/src/utils/calculateScaleFromResolution.ts diff --git a/packages/plugins/Scale/src/utils/getDpi.ts b/vue2/packages/plugins/Scale/src/utils/getDpi.ts similarity index 100% rename from packages/plugins/Scale/src/utils/getDpi.ts rename to vue2/packages/plugins/Scale/src/utils/getDpi.ts diff --git a/packages/plugins/Scale/src/utils/thousandsSeperator.ts b/vue2/packages/plugins/Scale/src/utils/thousandsSeperator.ts similarity index 100% rename from packages/plugins/Scale/src/utils/thousandsSeperator.ts rename to vue2/packages/plugins/Scale/src/utils/thousandsSeperator.ts diff --git a/packages/plugins/Scale/vite.config.js b/vue2/packages/plugins/Scale/vite.config.js similarity index 100% rename from packages/plugins/Scale/vite.config.js rename to vue2/packages/plugins/Scale/vite.config.js diff --git a/packages/plugins/Toast/CHANGELOG.md b/vue2/packages/plugins/Toast/CHANGELOG.md similarity index 100% rename from packages/plugins/Toast/CHANGELOG.md rename to vue2/packages/plugins/Toast/CHANGELOG.md diff --git a/packages/plugins/Toast/LICENSE b/vue2/packages/plugins/Toast/LICENSE similarity index 100% rename from packages/plugins/Toast/LICENSE rename to vue2/packages/plugins/Toast/LICENSE diff --git a/packages/plugins/Toast/README.md b/vue2/packages/plugins/Toast/README.md similarity index 100% rename from packages/plugins/Toast/README.md rename to vue2/packages/plugins/Toast/README.md diff --git a/packages/plugins/Toast/package.json b/vue2/packages/plugins/Toast/package.json similarity index 100% rename from packages/plugins/Toast/package.json rename to vue2/packages/plugins/Toast/package.json diff --git a/packages/plugins/Toast/readme_example.png b/vue2/packages/plugins/Toast/readme_example.png similarity index 100% rename from packages/plugins/Toast/readme_example.png rename to vue2/packages/plugins/Toast/readme_example.png diff --git a/packages/plugins/Toast/src/components/Toast.vue b/vue2/packages/plugins/Toast/src/components/Toast.vue similarity index 100% rename from packages/plugins/Toast/src/components/Toast.vue rename to vue2/packages/plugins/Toast/src/components/Toast.vue diff --git a/packages/plugins/Toast/src/components/index.ts b/vue2/packages/plugins/Toast/src/components/index.ts similarity index 100% rename from packages/plugins/Toast/src/components/index.ts rename to vue2/packages/plugins/Toast/src/components/index.ts diff --git a/packages/plugins/Toast/src/index.ts b/vue2/packages/plugins/Toast/src/index.ts similarity index 100% rename from packages/plugins/Toast/src/index.ts rename to vue2/packages/plugins/Toast/src/index.ts diff --git a/packages/plugins/Toast/src/locales.ts b/vue2/packages/plugins/Toast/src/locales.ts similarity index 100% rename from packages/plugins/Toast/src/locales.ts rename to vue2/packages/plugins/Toast/src/locales.ts diff --git a/packages/plugins/Toast/src/store/index.ts b/vue2/packages/plugins/Toast/src/store/index.ts similarity index 100% rename from packages/plugins/Toast/src/store/index.ts rename to vue2/packages/plugins/Toast/src/store/index.ts diff --git a/packages/plugins/Toast/src/types.ts b/vue2/packages/plugins/Toast/src/types.ts similarity index 100% rename from packages/plugins/Toast/src/types.ts rename to vue2/packages/plugins/Toast/src/types.ts diff --git a/packages/plugins/Toast/tests/store.spec.ts b/vue2/packages/plugins/Toast/tests/store.spec.ts similarity index 100% rename from packages/plugins/Toast/tests/store.spec.ts rename to vue2/packages/plugins/Toast/tests/store.spec.ts diff --git a/packages/plugins/Toast/tests/toast.spec.ts b/vue2/packages/plugins/Toast/tests/toast.spec.ts similarity index 100% rename from packages/plugins/Toast/tests/toast.spec.ts rename to vue2/packages/plugins/Toast/tests/toast.spec.ts diff --git a/packages/plugins/Toast/vite.config.js b/vue2/packages/plugins/Toast/vite.config.js similarity index 100% rename from packages/plugins/Toast/vite.config.js rename to vue2/packages/plugins/Toast/vite.config.js diff --git a/packages/plugins/Zoom/CHANGELOG.md b/vue2/packages/plugins/Zoom/CHANGELOG.md similarity index 100% rename from packages/plugins/Zoom/CHANGELOG.md rename to vue2/packages/plugins/Zoom/CHANGELOG.md diff --git a/packages/plugins/Zoom/LICENSE b/vue2/packages/plugins/Zoom/LICENSE similarity index 100% rename from packages/plugins/Zoom/LICENSE rename to vue2/packages/plugins/Zoom/LICENSE diff --git a/packages/plugins/Zoom/README.md b/vue2/packages/plugins/Zoom/README.md similarity index 100% rename from packages/plugins/Zoom/README.md rename to vue2/packages/plugins/Zoom/README.md diff --git a/packages/plugins/Zoom/package.json b/vue2/packages/plugins/Zoom/package.json similarity index 100% rename from packages/plugins/Zoom/package.json rename to vue2/packages/plugins/Zoom/package.json diff --git a/packages/plugins/Zoom/src/components/Zoom.vue b/vue2/packages/plugins/Zoom/src/components/Zoom.vue similarity index 100% rename from packages/plugins/Zoom/src/components/Zoom.vue rename to vue2/packages/plugins/Zoom/src/components/Zoom.vue diff --git a/packages/plugins/Zoom/src/components/ZoomButtonContainer.vue b/vue2/packages/plugins/Zoom/src/components/ZoomButtonContainer.vue similarity index 100% rename from packages/plugins/Zoom/src/components/ZoomButtonContainer.vue rename to vue2/packages/plugins/Zoom/src/components/ZoomButtonContainer.vue diff --git a/packages/plugins/Zoom/src/components/ZoomSlider.vue b/vue2/packages/plugins/Zoom/src/components/ZoomSlider.vue similarity index 100% rename from packages/plugins/Zoom/src/components/ZoomSlider.vue rename to vue2/packages/plugins/Zoom/src/components/ZoomSlider.vue diff --git a/packages/plugins/Zoom/src/components/index.ts b/vue2/packages/plugins/Zoom/src/components/index.ts similarity index 100% rename from packages/plugins/Zoom/src/components/index.ts rename to vue2/packages/plugins/Zoom/src/components/index.ts diff --git a/packages/plugins/Zoom/src/index.ts b/vue2/packages/plugins/Zoom/src/index.ts similarity index 100% rename from packages/plugins/Zoom/src/index.ts rename to vue2/packages/plugins/Zoom/src/index.ts diff --git a/packages/plugins/Zoom/src/locales.ts b/vue2/packages/plugins/Zoom/src/locales.ts similarity index 100% rename from packages/plugins/Zoom/src/locales.ts rename to vue2/packages/plugins/Zoom/src/locales.ts diff --git a/packages/plugins/Zoom/src/store/index.ts b/vue2/packages/plugins/Zoom/src/store/index.ts similarity index 100% rename from packages/plugins/Zoom/src/store/index.ts rename to vue2/packages/plugins/Zoom/src/store/index.ts diff --git a/packages/plugins/Zoom/src/types.ts b/vue2/packages/plugins/Zoom/src/types.ts similarity index 100% rename from packages/plugins/Zoom/src/types.ts rename to vue2/packages/plugins/Zoom/src/types.ts diff --git a/packages/plugins/Zoom/tests/unit/zoom.spec.ts b/vue2/packages/plugins/Zoom/tests/unit/zoom.spec.ts similarity index 100% rename from packages/plugins/Zoom/tests/unit/zoom.spec.ts rename to vue2/packages/plugins/Zoom/tests/unit/zoom.spec.ts diff --git a/packages/plugins/Zoom/vite.config.js b/vue2/packages/plugins/Zoom/vite.config.js similarity index 100% rename from packages/plugins/Zoom/vite.config.js rename to vue2/packages/plugins/Zoom/vite.config.js diff --git a/packages/types/custom/CHANGELOG.md b/vue2/packages/types/custom/CHANGELOG.md similarity index 100% rename from packages/types/custom/CHANGELOG.md rename to vue2/packages/types/custom/CHANGELOG.md diff --git a/packages/types/custom/LICENSE b/vue2/packages/types/custom/LICENSE similarity index 100% rename from packages/types/custom/LICENSE rename to vue2/packages/types/custom/LICENSE diff --git a/packages/types/custom/README.md b/vue2/packages/types/custom/README.md similarity index 100% rename from packages/types/custom/README.md rename to vue2/packages/types/custom/README.md diff --git a/packages/types/custom/core.ts b/vue2/packages/types/custom/core.ts similarity index 100% rename from packages/types/custom/core.ts rename to vue2/packages/types/custom/core.ts diff --git a/packages/types/custom/index.ts b/vue2/packages/types/custom/index.ts similarity index 100% rename from packages/types/custom/index.ts rename to vue2/packages/types/custom/index.ts diff --git a/packages/types/custom/package.json b/vue2/packages/types/custom/package.json similarity index 100% rename from packages/types/custom/package.json rename to vue2/packages/types/custom/package.json diff --git a/packages/types/custom/tsconfig.json b/vue2/packages/types/custom/tsconfig.json similarity index 100% rename from packages/types/custom/tsconfig.json rename to vue2/packages/types/custom/tsconfig.json diff --git a/pages/assets/iceberg.svg b/vue2/pages/assets/iceberg.svg similarity index 100% rename from pages/assets/iceberg.svg rename to vue2/pages/assets/iceberg.svg diff --git a/pages/assets/iceberg_icon.svg b/vue2/pages/assets/iceberg_icon.svg similarity index 100% rename from pages/assets/iceberg_icon.svg rename to vue2/pages/assets/iceberg_icon.svg diff --git a/pages/assets/iframe-resizer/LICENSE b/vue2/pages/assets/iframe-resizer/LICENSE similarity index 100% rename from pages/assets/iframe-resizer/LICENSE rename to vue2/pages/assets/iframe-resizer/LICENSE diff --git a/pages/assets/iframe-resizer/README.md b/vue2/pages/assets/iframe-resizer/README.md similarity index 100% rename from pages/assets/iframe-resizer/README.md rename to vue2/pages/assets/iframe-resizer/README.md diff --git a/pages/assets/iframe-resizer/js/iframeResizer.contentWindow.js b/vue2/pages/assets/iframe-resizer/js/iframeResizer.contentWindow.js similarity index 100% rename from pages/assets/iframe-resizer/js/iframeResizer.contentWindow.js rename to vue2/pages/assets/iframe-resizer/js/iframeResizer.contentWindow.js diff --git a/pages/assets/iframe-resizer/js/iframeResizer.js b/vue2/pages/assets/iframe-resizer/js/iframeResizer.js similarity index 100% rename from pages/assets/iframe-resizer/js/iframeResizer.js rename to vue2/pages/assets/iframe-resizer/js/iframeResizer.js diff --git a/pages/assets/landessymbole/bremen.svg b/vue2/pages/assets/landessymbole/bremen.svg similarity index 100% rename from pages/assets/landessymbole/bremen.svg rename to vue2/pages/assets/landessymbole/bremen.svg diff --git a/pages/assets/landessymbole/hamburg.svg b/vue2/pages/assets/landessymbole/hamburg.svg similarity index 100% rename from pages/assets/landessymbole/hamburg.svg rename to vue2/pages/assets/landessymbole/hamburg.svg diff --git a/pages/assets/landessymbole/sachsen-anhalt.svg b/vue2/pages/assets/landessymbole/sachsen-anhalt.svg similarity index 100% rename from pages/assets/landessymbole/sachsen-anhalt.svg rename to vue2/pages/assets/landessymbole/sachsen-anhalt.svg diff --git a/pages/assets/landessymbole/schleswig-holstein.svg b/vue2/pages/assets/landessymbole/schleswig-holstein.svg similarity index 100% rename from pages/assets/landessymbole/schleswig-holstein.svg rename to vue2/pages/assets/landessymbole/schleswig-holstein.svg diff --git a/pages/assets/landessymbole/sources.md b/vue2/pages/assets/landessymbole/sources.md similarity index 100% rename from pages/assets/landessymbole/sources.md rename to vue2/pages/assets/landessymbole/sources.md diff --git a/pages/assets/manypixels-decentralized.svg b/vue2/pages/assets/manypixels-decentralized.svg similarity index 100% rename from pages/assets/manypixels-decentralized.svg rename to vue2/pages/assets/manypixels-decentralized.svg diff --git a/pages/assets/manypixels-legal.svg b/vue2/pages/assets/manypixels-legal.svg similarity index 100% rename from pages/assets/manypixels-legal.svg rename to vue2/pages/assets/manypixels-legal.svg diff --git a/pages/assets/manypixels-map.svg b/vue2/pages/assets/manypixels-map.svg similarity index 100% rename from pages/assets/manypixels-map.svg rename to vue2/pages/assets/manypixels-map.svg diff --git a/pages/assets/manypixels-mobile.svg b/vue2/pages/assets/manypixels-mobile.svg similarity index 100% rename from pages/assets/manypixels-mobile.svg rename to vue2/pages/assets/manypixels-mobile.svg diff --git a/pages/assets/manypixels-puzzle.svg b/vue2/pages/assets/manypixels-puzzle.svg similarity index 100% rename from pages/assets/manypixels-puzzle.svg rename to vue2/pages/assets/manypixels-puzzle.svg diff --git a/pages/assets/maps_pin.jpg b/vue2/pages/assets/maps_pin.jpg similarity index 100% rename from pages/assets/maps_pin.jpg rename to vue2/pages/assets/maps_pin.jpg diff --git a/pages/assets/polar-architecture.png b/vue2/pages/assets/polar-architecture.png similarity index 100% rename from pages/assets/polar-architecture.png rename to vue2/pages/assets/polar-architecture.png diff --git a/pages/assets/polar-outer-architecture.png b/vue2/pages/assets/polar-outer-architecture.png similarity index 100% rename from pages/assets/polar-outer-architecture.png rename to vue2/pages/assets/polar-outer-architecture.png diff --git a/pages/assets/polar_example_screenshot.png b/vue2/pages/assets/polar_example_screenshot.png similarity index 100% rename from pages/assets/polar_example_screenshot.png rename to vue2/pages/assets/polar_example_screenshot.png diff --git a/pages/assets/productive-users/dataport-logo.svg b/vue2/pages/assets/productive-users/dataport-logo.svg similarity index 100% rename from pages/assets/productive-users/dataport-logo.svg rename to vue2/pages/assets/productive-users/dataport-logo.svg diff --git a/pages/assets/productive-users/hamburg-logo.svg b/vue2/pages/assets/productive-users/hamburg-logo.svg similarity index 100% rename from pages/assets/productive-users/hamburg-logo.svg rename to vue2/pages/assets/productive-users/hamburg-logo.svg diff --git a/pages/assets/productive-users/schleswig-holstein-logo.svg b/vue2/pages/assets/productive-users/schleswig-holstein-logo.svg similarity index 100% rename from pages/assets/productive-users/schleswig-holstein-logo.svg rename to vue2/pages/assets/productive-users/schleswig-holstein-logo.svg diff --git a/pages/assets/productive-users/sources.md b/vue2/pages/assets/productive-users/sources.md similarity index 100% rename from pages/assets/productive-users/sources.md rename to vue2/pages/assets/productive-users/sources.md diff --git a/pages/assets/sources.md b/vue2/pages/assets/sources.md similarity index 100% rename from pages/assets/sources.md rename to vue2/pages/assets/sources.md diff --git a/pages/card.css b/vue2/pages/card.css similarity index 100% rename from pages/card.css rename to vue2/pages/card.css diff --git a/pages/documentation.html b/vue2/pages/documentation.html similarity index 100% rename from pages/documentation.html rename to vue2/pages/documentation.html diff --git a/pages/examples/address.html b/vue2/pages/examples/address.html similarity index 100% rename from pages/examples/address.html rename to vue2/pages/examples/address.html diff --git a/pages/examples/draw.html b/vue2/pages/examples/draw.html similarity index 100% rename from pages/examples/draw.html rename to vue2/pages/examples/draw.html diff --git a/pages/examples/gfi.html b/vue2/pages/examples/gfi.html similarity index 100% rename from pages/examples/gfi.html rename to vue2/pages/examples/gfi.html diff --git a/pages/examples/layer.html b/vue2/pages/examples/layer.html similarity index 100% rename from pages/examples/layer.html rename to vue2/pages/examples/layer.html diff --git a/pages/examples/locales.html b/vue2/pages/examples/locales.html similarity index 100% rename from pages/examples/locales.html rename to vue2/pages/examples/locales.html diff --git a/pages/examples/orientation.html b/vue2/pages/examples/orientation.html similarity index 100% rename from pages/examples/orientation.html rename to vue2/pages/examples/orientation.html diff --git a/pages/examples/render.js b/vue2/pages/examples/render.js similarity index 100% rename from pages/examples/render.js rename to vue2/pages/examples/render.js diff --git a/pages/index.html b/vue2/pages/index.html similarity index 100% rename from pages/index.html rename to vue2/pages/index.html diff --git a/pages/mobile.css b/vue2/pages/mobile.css similarity index 100% rename from pages/mobile.css rename to vue2/pages/mobile.css diff --git a/pages/mvp.css b/vue2/pages/mvp.css similarity index 100% rename from pages/mvp.css rename to vue2/pages/mvp.css diff --git a/pages/package.json b/vue2/pages/package.json similarity index 100% rename from pages/package.json rename to vue2/pages/package.json diff --git a/playwright.config.ts b/vue2/playwright.config.ts similarity index 100% rename from playwright.config.ts rename to vue2/playwright.config.ts diff --git a/scripts/buildPages.sh b/vue2/scripts/buildPages.sh similarity index 100% rename from scripts/buildPages.sh rename to vue2/scripts/buildPages.sh diff --git a/scripts/clean.js b/vue2/scripts/clean.js similarity index 100% rename from scripts/clean.js rename to vue2/scripts/clean.js diff --git a/scripts/createRelease.js b/vue2/scripts/createRelease.js similarity index 100% rename from scripts/createRelease.js rename to vue2/scripts/createRelease.js diff --git a/scripts/makeDocs.ts b/vue2/scripts/makeDocs.ts similarity index 100% rename from scripts/makeDocs.ts rename to vue2/scripts/makeDocs.ts diff --git a/scripts/packages.js b/vue2/scripts/packages.js similarity index 100% rename from scripts/packages.js rename to vue2/scripts/packages.js diff --git a/scripts/precompileSvg.js b/vue2/scripts/precompileSvg.js similarity index 100% rename from scripts/precompileSvg.js rename to vue2/scripts/precompileSvg.js diff --git a/scripts/publishPackages.js b/vue2/scripts/publishPackages.js similarity index 100% rename from scripts/publishPackages.js rename to vue2/scripts/publishPackages.js diff --git a/scripts/versionPackages.js b/vue2/scripts/versionPackages.js similarity index 100% rename from scripts/versionPackages.js rename to vue2/scripts/versionPackages.js diff --git a/tsconfig.json b/vue2/tsconfig.json similarity index 100% rename from tsconfig.json rename to vue2/tsconfig.json diff --git a/viteConfigs/index.js b/vue2/viteConfigs/index.js similarity index 100% rename from viteConfigs/index.js rename to vue2/viteConfigs/index.js diff --git a/viteConfigs/vite.client.js b/vue2/viteConfigs/vite.client.js similarity index 100% rename from viteConfigs/vite.client.js rename to vue2/viteConfigs/vite.client.js diff --git a/viteConfigs/vite.code.js b/vue2/viteConfigs/vite.code.js similarity index 100% rename from viteConfigs/vite.code.js rename to vue2/viteConfigs/vite.code.js From 9c04b72c78dfad6879fe9ceee24cf79fb503fd21 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Mon, 16 Jun 2025 11:15:53 +0200 Subject: [PATCH 002/697] Add ESLint --- .editorconfig | 5 + .gitignore | 2 + eslint.config.js | 23 + package-lock.json | 4735 +++++++++++++++++++++++++++++++++++++++++++++ package.json | 22 + 5 files changed, 4787 insertions(+) create mode 100644 .gitignore create mode 100644 eslint.config.js create mode 100644 package-lock.json create mode 100644 package.json diff --git a/.editorconfig b/.editorconfig index b765a3278..5fa5b2ba4 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,4 +1,9 @@ [*.{js,ts,vue,json}] +indent_style = tab +trim_trailing_whitespace = true +insert_final_newline = true + +[vue2/*.{js,ts,vue,json}] indent_style = space indent_size = 2 trim_trailing_whitespace = true diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..b0de03aa2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +node_modules +.eslintcache diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 000000000..c94abaece --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,23 @@ +import { defineConfig } from 'eslint/config' +import mainConfig from '@dataport/eslint-config-geodev' +import browserConfig from '@dataport/eslint-config-geodev/browser' +import tsConfig from '@dataport/eslint-config-geodev/typescript' +import vueConfig from '@dataport/eslint-config-geodev/vue' + +export default defineConfig([ + { + ignores: ['vue2/'], + }, + { + files: ['**/*.js'], + extends: [mainConfig, browserConfig], + }, + { + files: ['**/*.ts'], + extends: [mainConfig, browserConfig, tsConfig], + }, + { + files: ['**/*.vue'], + extends: [mainConfig, browserConfig, tsConfig, vueConfig], + }, +]) diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 000000000..fa2978026 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,4735 @@ +{ + "name": "polar", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "polar", + "license": "EUPL-1.2", + "devDependencies": { + "@dataport/eslint-config-geodev": "^0.3.1", + "eslint": "^9.29.0", + "typescript": "^5.8.3" + }, + "engines": { + "node": "^22.16.0", + "npm": "^10.9.2" + } + }, + "node_modules/@dataport/eslint-config-geodev": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@dataport/eslint-config-geodev/-/eslint-config-geodev-0.3.1.tgz", + "integrity": "sha512-N0khO9mOGKHcdTICipDgRBebOoEan3hMMIjXzZaOCsQsTKKy9HXK0aPiMCrhzaxHAJm6uTk6PmUSC8VmqVaNxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint/js": "^9.25.1", + "eslint-plugin-tsdoc": "^0.4.0", + "eslint-plugin-vue": "^10.0.0", + "globals": "^16.0.0", + "neostandard": "^0.12.1", + "typescript-eslint": "^8.31.0" + }, + "peerDependencies": { + "eslint": ">= 9" + } + }, + "node_modules/@emnapi/core": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.4.3.tgz", + "integrity": "sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.0.2", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz", + "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.2.tgz", + "integrity": "sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", + "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.1.tgz", + "integrity": "sha512-OL0RJzC/CBzli0DrrR31qzj6d6i6Mm3HByuhflhl4LOBiWxN+3i6/t/ZQQNii4tjksXi8r2CRW1wMpWA2ULUEw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.6", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.3.tgz", + "integrity": "sha512-u180qk2Um1le4yf0ruXH3PYFeEZeYC3p/4wCTKrr2U1CmGdzGi3KtY0nuPDH48UJxlKCC5RDzbcbh4X0XlqgHg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.14.0.tgz", + "integrity": "sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", + "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "9.29.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.29.0.tgz", + "integrity": "sha512-3PIF4cBw/y+1u2EazflInpV+lYsSG0aByVIQzAgb1m1MhHFSbqTyNqtBKHgWf/9Ykud+DhILS9EGkmekVhbKoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", + "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.2.tgz", + "integrity": "sha512-4SaFZCNfJqvk/kenHpI8xvN42DMaoycy4PzKc5otHxRswww1kAt82OlBuwRVLofCACCTZEcla2Ydxv8scMXaTg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.15.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit/node_modules/@eslint/core": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.0.tgz", + "integrity": "sha512-b7ePw78tEWWkpgZCDYkbqDOP8dmM6qe+AOC6iuJqlq1R/0ahMAeH3qynpnqKFGkMltrp44ohV4ubGyvLX28tzw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/gitignore-to-minimatch": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", + "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", + "dev": true, + "license": "Apache-2.0", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@isaacs/balanced-match": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", + "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@isaacs/brace-expansion": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", + "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@isaacs/balanced-match": "^4.0.1" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@microsoft/tsdoc": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.15.1.tgz", + "integrity": "sha512-4aErSrCR/On/e5G2hDP0wjooqDdauzEbIq8hIkIe5pXV0rtWJZvdCEKL0ykZxex+IxIwBp0eGeV48hQN07dXtw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@microsoft/tsdoc-config": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.17.1.tgz", + "integrity": "sha512-UtjIFe0C6oYgTnad4q1QP4qXwLhe6tIpNTRStJ2RZEPIkqQPREAwE5spzVxsdn9UaEMUqhh0AqSx3X4nWAKXWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@microsoft/tsdoc": "0.15.1", + "ajv": "~8.12.0", + "jju": "~1.4.0", + "resolve": "~1.22.2" + } + }, + "node_modules/@microsoft/tsdoc-config/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@microsoft/tsdoc-config/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.11.tgz", + "integrity": "sha512-9DPkXtvHydrcOsopiYpUgPHpmj0HWZKMUnL2dZqpvC42lsratuBG06V5ipyno0fUek5VlFsNQ+AcFATSrJXgMA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.4.3", + "@emnapi/runtime": "^1.4.3", + "@tybys/wasm-util": "^0.9.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nolyfill/is-core-module": { + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", + "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.4.0" + } + }, + "node_modules/@stylistic/eslint-plugin": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-2.11.0.tgz", + "integrity": "sha512-PNRHbydNG5EH8NK4c+izdJlxajIR6GxcUhzsYNRsn6Myep4dsZt0qFCz3rCPnkvgO5FYibDcMqgNHUT+zvjYZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/utils": "^8.13.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "estraverse": "^5.3.0", + "picomatch": "^4.0.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "peerDependencies": { + "eslint": ">=8.40.0" + } + }, + "node_modules/@tybys/wasm-util": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz", + "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.34.0.tgz", + "integrity": "sha512-QXwAlHlbcAwNlEEMKQS2RCgJsgXrTJdjXT08xEgbPFa2yYQgVjBymxP5DrfrE7X7iodSzd9qBUHUycdyVJTW1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.34.0", + "@typescript-eslint/type-utils": "8.34.0", + "@typescript-eslint/utils": "8.34.0", + "@typescript-eslint/visitor-keys": "8.34.0", + "graphemer": "^1.4.0", + "ignore": "^7.0.0", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.34.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.34.0.tgz", + "integrity": "sha512-vxXJV1hVFx3IXz/oy2sICsJukaBrtDEQSBiV48/YIV5KWjX1dO+bcIr/kCPrW6weKXvsaGKFNlwH0v2eYdRRbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.34.0", + "@typescript-eslint/types": "8.34.0", + "@typescript-eslint/typescript-estree": "8.34.0", + "@typescript-eslint/visitor-keys": "8.34.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.34.0.tgz", + "integrity": "sha512-iEgDALRf970/B2YExmtPMPF54NenZUf4xpL3wsCRx/lgjz6ul/l13R81ozP/ZNuXfnLCS+oPmG7JIxfdNYKELw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.34.0", + "@typescript-eslint/types": "^8.34.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.34.0.tgz", + "integrity": "sha512-9Ac0X8WiLykl0aj1oYQNcLZjHgBojT6cW68yAgZ19letYu+Hxd0rE0veI1XznSSst1X5lwnxhPbVdwjDRIomRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.34.0", + "@typescript-eslint/visitor-keys": "8.34.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.34.0.tgz", + "integrity": "sha512-+W9VYHKFIzA5cBeooqQxqNriAP0QeQ7xTiDuIOr71hzgffm3EL2hxwWBIIj4GuofIbKxGNarpKqIq6Q6YrShOA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.34.0.tgz", + "integrity": "sha512-n7zSmOcUVhcRYC75W2pnPpbO1iwhJY3NLoHEtbJwJSNlVAZuwqu05zY3f3s2SDWWDSo9FdN5szqc73DCtDObAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "8.34.0", + "@typescript-eslint/utils": "8.34.0", + "debug": "^4.3.4", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.0.tgz", + "integrity": "sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.34.0.tgz", + "integrity": "sha512-rOi4KZxI7E0+BMqG7emPSK1bB4RICCpF7QD3KCLXn9ZvWoESsOMlHyZPAHyG04ujVplPaHbmEvs34m+wjgtVtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.34.0", + "@typescript-eslint/tsconfig-utils": "8.34.0", + "@typescript-eslint/types": "8.34.0", + "@typescript-eslint/visitor-keys": "8.34.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.34.0.tgz", + "integrity": "sha512-8L4tWatGchV9A1cKbjaavS6mwYwp39jql8xUmIIKJdm+qiaeHy5KMKlBrf30akXAWBzn2SqKsNOtSENWUwg7XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.34.0", + "@typescript-eslint/types": "8.34.0", + "@typescript-eslint/typescript-estree": "8.34.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.34.0.tgz", + "integrity": "sha512-qHV7pW7E85A0x6qyrFn+O+q1k1p3tQCsqIZ1KZ5ESLXY57aTvUd3/a4rdPTeXisvhXn2VQG0VSKUqs8KHF2zcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.34.0", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@unrs/resolver-binding-android-arm-eabi": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.9.0.tgz", + "integrity": "sha512-h1T2c2Di49ekF2TE8ZCoJkb+jwETKUIPDJ/nO3tJBKlLFPu+fyd93f0rGP/BvArKx2k2HlRM4kqkNarj3dvZlg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-android-arm64": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.9.0.tgz", + "integrity": "sha512-sG1NHtgXtX8owEkJ11yn34vt0Xqzi3k9TJ8zppDmyG8GZV4kVWw44FHwKwHeEFl07uKPeC4ZoyuQaGh5ruJYPA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-arm64": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.9.0.tgz", + "integrity": "sha512-nJ9z47kfFnCxN1z/oYZS7HSNsFh43y2asePzTEZpEvK7kGyuShSl3RRXnm/1QaqFL+iP+BjMwuB+DYUymOkA5A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-x64": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.9.0.tgz", + "integrity": "sha512-TK+UA1TTa0qS53rjWn7cVlEKVGz2B6JYe0C++TdQjvWYIyx83ruwh0wd4LRxYBM5HeuAzXcylA9BH2trARXJTw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-freebsd-x64": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.9.0.tgz", + "integrity": "sha512-6uZwzMRFcD7CcCd0vz3Hp+9qIL2jseE/bx3ZjaLwn8t714nYGwiE84WpaMCYjU+IQET8Vu/+BNAGtYD7BG/0yA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.9.0.tgz", + "integrity": "sha512-bPUBksQfrgcfv2+mm+AZinaKq8LCFvt5PThYqRotqSuuZK1TVKkhbVMS/jvSRfYl7jr3AoZLYbDkItxgqMKRkg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.9.0.tgz", + "integrity": "sha512-uT6E7UBIrTdCsFQ+y0tQd3g5oudmrS/hds5pbU3h4s2t/1vsGWbbSKhBSCD9mcqaqkBwoqlECpUrRJCmldl8PA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.9.0.tgz", + "integrity": "sha512-vdqBh911wc5awE2bX2zx3eflbyv8U9xbE/jVKAm425eRoOVv/VseGZsqi3A3SykckSpF4wSROkbQPvbQFn8EsA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-musl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.9.0.tgz", + "integrity": "sha512-/8JFZ/SnuDr1lLEVsxsuVwrsGquTvT51RZGvyDB/dOK3oYK2UqeXzgeyq6Otp8FZXQcEYqJwxb9v+gtdXn03eQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.9.0.tgz", + "integrity": "sha512-FkJjybtrl+rajTw4loI3L6YqSOpeZfDls4SstL/5lsP2bka9TiHUjgMBjygeZEis1oC8LfJTS8FSgpKPaQx2tQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.9.0.tgz", + "integrity": "sha512-w/NZfHNeDusbqSZ8r/hp8iL4S39h4+vQMc9/vvzuIKMWKppyUGKm3IST0Qv0aOZ1rzIbl9SrDeIqK86ZpUK37w==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.9.0.tgz", + "integrity": "sha512-bEPBosut8/8KQbUixPry8zg/fOzVOWyvwzOfz0C0Rw6dp+wIBseyiHKjkcSyZKv/98edrbMknBaMNJfA/UEdqw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.9.0.tgz", + "integrity": "sha512-LDtMT7moE3gK753gG4pc31AAqGUC86j3AplaFusc717EUGF9ZFJ356sdQzzZzkBk1XzMdxFyZ4f/i35NKM/lFA==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-gnu": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.9.0.tgz", + "integrity": "sha512-WmFd5KINHIXj8o1mPaT8QRjA9HgSXhN1gl9Da4IZihARihEnOylu4co7i/yeaIpcfsI6sYs33cNZKyHYDh0lrA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-musl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.9.0.tgz", + "integrity": "sha512-CYuXbANW+WgzVRIl8/QvZmDaZxrqvOldOwlbUjIM4pQ46FJ0W5cinJ/Ghwa/Ng1ZPMJMk1VFdsD/XwmCGIXBWg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-wasm32-wasi": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.9.0.tgz", + "integrity": "sha512-6Rp2WH0OoitMYR57Z6VE8Y6corX8C6QEMWLgOV6qXiJIeZ1F9WGXY/yQ8yDC4iTraotyLOeJ2Asea0urWj2fKQ==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^0.2.11" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.9.0.tgz", + "integrity": "sha512-rknkrTRuvujprrbPmGeHi8wYWxmNVlBoNW8+4XF2hXUnASOjmuC9FNF1tGbDiRQWn264q9U/oGtixyO3BT8adQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.9.0.tgz", + "integrity": "sha512-Ceymm+iBl+bgAICtgiHyMLz6hjxmLJKqBim8tDzpX61wpZOx2bPK6Gjuor7I2RiUynVjvvkoRIkrPyMwzBzF3A==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-x64-msvc": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.9.0.tgz", + "integrity": "sha512-k59o9ZyeyS0hAlcaKFezYSH2agQeRFEB7KoQLXl3Nb3rgkqT1NY9Vwy+SqODiLmYnEjxWJVRE/yq2jFVqdIxZw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", + "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "get-intrinsic": "^1.3.0", + "is-string": "^1.1.1", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/comment-parser": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz", + "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.18.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", + "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/es-abstract": { + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.0.tgz", + "integrity": "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.2.1", + "is-set": "^2.0.3", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.1", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.4", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.19" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", + "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.6", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.4", + "safe-array-concat": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.29.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.29.0.tgz", + "integrity": "sha512-GsGizj2Y1rCWDu6XoEekL3RLilp0voSePurjZIkxL3wlm5o5EC9VpgaP7lrCvjnkuLvzFBQWB3vWB3K5KQTveQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.20.1", + "@eslint/config-helpers": "^0.2.1", + "@eslint/core": "^0.14.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.29.0", + "@eslint/plugin-kit": "^0.3.1", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-compat-utils": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz", + "integrity": "sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-import-context": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eslint-import-context/-/eslint-import-context-0.1.8.tgz", + "integrity": "sha512-bq+F7nyc65sKpZGT09dY0S0QrOnQtuDVIfyTGQ8uuvtMIF7oHp6CEP3mouN0rrnYF3Jqo6Ke0BfU/5wASZue1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-tsconfig": "^4.10.1", + "stable-hash-x": "^0.1.1" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-import-context" + }, + "peerDependencies": { + "unrs-resolver": "^1.0.0" + }, + "peerDependenciesMeta": { + "unrs-resolver": { + "optional": true + } + } + }, + "node_modules/eslint-import-resolver-typescript": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.10.1.tgz", + "integrity": "sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@nolyfill/is-core-module": "1.0.39", + "debug": "^4.4.0", + "get-tsconfig": "^4.10.0", + "is-bun-module": "^2.0.0", + "stable-hash": "^0.0.5", + "tinyglobby": "^0.2.13", + "unrs-resolver": "^1.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-import-resolver-typescript" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*", + "eslint-plugin-import-x": "*" + }, + "peerDependenciesMeta": { + "eslint-plugin-import": { + "optional": true + }, + "eslint-plugin-import-x": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-es-x": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.8.0.tgz", + "integrity": "sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==", + "dev": true, + "funding": [ + "https://github.com/sponsors/ota-meshi", + "https://opencollective.com/eslint" + ], + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.1.2", + "@eslint-community/regexpp": "^4.11.0", + "eslint-compat-utils": "^0.5.1" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": ">=8" + } + }, + "node_modules/eslint-plugin-import-x": { + "version": "4.15.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-import-x/-/eslint-plugin-import-x-4.15.2.tgz", + "integrity": "sha512-J5gx7sN6DTm0LRT//eP3rVVQ2Yi4hrX0B+DbWxa5er8PZ6JjLo9GUBwogIFvEDdwJaSqZplpQT+haK/cXhb7VQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "^8.34.0", + "comment-parser": "^1.4.1", + "debug": "^4.4.1", + "eslint-import-context": "^0.1.8", + "is-glob": "^4.0.3", + "minimatch": "^9.0.3 || ^10.0.1", + "semver": "^7.7.2", + "stable-hash-x": "^0.1.1", + "unrs-resolver": "^1.9.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-import-x" + }, + "peerDependencies": { + "@typescript-eslint/utils": "^8.0.0", + "eslint": "^8.57.0 || ^9.0.0", + "eslint-import-resolver-node": "*" + }, + "peerDependenciesMeta": { + "@typescript-eslint/utils": { + "optional": true + }, + "eslint-import-resolver-node": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-import-x/node_modules/minimatch": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz", + "integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==", + "dev": true, + "license": "ISC", + "dependencies": { + "@isaacs/brace-expansion": "^5.0.0" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/eslint-plugin-n": { + "version": "17.20.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.20.0.tgz", + "integrity": "sha512-IRSoatgB/NQJZG5EeTbv/iAx1byOGdbbyhQrNvWdCfTnmPxUT0ao9/eGOeG7ljD8wJBsxwE8f6tES5Db0FRKEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.5.0", + "@typescript-eslint/utils": "^8.26.1", + "enhanced-resolve": "^5.17.1", + "eslint-plugin-es-x": "^7.8.0", + "get-tsconfig": "^4.8.1", + "globals": "^15.11.0", + "ignore": "^5.3.2", + "minimatch": "^9.0.5", + "semver": "^7.6.3", + "ts-declaration-location": "^1.0.6" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": ">=8.23.0" + } + }, + "node_modules/eslint-plugin-n/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/eslint-plugin-n/node_modules/globals": { + "version": "15.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", + "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-n/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/eslint-plugin-promise": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-7.2.1.tgz", + "integrity": "sha512-SWKjd+EuvWkYaS+uN2csvj0KoP43YTu7+phKQ5v+xw6+A0gutVX2yqCeCkC3uLCJFiPfR2dD8Es5L7yUsmvEaA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.37.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", + "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.3", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.2.1", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.9", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.1", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.12", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-tsdoc": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-tsdoc/-/eslint-plugin-tsdoc-0.4.0.tgz", + "integrity": "sha512-MT/8b4aKLdDClnS8mP3R/JNjg29i0Oyqd/0ym6NnQf+gfKbJJ4ZcSh2Bs1H0YiUMTBwww5JwXGTWot/RwyJ7aQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@microsoft/tsdoc": "0.15.1", + "@microsoft/tsdoc-config": "0.17.1" + } + }, + "node_modules/eslint-plugin-vue": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-10.2.0.tgz", + "integrity": "sha512-tl9s+KN3z0hN2b8fV2xSs5ytGl7Esk1oSCxULLwFcdaElhZ8btYYZFrWxvh4En+czrSDtuLCeCOGa8HhEZuBdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.1.1", + "postcss-selector-parser": "^6.0.15", + "semver": "^7.6.3", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "vue-eslint-parser": "^10.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fdir": { + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", + "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz", + "integrity": "sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.2.0.tgz", + "integrity": "sha512-O+7l9tPdHCU320IigZZPj5zmRCFG9xHmx9cU8FqU2Rp+JN714seHV+2S9+JslCpY4gJwU2vOGox0wzgae/MCEg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bun-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-2.0.0.tgz", + "integrity": "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.7.1" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/iterator.prototype": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", + "has-symbols": "^1.1.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/jju": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", + "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/napi-postinstall": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.2.4.tgz", + "integrity": "sha512-ZEzHJwBhZ8qQSbknHqYcdtQVr8zUgGyM/q6h6qAyhtyVMNrSgDhrC4disf03dYW0e+czXyLnZINnCTEkWy0eJg==", + "dev": true, + "license": "MIT", + "bin": { + "napi-postinstall": "lib/cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/napi-postinstall" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/neostandard": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/neostandard/-/neostandard-0.12.1.tgz", + "integrity": "sha512-As/LDK+xx591BLb1rPRaPs+JfXFgyNx5BoBui1KBeF/J4s0mW8+NBohrYnMfgm1w1t7E/Y/tU34MjMiP6lns6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", + "@stylistic/eslint-plugin": "2.11.0", + "eslint-import-resolver-typescript": "^3.7.0", + "eslint-plugin-import-x": "^4.5.0", + "eslint-plugin-n": "^17.14.0", + "eslint-plugin-promise": "^7.2.1", + "eslint-plugin-react": "^7.37.2", + "find-up": "^5.0.0", + "globals": "^15.13.0", + "peowly": "^1.3.2", + "typescript-eslint": "^8.17.0" + }, + "bin": { + "neostandard": "cli.mjs" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "peerDependencies": { + "eslint": "^9.0.0" + } + }, + "node_modules/neostandard/node_modules/globals": { + "version": "15.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", + "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", + "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/peowly": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/peowly/-/peowly-1.3.2.tgz", + "integrity": "sha512-BYIrwr8JCXY49jUZscgw311w9oGEKo7ux/s+BxrhKTQbiQ0iYNdZNJ5LgagaeercQdFHwnR7Z5IxxFWVQ+BasQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.6.0" + } + }, + "node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/stable-hash": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", + "integrity": "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/stable-hash-x": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/stable-hash-x/-/stable-hash-x-0.1.1.tgz", + "integrity": "sha512-l0x1D6vhnsNUGPFVDx45eif0y6eedVC8nm5uACTrVFJFtl2mLRW17aWtVyxFCpn5t94VUPkjU8vSLwIuwwqtJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", + "set-function-name": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tapable": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz", + "integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", + "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.4.4", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", + "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/ts-declaration-location": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/ts-declaration-location/-/ts-declaration-location-1.0.7.tgz", + "integrity": "sha512-EDyGAwH1gO0Ausm9gV6T2nUvBgXT5kGoCMJPllOaooZ+4VvJiKBdZE7wK18N1deEowhcUptS+5GXZK8U/fvpwA==", + "dev": true, + "funding": [ + { + "type": "ko-fi", + "url": "https://ko-fi.com/rebeccastevens" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/ts-declaration-location" + } + ], + "license": "BSD-3-Clause", + "dependencies": { + "picomatch": "^4.0.2" + }, + "peerDependencies": { + "typescript": ">=4.0.0" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD", + "optional": true + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.34.0.tgz", + "integrity": "sha512-MRpfN7uYjTrTGigFCt8sRyNqJFhjN0WwZecldaqhWm+wy0gaRt8Edb/3cuUy0zdq2opJWT6iXINKAtewnDOltQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.34.0", + "@typescript-eslint/parser": "8.34.0", + "@typescript-eslint/utils": "8.34.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unrs-resolver": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.9.0.tgz", + "integrity": "sha512-wqaRu4UnzBD2ABTC1kLfBjAqIDZ5YUTr/MLGa7By47JV1bJDSW7jq/ZSLigB7enLe7ubNaJhtnBXgrc/50cEhg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "napi-postinstall": "^0.2.2" + }, + "funding": { + "url": "https://opencollective.com/unrs-resolver" + }, + "optionalDependencies": { + "@unrs/resolver-binding-android-arm-eabi": "1.9.0", + "@unrs/resolver-binding-android-arm64": "1.9.0", + "@unrs/resolver-binding-darwin-arm64": "1.9.0", + "@unrs/resolver-binding-darwin-x64": "1.9.0", + "@unrs/resolver-binding-freebsd-x64": "1.9.0", + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.9.0", + "@unrs/resolver-binding-linux-arm-musleabihf": "1.9.0", + "@unrs/resolver-binding-linux-arm64-gnu": "1.9.0", + "@unrs/resolver-binding-linux-arm64-musl": "1.9.0", + "@unrs/resolver-binding-linux-ppc64-gnu": "1.9.0", + "@unrs/resolver-binding-linux-riscv64-gnu": "1.9.0", + "@unrs/resolver-binding-linux-riscv64-musl": "1.9.0", + "@unrs/resolver-binding-linux-s390x-gnu": "1.9.0", + "@unrs/resolver-binding-linux-x64-gnu": "1.9.0", + "@unrs/resolver-binding-linux-x64-musl": "1.9.0", + "@unrs/resolver-binding-wasm32-wasi": "1.9.0", + "@unrs/resolver-binding-win32-arm64-msvc": "1.9.0", + "@unrs/resolver-binding-win32-ia32-msvc": "1.9.0", + "@unrs/resolver-binding-win32-x64-msvc": "1.9.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/vue-eslint-parser": { + "version": "10.1.3", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-10.1.3.tgz", + "integrity": "sha512-dbCBnd2e02dYWsXoqX5yKUZlOt+ExIpq7hmHKPb5ZqKcjf++Eo0hMseFTZMLKThrUk61m+Uv6A2YSBve6ZvuDQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "debug": "^4.4.0", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.6.0", + "lodash": "^4.17.21", + "semver": "^7.6.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "packages/clients/snowbox": { + "extraneous": true + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 000000000..72c1a654f --- /dev/null +++ b/package.json @@ -0,0 +1,22 @@ +{ + "name": "polar", + "description": "masterportalAPI-based map client library", + "author": "Dataport AöR ", + "license": "EUPL-1.2", + "type": "module", + "engines": { + "node": "^22.16.0", + "npm": "^10.9.2" + }, + "scripts": { + "lint": "eslint --cache .", + "lint:ci": "eslint .", + "lint:fix": "npm run lint -- --fix", + "tsc:ci": "tsc --noEmit" + }, + "devDependencies": { + "@dataport/eslint-config-geodev": "^0.3.1", + "eslint": "^9.29.0", + "typescript": "~5.8.3" + } +} From b40765ba1a708e33a38ad8788eed7e51aae8e5f2 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Mon, 16 Jun 2025 13:04:15 +0200 Subject: [PATCH 003/697] Add basic POLAR web component --- lib/core/index.ts | 12 + package-lock.json | 2002 +++++++++++++++++++++++++++++++++++++++++++-- package.json | 9 +- src/index.html | 12 + src/snowbox.js | 2 + vite.config.ts | 37 + 6 files changed, 2020 insertions(+), 54 deletions(-) create mode 100644 lib/core/index.ts create mode 100644 src/index.html create mode 100644 src/snowbox.js create mode 100644 vite.config.ts diff --git a/lib/core/index.ts b/lib/core/index.ts new file mode 100644 index 000000000..fad7c7ec4 --- /dev/null +++ b/lib/core/index.ts @@ -0,0 +1,12 @@ +import * as mpapi from '@masterportal/masterportalapi' +import { defineCustomElement } from 'vue' + +export function register() { + const PolarMapElement = defineCustomElement({ + props: {}, + emits: {}, + template: `POLAR map boilerplate`, + styles: [`/* inlined css */`] + }) + customElements.define('polar-map', PolarMapElement) +} diff --git a/package-lock.json b/package-lock.json index fa2978026..4c2518c73 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,16 +6,161 @@ "": { "name": "polar", "license": "EUPL-1.2", + "dependencies": { + "@masterportal/masterportalapi": "2.49.0", + "vite": "^6.3.5", + "vue": "^3.5.16" + }, "devDependencies": { "@dataport/eslint-config-geodev": "^0.3.1", + "@vitejs/plugin-vue": "^5.2.4", "eslint": "^9.29.0", - "typescript": "^5.8.3" + "typescript": "~5.8.3" }, "engines": { "node": "^22.16.0", "npm": "^10.9.2" } }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.5.tgz", + "integrity": "sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.6.tgz", + "integrity": "sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@cesium/engine": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@cesium/engine/-/engine-15.0.0.tgz", + "integrity": "sha512-jimj7khIf/mBkejsMZ+n6Y9PPvXh4QmWKkz2ekFz59icDCeGj8ZJrzl5p0caqiK/372mnHOwmYFWYEwThEw2ew==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@tweenjs/tween.js": "^25.0.0", + "@zip.js/zip.js": "^2.7.34", + "autolinker": "^4.0.0", + "bitmap-sdf": "^1.0.3", + "dompurify": "^3.0.2", + "draco3d": "^1.5.1", + "earcut": "^3.0.0", + "grapheme-splitter": "^1.0.4", + "jsep": "^1.3.8", + "kdbush": "^4.0.1", + "ktx-parse": "^1.0.0", + "lerc": "^2.0.0", + "mersenne-twister": "^1.1.0", + "meshoptimizer": "^0.22.0", + "pako": "^2.0.4", + "protobufjs": "^7.1.0", + "rbush": "3.0.1", + "topojson-client": "^3.1.0", + "urijs": "^1.19.7" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@cesium/widgets": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/@cesium/widgets/-/widgets-12.1.0.tgz", + "integrity": "sha512-t93u/yyVp0x+27Bl6g4DyQtLOFfpF8hZjou+/JpekSExS2uy8akPVl5KjTbwonlx0D1AaTmjP45mLRLvcLpb3g==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@cesium/engine": "^18.0.0", + "nosleep.js": "^0.12.0" + }, + "engines": { + "node": ">=20.19.0" + } + }, + "node_modules/@cesium/widgets/node_modules/@cesium/engine": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@cesium/engine/-/engine-18.0.0.tgz", + "integrity": "sha512-BmORpS2BVGT/Rd9f591a7PudFxXeCq2agdBAUX6XBhxUboieI9hU5MEC7EjT0sSLGLtwVw9i2hu4/XOXUnFXWg==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@tweenjs/tween.js": "^25.0.0", + "@zip.js/zip.js": "^2.7.34", + "autolinker": "^4.0.0", + "bitmap-sdf": "^1.0.3", + "dompurify": "^3.0.2", + "draco3d": "^1.5.1", + "earcut": "^3.0.0", + "grapheme-splitter": "^1.0.4", + "jsep": "^1.3.8", + "kdbush": "^4.0.1", + "ktx-parse": "^1.0.0", + "lerc": "^2.0.0", + "mersenne-twister": "^1.1.0", + "meshoptimizer": "^0.23.0", + "pako": "^2.0.4", + "protobufjs": "^7.1.0", + "rbush": "^4.0.1", + "topojson-client": "^3.1.0", + "urijs": "^1.19.7" + }, + "engines": { + "node": ">=20.19.0" + } + }, + "node_modules/@cesium/widgets/node_modules/meshoptimizer": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/meshoptimizer/-/meshoptimizer-0.23.0.tgz", + "integrity": "sha512-zAZcfhHE3wBbwEN8MfCMI9PKRyOpz8491wcR2dxkv3IlNwDZrq2hEs5JZVtzfBrmjWhBZZtZZUO0OBSNFq5iUQ==", + "license": "MIT", + "peer": true + }, + "node_modules/@cesium/widgets/node_modules/rbush": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/rbush/-/rbush-4.0.1.tgz", + "integrity": "sha512-IP0UpfeWQujYC8Jg162rMNc01Rf0gWMMAb2Uxus/Q0qOFw4lCcq6ZnQEZwUoJqWyUGJ9th7JjwI4yIWo+uvoAQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "quickselect": "^3.0.0" + } + }, "node_modules/@dataport/eslint-config-geodev": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/@dataport/eslint-config-geodev/-/eslint-config-geodev-0.3.1.tgz", @@ -68,6 +213,406 @@ "tslib": "^2.4.0" } }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.5.tgz", + "integrity": "sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.5.tgz", + "integrity": "sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.5.tgz", + "integrity": "sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.5.tgz", + "integrity": "sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.5.tgz", + "integrity": "sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.5.tgz", + "integrity": "sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.5.tgz", + "integrity": "sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.5.tgz", + "integrity": "sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.5.tgz", + "integrity": "sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.5.tgz", + "integrity": "sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.5.tgz", + "integrity": "sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.5.tgz", + "integrity": "sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.5.tgz", + "integrity": "sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.5.tgz", + "integrity": "sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.5.tgz", + "integrity": "sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.5.tgz", + "integrity": "sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.5.tgz", + "integrity": "sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.5.tgz", + "integrity": "sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.5.tgz", + "integrity": "sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.5.tgz", + "integrity": "sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.5.tgz", + "integrity": "sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.5.tgz", + "integrity": "sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.5.tgz", + "integrity": "sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.5.tgz", + "integrity": "sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.5.tgz", + "integrity": "sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, "node_modules/@eslint-community/eslint-utils": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", @@ -335,6 +880,68 @@ "node": "20 || >=22" } }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" + }, + "node_modules/@mapbox/jsonlint-lines-primitives": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", + "integrity": "sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@mapbox/unitbezier": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz", + "integrity": "sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==", + "license": "BSD-2-Clause" + }, + "node_modules/@maplibre/maplibre-gl-style-spec": { + "version": "23.3.0", + "resolved": "https://registry.npmjs.org/@maplibre/maplibre-gl-style-spec/-/maplibre-gl-style-spec-23.3.0.tgz", + "integrity": "sha512-IGJtuBbaGzOUgODdBRg66p8stnwj9iDXkgbYKoYcNiiQmaez5WVRfXm4b03MCDwmZyX93csbfHFWEJJYHnn5oA==", + "license": "ISC", + "dependencies": { + "@mapbox/jsonlint-lines-primitives": "~2.0.2", + "@mapbox/unitbezier": "^0.0.1", + "json-stringify-pretty-compact": "^4.0.0", + "minimist": "^1.2.8", + "quickselect": "^3.0.0", + "rw": "^1.3.3", + "tinyqueue": "^3.0.0" + }, + "bin": { + "gl-style-format": "dist/gl-style-format.mjs", + "gl-style-migrate": "dist/gl-style-migrate.mjs", + "gl-style-validate": "dist/gl-style-validate.mjs" + } + }, + "node_modules/@masterportal/masterportalapi": { + "version": "2.49.0", + "resolved": "https://registry.npmjs.org/@masterportal/masterportalapi/-/masterportalapi-2.49.0.tgz", + "integrity": "sha512-kHZHL2tzqD2yZ7uZtSh9fhrCW5Xz5bkQsxhJqrsO2NEn+yeddeg+xtv5DpcewwzJczmci43v3soEsH3wAhOTfQ==", + "license": "MIT", + "dependencies": { + "core-js": "^3.33.1", + "dayjs": "^1.11.10", + "ol": "^10.4.0", + "ol-mapbox-style": "12.5.0", + "olcs": "^2.22.1", + "proj4": "^2.10.0", + "xml2js": "^0.6.2" + }, + "engines": { + "node": "^16.13.2 || ^18.12.0 || ^20.12.2", + "npm": "^8.1.2 || ^9.3.1 || ^10.5.0" + }, + "peerDependencies": { + "@cesium/engine": "^15.0.0" + } + }, "node_modules/@microsoft/tsdoc": { "version": "0.15.1", "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.15.1.tgz", @@ -386,59 +993,399 @@ "dev": true, "license": "MIT", "optional": true, - "dependencies": { - "@emnapi/core": "^1.4.3", - "@emnapi/runtime": "^1.4.3", - "@tybys/wasm-util": "^0.9.0" - } + "dependencies": { + "@emnapi/core": "^1.4.3", + "@emnapi/runtime": "^1.4.3", + "@tybys/wasm-util": "^0.9.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nolyfill/is-core-module": { + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", + "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.4.0" + } + }, + "node_modules/@petamoriken/float16": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@petamoriken/float16/-/float16-3.9.2.tgz", + "integrity": "sha512-VgffxawQde93xKxT3qap3OH+meZf7VaSB5Sqd4Rqc+FP5alWbpOyan/7tRbOAvynjpG3GpdtAuGU/NdhQpmrog==", + "license": "MIT" + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.43.0.tgz", + "integrity": "sha512-Krjy9awJl6rKbruhQDgivNbD1WuLb8xAclM4IR4cN5pHGAs2oIMMQJEiC3IC/9TZJ+QZkmZhlMO/6MBGxPidpw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.43.0.tgz", + "integrity": "sha512-ss4YJwRt5I63454Rpj+mXCXicakdFmKnUNxr1dLK+5rv5FJgAxnN7s31a5VchRYxCFWdmnDWKd0wbAdTr0J5EA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.43.0.tgz", + "integrity": "sha512-eKoL8ykZ7zz8MjgBenEF2OoTNFAPFz1/lyJ5UmmFSz5jW+7XbH1+MAgCVHy72aG59rbuQLcJeiMrP8qP5d/N0A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.43.0.tgz", + "integrity": "sha512-SYwXJgaBYW33Wi/q4ubN+ldWC4DzQY62S4Ll2dgfr/dbPoF50dlQwEaEHSKrQdSjC6oIe1WgzosoaNoHCdNuMg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.43.0.tgz", + "integrity": "sha512-SV+U5sSo0yujrjzBF7/YidieK2iF6E7MdF6EbYxNz94lA+R0wKl3SiixGyG/9Klab6uNBIqsN7j4Y/Fya7wAjQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.43.0.tgz", + "integrity": "sha512-J7uCsiV13L/VOeHJBo5SjasKiGxJ0g+nQTrBkAsmQBIdil3KhPnSE9GnRon4ejX1XDdsmK/l30IYLiAaQEO0Cg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.43.0.tgz", + "integrity": "sha512-gTJ/JnnjCMc15uwB10TTATBEhK9meBIY+gXP4s0sHD1zHOaIh4Dmy1X9wup18IiY9tTNk5gJc4yx9ctj/fjrIw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.43.0.tgz", + "integrity": "sha512-ZJ3gZynL1LDSIvRfz0qXtTNs56n5DI2Mq+WACWZ7yGHFUEirHBRt7fyIk0NsCKhmRhn7WAcjgSkSVVxKlPNFFw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.43.0.tgz", + "integrity": "sha512-8FnkipasmOOSSlfucGYEu58U8cxEdhziKjPD2FIa0ONVMxvl/hmONtX/7y4vGjdUhjcTHlKlDhw3H9t98fPvyA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.43.0.tgz", + "integrity": "sha512-KPPyAdlcIZ6S9C3S2cndXDkV0Bb1OSMsX0Eelr2Bay4EsF9yi9u9uzc9RniK3mcUGCLhWY9oLr6er80P5DE6XA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.43.0.tgz", + "integrity": "sha512-HPGDIH0/ZzAZjvtlXj6g+KDQ9ZMHfSP553za7o2Odegb/BEfwJcR0Sw0RLNpQ9nC6Gy8s+3mSS9xjZ0n3rhcYg==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.43.0.tgz", + "integrity": "sha512-gEmwbOws4U4GLAJDhhtSPWPXUzDfMRedT3hFMyRAvM9Mrnj+dJIFIeL7otsv2WF3D7GrV0GIewW0y28dOYWkmw==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.43.0.tgz", + "integrity": "sha512-XXKvo2e+wFtXZF/9xoWohHg+MuRnvO29TI5Hqe9xwN5uN8NKUYy7tXUG3EZAlfchufNCTHNGjEx7uN78KsBo0g==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.43.0.tgz", + "integrity": "sha512-ruf3hPWhjw6uDFsOAzmbNIvlXFXlBQ4nk57Sec8E8rUxs/AI4HD6xmiiasOOx/3QxS2f5eQMKTAwk7KHwpzr/Q==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.43.0.tgz", + "integrity": "sha512-QmNIAqDiEMEvFV15rsSnjoSmO0+eJLoKRD9EAa9rrYNwO/XRCtOGM3A5A0X+wmG+XRrw9Fxdsw+LnyYiZWWcVw==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.43.0.tgz", + "integrity": "sha512-jAHr/S0iiBtFyzjhOkAics/2SrXE092qyqEg96e90L3t9Op8OTzS6+IX0Fy5wCt2+KqeHAkti+eitV0wvblEoQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.43.0.tgz", + "integrity": "sha512-3yATWgdeXyuHtBhrLt98w+5fKurdqvs8B53LaoKD7P7H7FKOONLsBVMNl9ghPQZQuYcceV5CDyPfyfGpMWD9mQ==", + "cpu": [ + "x64" + ], "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.43.0.tgz", + "integrity": "sha512-wVzXp2qDSCOpcBCT5WRWLmpJRIzv23valvcTwMHEobkjippNf+C3ys/+wf07poPkeNix0paTNemB2XrHr2TnGw==", + "cpu": [ + "arm64" + ], "license": "MIT", - "engines": { - "node": ">= 8" - } + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.43.0.tgz", + "integrity": "sha512-fYCTEyzf8d+7diCw8b+asvWDCLMjsCEA8alvtAutqJOJp/wL5hs1rWSqJ1vkjgW0L2NB4bsYJrpKkiIPRR9dvw==", + "cpu": [ + "ia32" + ], "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/@nolyfill/is-core-module": { - "version": "1.0.39", - "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", - "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", - "dev": true, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.43.0.tgz", + "integrity": "sha512-SnGhLiE5rlK0ofq8kzuDkM0g7FN1s5VYY+YSMTibP7CqShxCQvqtNxTARS4xX4PFJfHjG0ZQYX9iGzI3FQh5Aw==", + "cpu": [ + "x64" + ], "license": "MIT", - "engines": { - "node": ">=12.4.0" - } + "optional": true, + "os": [ + "win32" + ] }, "node_modules/@stylistic/eslint-plugin": { "version": "2.11.0", @@ -460,6 +1407,13 @@ "eslint": ">=8.40.0" } }, + "node_modules/@tweenjs/tween.js": { + "version": "25.0.0", + "resolved": "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-25.0.0.tgz", + "integrity": "sha512-XKLA6syeBUaPzx4j3qwMqzzq+V4uo72BnlbOjmuljLrRqdsd3qnzvZZoxvMHZ23ndsRS4aufU6JOZYpCbU6T1A==", + "license": "MIT", + "peer": true + }, "node_modules/@tybys/wasm-util": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz", @@ -485,6 +1439,30 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/node": { + "version": "24.0.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.2.tgz", + "integrity": "sha512-Kv1shWMfCUnzbQTosAHrF2p8AzccoLODqJ0XqGPRA/mGVZR86KCk8I+fyh6B5+kcLtAKS9BquXUxVO79jU9UGg==", + "license": "MIT", + "peer": true, + "dependencies": { + "undici-types": "~7.8.0" + } + }, + "node_modules/@types/rbush": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/rbush/-/rbush-4.0.0.tgz", + "integrity": "sha512-+N+2H39P8X+Hy1I5mC6awlTX54k3FhiUmvt7HWzGJZvF+syUAAxP/stwppS8JE84YHqFgRMv6fCy31202CMFxQ==", + "license": "MIT" + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT", + "optional": true, + "peer": true + }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "8.34.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.34.0.tgz", @@ -1011,6 +1989,132 @@ "win32" ] }, + "node_modules/@vitejs/plugin-vue": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.4.tgz", + "integrity": "sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.16.tgz", + "integrity": "sha512-AOQS2eaQOaaZQoL1u+2rCJIKDruNXVBZSiUD3chnUrsoX5ZTQMaCvXlWNIfxBJuU15r1o7+mpo5223KVtIhAgQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.27.2", + "@vue/shared": "3.5.16", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.16.tgz", + "integrity": "sha512-SSJIhBr/teipXiXjmWOVWLnxjNGo65Oj/8wTEQz0nqwQeP75jWZ0n4sF24Zxoht1cuJoWopwj0J0exYwCJ0dCQ==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.16", + "@vue/shared": "3.5.16" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.16.tgz", + "integrity": "sha512-rQR6VSFNpiinDy/DVUE0vHoIDUF++6p910cgcZoaAUm3POxgNOOdS/xgoll3rNdKYTYPnnbARDCZOyZ+QSe6Pw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.27.2", + "@vue/compiler-core": "3.5.16", + "@vue/compiler-dom": "3.5.16", + "@vue/compiler-ssr": "3.5.16", + "@vue/shared": "3.5.16", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.17", + "postcss": "^8.5.3", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.16.tgz", + "integrity": "sha512-d2V7kfxbdsjrDSGlJE7my1ZzCXViEcqN6w14DOsDrUCHEA6vbnVCpRFfrc4ryCP/lCKzX2eS1YtnLE/BuC9f/A==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.16", + "@vue/shared": "3.5.16" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.5.16", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.16.tgz", + "integrity": "sha512-FG5Q5ee/kxhIm1p2bykPpPwqiUBV3kFySsHEQha5BJvjXdZTUfmya7wP7zC39dFuZAcf/PD5S4Lni55vGLMhvA==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.16" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.16", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.16.tgz", + "integrity": "sha512-bw5Ykq6+JFHYxrQa7Tjr+VSzw7Dj4ldR/udyBZbq73fCdJmyy5MPIFR9IX/M5Qs+TtTjuyUTCnmK3lWWwpAcFQ==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.16", + "@vue/shared": "3.5.16" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.16", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.16.tgz", + "integrity": "sha512-T1qqYJsG2xMGhImRUV9y/RseB9d0eCYZQ4CWca9ztCuiPj/XWNNN+lkNBuzVbia5z4/cgxdL28NoQCvC0Xcfww==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.16", + "@vue/runtime-core": "3.5.16", + "@vue/shared": "3.5.16", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.16", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.16.tgz", + "integrity": "sha512-BrX0qLiv/WugguGsnQUJiYOE0Fe5mZTwi6b7X/ybGB0vfrPH9z0gD/Y6WOR1sGCgX4gc25L1RYS5eYQKDMoNIg==", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.16", + "@vue/shared": "3.5.16" + }, + "peerDependencies": { + "vue": "3.5.16" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.16", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.16.tgz", + "integrity": "sha512-c/0fWy3Jw6Z8L9FmTyYfkpM5zklnqqa9+a6dz3DvONRKW2NEbh46BP0FHuLFSWi2TnQEtp91Z6zOWNrU6QiyPg==", + "license": "MIT" + }, + "node_modules/@zip.js/zip.js": { + "version": "2.7.62", + "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.7.62.tgz", + "integrity": "sha512-OaLvZ8j4gCkLn048ypkZu29KX30r8/OfFF2w4Jo5WXFr+J04J+lzJ5TKZBVgFXhlvSkqNFQdfnY1Q8TMTCyBVA==", + "license": "BSD-3-Clause", + "peer": true, + "engines": { + "bun": ">=0.7.0", + "deno": ">=1.0.0", + "node": ">=16.5.0" + } + }, "node_modules/acorn": { "version": "8.15.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", @@ -1222,6 +2326,19 @@ "node": ">= 0.4" } }, + "node_modules/autolinker": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/autolinker/-/autolinker-4.1.5.tgz", + "integrity": "sha512-vEfYZPmvVOIuE567XBVCsx8SBgOYtjB2+S1iAaJ+HgH+DNjAcrHem2hmAeC9yaNGWayicv4yR+9UaJlkF3pvtw==", + "license": "MIT", + "peer": true, + "dependencies": { + "tslib": "^2.8.1" + }, + "engines": { + "pnpm": ">=10.10.0" + } + }, "node_modules/available-typed-arrays": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", @@ -1245,6 +2362,13 @@ "dev": true, "license": "MIT" }, + "node_modules/bitmap-sdf": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/bitmap-sdf/-/bitmap-sdf-1.0.4.tgz", + "integrity": "sha512-1G3U4n5JE6RAiALMxu0p1XmeZkTeCwGKykzsLTCqVzfSDaN6S7fKnkIkfejogz+iwqBWc0UYAIKnKHNN7pSfDg==", + "license": "MIT", + "peer": true + }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", @@ -1336,6 +2460,72 @@ "node": ">=6" } }, + "node_modules/cesium": { + "version": "1.130.0", + "resolved": "https://registry.npmjs.org/cesium/-/cesium-1.130.0.tgz", + "integrity": "sha512-OgmmjStUoRhLVA2YnMt6eK3p2vwePZ2dw4ukpze8cVdkUWlxM6rtboldOgZvg1LLnpeEpcGOB5h6+sNuT6a56w==", + "license": "Apache-2.0", + "peer": true, + "workspaces": [ + "packages/engine", + "packages/widgets" + ], + "dependencies": { + "@cesium/engine": "^18.0.0", + "@cesium/widgets": "^12.1.0" + }, + "engines": { + "node": ">=20.19.0" + } + }, + "node_modules/cesium/node_modules/@cesium/engine": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@cesium/engine/-/engine-18.0.0.tgz", + "integrity": "sha512-BmORpS2BVGT/Rd9f591a7PudFxXeCq2agdBAUX6XBhxUboieI9hU5MEC7EjT0sSLGLtwVw9i2hu4/XOXUnFXWg==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@tweenjs/tween.js": "^25.0.0", + "@zip.js/zip.js": "^2.7.34", + "autolinker": "^4.0.0", + "bitmap-sdf": "^1.0.3", + "dompurify": "^3.0.2", + "draco3d": "^1.5.1", + "earcut": "^3.0.0", + "grapheme-splitter": "^1.0.4", + "jsep": "^1.3.8", + "kdbush": "^4.0.1", + "ktx-parse": "^1.0.0", + "lerc": "^2.0.0", + "mersenne-twister": "^1.1.0", + "meshoptimizer": "^0.23.0", + "pako": "^2.0.4", + "protobufjs": "^7.1.0", + "rbush": "^4.0.1", + "topojson-client": "^3.1.0", + "urijs": "^1.19.7" + }, + "engines": { + "node": ">=20.19.0" + } + }, + "node_modules/cesium/node_modules/meshoptimizer": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/meshoptimizer/-/meshoptimizer-0.23.0.tgz", + "integrity": "sha512-zAZcfhHE3wBbwEN8MfCMI9PKRyOpz8491wcR2dxkv3IlNwDZrq2hEs5JZVtzfBrmjWhBZZtZZUO0OBSNFq5iUQ==", + "license": "MIT", + "peer": true + }, + "node_modules/cesium/node_modules/rbush": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/rbush/-/rbush-4.0.1.tgz", + "integrity": "sha512-IP0UpfeWQujYC8Jg162rMNc01Rf0gWMMAb2Uxus/Q0qOFw4lCcq6ZnQEZwUoJqWyUGJ9th7JjwI4yIWo+uvoAQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "quickselect": "^3.0.0" + } + }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -1373,6 +2563,13 @@ "dev": true, "license": "MIT" }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT", + "peer": true + }, "node_modules/comment-parser": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz", @@ -1390,6 +2587,17 @@ "dev": true, "license": "MIT" }, + "node_modules/core-js": { + "version": "3.43.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.43.0.tgz", + "integrity": "sha512-N6wEbTTZSYOY2rYAn85CuvWWkCK6QweMn7/4Nr3w+gDBeBhk/x4EJeY6FPo4QzDoJZxVTv8U7CMvgWk6pOHHqA==", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -1418,6 +2626,12 @@ "node": ">=4" } }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" + }, "node_modules/data-view-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", @@ -1472,6 +2686,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", + "license": "MIT" + }, "node_modules/debug": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", @@ -1546,6 +2766,23 @@ "node": ">=0.10.0" } }, + "node_modules/dompurify": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.6.tgz", + "integrity": "sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==", + "license": "(MPL-2.0 OR Apache-2.0)", + "peer": true, + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, + "node_modules/draco3d": { + "version": "1.5.7", + "resolved": "https://registry.npmjs.org/draco3d/-/draco3d-1.5.7.tgz", + "integrity": "sha512-m6WCKt/erDXcw+70IJXnG7M3awwQPAsZvJGX5zY7beBqpELw6RDGkYVU0W43AFxye4pDZ5i2Lbyc/NNGqwjUVQ==", + "license": "Apache-2.0", + "peer": true + }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -1561,6 +2798,12 @@ "node": ">= 0.4" } }, + "node_modules/earcut": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-3.0.1.tgz", + "integrity": "sha512-0l1/0gOjESMeQyYaK5IDiPNvFeu93Z/cO0TjZh9eZ1vyCtZnA7KMZ8rQggpsJHIbGSdrqYq9OhuveadOVHCshw==", + "license": "ISC" + }, "node_modules/enhanced-resolve": { "version": "5.18.1", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", @@ -1575,6 +2818,18 @@ "node": ">=10.13.0" } }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/es-abstract": { "version": "1.24.0", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.0.tgz", @@ -1752,6 +3007,46 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/esbuild": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.5.tgz", + "integrity": "sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.5", + "@esbuild/android-arm": "0.25.5", + "@esbuild/android-arm64": "0.25.5", + "@esbuild/android-x64": "0.25.5", + "@esbuild/darwin-arm64": "0.25.5", + "@esbuild/darwin-x64": "0.25.5", + "@esbuild/freebsd-arm64": "0.25.5", + "@esbuild/freebsd-x64": "0.25.5", + "@esbuild/linux-arm": "0.25.5", + "@esbuild/linux-arm64": "0.25.5", + "@esbuild/linux-ia32": "0.25.5", + "@esbuild/linux-loong64": "0.25.5", + "@esbuild/linux-mips64el": "0.25.5", + "@esbuild/linux-ppc64": "0.25.5", + "@esbuild/linux-riscv64": "0.25.5", + "@esbuild/linux-s390x": "0.25.5", + "@esbuild/linux-x64": "0.25.5", + "@esbuild/netbsd-arm64": "0.25.5", + "@esbuild/netbsd-x64": "0.25.5", + "@esbuild/openbsd-arm64": "0.25.5", + "@esbuild/openbsd-x64": "0.25.5", + "@esbuild/sunos-x64": "0.25.5", + "@esbuild/win32-arm64": "0.25.5", + "@esbuild/win32-ia32": "0.25.5", + "@esbuild/win32-x64": "0.25.5" + } + }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -2241,6 +3536,12 @@ "node": ">=4.0" } }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -2316,7 +3617,6 @@ "version": "6.4.6", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", - "dev": true, "license": "MIT", "peerDependencies": { "picomatch": "^3 || ^4" @@ -2407,6 +3707,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", @@ -2448,6 +3762,37 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/geographiclib-geodesic": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/geographiclib-geodesic/-/geographiclib-geodesic-2.1.1.tgz", + "integrity": "sha512-lkd8EUkPSByobWu9BPMHTdYA5AUZxOa8McmUNtBE9KrvUJEvSADnN6gTDmhXbi6NzdA16LtWLpSxLE/lIIRhyA==", + "license": "MIT" + }, + "node_modules/geotiff": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/geotiff/-/geotiff-2.1.3.tgz", + "integrity": "sha512-PT6uoF5a1+kbC3tHmZSUsLHBp2QJlHasxxxxPW47QIY1VBKpFB+FcDvX+MxER6UzgLQZ0xDzJ9s48B9JbOCTqA==", + "license": "MIT", + "dependencies": { + "@petamoriken/float16": "^3.4.7", + "lerc": "^3.0.0", + "pako": "^2.0.4", + "parse-headers": "^2.0.2", + "quick-lru": "^6.1.1", + "web-worker": "^1.2.0", + "xml-utils": "^1.0.2", + "zstddec": "^0.1.0" + }, + "engines": { + "node": ">=10.19" + } + }, + "node_modules/geotiff/node_modules/lerc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lerc/-/lerc-3.0.0.tgz", + "integrity": "sha512-Rm4J/WaHhRa93nCN2mwWDZFoRVF18G1f47C+kvQWyHGEZxFpTUi73p7lMVSAndyxGt6lJ2/CFbOcf9ra5p8aww==", + "license": "Apache-2.0" + }, "node_modules/get-intrinsic": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", @@ -2581,6 +3926,13 @@ "dev": true, "license": "ISC" }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "license": "MIT", + "peer": true + }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", @@ -3194,6 +4546,16 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsep": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.4.0.tgz", + "integrity": "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 10.16.0" + } + }, "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", @@ -3215,6 +4577,12 @@ "dev": true, "license": "MIT" }, + "node_modules/json-stringify-pretty-compact": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-4.0.0.tgz", + "integrity": "sha512-3CNZ2DnrpByG9Nqj6Xo8vqbjT4F6N+tb4Gb28ESAZjYZ5yqvmc56J+/kuIwkaAMOyblTQhUW7PxMkUb8Q36N3Q==", + "license": "MIT" + }, "node_modules/jsx-ast-utils": { "version": "3.3.5", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", @@ -3231,6 +4599,13 @@ "node": ">=4.0" } }, + "node_modules/kdbush": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-4.0.2.tgz", + "integrity": "sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==", + "license": "ISC", + "peer": true + }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -3241,6 +4616,20 @@ "json-buffer": "3.0.1" } }, + "node_modules/ktx-parse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ktx-parse/-/ktx-parse-1.0.0.tgz", + "integrity": "sha512-Z31kVizz4DF/6vo9YiSYVBhuXAfyQy9bGxlW3+mB5OELoZjfXVZQpRoctsx8IEDKxBd6SagXKo7qRvu38i8Jfg==", + "license": "MIT", + "peer": true + }, + "node_modules/lerc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lerc/-/lerc-2.0.0.tgz", + "integrity": "sha512-7qo1Mq8ZNmaR4USHHm615nEW2lPeeWJ3bTyoqFbd35DLx0LUH7C6ptt5FDCTAlbIzs3+WKrk5SkJvw8AFDE2hg==", + "license": "Apache-2.0", + "peer": true + }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -3286,6 +4675,13 @@ "dev": true, "license": "MIT" }, + "node_modules/long": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", + "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==", + "license": "Apache-2.0", + "peer": true + }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -3299,6 +4695,21 @@ "loose-envify": "cli.js" } }, + "node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/mapbox-to-css-font": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mapbox-to-css-font/-/mapbox-to-css-font-3.2.0.tgz", + "integrity": "sha512-kvsEfzvLik34BiFj+S19bv5d70l9qSdkUzrq99dvZ9d5POaLyB4vJMQmq3BoJ5D6lFG1GYnMM7o7cm5Jh8YEEg==", + "license": "BSD-2-Clause" + }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -3319,6 +4730,26 @@ "node": ">= 8" } }, + "node_modules/mersenne-twister": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mersenne-twister/-/mersenne-twister-1.1.0.tgz", + "integrity": "sha512-mUYWsMKNrm4lfygPkL3OfGzOPTR2DBlTkBNHM//F6hGp8cLThY897crAlk3/Jo17LEOOjQUrNAx6DvgO77QJkA==", + "license": "MIT", + "peer": true + }, + "node_modules/meshoptimizer": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/meshoptimizer/-/meshoptimizer-0.22.0.tgz", + "integrity": "sha512-IebiK79sqIy+E4EgOr+CAw+Ke8hAspXKzBd0JdgEmPHiAwmvEj2S4h1rfvo+o/BnfEYd/jAOg5IeeIjzlzSnDg==", + "license": "MIT", + "peer": true + }, + "node_modules/mgrs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mgrs/-/mgrs-1.0.0.tgz", + "integrity": "sha512-awNbTOqCxK1DBGjalK3xqWIstBZgN6fxsMSiXLs9/spqWkF2pAhb2rrYCFSsr1/tT7PhcDGjZndG8SWYn0byYA==", + "license": "MIT" + }, "node_modules/micromatch": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", @@ -3359,6 +4790,15 @@ "node": "*" } }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -3366,6 +4806,24 @@ "dev": true, "license": "MIT" }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "node_modules/napi-postinstall": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.2.4.tgz", @@ -3431,6 +4889,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/nosleep.js": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/nosleep.js/-/nosleep.js-0.12.0.tgz", + "integrity": "sha512-9d1HbpKLh3sdWlhXMhU6MMH+wQzKkrgfRkYV0EBdvt99YJfj0ilCJrWRDYG2130Tm4GXbEoTCx5b34JSaP+HhA==", + "license": "MIT", + "peer": true + }, "node_modules/nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", @@ -3552,6 +5017,55 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/ol": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/ol/-/ol-10.5.0.tgz", + "integrity": "sha512-nHFx8gkGmvYImsa7iKkwUnZidd5gn1XbMZd9GNOorvm9orjW9gQvT3Naw/MjIasVJ3cB9EJUdCGR2EFAulMHsQ==", + "license": "BSD-2-Clause", + "dependencies": { + "@types/rbush": "4.0.0", + "earcut": "^3.0.0", + "geotiff": "^2.1.3", + "pbf": "4.0.1", + "rbush": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/openlayers" + } + }, + "node_modules/ol-mapbox-style": { + "version": "12.5.0", + "resolved": "https://registry.npmjs.org/ol-mapbox-style/-/ol-mapbox-style-12.5.0.tgz", + "integrity": "sha512-Wr06OhV+tHlNZzol4C3bbKwcyHjNTb+ThMa3ALRRIMKosZ8z8m6A4KyX19zfNq9TI70LugEtMa5FVR7l7BlQVw==", + "license": "BSD-2-Clause", + "dependencies": { + "@maplibre/maplibre-gl-style-spec": "^23.1.0", + "mapbox-to-css-font": "^3.0.2" + }, + "peerDependencies": { + "ol": "*" + } + }, + "node_modules/ol/node_modules/rbush": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/rbush/-/rbush-4.0.1.tgz", + "integrity": "sha512-IP0UpfeWQujYC8Jg162rMNc01Rf0gWMMAb2Uxus/Q0qOFw4lCcq6ZnQEZwUoJqWyUGJ9th7JjwI4yIWo+uvoAQ==", + "license": "MIT", + "dependencies": { + "quickselect": "^3.0.0" + } + }, + "node_modules/olcs": { + "version": "2.22.1", + "resolved": "https://registry.npmjs.org/olcs/-/olcs-2.22.1.tgz", + "integrity": "sha512-QWpFA84km7bOZFh0PDrKa35HkvI+mud9fcRZ4NHbRMFtBIQnY8l9oba+WocimIhXer4hIybc4nx0q60sEngLKg==", + "license": "BSD-2-Clause", + "peerDependencies": { + "cesium": ">= 1.90.0", + "ol": ">= 9.2, >= 10" + } + }, "node_modules/optionator": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", @@ -3620,6 +5134,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==", + "license": "(MIT AND Zlib)" + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -3633,6 +5153,12 @@ "node": ">=6" } }, + "node_modules/parse-headers": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.6.tgz", + "integrity": "sha512-Tz11t3uKztEW5FEVZnj1ox8GKblWn+PvHY9TmJV5Mll2uHEwRdR/5Li1OlXoECjLYkApdhWy44ocONwXLiKO5A==", + "license": "MIT" + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -3660,6 +5186,18 @@ "dev": true, "license": "MIT" }, + "node_modules/pbf": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pbf/-/pbf-4.0.1.tgz", + "integrity": "sha512-SuLdBvS42z33m8ejRbInMapQe8n0D3vN/Xd5fmWM3tufNgRQFBpaW2YVJxQZV4iPNqb0vEFvssMEo5w9c6BTIA==", + "license": "BSD-3-Clause", + "dependencies": { + "resolve-protobuf-schema": "^2.1.0" + }, + "bin": { + "pbf": "bin/pbf" + } + }, "node_modules/peowly": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/peowly/-/peowly-1.3.2.tgz", @@ -3670,11 +5208,16 @@ "node": ">=18.6.0" } }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, "node_modules/picomatch": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", - "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -3693,6 +5236,34 @@ "node": ">= 0.4" } }, + "node_modules/postcss": { + "version": "8.5.5", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.5.tgz", + "integrity": "sha512-d/jtm+rdNT8tpXuHY5MMtcbJFBkhXE6593XVR9UoGCH8jSFGci7jGvMGH5RYd5PBJW+00NZQt6gf7CbagJCrhg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, "node_modules/postcss-selector-parser": { "version": "6.1.2", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", @@ -3717,6 +5288,17 @@ "node": ">= 0.8.0" } }, + "node_modules/proj4": { + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/proj4/-/proj4-2.17.0.tgz", + "integrity": "sha512-BqVoruVAOUgkw5U9Ns76+E2nHZG0Y42tbkC+0BpyqjhwPIai29hoivyQoyelEKFSfaV3zkR3NqPRD0EwPM4Wug==", + "license": "MIT", + "dependencies": { + "geographiclib-geodesic": "^2.1.1", + "mgrs": "1.0.0", + "wkt-parser": "^1.5.1" + } + }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -3729,6 +5311,37 @@ "react-is": "^16.13.1" } }, + "node_modules/protobufjs": { + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.3.tgz", + "integrity": "sha512-sildjKwVqOI2kmFDiXQ6aEB0fjYTafpEvIBs8tOR8qI4spuL9OPROLVu2qZqi/xgCfsHIwVqlaF8JBjWFHnKbw==", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/protocol-buffers-schema": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", + "integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==", + "license": "MIT" + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -3760,6 +5373,41 @@ ], "license": "MIT" }, + "node_modules/quick-lru": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-6.1.2.tgz", + "integrity": "sha512-AAFUA5O1d83pIHEhJwWCq/RQcRukCkn/NSm2QsTEMle5f2hP0ChI2+3Xb051PZCkLryI/Ir1MVKviT2FIloaTQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/quickselect": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-3.0.0.tgz", + "integrity": "sha512-XdjUArbK4Bm5fLLvlm5KpTFOiOThgfWWI4axAZDWg4E/0mKdZyI9tNEfds27qCi1ze/vwTR16kvmmGhRra3c2g==", + "license": "ISC" + }, + "node_modules/rbush": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/rbush/-/rbush-3.0.1.tgz", + "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==", + "license": "MIT", + "peer": true, + "dependencies": { + "quickselect": "^2.0.0" + } + }, + "node_modules/rbush/node_modules/quickselect": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", + "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==", + "license": "ISC", + "peer": true + }, "node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", @@ -3862,6 +5510,15 @@ "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } }, + "node_modules/resolve-protobuf-schema": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", + "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", + "license": "MIT", + "dependencies": { + "protocol-buffers-schema": "^3.3.1" + } + }, "node_modules/reusify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", @@ -3873,6 +5530,51 @@ "node": ">=0.10.0" } }, + "node_modules/rollup": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.43.0.tgz", + "integrity": "sha512-wdN2Kd3Twh8MAEOEJZsuxuLKCsBEo4PVNLK6tQWAn10VhsVewQLzcucMgLolRlhFybGxfclbPeEYBaP6RvUFGg==", + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.7" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.43.0", + "@rollup/rollup-android-arm64": "4.43.0", + "@rollup/rollup-darwin-arm64": "4.43.0", + "@rollup/rollup-darwin-x64": "4.43.0", + "@rollup/rollup-freebsd-arm64": "4.43.0", + "@rollup/rollup-freebsd-x64": "4.43.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.43.0", + "@rollup/rollup-linux-arm-musleabihf": "4.43.0", + "@rollup/rollup-linux-arm64-gnu": "4.43.0", + "@rollup/rollup-linux-arm64-musl": "4.43.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.43.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.43.0", + "@rollup/rollup-linux-riscv64-gnu": "4.43.0", + "@rollup/rollup-linux-riscv64-musl": "4.43.0", + "@rollup/rollup-linux-s390x-gnu": "4.43.0", + "@rollup/rollup-linux-x64-gnu": "4.43.0", + "@rollup/rollup-linux-x64-musl": "4.43.0", + "@rollup/rollup-win32-arm64-msvc": "4.43.0", + "@rollup/rollup-win32-ia32-msvc": "4.43.0", + "@rollup/rollup-win32-x64-msvc": "4.43.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup/node_modules/@types/estree": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", + "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "license": "MIT" + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -3897,6 +5599,12 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", + "license": "BSD-3-Clause" + }, "node_modules/safe-array-concat": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", @@ -3952,6 +5660,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/sax": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "license": "ISC" + }, "node_modules/semver": { "version": "7.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", @@ -4113,6 +5827,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/stable-hash": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", @@ -4295,7 +6018,6 @@ "version": "0.2.14", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", - "dev": true, "license": "MIT", "dependencies": { "fdir": "^6.4.4", @@ -4308,6 +6030,12 @@ "url": "https://github.com/sponsors/SuperchupuDev" } }, + "node_modules/tinyqueue": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-3.0.0.tgz", + "integrity": "sha512-gRa9gwYU3ECmQYv3lslts5hxuIa90veaEcxDYuu3QGOIAEM2mOZkVHp48ANJuu1CURtRdHKUBY5Lm1tHV+sD4g==", + "license": "ISC" + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -4321,6 +6049,21 @@ "node": ">=8.0" } }, + "node_modules/topojson-client": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", + "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", + "license": "ISC", + "peer": true, + "dependencies": { + "commander": "2" + }, + "bin": { + "topo2geo": "bin/topo2geo", + "topomerge": "bin/topomerge", + "topoquantize": "bin/topoquantize" + } + }, "node_modules/ts-api-utils": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", @@ -4361,9 +6104,7 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD", - "optional": true + "license": "0BSD" }, "node_modules/type-check": { "version": "0.4.0", @@ -4460,7 +6201,7 @@ "version": "5.8.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", - "dev": true, + "devOptional": true, "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", @@ -4512,6 +6253,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/undici-types": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz", + "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==", + "license": "MIT", + "peer": true + }, "node_modules/unrs-resolver": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.9.0.tgz", @@ -4557,6 +6305,13 @@ "punycode": "^2.1.0" } }, + "node_modules/urijs": { + "version": "1.19.11", + "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.11.tgz", + "integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==", + "license": "MIT", + "peer": true + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -4564,6 +6319,101 @@ "dev": true, "license": "MIT" }, + "node_modules/vite": { + "version": "6.3.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz", + "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==", + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "picomatch": "^4.0.2", + "postcss": "^8.5.3", + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vue": { + "version": "3.5.16", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.16.tgz", + "integrity": "sha512-rjOV2ecxMd5SiAmof2xzh2WxntRcigkX/He4YFJ6WdRvVUrbt6DxC1Iujh10XLl8xCDRDtGKMeO3D+pRQ1PP9w==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.16", + "@vue/compiler-sfc": "3.5.16", + "@vue/runtime-dom": "3.5.16", + "@vue/server-renderer": "3.5.16", + "@vue/shared": "3.5.16" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/vue-eslint-parser": { "version": "10.1.3", "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-10.1.3.tgz", @@ -4590,6 +6440,12 @@ "eslint": "^8.57.0 || ^9.0.0" } }, + "node_modules/web-worker": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.5.0.tgz", + "integrity": "sha512-RiMReJrTAiA+mBjGONMnjVDP2u3p9R1vkcGz6gDIrOMT3oGuYwX2WRMYI9ipkphSuE5XKEhydbhNEJh4NY9mlw==", + "license": "Apache-2.0" + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -4695,6 +6551,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/wkt-parser": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/wkt-parser/-/wkt-parser-1.5.2.tgz", + "integrity": "sha512-1ZUiV1FTwSiSrgWzV9KXJuOF2BVW91KY/mau04BhnmgOdroRQea7Q0s5TVqwGLm0D2tZwObd/tBYXW49sSxp3Q==", + "license": "MIT" + }, "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", @@ -4715,6 +6577,34 @@ "node": ">=12" } }, + "node_modules/xml-utils": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/xml-utils/-/xml-utils-1.10.2.tgz", + "integrity": "sha512-RqM+2o1RYs6T8+3DzDSoTRAUfrvaejbVHcp3+thnAtDKo8LskR+HomLajEy5UjTz24rpka7AxVBRR3g2wTUkJA==", + "license": "CC0-1.0" + }, + "node_modules/xml2js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", + "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", + "license": "MIT", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "license": "MIT", + "engines": { + "node": ">=4.0" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", @@ -4728,6 +6618,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/zstddec": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/zstddec/-/zstddec-0.1.0.tgz", + "integrity": "sha512-w2NTI8+3l3eeltKAdK8QpiLo/flRAr2p8AGeakfMZOXBxOg9HIu4LVDxBi81sYgVhFhdJjv1OrB5ssI8uFPoLg==", + "license": "MIT AND BSD-3-Clause" + }, "packages/clients/snowbox": { "extraneous": true } diff --git a/package.json b/package.json index 72c1a654f..aac7101d2 100644 --- a/package.json +++ b/package.json @@ -12,11 +12,18 @@ "lint": "eslint --cache .", "lint:ci": "eslint .", "lint:fix": "npm run lint -- --fix", - "tsc:ci": "tsc --noEmit" + "tsc:ci": "tsc --noEmit", + "snowbox": "vite" }, "devDependencies": { "@dataport/eslint-config-geodev": "^0.3.1", + "@vitejs/plugin-vue": "^5.2.4", "eslint": "^9.29.0", "typescript": "~5.8.3" + }, + "dependencies": { + "@masterportal/masterportalapi": "2.49.0", + "vite": "^6.3.5", + "vue": "^3.5.16" } } diff --git a/src/index.html b/src/index.html new file mode 100644 index 000000000..559815442 --- /dev/null +++ b/src/index.html @@ -0,0 +1,12 @@ + + + + + + + +

POLAR map client

+

Demo application ("Snowbox")

+ + + diff --git a/src/snowbox.js b/src/snowbox.js new file mode 100644 index 000000000..c298c86e0 --- /dev/null +++ b/src/snowbox.js @@ -0,0 +1,2 @@ +import { register } from '@/core' +register() diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 000000000..b19e2da41 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,37 @@ +import { dirname, resolve } from 'node:path' +import { fileURLToPath } from 'node:url' +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' + +const __dirname = dirname(fileURLToPath(import.meta.url)) + +export default defineConfig({ + plugins: [ + vue(), + ], + build: { + lib: { + entry: resolve(__dirname, 'lib/core/main.ts'), + name: 'polar', + fileName: 'polar', + }, + rollupOptions: { + external: ['vue'], + output: { + globals: { + vue: 'Vue', + }, + }, + }, + }, + resolve: { + alias: { + '@': resolve(__dirname, './lib'), + vue: 'vue/dist/vue.esm-bundler.js', + }, + }, + root: 'src', + server: { + port: 1234, + }, +}) From e2038f3cb246177f270bda068ba1d453737b1b8e Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Mon, 16 Jun 2025 14:10:53 +0200 Subject: [PATCH 004/697] Show a very basic map --- lib/core/components/PolarMap.ce.vue | 52 + lib/core/index.ts | 13 +- lib/core/utils/registerCustomElement.ts | 8 + package-lock.json | 1190 ++++++++++++++++- package.json | 11 +- ...@masterportal+masterportalapi+2.49.0.patch | 14 + vite.config.ts | 20 +- 7 files changed, 1217 insertions(+), 91 deletions(-) create mode 100644 lib/core/components/PolarMap.ce.vue create mode 100644 lib/core/utils/registerCustomElement.ts create mode 100644 patches/@masterportal+masterportalapi+2.49.0.patch diff --git a/lib/core/components/PolarMap.ce.vue b/lib/core/components/PolarMap.ce.vue new file mode 100644 index 000000000..abc588275 --- /dev/null +++ b/lib/core/components/PolarMap.ce.vue @@ -0,0 +1,52 @@ + + + + + diff --git a/lib/core/index.ts b/lib/core/index.ts index fad7c7ec4..874a139f3 100644 --- a/lib/core/index.ts +++ b/lib/core/index.ts @@ -1,12 +1,3 @@ -import * as mpapi from '@masterportal/masterportalapi' -import { defineCustomElement } from 'vue' +import { registerCustomElement } from './utils/registerCustomElement' -export function register() { - const PolarMapElement = defineCustomElement({ - props: {}, - emits: {}, - template: `POLAR map boilerplate`, - styles: [`/* inlined css */`] - }) - customElements.define('polar-map', PolarMapElement) -} +export { registerCustomElement as register } diff --git a/lib/core/utils/registerCustomElement.ts b/lib/core/utils/registerCustomElement.ts new file mode 100644 index 000000000..971b30729 --- /dev/null +++ b/lib/core/utils/registerCustomElement.ts @@ -0,0 +1,8 @@ +import * as mpapi from '@masterportal/masterportalapi' +import PolarMap from '../components/PolarMap.ce.vue' +import { defineCustomElement } from 'vue' + +export function registerCustomElement() { + const PolarMapElement = defineCustomElement(PolarMap) + customElements.define('polar-map', PolarMapElement) +} diff --git a/package-lock.json b/package-lock.json index 4c2518c73..1f97afedd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,9 +5,18 @@ "packages": { "": { "name": "polar", + "hasInstallScript": true, "license": "EUPL-1.2", "dependencies": { "@masterportal/masterportalapi": "2.49.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "patch-package": "^8.0.0", + "pug": "^3.0.3", + "sass": "^1.89.2", + "stream-browserify": "^3.0.0", + "timers-browserify": "^2.0.12", + "util": "^0.12.5", "vite": "^6.3.5", "vue": "^3.5.16" }, @@ -935,7 +944,7 @@ "xml2js": "^0.6.2" }, "engines": { - "node": "^16.13.2 || ^18.12.0 || ^20.12.2", + "node": "^16.13.2 || ^18.12.0 || ^20.12.2 || ^22.16.0", "npm": "^8.1.2 || ^9.3.1 || ^10.5.0" }, "peerDependencies": { @@ -1047,6 +1056,302 @@ "node": ">=12.4.0" } }, + "node_modules/@parcel/watcher": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", + "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.5.1", + "@parcel/watcher-darwin-arm64": "2.5.1", + "@parcel/watcher-darwin-x64": "2.5.1", + "@parcel/watcher-freebsd-x64": "2.5.1", + "@parcel/watcher-linux-arm-glibc": "2.5.1", + "@parcel/watcher-linux-arm-musl": "2.5.1", + "@parcel/watcher-linux-arm64-glibc": "2.5.1", + "@parcel/watcher-linux-arm64-musl": "2.5.1", + "@parcel/watcher-linux-x64-glibc": "2.5.1", + "@parcel/watcher-linux-x64-musl": "2.5.1", + "@parcel/watcher-win32-arm64": "2.5.1", + "@parcel/watcher-win32-ia32": "2.5.1", + "@parcel/watcher-win32-x64": "2.5.1" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz", + "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz", + "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz", + "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz", + "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz", + "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz", + "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz", + "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz", + "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz", + "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz", + "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz", + "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz", + "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz", + "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, "node_modules/@petamoriken/float16": { "version": "3.9.2", "resolved": "https://registry.npmjs.org/@petamoriken/float16/-/float16-3.9.2.tgz", @@ -1440,9 +1745,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "24.0.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.2.tgz", - "integrity": "sha512-Kv1shWMfCUnzbQTosAHrF2p8AzccoLODqJ0XqGPRA/mGVZR86KCk8I+fyh6B5+kcLtAKS9BquXUxVO79jU9UGg==", + "version": "24.0.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.3.tgz", + "integrity": "sha512-R4I/kzCYAdRLzfiCabn9hxWfbuHS573x+r0dJMkkzThEa7pbrcDWK+9zu3e7aBOouf+rQAciqPFMnxwr0aWgKg==", "license": "MIT", "peer": true, "dependencies": { @@ -2103,6 +2408,12 @@ "integrity": "sha512-c/0fWy3Jw6Z8L9FmTyYfkpM5zklnqqa9+a6dz3DvONRKW2NEbh46BP0FHuLFSWi2TnQEtp91Z6zOWNrU6QiyPg==", "license": "MIT" }, + "node_modules/@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "license": "BSD-2-Clause" + }, "node_modules/@zip.js/zip.js": { "version": "2.7.62", "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.7.62.tgz", @@ -2159,7 +2470,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -2316,6 +2626,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "license": "MIT" + }, + "node_modules/assert-never": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.4.0.tgz", + "integrity": "sha512-5oJg84os6NMQNl27T9LnZkvvqzvAnHu03ShCnoj6bsJwS7L8AO4lf+C/XjK/nvzEqQB744moC6V128RucQd1jA==", + "license": "MIT" + }, "node_modules/async-function": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", @@ -2326,6 +2648,15 @@ "node": ">= 0.4" } }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/autolinker": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/autolinker/-/autolinker-4.1.5.tgz", @@ -2343,7 +2674,6 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "dev": true, "license": "MIT", "dependencies": { "possible-typed-array-names": "^1.0.0" @@ -2355,11 +2685,42 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/babel-walk": { + "version": "3.0.0-canary-5", + "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz", + "integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.9.6" + }, + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "license": "MIT" }, "node_modules/bitmap-sdf": { @@ -2380,7 +2741,6 @@ "version": "1.1.12", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", @@ -2391,7 +2751,6 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, "license": "MIT", "dependencies": { "fill-range": "^7.1.1" @@ -2400,11 +2759,34 @@ "node": ">=8" } }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, "node_modules/call-bind": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", - "dev": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.0", @@ -2423,7 +2805,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -2437,7 +2818,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", - "dev": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.2", @@ -2530,7 +2910,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", @@ -2543,11 +2922,49 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/character-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", + "integrity": "sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==", + "license": "MIT", + "dependencies": { + "is-regex": "^1.0.3" + } + }, + "node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -2560,7 +2977,6 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, "license": "MIT" }, "node_modules/commander": { @@ -2584,9 +3000,18 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, "license": "MIT" }, + "node_modules/constantinople": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", + "integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.6.0", + "@babel/types": "^7.6.1" + } + }, "node_modules/core-js": { "version": "3.43.0", "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.43.0.tgz", @@ -2602,7 +3027,6 @@ "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, "license": "MIT", "dependencies": { "path-key": "^3.1.0", @@ -2721,7 +3145,6 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", @@ -2753,6 +3176,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "license": "Apache-2.0", + "optional": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/doctrine": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", @@ -2766,6 +3202,12 @@ "node": ">=0.10.0" } }, + "node_modules/doctypes": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", + "integrity": "sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==", + "license": "MIT" + }, "node_modules/dompurify": { "version": "3.2.6", "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.6.tgz", @@ -2787,7 +3229,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "dev": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.1", @@ -2903,7 +3344,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -2913,7 +3353,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -2951,7 +3390,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0" @@ -3552,6 +3990,15 @@ "node": ">=0.10.0" } }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -3644,7 +4091,6 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" @@ -3670,6 +4116,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/find-yarn-workspace-root": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz", + "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==", + "license": "Apache-2.0", + "dependencies": { + "micromatch": "^4.0.2" + } + }, "node_modules/flat-cache": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", @@ -3695,7 +4150,6 @@ "version": "0.3.5", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", - "dev": true, "license": "MIT", "dependencies": { "is-callable": "^1.2.7" @@ -3707,6 +4161,27 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC" + }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -3725,7 +4200,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3797,7 +4271,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "dev": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.2", @@ -3822,7 +4295,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "dev": true, "license": "MIT", "dependencies": { "dunder-proto": "^1.0.1", @@ -3863,6 +4335,27 @@ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -3910,7 +4403,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -3923,7 +4415,6 @@ "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, "license": "ISC" }, "node_modules/grapheme-splitter": { @@ -3957,7 +4448,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -3967,7 +4457,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dev": true, "license": "MIT", "dependencies": { "es-define-property": "^1.0.0" @@ -3996,7 +4485,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -4009,7 +4497,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dev": true, "license": "MIT", "dependencies": { "has-symbols": "^1.0.3" @@ -4025,7 +4512,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, "license": "MIT", "dependencies": { "function-bind": "^1.1.2" @@ -4034,6 +4520,26 @@ "node": ">= 0.4" } }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", @@ -4044,6 +4550,12 @@ "node": ">= 4" } }, + "node_modules/immutable": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.3.tgz", + "integrity": "sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg==", + "license": "MIT" + }, "node_modules/import-fresh": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", @@ -4071,6 +4583,23 @@ "node": ">=0.8.19" } }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, "node_modules/internal-slot": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", @@ -4086,6 +4615,22 @@ "node": ">= 0.4" } }, + "node_modules/is-arguments": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", + "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-array-buffer": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", @@ -4171,7 +4716,6 @@ "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -4184,7 +4728,6 @@ "version": "2.16.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", - "dev": true, "license": "MIT", "dependencies": { "hasown": "^2.0.2" @@ -4231,11 +4774,48 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-expression": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz", + "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==", + "license": "MIT", + "dependencies": { + "acorn": "^7.1.1", + "object-assign": "^4.1.1" + } + }, + "node_modules/is-expression/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -4261,7 +4841,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", - "dev": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.3", @@ -4280,7 +4859,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" @@ -4319,7 +4898,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.12.0" @@ -4342,11 +4920,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "license": "MIT" + }, "node_modules/is-regex": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", - "dev": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.2", @@ -4429,7 +5012,6 @@ "version": "1.1.15", "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", - "dev": true, "license": "MIT", "dependencies": { "which-typed-array": "^1.1.16" @@ -4487,18 +5069,28 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true, "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, "license": "ISC" }, "node_modules/iterator.prototype": { @@ -4526,6 +5118,12 @@ "dev": true, "license": "MIT" }, + "node_modules/js-stringify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", + "integrity": "sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==", + "license": "MIT" + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -4570,6 +5168,25 @@ "dev": true, "license": "MIT" }, + "node_modules/json-stable-stringify": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.3.0.tgz", + "integrity": "sha512-qtYiSSFlwot9XHtF9bD9c7rwKjr+RecWT//ZnPvSmEjpV5mmPOCN4j8UjY5hbjNkOwZ/jQv3J6R1/pL7RwgMsg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "isarray": "^2.0.5", + "jsonify": "^0.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", @@ -4583,6 +5200,37 @@ "integrity": "sha512-3CNZ2DnrpByG9Nqj6Xo8vqbjT4F6N+tb4Gb28ESAZjYZ5yqvmc56J+/kuIwkaAMOyblTQhUW7PxMkUb8Q36N3Q==", "license": "MIT" }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", + "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", + "license": "Public Domain", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/jstransformer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", + "integrity": "sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==", + "license": "MIT", + "dependencies": { + "is-promise": "^2.0.0", + "promise": "^7.0.1" + } + }, "node_modules/jsx-ast-utils": { "version": "3.3.5", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", @@ -4616,6 +5264,15 @@ "json-buffer": "3.0.1" } }, + "node_modules/klaw-sync": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz", + "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.11" + } + }, "node_modules/ktx-parse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/ktx-parse/-/ktx-parse-1.0.0.tgz", @@ -4714,7 +5371,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -4754,7 +5410,6 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, "license": "MIT", "dependencies": { "braces": "^3.0.3", @@ -4768,7 +5423,6 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, "license": "MIT", "engines": { "node": ">=8.6" @@ -4781,7 +5435,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" @@ -4889,6 +5542,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "license": "MIT", + "optional": true + }, "node_modules/nosleep.js": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/nosleep.js/-/nosleep.js-0.12.0.tgz", @@ -4913,7 +5573,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -4936,7 +5595,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -5066,6 +5724,31 @@ "ol": ">= 9.2, >= 10" } }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/optionator": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", @@ -5084,6 +5767,15 @@ "node": ">= 0.8.0" } }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/own-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", @@ -5159,6 +5851,36 @@ "integrity": "sha512-Tz11t3uKztEW5FEVZnj1ox8GKblWn+PvHY9TmJV5Mll2uHEwRdR/5Li1OlXoECjLYkApdhWy44ocONwXLiKO5A==", "license": "MIT" }, + "node_modules/patch-package": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-8.0.0.tgz", + "integrity": "sha512-da8BVIhzjtgScwDJ2TtKsfT5JFWz1hYoBl9rUQ1f38MC2HwnEIkK8VN3dKMKcP7P7bvvgzNDbfNHtx3MsQb5vA==", + "license": "MIT", + "dependencies": { + "@yarnpkg/lockfile": "^1.1.0", + "chalk": "^4.1.2", + "ci-info": "^3.7.0", + "cross-spawn": "^7.0.3", + "find-yarn-workspace-root": "^2.0.0", + "fs-extra": "^9.0.0", + "json-stable-stringify": "^1.0.2", + "klaw-sync": "^6.0.0", + "minimist": "^1.2.6", + "open": "^7.4.2", + "rimraf": "^2.6.3", + "semver": "^7.5.3", + "slash": "^2.0.0", + "tmp": "^0.0.33", + "yaml": "^2.2.2" + }, + "bin": { + "patch-package": "index.js" + }, + "engines": { + "node": ">=14", + "npm": ">5" + } + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -5169,11 +5891,19 @@ "node": ">=8" } }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -5183,7 +5913,6 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true, "license": "MIT" }, "node_modules/pbf": { @@ -5230,7 +5959,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -5299,6 +6027,15 @@ "wkt-parser": "^1.5.1" } }, + "node_modules/promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "license": "MIT", + "dependencies": { + "asap": "~2.0.3" + } + }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -5342,6 +6079,130 @@ "integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==", "license": "MIT" }, + "node_modules/pug": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pug/-/pug-3.0.3.tgz", + "integrity": "sha512-uBi6kmc9f3SZ3PXxqcHiUZLmIXgfgWooKWXcwSGwQd2Zi5Rb0bT14+8CJjJgI8AB+nndLaNgHGrcc6bPIB665g==", + "license": "MIT", + "dependencies": { + "pug-code-gen": "^3.0.3", + "pug-filters": "^4.0.0", + "pug-lexer": "^5.0.1", + "pug-linker": "^4.0.0", + "pug-load": "^3.0.0", + "pug-parser": "^6.0.0", + "pug-runtime": "^3.0.1", + "pug-strip-comments": "^2.0.0" + } + }, + "node_modules/pug-attrs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz", + "integrity": "sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==", + "license": "MIT", + "dependencies": { + "constantinople": "^4.0.1", + "js-stringify": "^1.0.2", + "pug-runtime": "^3.0.0" + } + }, + "node_modules/pug-code-gen": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.3.tgz", + "integrity": "sha512-cYQg0JW0w32Ux+XTeZnBEeuWrAY7/HNE6TWnhiHGnnRYlCgyAUPoyh9KzCMa9WhcJlJ1AtQqpEYHc+vbCzA+Aw==", + "license": "MIT", + "dependencies": { + "constantinople": "^4.0.1", + "doctypes": "^1.1.0", + "js-stringify": "^1.0.2", + "pug-attrs": "^3.0.0", + "pug-error": "^2.1.0", + "pug-runtime": "^3.0.1", + "void-elements": "^3.1.0", + "with": "^7.0.0" + } + }, + "node_modules/pug-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.1.0.tgz", + "integrity": "sha512-lv7sU9e5Jk8IeUheHata6/UThZ7RK2jnaaNztxfPYUY+VxZyk/ePVaNZ/vwmH8WqGvDz3LrNYt/+gA55NDg6Pg==", + "license": "MIT" + }, + "node_modules/pug-filters": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz", + "integrity": "sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==", + "license": "MIT", + "dependencies": { + "constantinople": "^4.0.1", + "jstransformer": "1.0.0", + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0", + "resolve": "^1.15.1" + } + }, + "node_modules/pug-lexer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz", + "integrity": "sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==", + "license": "MIT", + "dependencies": { + "character-parser": "^2.2.0", + "is-expression": "^4.0.0", + "pug-error": "^2.0.0" + } + }, + "node_modules/pug-linker": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz", + "integrity": "sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==", + "license": "MIT", + "dependencies": { + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0" + } + }, + "node_modules/pug-load": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz", + "integrity": "sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==", + "license": "MIT", + "dependencies": { + "object-assign": "^4.1.1", + "pug-walk": "^2.0.0" + } + }, + "node_modules/pug-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz", + "integrity": "sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==", + "license": "MIT", + "dependencies": { + "pug-error": "^2.0.0", + "token-stream": "1.0.0" + } + }, + "node_modules/pug-runtime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz", + "integrity": "sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==", + "license": "MIT" + }, + "node_modules/pug-strip-comments": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz", + "integrity": "sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==", + "license": "MIT", + "dependencies": { + "pug-error": "^2.0.0" + } + }, + "node_modules/pug-walk": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz", + "integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==", + "license": "MIT" + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -5415,6 +6276,33 @@ "dev": true, "license": "MIT" }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/reflect.getprototypeof": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", @@ -5473,7 +6361,6 @@ "version": "1.22.10", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", - "dev": true, "license": "MIT", "dependencies": { "is-core-module": "^2.16.0", @@ -5530,6 +6417,19 @@ "node": ">=0.10.0" } }, + "node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, "node_modules/rollup": { "version": "4.43.0", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.43.0.tgz", @@ -5625,6 +6525,26 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/safe-push-apply": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", @@ -5646,7 +6566,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", - "dev": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.2", @@ -5660,6 +6579,26 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/sass": { + "version": "1.89.2", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.89.2.tgz", + "integrity": "sha512-xCmtksBKd/jdJ9Bt9p7nPKiuqrlBMBuuGkQlkhZjjQk3Ty48lv93k5Dq6OPkKt4XwxDJ7tvlfrTa1MPA9bf+QA==", + "license": "MIT", + "dependencies": { + "chokidar": "^4.0.0", + "immutable": "^5.0.2", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" + } + }, "node_modules/sax": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", @@ -5670,7 +6609,6 @@ "version": "7.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", - "dev": true, "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -5683,7 +6621,6 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dev": true, "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", @@ -5728,11 +6665,16 @@ "node": ">= 0.4" } }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "license": "MIT" + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" @@ -5745,7 +6687,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -5827,6 +6768,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -5867,6 +6817,25 @@ "node": ">= 0.4" } }, + "node_modules/stream-browserify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "license": "MIT", + "dependencies": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, "node_modules/string.prototype.matchall": { "version": "4.0.12", "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", @@ -5982,7 +6951,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -5995,7 +6963,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -6014,6 +6981,18 @@ "node": ">=6" } }, + "node_modules/timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "license": "MIT", + "dependencies": { + "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" + } + }, "node_modules/tinyglobby": { "version": "0.2.14", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", @@ -6036,11 +7015,22 @@ "integrity": "sha512-gRa9gwYU3ECmQYv3lslts5hxuIa90veaEcxDYuu3QGOIAEM2mOZkVHp48ANJuu1CURtRdHKUBY5Lm1tHV+sD4g==", "license": "ISC" }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "license": "MIT", "dependencies": { "is-number": "^7.0.0" @@ -6049,6 +7039,12 @@ "node": ">=8.0" } }, + "node_modules/token-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz", + "integrity": "sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==", + "license": "MIT" + }, "node_modules/topojson-client": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", @@ -6260,6 +7256,15 @@ "license": "MIT", "peer": true }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/unrs-resolver": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.9.0.tgz", @@ -6312,11 +7317,23 @@ "license": "MIT", "peer": true }, + "node_modules/util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true, "license": "MIT" }, "node_modules/vite": { @@ -6393,6 +7410,15 @@ } } }, + "node_modules/void-elements": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", + "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/vue": { "version": "3.5.16", "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.16.tgz", @@ -6450,7 +7476,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "license": "ISC", "dependencies": { "isexe": "^2.0.0" @@ -6533,7 +7558,6 @@ "version": "1.1.19", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", - "dev": true, "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", @@ -6551,6 +7575,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/with": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz", + "integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.9.6", + "@babel/types": "^7.9.6", + "assert-never": "^1.2.1", + "babel-walk": "3.0.0-canary-5" + }, + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/wkt-parser": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/wkt-parser/-/wkt-parser-1.5.2.tgz", @@ -6567,6 +7606,12 @@ "node": ">=0.10.0" } }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, "node_modules/xml-name-validator": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", @@ -6605,6 +7650,18 @@ "node": ">=4.0" } }, + "node_modules/yaml": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.0.tgz", + "integrity": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", @@ -6623,9 +7680,6 @@ "resolved": "https://registry.npmjs.org/zstddec/-/zstddec-0.1.0.tgz", "integrity": "sha512-w2NTI8+3l3eeltKAdK8QpiLo/flRAr2p8AGeakfMZOXBxOg9HIu4LVDxBi81sYgVhFhdJjv1OrB5ssI8uFPoLg==", "license": "MIT AND BSD-3-Clause" - }, - "packages/clients/snowbox": { - "extraneous": true } } } diff --git a/package.json b/package.json index aac7101d2..6c16acac7 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,8 @@ "lint:ci": "eslint .", "lint:fix": "npm run lint -- --fix", "tsc:ci": "tsc --noEmit", - "snowbox": "vite" + "snowbox": "vite", + "postinstall": "patch-package" }, "devDependencies": { "@dataport/eslint-config-geodev": "^0.3.1", @@ -23,6 +24,14 @@ }, "dependencies": { "@masterportal/masterportalapi": "2.49.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "patch-package": "^8.0.0", + "pug": "^3.0.3", + "sass": "^1.89.2", + "stream-browserify": "^3.0.0", + "timers-browserify": "^2.0.12", + "util": "^0.12.5", "vite": "^6.3.5", "vue": "^3.5.16" } diff --git a/patches/@masterportal+masterportalapi+2.49.0.patch b/patches/@masterportal+masterportalapi+2.49.0.patch new file mode 100644 index 000000000..39c81785d --- /dev/null +++ b/patches/@masterportal+masterportalapi+2.49.0.patch @@ -0,0 +1,14 @@ +diff --git a/node_modules/@masterportal/masterportalapi/src/renderer/webgl.js b/node_modules/@masterportal/masterportalapi/src/renderer/webgl.js +index 2934cee..2f0476b 100644 +--- a/node_modules/@masterportal/masterportalapi/src/renderer/webgl.js ++++ b/node_modules/@masterportal/masterportalapi/src/renderer/webgl.js +@@ -7,7 +7,8 @@ import styleList from "../vectorStyle/styleList"; + import {getRulesForFeature} from "../vectorStyle/lib/getRuleForIndex"; + import {returnColor} from "../vectorStyle/lib/colorConvertions"; + import {asArray} from "ol/color.js"; +-import {packColor, parseLiteralStyle} from "ol/webgl/styleparser.js"; ++import {packColor} from "ol/render/webgl/compileUtil.js"; ++import {parseLiteralStyle} from "ol/render/webgl/style.js"; + + /** + * The default style for OpenLayers WebGLPoints class diff --git a/vite.config.ts b/vite.config.ts index b19e2da41..73ba4367d 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,8 +1,10 @@ +import { createRequire } from 'node:module' import { dirname, resolve } from 'node:path' import { fileURLToPath } from 'node:url' import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' +const require = createRequire(import.meta.url) const __dirname = dirname(fileURLToPath(import.meta.url)) export default defineConfig({ @@ -11,23 +13,19 @@ export default defineConfig({ ], build: { lib: { - entry: resolve(__dirname, 'lib/core/main.ts'), + entry: resolve(__dirname, 'lib', 'core', 'main.ts'), name: 'polar', fileName: 'polar', }, - rollupOptions: { - external: ['vue'], - output: { - globals: { - vue: 'Vue', - }, - }, - }, }, resolve: { alias: { - '@': resolve(__dirname, './lib'), - vue: 'vue/dist/vue.esm-bundler.js', + '@': resolve(__dirname, 'lib'), + + // mitigation for ignoring package.json exports in @masterportal/masterportalapi + 'olcs/lib/olcs': resolve(__dirname, 'node_modules', 'olcs', 'lib', 'olcs'), + stream: require.resolve('stream-browserify'), + timers: require.resolve('timers-browserify'), }, }, root: 'src', From 5d58f718baf5c4d4cee9f6b4aa4595c532d1f2e6 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Mon, 16 Jun 2025 14:41:36 +0200 Subject: [PATCH 005/697] Replicate old folder structure --- .gitignore | 21 +++++++++++++++++++ lib/core/index.ts | 3 --- lib/core/utils/registerCustomElement.ts | 8 ------- {src => packages/clients/snowbox}/index.html | 0 {src => packages/clients/snowbox}/snowbox.js | 0 .../core/components/PolarMap.ce.vue | 0 packages/core/index.ts | 8 +++++++ vite.config.ts | 6 +++--- 8 files changed, 32 insertions(+), 14 deletions(-) delete mode 100644 lib/core/index.ts delete mode 100644 lib/core/utils/registerCustomElement.ts rename {src => packages/clients/snowbox}/index.html (100%) rename {src => packages/clients/snowbox}/snowbox.js (100%) rename {lib => packages}/core/components/PolarMap.ce.vue (100%) create mode 100644 packages/core/index.ts diff --git a/.gitignore b/.gitignore index b0de03aa2..dd4510624 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,23 @@ node_modules .eslintcache + +# Old gitignore, maybe cleanup when migrated +**/.eslintcache +**/*.tgz +**/.cache +**/coverage +**/dist +**/dist-test +**/docs +**/node_modules +**/tests_output +**/test-results/ +**/playwright-report/ +**/blob-report/ +**/playwright/.cache/ +/*.log +/.idea/ +/.nx/ +/public +logs/*.log +logs diff --git a/lib/core/index.ts b/lib/core/index.ts deleted file mode 100644 index 874a139f3..000000000 --- a/lib/core/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { registerCustomElement } from './utils/registerCustomElement' - -export { registerCustomElement as register } diff --git a/lib/core/utils/registerCustomElement.ts b/lib/core/utils/registerCustomElement.ts deleted file mode 100644 index 971b30729..000000000 --- a/lib/core/utils/registerCustomElement.ts +++ /dev/null @@ -1,8 +0,0 @@ -import * as mpapi from '@masterportal/masterportalapi' -import PolarMap from '../components/PolarMap.ce.vue' -import { defineCustomElement } from 'vue' - -export function registerCustomElement() { - const PolarMapElement = defineCustomElement(PolarMap) - customElements.define('polar-map', PolarMapElement) -} diff --git a/src/index.html b/packages/clients/snowbox/index.html similarity index 100% rename from src/index.html rename to packages/clients/snowbox/index.html diff --git a/src/snowbox.js b/packages/clients/snowbox/snowbox.js similarity index 100% rename from src/snowbox.js rename to packages/clients/snowbox/snowbox.js diff --git a/lib/core/components/PolarMap.ce.vue b/packages/core/components/PolarMap.ce.vue similarity index 100% rename from lib/core/components/PolarMap.ce.vue rename to packages/core/components/PolarMap.ce.vue diff --git a/packages/core/index.ts b/packages/core/index.ts new file mode 100644 index 000000000..6de4de649 --- /dev/null +++ b/packages/core/index.ts @@ -0,0 +1,8 @@ +import { defineCustomElement } from 'vue' +import PolarMapCE from './components/PolarMap.ce.vue' + +export const PolarMap = defineCustomElement(PolarMapCE) + +export function register() { + customElements.define('polar-map', PolarMap) +} diff --git a/vite.config.ts b/vite.config.ts index 73ba4367d..2a3dd0484 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -13,14 +13,14 @@ export default defineConfig({ ], build: { lib: { - entry: resolve(__dirname, 'lib', 'core', 'main.ts'), + entry: resolve(__dirname, 'packages', 'core', 'index.ts'), name: 'polar', fileName: 'polar', }, }, resolve: { alias: { - '@': resolve(__dirname, 'lib'), + '@': resolve(__dirname, 'packages'), // mitigation for ignoring package.json exports in @masterportal/masterportalapi 'olcs/lib/olcs': resolve(__dirname, 'node_modules', 'olcs', 'lib', 'olcs'), @@ -28,7 +28,7 @@ export default defineConfig({ timers: require.resolve('timers-browserify'), }, }, - root: 'src', + root: 'packages/clients/snowbox', server: { port: 1234, }, From 7990a5a3caefc90384ae7a313af0b4e971bb5eea Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Mon, 16 Jun 2025 14:51:23 +0200 Subject: [PATCH 006/697] Allow basic configuration --- packages/clients/snowbox/index.html | 2 +- packages/clients/snowbox/snowbox.js | 19 +++++++++++++++++ packages/core/components/PolarMap.ce.vue | 26 ++++++++---------------- 3 files changed, 28 insertions(+), 19 deletions(-) diff --git a/packages/clients/snowbox/index.html b/packages/clients/snowbox/index.html index 559815442..06dbf5154 100644 --- a/packages/clients/snowbox/index.html +++ b/packages/clients/snowbox/index.html @@ -7,6 +7,6 @@

POLAR map client

Demo application ("Snowbox")

- + diff --git a/packages/clients/snowbox/snowbox.js b/packages/clients/snowbox/snowbox.js index c298c86e0..507ffc723 100644 --- a/packages/clients/snowbox/snowbox.js +++ b/packages/clients/snowbox/snowbox.js @@ -1,2 +1,21 @@ import { register } from '@/core' register() + +const basemapId = '23420' +const basemapGreyId = '23421' + +document.getElementById('snowbox').init({ + layers: [ + { + id: basemapId, + visibility: true, + type: 'background', + name: 'snowbox.layers.basemap', + }, + { + id: basemapGreyId, + type: 'background', + name: 'snowbox.layers.basemapGrey', + }, + ], +}) diff --git a/packages/core/components/PolarMap.ce.vue b/packages/core/components/PolarMap.ce.vue index abc588275..2ebf668cf 100644 --- a/packages/core/components/PolarMap.ce.vue +++ b/packages/core/components/PolarMap.ce.vue @@ -1,31 +1,21 @@ From 8b93e30ecac5cebbeba7c69b6990b2009553b55b Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Mon, 16 Jun 2025 21:54:28 +0200 Subject: [PATCH 007/697] Fix linting setup Some of these options should surely be set in @dataport/eslint-config-geodev/typescript. --- eslint.config.js | 36 +++++++++++++++++++++++++++++++++--- vue2/.eslintignore | 10 ---------- 2 files changed, 33 insertions(+), 13 deletions(-) delete mode 100644 vue2/.eslintignore diff --git a/eslint.config.js b/eslint.config.js index c94abaece..001c4adf3 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -3,10 +3,21 @@ import mainConfig from '@dataport/eslint-config-geodev' import browserConfig from '@dataport/eslint-config-geodev/browser' import tsConfig from '@dataport/eslint-config-geodev/typescript' import vueConfig from '@dataport/eslint-config-geodev/vue' +import tseslint from 'typescript-eslint' export default defineConfig([ { - ignores: ['vue2/'], + ignores: ['vue2/', '**/build', + '**/.cache', + '**/coverage', + '**/dist', + '**/dist-test', + '**/docs', + '**/node_modules', + '**/tests_output', + '*.d.ts', + '/.nx/', + ], }, { files: ['**/*.js'], @@ -14,10 +25,29 @@ export default defineConfig([ }, { files: ['**/*.ts'], - extends: [mainConfig, browserConfig, tsConfig], + extends: [mainConfig, browserConfig, tsConfig, tseslint.configs.strictTypeChecked, { + languageOptions: { + parserOptions: { + projectService: true, + ecmaVersion: 2021, + sourceType: 'module', + tsconfigRootDir: import.meta.dirname, + }, + }, + }], }, { files: ['**/*.vue'], - extends: [mainConfig, browserConfig, tsConfig, vueConfig], + extends: [mainConfig, browserConfig, tsConfig, vueConfig, tseslint.configs.strictTypeChecked, { + languageOptions: { + parserOptions: { + projectService: true, + ecmaVersion: 2021, + sourceType: 'module', + tsconfigRootDir: import.meta.dirname, + extraFileExtensions: ['.vue'], + }, + }, + }], }, ]) diff --git a/vue2/.eslintignore b/vue2/.eslintignore deleted file mode 100644 index af5fd69a4..000000000 --- a/vue2/.eslintignore +++ /dev/null @@ -1,10 +0,0 @@ -**/build -**/.cache -**/coverage -**/dist -**/dist-test -**/docs -**/node_modules -**/tests_output -*.d.ts -/.nx/ From e63a583a40c8a01f1c89171a60d4ff5d0b1c1042 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Mon, 16 Jun 2025 16:42:57 +0200 Subject: [PATCH 008/697] Add KoliBri --- package-lock.json | 245 ++++++++++++++++++++++- package.json | 3 + packages/core/components/PolarMap.ce.vue | 10 + packages/core/index.ts | 7 +- packages/core/vuePlugins/kolibri.ts | 10 + vite.config.ts | 8 +- 6 files changed, 280 insertions(+), 3 deletions(-) create mode 100644 packages/core/vuePlugins/kolibri.ts diff --git a/package-lock.json b/package-lock.json index 1f97afedd..6ccec2ff7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,9 @@ "license": "EUPL-1.2", "dependencies": { "@masterportal/masterportalapi": "2.49.0", + "@public-ui/components": "^3.0.0", + "@public-ui/themes": "^3.0.0", + "@public-ui/vue": "^3.0.0", "buffer": "^6.0.3", "events": "^3.3.0", "patch-package": "^8.0.0", @@ -789,6 +792,31 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, + "node_modules/@floating-ui/core": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.1.tgz", + "integrity": "sha512-azI0DrjMMfIug/ExbBaeDVJXcY0a7EPvPjb2xAJPa4HeimBX+Z18HK8QQR3jb6356SnDDdxx+hinMLcJEDdOjw==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.9" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz", + "integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.9" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz", + "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==", + "license": "MIT" + }, "node_modules/@humanfs/core": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", @@ -1432,6 +1460,48 @@ "license": "BSD-3-Clause", "peer": true }, + "node_modules/@public-ui/components": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@public-ui/components/-/components-3.0.0.tgz", + "integrity": "sha512-pVG1pv5+TCEiun2zb+Mz2eVlr9C5dyAXLeRUktqfjYimyvlg7NRcqA/LNUg0ybPqBNqwjPLPbLxfOyn+MSHS/g==", + "license": "EUPL-1.2", + "dependencies": { + "@floating-ui/dom": "1.6.13", + "adopted-style-sheets": "1.1.9-rc.18", + "clsx": "2.1.1", + "color-convert": "2.0.1", + "color-rgba": "2.4.0", + "lodash-es": "4.17.21", + "markdown-it": "14.1.0", + "query-selector-all-shadow-root": "0.0.3", + "query-selector-shadow-root": "0.0.3", + "rgba-convert": "0.3.0", + "typed-bem": "1.0.0-rc.7", + "wcag-contrast": "3.0.0" + }, + "peerDependencies": { + "adopted-style-sheets": "1.1.9-rc.18" + } + }, + "node_modules/@public-ui/themes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@public-ui/themes/-/themes-3.0.0.tgz", + "integrity": "sha512-lOSoBIdR4IgiYUzxGQoFG/jLKzxlaqJKusj+4Tyhx1tat+pWw65NxGYqu3MeIYHU+3OvrnxRNgAPX4n3pM36bg==", + "license": "EUPL-1.2", + "peerDependencies": { + "@public-ui/components": "3.0.0" + } + }, + "node_modules/@public-ui/vue": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@public-ui/vue/-/vue-3.0.0.tgz", + "integrity": "sha512-/IVEw1n4gpo1zNUKLfeog5mugNjLP6X3hpTja6MB5LvsIT4tuzbgqLaVcJw9nt/QZk6kbU6QlQN/nxLXe94prg==", + "license": "EUPL-1.2", + "peerDependencies": { + "@public-ui/components": "3.0.0", + "vue": ">=3" + } + }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.43.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.43.0.tgz", @@ -2449,6 +2519,15 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/adopted-style-sheets": { + "version": "1.1.9-rc.18", + "resolved": "https://registry.npmjs.org/adopted-style-sheets/-/adopted-style-sheets-1.1.9-rc.18.tgz", + "integrity": "sha512-x6ZSo3s6tw9LLmYKsMjdqO+EERPwsaKmLN8ahJ1dwGRI+oxyt+kBlY+yuTr7381Nm7/E10wcEtN6ZE2g1kDS2A==", + "license": "EUPL-1.2", + "dependencies": { + "loglevel": "1.9.2" + } + }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -2485,7 +2564,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, "license": "Python-2.0" }, "node_modules/array-buffer-byte-length": { @@ -2961,6 +3039,15 @@ "node": ">=8" } }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -2979,6 +3066,31 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT" }, + "node_modules/color-parse": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-1.4.3.tgz", + "integrity": "sha512-BADfVl/FHkQkyo8sRBwMYBqemqsgnu7JZAwUgvBvuwwuNUZAhSvLTbsEErS5bQXzOjDR0dWzJ4vXN2Q+QoPx0A==", + "license": "MIT", + "dependencies": { + "color-name": "^1.0.0" + } + }, + "node_modules/color-rgba": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/color-rgba/-/color-rgba-2.4.0.tgz", + "integrity": "sha512-Nti4qbzr/z2LbUWySr7H9dk3Rl7gZt7ihHAxlgT4Ho90EXWkjtkL1avTleu9yeGuqrt/chxTB6GKK8nZZ6V0+Q==", + "license": "MIT", + "dependencies": { + "color-parse": "^1.4.2", + "color-space": "^2.0.0" + } + }, + "node_modules/color-space": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/color-space/-/color-space-2.3.2.tgz", + "integrity": "sha512-BcKnbOEsOarCwyoLstcoEztwT0IJxqqQkNwDuA3a65sICvvHL2yoeV13psoDFh5IuiOMnIOKdQDwB4Mk3BypiA==", + "license": "Unlicense" + }, "node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -3245,6 +3357,12 @@ "integrity": "sha512-0l1/0gOjESMeQyYaK5IDiPNvFeu93Z/cO0TjZh9eZ1vyCtZnA7KMZ8rQggpsJHIbGSdrqYq9OhuveadOVHCshw==", "license": "ISC" }, + "node_modules/easy-bem": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/easy-bem/-/easy-bem-1.1.1.tgz", + "integrity": "sha512-GJRqdiy2h+EXy6a8E6R+ubmqUM08BK0FWNq41k24fup6045biQ8NXxoXimiwegMQvFFV3t1emADdGNL1TlS61A==", + "license": "MIT" + }, "node_modules/enhanced-resolve": { "version": "5.18.1", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", @@ -3920,6 +4038,15 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/esm": { + "version": "3.2.25", + "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/espree": { "version": "10.4.0", "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", @@ -5301,6 +5428,15 @@ "node": ">= 0.8.0" } }, + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "license": "MIT", + "dependencies": { + "uc.micro": "^2.0.0" + } + }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -5325,6 +5461,12 @@ "license": "MIT", "peer": true }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "license": "MIT" + }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -5332,6 +5474,19 @@ "dev": true, "license": "MIT" }, + "node_modules/loglevel": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.2.tgz", + "integrity": "sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/loglevel" + } + }, "node_modules/long": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", @@ -5367,6 +5522,23 @@ "integrity": "sha512-kvsEfzvLik34BiFj+S19bv5d70l9qSdkUzrq99dvZ9d5POaLyB4vJMQmq3BoJ5D6lFG1GYnMM7o7cm5Jh8YEEg==", "license": "BSD-2-Clause" }, + "node_modules/markdown-it": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "bin": { + "markdown-it": "bin/markdown-it.mjs" + } + }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -5376,6 +5548,12 @@ "node": ">= 0.4" } }, + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "license": "MIT" + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -6213,6 +6391,27 @@ "node": ">=6" } }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/query-selector-all-shadow-root": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/query-selector-all-shadow-root/-/query-selector-all-shadow-root-0.0.3.tgz", + "integrity": "sha512-J7TPo7c+Ut6Wl7Ujk/dToR15eqwu84vJAazgzkcUxCeCtoxbDJPsFs9mBaYoSUfS0ZN3xspLDGBajr0G8d2QZQ==", + "license": "EUPL-1.2" + }, + "node_modules/query-selector-shadow-root": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/query-selector-shadow-root/-/query-selector-shadow-root-0.0.3.tgz", + "integrity": "sha512-QXU2+N4fR2g8gqjGRjwg7x2oCiudc+nUAbaOqLtXvAlF7nQ32sRlkgFdpHLwzfeBvyvBgJzN/QFCogGCSjB/bQ==", + "license": "EUPL-1.2" + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -6347,6 +6546,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/relative-luminance": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/relative-luminance/-/relative-luminance-2.0.1.tgz", + "integrity": "sha512-wFuITNthJilFPwkK7gNJcULxXBcfFZvZORsvdvxeOdO44wCeZnuQkf3nFFzOR/dpJNxYsdRZJLsepWbyKhnMww==", + "license": "BSD-2-Clause", + "dependencies": { + "esm": "^3.0.84" + } + }, "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", @@ -6417,6 +6625,12 @@ "node": ">=0.10.0" } }, + "node_modules/rgba-convert": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/rgba-convert/-/rgba-convert-0.3.0.tgz", + "integrity": "sha512-l9MrAHIBevtg2NriZbCKVEZP/1eEfA+69r65gPXopzjivEadBRjFFSH74Lvobiot0nJa8xZSko/3xGSXNCaHAA==", + "license": "MIT" + }, "node_modules/rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -7193,6 +7407,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/typed-bem": { + "version": "1.0.0-rc.7", + "resolved": "https://registry.npmjs.org/typed-bem/-/typed-bem-1.0.0-rc.7.tgz", + "integrity": "sha512-NuptFkEO0CAdcSNupYE16D8P/XphIU+rPpXLHbFCjqJTaBLTNA6/XUwRS+mtW/icPoIOo/jq3NeS2LM9Sb5X1Q==", + "license": "MIT", + "dependencies": { + "easy-bem": "1.1.1" + }, + "engines": { + "node": "^22", + "npm": "^10", + "pnpm": "^10" + } + }, "node_modules/typescript": { "version": "5.8.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", @@ -7230,6 +7458,12 @@ "typescript": ">=4.8.4 <5.9.0" } }, + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "license": "MIT" + }, "node_modules/unbox-primitive": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", @@ -7466,6 +7700,15 @@ "eslint": "^8.57.0 || ^9.0.0" } }, + "node_modules/wcag-contrast": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wcag-contrast/-/wcag-contrast-3.0.0.tgz", + "integrity": "sha512-RWbpg/S7FOXDCwqC2oFhN/vh8dHzj0OS6dpyOSDHyQFSmqmR+lAUStV/ziTT1GzDqL9wol+nZQB4vCi5yEak+w==", + "license": "BSD-2-Clause", + "dependencies": { + "relative-luminance": "^2.0.0" + } + }, "node_modules/web-worker": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.5.0.tgz", diff --git a/package.json b/package.json index 6c16acac7..ae3cf6887 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,9 @@ }, "dependencies": { "@masterportal/masterportalapi": "2.49.0", + "@public-ui/components": "^3.0.0", + "@public-ui/themes": "^3.0.0", + "@public-ui/vue": "^3.0.0", "buffer": "^6.0.3", "events": "^3.3.0", "patch-package": "^8.0.0", diff --git a/packages/core/components/PolarMap.ce.vue b/packages/core/components/PolarMap.ce.vue index 2ebf668cf..d1d47ef49 100644 --- a/packages/core/components/PolarMap.ce.vue +++ b/packages/core/components/PolarMap.ce.vue @@ -17,6 +17,12 @@ onMounted(() => { const host = useHost() host.init = init }) + +import { KolButton } from '@public-ui/vue' + +function demo() { + console.log('Button clicked') +} + diff --git a/packages/polar/core/src/store/useCoreStore.ts b/packages/polar/core/src/store/useCoreStore.ts index a9179e787..34ba2d312 100644 --- a/packages/polar/core/src/store/useCoreStore.ts +++ b/packages/polar/core/src/store/useCoreStore.ts @@ -30,12 +30,14 @@ export const useCoreStore = defineStore('core', () => { startCenter: [0, 0], ...defaults, }) + const hasSmallDisplay = ref(false) const language = ref(i18next.language) // TODO: Check whether the initial value (needed for proper typing) breaks stuff const map = ref(new Map()) + const mapHasDimensions = ref(false) const zoom = ref(0) - // TODO: Both will possibly be updated with different breakpoints + // TODO: Both will possibly be updated with different breakpoints -> Breakpoints are e.g. not valid on newer devices const hasSmallHeight = computed( () => clientHeight.value <= SMALL_DISPLAY_HEIGHT ) @@ -85,11 +87,54 @@ export const useCoreStore = defineStore('core', () => { }) } + function updateHasSmallDisplay() { + hasSmallDisplay.value = + window.innerHeight <= SMALL_DISPLAY_HEIGHT || + window.innerWidth <= SMALL_DISPLAY_WIDTH + } + + /* + * Albeit the map will render without this in Firefox, it won't in Chromium- + * based browsers. The map reports "No map visible because the map + * container's width or height are 0.". However, if updating the map's size + * after letting all other tasks in callback queue execute, the DOM is + * prepared, and we're good to go. + * + * TODO: It seems like this is no longer required. + * + * For some reason, we'll have to wait two callback queues sometimes. + * The waiting is arbitrarily limited to 100 queues before an error is shown. + */ + function updateSizeOnReady() { + let attemptCounter = 0 + const intervalId = setInterval(() => { + const size = map.value.getSize() + if (attemptCounter++ < 100 && (!size || size[0] === 0 || size[1] === 0)) { + map.value.updateSize() + } else if (attemptCounter === 100) { + console.error( + `@polar/core: The POLAR map client could not update its size. The map is probably invisible due to having 0 width or 0 height. This might be a CSS issue – please check the wrapper's size.` + ) + mapHasDimensions.value = false + clearInterval(intervalId) + } else { + // OL prints warnings – add this log to reduce confusion + // eslint-disable-next-line no-console + console.log( + `@polar/core: The map now has dimensions and can be rendered.` + ) + mapHasDimensions.value = true + clearInterval(intervalId) + } + }, 0) + } + return { // State configuration, clientHeight, clientWidth, + hasSmallDisplay, language, map, // Getters @@ -100,5 +145,7 @@ export const useCoreStore = defineStore('core', () => { // Actions setMap, updateDragAndZoomInteractions, + updateHasSmallDisplay, + updateSizeOnReady, } }) diff --git a/packages/polar/package.json b/packages/polar/package.json index e59711921..94d48f6bc 100644 --- a/packages/polar/package.json +++ b/packages/polar/package.json @@ -29,6 +29,7 @@ "@public-ui/components": "^3.0.0", "@public-ui/themes": "^3.0.0", "@public-ui/vue": "^3.0.0", + "hammerjs": "2.0.8", "i18next": "^25.2.1", "i18next-browser-languagedetector": "^8.2.0", "i18next-vue": "^5.3.0", diff --git a/vue2/packages/core/src/components/MapContainer.vue b/vue2/packages/core/src/components/MapContainer.vue index 378d1afe5..41e06e13c 100644 --- a/vue2/packages/core/src/components/MapContainer.vue +++ b/vue2/packages/core/src/components/MapContainer.vue @@ -1,18 +1,5 @@

POLAR map client

diff --git a/packages/clients/snowbox/src/index.html b/packages/clients/snowbox/src/index.html index e160c7450..2f7e59ef0 100644 --- a/packages/clients/snowbox/src/index.html +++ b/packages/clients/snowbox/src/index.html @@ -3,6 +3,14 @@ +

POLAR map client

diff --git a/packages/polar/core/src/components/PolarMap.ce.vue b/packages/polar/core/src/components/PolarMap.ce.vue index e52271501..13e50f92b 100644 --- a/packages/polar/core/src/components/PolarMap.ce.vue +++ b/packages/polar/core/src/components/PolarMap.ce.vue @@ -164,16 +164,6 @@ function demo() { } - - +

POLAR map client

-
- Current client width: px -
+
+ Current client width: px +

Demo application ("Snowbox")

From b0d61bc7d8fdd19b9705968f4d7e36731739e51c Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Tue, 8 Jul 2025 13:22:10 +0200 Subject: [PATCH 065/697] Add the layout for the plugins as PolarUI including NineLayout --- packages/clients/snowbox/src/snowbox.js | 16 ++- .../polar/core/src/components/PolarMap.ce.vue | 2 + .../polar/core/src/components/PolarUI.ce.vue | 29 +++++ .../src/components/layouts/NineLayout.ce.vue | 87 +++++++++++++++ .../components/layouts/SidebarLayout.ce.vue | 7 ++ .../polar/core/src/utils/NineLayoutTag.ts | 11 ++ .../core/src/components/MapContainer.vue | 23 ---- .../core/src/components/MapPlugin.vue | 26 ----- vue2/packages/core/src/components/MapUi.vue | 31 ------ .../src/components/layouts/NineLayout.vue | 103 ------------------ .../src/components/layouts/NineLayoutTag.ts | 11 -- .../core/src/components/layouts/index.ts | 2 - vue2/packages/core/src/index.ts | 3 - vue2/packages/core/src/utils/layout.ts | 7 -- .../core/src/utils/sortPluginsByLayout.ts | 14 --- 15 files changed, 151 insertions(+), 221 deletions(-) create mode 100644 packages/polar/core/src/components/PolarUI.ce.vue create mode 100644 packages/polar/core/src/components/layouts/NineLayout.ce.vue create mode 100644 packages/polar/core/src/components/layouts/SidebarLayout.ce.vue create mode 100644 packages/polar/core/src/utils/NineLayoutTag.ts delete mode 100644 vue2/packages/core/src/components/MapPlugin.vue delete mode 100644 vue2/packages/core/src/components/MapUi.vue delete mode 100644 vue2/packages/core/src/components/layouts/NineLayout.vue delete mode 100644 vue2/packages/core/src/components/layouts/NineLayoutTag.ts delete mode 100644 vue2/packages/core/src/components/layouts/index.ts delete mode 100644 vue2/packages/core/src/utils/layout.ts delete mode 100644 vue2/packages/core/src/utils/sortPluginsByLayout.ts diff --git a/packages/clients/snowbox/src/snowbox.js b/packages/clients/snowbox/src/snowbox.js index 522547361..cb8b7e4e7 100644 --- a/packages/clients/snowbox/src/snowbox.js +++ b/packages/clients/snowbox/src/snowbox.js @@ -1,4 +1,8 @@ -import { createMap, subscribe } from '../../../polar/core/src/index.ts' +import { + addPlugin, + createMap, + subscribe, +} from '../../../polar/core/src/index.ts' const basemapId = '23420' const basemapGreyId = '23421' @@ -22,6 +26,16 @@ await createMap( 'https://geodienste.hamburg.de/services-internet.json' ) +// TODO: Update with proper plugins +setTimeout( + () => + addPlugin({ + name: 'TEST', + options: { displayComponent: true, layoutTag: 'MIDDLE_MIDDLE' }, + }), + 5000 +) + // TODO: Update with plugin examples subscribe( 'clientWidth', diff --git a/packages/polar/core/src/components/PolarMap.ce.vue b/packages/polar/core/src/components/PolarMap.ce.vue index 13e50f92b..1ee5789ce 100644 --- a/packages/polar/core/src/components/PolarMap.ce.vue +++ b/packages/polar/core/src/components/PolarMap.ce.vue @@ -20,6 +20,7 @@ role="region" :aria-label="$t('canvas.label')" /> + @@ -42,6 +43,7 @@ import { import { useCoreStore } from '../stores/useCoreStore' import { mapZoomOffset } from '../utils/mapZoomOffset' import { type MasterportalApiConfiguration } from '../types' +import PolarUi from './PolarUI.ce.vue' const isMacOS = navigator.userAgent.indexOf('Mac') !== -1 const coreStore = useCoreStore() diff --git a/packages/polar/core/src/components/PolarUI.ce.vue b/packages/polar/core/src/components/PolarUI.ce.vue new file mode 100644 index 000000000..0864a810a --- /dev/null +++ b/packages/polar/core/src/components/PolarUI.ce.vue @@ -0,0 +1,29 @@ + + + + + diff --git a/packages/polar/core/src/components/layouts/NineLayout.ce.vue b/packages/polar/core/src/components/layouts/NineLayout.ce.vue new file mode 100644 index 000000000..fde46ea9e --- /dev/null +++ b/packages/polar/core/src/components/layouts/NineLayout.ce.vue @@ -0,0 +1,87 @@ + + + + + diff --git a/packages/polar/core/src/components/layouts/SidebarLayout.ce.vue b/packages/polar/core/src/components/layouts/SidebarLayout.ce.vue new file mode 100644 index 000000000..ac44ff248 --- /dev/null +++ b/packages/polar/core/src/components/layouts/SidebarLayout.ce.vue @@ -0,0 +1,7 @@ + + + + + diff --git a/packages/polar/core/src/utils/NineLayoutTag.ts b/packages/polar/core/src/utils/NineLayoutTag.ts new file mode 100644 index 000000000..9ea2e5a10 --- /dev/null +++ b/packages/polar/core/src/utils/NineLayoutTag.ts @@ -0,0 +1,11 @@ +export enum NineLayoutTag { + TOP_LEFT = 'top-left top left layout-region', + TOP_MIDDLE = 'top-mid mid top layout-region', + TOP_RIGHT = 'top-right top right layout-region', + MIDDLE_LEFT = 'mid-left mid left layout-region', + MIDDLE_MIDDLE = 'mid-mid mid layout-region', + MIDDLE_RIGHT = 'mid-right mid right layout-region', + BOTTOM_LEFT = 'bottom-left bottom left layout-region', + BOTTOM_MIDDLE = 'bottom-mid mid bottom layout-region', + BOTTOM_RIGHT = 'bottom-right bottom right layout-region', +} diff --git a/vue2/packages/core/src/components/MapContainer.vue b/vue2/packages/core/src/components/MapContainer.vue index 41e06e13c..af32300ab 100644 --- a/vue2/packages/core/src/components/MapContainer.vue +++ b/vue2/packages/core/src/components/MapContainer.vue @@ -1,13 +1,5 @@ - +

POLAR map client

From 908b4d3bff618dacf2a6036a80aa9865dcc8b431 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Thu, 10 Jul 2025 11:22:11 +0200 Subject: [PATCH 068/697] Fix linting issues --- packages/polar/core/src/components/PolarMap.ce.vue | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/polar/core/src/components/PolarMap.ce.vue b/packages/polar/core/src/components/PolarMap.ce.vue index 6e507d3c9..cb6aee698 100644 --- a/packages/polar/core/src/components/PolarMap.ce.vue +++ b/packages/polar/core/src/components/PolarMap.ce.vue @@ -21,7 +21,9 @@ :aria-label="$t('canvas.label')" /> - {{ $t('canvas.label') }} + + {{ $t('canvas.label') }} + @@ -63,7 +65,7 @@ let resizeObserver: ResizeObserver | null = null async function loadKern() { const externalStyle = document.getElementById('kern-styles') - if(externalStyle) { + if (externalStyle) { externalStyle.id = 'polar-kern-styles' } @@ -71,10 +73,10 @@ async function loadKern() { const kernStyle = document.getElementById('kern-styles') const kernSheet = new CSSStyleSheet() kernSheet.replaceSync(kernStyle.innerText.replaceAll(':root', ':host')) - polarWrapper.value.parentNode.adoptedStyleSheets = [ kernSheet ] + polarWrapper.value.parentNode.adoptedStyleSheets = [kernSheet] kernStyle.remove() - if(externalStyle) { + if (externalStyle) { externalStyle.id = 'kern-styles' } } From 144efcceceeabd53870f4bb5e741aa263e086c42 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Thu, 10 Jul 2025 12:07:09 +0200 Subject: [PATCH 069/697] Await loadKern call --- packages/polar/core/src/components/PolarMap.ce.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/polar/core/src/components/PolarMap.ce.vue b/packages/polar/core/src/components/PolarMap.ce.vue index cb6aee698..d79ae8869 100644 --- a/packages/polar/core/src/components/PolarMap.ce.vue +++ b/packages/polar/core/src/components/PolarMap.ce.vue @@ -153,8 +153,8 @@ function setup() { coreStore.updateHasSmallDisplay() } -onMounted(() => { - loadKern() +onMounted(async () => { + await loadKern() if (Array.isArray(coreStore.serviceRegister)) { setup() return From 6a08d9f31999eed76913b33d0d5863e795be22d0 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Thu, 10 Jul 2025 12:47:47 +0200 Subject: [PATCH 070/697] Add removePlugin --- packages/clients/snowbox/src/snowbox.js | 3 +++ packages/polar/core/src/index.ts | 21 +++++++++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/packages/clients/snowbox/src/snowbox.js b/packages/clients/snowbox/src/snowbox.js index cb8b7e4e7..f7f7b6228 100644 --- a/packages/clients/snowbox/src/snowbox.js +++ b/packages/clients/snowbox/src/snowbox.js @@ -1,6 +1,7 @@ import { addPlugin, createMap, + removePlugin, subscribe, } from '../../../polar/core/src/index.ts' @@ -36,6 +37,8 @@ setTimeout( 5000 ) +setTimeout(() => removePlugin('TEST'), 10000) + // TODO: Update with plugin examples subscribe( 'clientWidth', diff --git a/packages/polar/core/src/index.ts b/packages/polar/core/src/index.ts index 1afe129ba..c73a69900 100644 --- a/packages/polar/core/src/index.ts +++ b/packages/polar/core/src/index.ts @@ -33,7 +33,6 @@ export function addPlugin(plugin: PluginContainer) { [name]: pluginConfiguration, } - // TODO(dopenguin): Not quite happy with this yet const store = storeModule?.() if (store && typeof store.setupPlugin === 'function') { store.setupPlugin() @@ -55,6 +54,24 @@ export function addPlugin(plugin: PluginContainer) { } } +export function removePlugin(pluginName: string) { + const coreStore = useCoreStore() + const plugin = coreStore.plugins.find((p) => p.name === pluginName) + + if (!plugin) { + console.error(`@polar/core:removePlugin: Plugin "${pluginName}" not found.`) + return + } + const store = plugin.storeModule?.() + if (store) { + // TODO(dopenguin): Might need to be extended depending on the plugin + store.$reset() + } + coreStore.plugins = coreStore.plugins.filter( + (plugin) => plugin.name !== pluginName + ) +} + /** * Initialize map and setup all relevant functionality. * Registers the custom element for the polar map. @@ -66,7 +83,7 @@ export function addPlugin(plugin: PluginContainer) { export async function createMap( mapConfiguration: MapConfiguration, serviceRegister?: string | Record[], - tagName = 'polar-map', + tagName = 'polar-map' ) { // TODO(oeninghe-dataport): Split defineCustomElement to a separate function to allow two or more map clients per page From 47efaf7e18cd75fb94a9955bc790f5a020721e26 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Mon, 14 Jul 2025 11:14:46 +0200 Subject: [PATCH 071/697] Add missing callback for i18next language changes --- packages/polar/core/src/stores/useCoreStore.ts | 4 ++++ vue2/packages/core/src/vuePlugins/vuex.ts | 6 ------ 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/packages/polar/core/src/stores/useCoreStore.ts b/packages/polar/core/src/stores/useCoreStore.ts index 772c82e49..7a4efc626 100644 --- a/packages/polar/core/src/stores/useCoreStore.ts +++ b/packages/polar/core/src/stores/useCoreStore.ts @@ -45,6 +45,10 @@ export const useCoreStore = defineStore('core', () => { // Added as a watcher to trigger the update at the correct time. watch(hasWindowSize, updateDragAndZoomInteractions) + i18next.on('languageChanged', (newLanguage) => { + language.value = newLanguage + }) + function setCenter() { // @ts-expect-error | map always has a center center.value = map.value.getView().getCenter() diff --git a/vue2/packages/core/src/vuePlugins/vuex.ts b/vue2/packages/core/src/vuePlugins/vuex.ts index 560222c6f..79f97a8c7 100644 --- a/vue2/packages/core/src/vuePlugins/vuex.ts +++ b/vue2/packages/core/src/vuePlugins/vuex.ts @@ -2,13 +2,11 @@ /* eslint-disable no-console */ import Vue from 'vue' import Vuex, { Store } from 'vuex' -import merge from 'lodash.merge' import { generateSimpleGetters, generateSimpleMutations, } from '@repositoryname/vuex-generators' import noop from '@repositoryname/noop' -import i18next from 'i18next' import { CoreState, MapConfig, @@ -214,11 +212,7 @@ export const makeStore = (mapConfiguration: MapConfig) => { updateSelection, }, }) - i18next.on('languageChanged', (language) => { - store.commit('setLanguage', language) - }) - store.commit('setConfiguration', mapConfiguration) if (mapConfiguration.oidcToken) { // copied to a separate spot for usage as it's changable data at run-time store.commit('setOidcToken', mapConfiguration.oidcToken) From 2fc1f60576df86616562405d1943940cc2c73182 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Mon, 14 Jul 2025 11:15:03 +0200 Subject: [PATCH 072/697] Add example for a language switcher --- packages/clients/snowbox/src/index.html | 10 ++++++++++ packages/clients/snowbox/src/snowbox.js | 15 +++++++++++++++ vue2/packages/clients/snowbox/src/index.html | 11 ----------- vue2/packages/clients/snowbox/src/polar-client.ts | 15 --------------- 4 files changed, 25 insertions(+), 26 deletions(-) diff --git a/packages/clients/snowbox/src/index.html b/packages/clients/snowbox/src/index.html index 492e0173e..44a8244ed 100644 --- a/packages/clients/snowbox/src/index.html +++ b/packages/clients/snowbox/src/index.html @@ -10,10 +10,20 @@ height: 20em; margin: 1em 0; } + #language-switcher { + outline: solid black; + }

POLAR map client

+
Current client width: px
diff --git a/packages/clients/snowbox/src/snowbox.js b/packages/clients/snowbox/src/snowbox.js index f7f7b6228..ed38f1886 100644 --- a/packages/clients/snowbox/src/snowbox.js +++ b/packages/clients/snowbox/src/snowbox.js @@ -1,3 +1,4 @@ +import { changeLanguage } from 'i18next' import { addPlugin, createMap, @@ -44,3 +45,17 @@ subscribe( 'clientWidth', (width) => (document.getElementById('client-width').innerText = width) ) + +/* simple language switcher attached for demo purposes; + * language switching is considered a global concern and + * should be handled by the leading application */ +document + .getElementById('language-switcher') + .addEventListener('change', (event) => { + const target = event.target + const { value } = target + changeLanguage(value).then(() => { + target[0].innerHTML = value === 'en' ? 'English' : 'Englisch' + target[1].innerHTML = value === 'en' ? 'German' : 'Deutsch' + }) + }) diff --git a/vue2/packages/clients/snowbox/src/index.html b/vue2/packages/clients/snowbox/src/index.html index c44384fc9..3b7ab1e0f 100644 --- a/vue2/packages/clients/snowbox/src/index.html +++ b/vue2/packages/clients/snowbox/src/index.html @@ -51,10 +51,6 @@ margin: 0.2em 0; } - #language-switcher { - outline: solid black; - } - /* directly related to POLAR - something like this must be * available for map client to render in (see core docs for * more details on requirements) */ @@ -98,13 +94,6 @@

🔒 Loginbeispiel

🗺️ Map

In this example, the map client is used as an element on a website.

-
diff --git a/vue2/packages/clients/snowbox/src/polar-client.ts b/vue2/packages/clients/snowbox/src/polar-client.ts index a07126fc7..f200f670c 100644 --- a/vue2/packages/clients/snowbox/src/polar-client.ts +++ b/vue2/packages/clients/snowbox/src/polar-client.ts @@ -1,6 +1,5 @@ /* eslint-disable @typescript-eslint/no-non-null-assertion */ import polarCore from '@polar/core' -import { changeLanguage } from 'i18next' // NOTE bad pattern, but probably fine for a test client import { enableClustering } from '../../meldemichel/src/utils/enableClustering' import { addPlugins } from './addPlugins' @@ -88,20 +87,6 @@ polarCore.rawLayerList.initializeLayerList( createMap ) -/* simple language switcher attached for demo purposes; - * language switching is considered a global concern and - * should be handled by the leading application */ -document - .getElementById('language-switcher')! - .addEventListener('change', (event) => { - const target = event.target as HTMLOptionElement - const { value } = target - changeLanguage(value).then(() => { - target[0].innerHTML = value === 'en' ? 'English' : 'Englisch' - target[1].innerHTML = value === 'en' ? 'German' : 'Deutsch' - }) - }) - document.getElementById('vuex-target-clicky')!.addEventListener('click', () => // @ts-expect-error | added for e2e testing window.mapInstance.$store.dispatch( From 19ab0b7e1d2d044649c9a431c1d60df9b2904add Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Mon, 14 Jul 2025 11:16:24 +0200 Subject: [PATCH 073/697] Remove implemented functionality --- vue2/packages/core/src/vuePlugins/vuex.ts | 25 ----------------------- 1 file changed, 25 deletions(-) diff --git a/vue2/packages/core/src/vuePlugins/vuex.ts b/vue2/packages/core/src/vuePlugins/vuex.ts index 79f97a8c7..2a032d7a2 100644 --- a/vue2/packages/core/src/vuePlugins/vuex.ts +++ b/vue2/packages/core/src/vuePlugins/vuex.ts @@ -98,11 +98,6 @@ export const makeStore = (mapConfiguration: MapConfig) => { let selected: null | Feature = null let components: PluginContainer[] = [] - const setCenter = ({ map }) => - store.commit('setCenter', map.getView().getCenter()) - const setZoom = ({ map }) => - store.commit('setZoomLevel', map.getView().getZoom()) - const store = new Store({ state: getInitialState(), plugins: [mutationLogger], // vuex plugins, not polar plugins @@ -150,21 +145,6 @@ export const makeStore = (mapConfiguration: MapConfig) => { }, mutations: { ...generateSimpleMutations(getInitialState()), - setMap: (state, payload) => { - if (map) { - map.un('moveend', setCenter) - map.un('moveend', setZoom) - } - map = payload - if (map) { - map.on('moveend', setCenter) - map.on('moveend', setZoom) - setCenter({ map }) - setZoom({ map }) - } - // NOTE: hack: don't put map in vuex (complex object); see NOTE above - state.map = state.map + 1 - }, setHovered: (state, payload) => { if (payload === null || payload.get('features')) { hovered = payload @@ -189,11 +169,6 @@ export const makeStore = (mapConfiguration: MapConfig) => { selected = payload state.selected = state.selected + 1 }, - setComponents: (state, payload) => { - components = payload - // NOTE: hack: don't put components in vuex (complex objects); see NOTE above - state.components = state.components + 1 - }, addError: (state, error: PolarError) => { state.errors.push(error) }, From 765d09b670fc06d897e35209be8855a3f43e298d Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Mon, 14 Jul 2025 11:47:44 +0200 Subject: [PATCH 074/697] Remove redundant await --- packages/polar/core/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/polar/core/src/index.ts b/packages/polar/core/src/index.ts index c73a69900..e27ba6d95 100644 --- a/packages/polar/core/src/index.ts +++ b/packages/polar/core/src/index.ts @@ -80,7 +80,7 @@ export function removePlugin(pluginName: string) { * @param serviceRegister - Service register given through a URL or as an array. Will be required in an upcoming release instead of configuring it via layerConf in combination with rawLayerList.initializeLayerList. * @param tagName - Tag name for the custom element. */ -export async function createMap( +export function createMap( mapConfiguration: MapConfiguration, serviceRegister?: string | Record[], tagName = 'polar-map' From 2b85e51a9eea7623d737cf347967ca03983adee4 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Tue, 15 Jul 2025 16:24:29 +0200 Subject: [PATCH 075/697] Remove finished todos --- packages/polar/core/src/index.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/polar/core/src/index.ts b/packages/polar/core/src/index.ts index e27ba6d95..372a666da 100644 --- a/packages/polar/core/src/index.ts +++ b/packages/polar/core/src/index.ts @@ -18,8 +18,6 @@ export function addPlugin(plugin: PluginContainer) { const { locales, name, options, storeModule } = plugin const coreStore = useCoreStore() - // TODO(dopenguin): Register that the plugins are added to a parameter in the core --> Needed for cross-plugin usage e.g. toast - const pluginConfiguration: PluginOptions = merge( {}, options, @@ -46,7 +44,6 @@ export function addPlugin(plugin: PluginContainer) { } coreStore.plugins = [...coreStore.plugins, plugin] - // TODO(dopenguin): Add the layout so displayComponent etc can be tested if (pluginConfiguration.displayComponent && !pluginConfiguration.layoutTag) { console.warn( `@polar/core: Component "${name}" was registered as visible ('displayComponent' had a truthy value), but no 'layoutTag' was associated. This may be an error in configuration and will lead to the component not being visible in the UI.` From ece97e74c0ebdd642104f91ad1c1b42a26ffcbe6 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Tue, 15 Jul 2025 16:28:02 +0200 Subject: [PATCH 076/697] Change serviceRegister on createMap to be required --- packages/polar/core/src/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/polar/core/src/index.ts b/packages/polar/core/src/index.ts index 372a666da..5705dccf9 100644 --- a/packages/polar/core/src/index.ts +++ b/packages/polar/core/src/index.ts @@ -74,12 +74,12 @@ export function removePlugin(pluginName: string) { * Registers the custom element for the polar map. * * @param mapConfiguration - Configuration options. - * @param serviceRegister - Service register given through a URL or as an array. Will be required in an upcoming release instead of configuring it via layerConf in combination with rawLayerList.initializeLayerList. + * @param serviceRegister - Service register given through a URL or as an array. * @param tagName - Tag name for the custom element. */ export function createMap( mapConfiguration: MapConfiguration, - serviceRegister?: string | Record[], + serviceRegister: string | Record[], tagName = 'polar-map' ) { // TODO(oeninghe-dataport): Split defineCustomElement to a separate function to allow two or more map clients per page From c8bd4d232479114a9902bcdd5785cba8144b23c0 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Tue, 15 Jul 2025 16:34:13 +0200 Subject: [PATCH 077/697] Add possibility to use secure services --- .../polar/core/src/components/PolarMap.ce.vue | 3 ++ packages/polar/core/src/index.ts | 5 +++ .../polar/core/src/stores/useCoreStore.ts | 33 ++++++++++++++++++ packages/polar/core/src/types.ts | 2 ++ .../src/vuePlugins/actions/addInterceptor.ts | 34 ------------------- vue2/packages/core/src/vuePlugins/vuex.ts | 10 ------ vue2/packages/types/custom/core.ts | 2 -- 7 files changed, 43 insertions(+), 46 deletions(-) delete mode 100644 vue2/packages/core/src/vuePlugins/actions/addInterceptor.ts diff --git a/packages/polar/core/src/components/PolarMap.ce.vue b/packages/polar/core/src/components/PolarMap.ce.vue index d79ae8869..0c0b3ca8b 100644 --- a/packages/polar/core/src/components/PolarMap.ce.vue +++ b/packages/polar/core/src/components/PolarMap.ce.vue @@ -145,6 +145,9 @@ function wheelEffect(event: WheelEvent) { } function setup() { + if (coreStore.configuration.secureServiceUrlRegex) { + coreStore.addInterceptor(coreStore.configuration.secureServiceUrlRegex) + } createMap() resizeObserver = new ResizeObserver(updateClientDimensions) resizeObserver.observe(polarWrapper.value as Element) diff --git a/packages/polar/core/src/index.ts b/packages/polar/core/src/index.ts index 5705dccf9..9c36098a1 100644 --- a/packages/polar/core/src/index.ts +++ b/packages/polar/core/src/index.ts @@ -99,6 +99,11 @@ export function createMap( ...mapConfiguration, } coreStore.serviceRegister = serviceRegister + + if (coreStore.configuration.oidcToken) { + // copied to a separate spot for usage as it's changeable data at run-time + coreStore.oidcToken = coreStore.configuration.oidcToken + } }, }) diff --git a/packages/polar/core/src/stores/useCoreStore.ts b/packages/polar/core/src/stores/useCoreStore.ts index 7a4efc626..5feebfb7f 100644 --- a/packages/polar/core/src/stores/useCoreStore.ts +++ b/packages/polar/core/src/stores/useCoreStore.ts @@ -23,6 +23,7 @@ export const useCoreStore = defineStore('core', () => { // NOTE: Only instantiated here for proper typing const map = ref(new Map()) const mapHasDimensions = ref(false) + const oidcToken = ref('') const plugins = ref([]) const serviceRegister = ref[]>('') const zoom = ref(0) @@ -49,6 +50,36 @@ export const useCoreStore = defineStore('core', () => { language.value = newLanguage }) + function addInterceptor(secureServiceUrlRegex: string) { + // NOTE: Not applicable here. + // eslint-disable-next-line @typescript-eslint/unbound-method + const { fetch: originalFetch } = window + + // If interceptors for XMLHttpRequest or axios are needed, add them here. + window.fetch = (resource, originalConfig) => { + let config = originalConfig + + if ( + oidcToken.value && + typeof resource === 'string' && + resource.match(secureServiceUrlRegex) + ) { + config = { + ...originalConfig, + headers: { + // eslint-disable-next-line @typescript-eslint/naming-convention + Authorization: `Bearer ${oidcToken.value}`, + // NOTE: Currently expected that the headers are given as an object. + // eslint-disable-next-line @typescript-eslint/no-misused-spread + ...originalConfig?.headers, + }, + } + } + + return originalFetch(resource, config) + } + } + function setCenter() { // @ts-expect-error | map always has a center center.value = map.value.getView().getCenter() @@ -130,6 +161,7 @@ export const useCoreStore = defineStore('core', () => { hasSmallDisplay, language, map, + oidcToken, serviceRegister, // Getters hasSmallHeight, @@ -137,6 +169,7 @@ export const useCoreStore = defineStore('core', () => { hasWindowSize, deviceIsHorizontal, // Actions + addInterceptor, setMap, updateDragAndZoomInteractions, updateHasSmallDisplay, diff --git a/packages/polar/core/src/types.ts b/packages/polar/core/src/types.ts index a8f98ee7a..1b4c11b5f 100644 --- a/packages/polar/core/src/types.ts +++ b/packages/polar/core/src/types.ts @@ -136,4 +136,6 @@ export interface MapConfiguration extends MasterportalApiConfiguration { layers: LayerConfiguration[] language?: InitialLanguage locales?: Locale[] + oidcToken?: string + secureServiceUrlRegex?: string } diff --git a/vue2/packages/core/src/vuePlugins/actions/addInterceptor.ts b/vue2/packages/core/src/vuePlugins/actions/addInterceptor.ts deleted file mode 100644 index d532d0711..000000000 --- a/vue2/packages/core/src/vuePlugins/actions/addInterceptor.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { - CoreGetters, - CoreState, - PolarActionContext, -} from '@polar/lib-custom-types' - -export function addInterceptor( - { getters }: PolarActionContext, - secureServiceUrlRegex: string -) { - const { fetch: originalFetch } = window - - // If interceptors for XMLHttpRequest or axios are needed, add them here - window.fetch = (resource, originalConfig) => { - let config = originalConfig - - if ( - getters.oidcToken && - typeof resource === 'string' && - resource.match(secureServiceUrlRegex) - ) { - config = { - ...originalConfig, - headers: { - // eslint-disable-next-line @typescript-eslint/naming-convention - Authorization: `Bearer ${getters.oidcToken}`, - ...originalConfig?.headers, - }, - } - } - - return originalFetch(resource, config) - } -} diff --git a/vue2/packages/core/src/vuePlugins/vuex.ts b/vue2/packages/core/src/vuePlugins/vuex.ts index 2a032d7a2..f1ec55030 100644 --- a/vue2/packages/core/src/vuePlugins/vuex.ts +++ b/vue2/packages/core/src/vuePlugins/vuex.ts @@ -24,7 +24,6 @@ import { updateSelection, useExtendedMasterportalapiMarkers, } from './actions/useExtendedMasterportalapiMarkers' -import { addInterceptor } from './actions/addInterceptor' import checkServiceAvailability from './actions/checkServiceAvailability' // @ts-expect-error | 'TS2339: Property 'env' does not exist on type 'ImportMeta'.' - It does since we're using vite as a bundler. @@ -174,7 +173,6 @@ export const makeStore = (mapConfiguration: MapConfig) => { }, }, actions: { - addInterceptor, checkServiceAvailability, centerOnFeature({ rootGetters: { map } }, feature: Feature) { map.getView().animate({ @@ -188,13 +186,5 @@ export const makeStore = (mapConfiguration: MapConfig) => { }, }) - if (mapConfiguration.oidcToken) { - // copied to a separate spot for usage as it's changable data at run-time - store.commit('setOidcToken', mapConfiguration.oidcToken) - } - if (mapConfiguration.secureServiceUrlRegex) { - store.dispatch('addInterceptor', mapConfiguration.secureServiceUrlRegex) - } - return store } diff --git a/vue2/packages/types/custom/core.ts b/vue2/packages/types/custom/core.ts index 687f20436..911aada48 100644 --- a/vue2/packages/types/custom/core.ts +++ b/vue2/packages/types/custom/core.ts @@ -581,8 +581,6 @@ export interface MapConfig extends MasterportalApiConfig { checkServiceAvailability?: boolean extendedMasterportalapiMarkers?: ExtendedMasterportalapiMarkers featureStyles?: string - secureServiceUrlRegex?: string - oidcToken?: string renderFaToLightDom?: boolean stylePath?: string vuetify?: UserVuetifyPreset From 3f0c72896827f7ccb5ac05da8c7169eeaf7e95cc Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Tue, 15 Jul 2025 16:34:31 +0200 Subject: [PATCH 078/697] Reorder exports --- packages/polar/core/src/stores/useCoreStore.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/polar/core/src/stores/useCoreStore.ts b/packages/polar/core/src/stores/useCoreStore.ts index 5feebfb7f..c845a6d80 100644 --- a/packages/polar/core/src/stores/useCoreStore.ts +++ b/packages/polar/core/src/stores/useCoreStore.ts @@ -154,7 +154,6 @@ export const useCoreStore = defineStore('core', () => { return { // State - plugins, configuration, clientHeight, clientWidth, @@ -162,6 +161,7 @@ export const useCoreStore = defineStore('core', () => { language, map, oidcToken, + plugins, serviceRegister, // Getters hasSmallHeight, From 42025958525a7e7e26480fb78ec9c1e421bfa553 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Tue, 15 Jul 2025 17:30:48 +0200 Subject: [PATCH 079/697] Add lib functionality invisibleStyle --- packages/polar/lib/invisibleStyle/index.ts | 32 ++ vue2/packages/lib/invisibleStyle/CHANGELOG.md | 13 - vue2/packages/lib/invisibleStyle/LICENSE | 287 ------------------ vue2/packages/lib/invisibleStyle/README.md | 17 -- vue2/packages/lib/invisibleStyle/index.ts | 8 - vue2/packages/lib/invisibleStyle/package.json | 25 -- .../lib/invisibleStyle/vite.config.js | 3 - 7 files changed, 32 insertions(+), 353 deletions(-) create mode 100644 packages/polar/lib/invisibleStyle/index.ts delete mode 100644 vue2/packages/lib/invisibleStyle/CHANGELOG.md delete mode 100644 vue2/packages/lib/invisibleStyle/LICENSE delete mode 100644 vue2/packages/lib/invisibleStyle/README.md delete mode 100644 vue2/packages/lib/invisibleStyle/index.ts delete mode 100644 vue2/packages/lib/invisibleStyle/package.json delete mode 100644 vue2/packages/lib/invisibleStyle/vite.config.js diff --git a/packages/polar/lib/invisibleStyle/index.ts b/packages/polar/lib/invisibleStyle/index.ts new file mode 100644 index 000000000..a7742b2c9 --- /dev/null +++ b/packages/polar/lib/invisibleStyle/index.ts @@ -0,0 +1,32 @@ +import Style from 'ol/style/Style' +import { Feature } from 'ol' + +/* + * Exports a style for vector layer features that results in invisibility. + * Plugins that work with feature visibility ought to use this lib-functionality + * to keep them interoperable. + */ + +/** + * Makes feature invisible. + * To remove the invisibility, set the style to `undefined` or another style. + * + * Example usage: + * feature.setStyle(InvisibleStyle) + * + */ +export const InvisibleStyle = new Style() +/** + * Checks if a feature is invisible. + * + * @param feature - The feature to check. + */ +export const isInvisible = (feature: Feature) => + feature.getStyle() === InvisibleStyle +/** + * Checks if a feature is visible. + * + * @param feature - The feature to check. + */ +export const isVisible = (feature: Feature) => + feature.getStyle() !== InvisibleStyle diff --git a/vue2/packages/lib/invisibleStyle/CHANGELOG.md b/vue2/packages/lib/invisibleStyle/CHANGELOG.md deleted file mode 100644 index 987ed3426..000000000 --- a/vue2/packages/lib/invisibleStyle/CHANGELOG.md +++ /dev/null @@ -1,13 +0,0 @@ -# CHANGELOG - -## 3.0.0 - -- Breaking: Upgrade peerDependency `ol` from `^9.2.4` to `^10.3.1`. - -## 2.0.0 - -- Breaking: Upgrade peerDependency `ol` from `^7.1.0` to `^9.2.4`. - -## 1.0.0 - -Initial release. diff --git a/vue2/packages/lib/invisibleStyle/LICENSE b/vue2/packages/lib/invisibleStyle/LICENSE deleted file mode 100644 index c29ce2f83..000000000 --- a/vue2/packages/lib/invisibleStyle/LICENSE +++ /dev/null @@ -1,287 +0,0 @@ - EUROPEAN UNION PUBLIC LICENCE v. 1.2 - EUPL © the European Union 2007, 2016 - -This European Union Public Licence (the ‘EUPL’) applies to the Work (as defined -below) which is provided under the terms of this Licence. Any use of the Work, -other than as authorised under this Licence is prohibited (to the extent such -use is covered by a right of the copyright holder of the Work). - -The Work is provided under the terms of this Licence when the Licensor (as -defined below) has placed the following notice immediately following the -copyright notice for the Work: - - Licensed under the EUPL - -or has expressed by any other means his willingness to license under the EUPL. - -1. Definitions - -In this Licence, the following terms have the following meaning: - -- ‘The Licence’: this Licence. - -- ‘The Original Work’: the work or software distributed or communicated by the - Licensor under this Licence, available as Source Code and also as Executable - Code as the case may be. - -- ‘Derivative Works’: the works or software that could be created by the - Licensee, based upon the Original Work or modifications thereof. This Licence - does not define the extent of modification or dependence on the Original Work - required in order to classify a work as a Derivative Work; this extent is - determined by copyright law applicable in the country mentioned in Article 15. - -- ‘The Work’: the Original Work or its Derivative Works. - -- ‘The Source Code’: the human-readable form of the Work which is the most - convenient for people to study and modify. - -- ‘The Executable Code’: any code which has generally been compiled and which is - meant to be interpreted by a computer as a program. - -- ‘The Licensor’: the natural or legal person that distributes or communicates - the Work under the Licence. - -- ‘Contributor(s)’: any natural or legal person who modifies the Work under the - Licence, or otherwise contributes to the creation of a Derivative Work. - -- ‘The Licensee’ or ‘You’: any natural or legal person who makes any usage of - the Work under the terms of the Licence. - -- ‘Distribution’ or ‘Communication’: any act of selling, giving, lending, - renting, distributing, communicating, transmitting, or otherwise making - available, online or offline, copies of the Work or providing access to its - essential functionalities at the disposal of any other natural or legal - person. - -2. Scope of the rights granted by the Licence - -The Licensor hereby grants You a worldwide, royalty-free, non-exclusive, -sublicensable licence to do the following, for the duration of copyright vested -in the Original Work: - -- use the Work in any circumstance and for all usage, -- reproduce the Work, -- modify the Work, and make Derivative Works based upon the Work, -- communicate to the public, including the right to make available or display - the Work or copies thereof to the public and perform publicly, as the case may - be, the Work, -- distribute the Work or copies thereof, -- lend and rent the Work or copies thereof, -- sublicense rights in the Work or copies thereof. - -Those rights can be exercised on any media, supports and formats, whether now -known or later invented, as far as the applicable law permits so. - -In the countries where moral rights apply, the Licensor waives his right to -exercise his moral right to the extent allowed by law in order to make effective -the licence of the economic rights here above listed. - -The Licensor grants to the Licensee royalty-free, non-exclusive usage rights to -any patents held by the Licensor, to the extent necessary to make use of the -rights granted on the Work under this Licence. - -3. Communication of the Source Code - -The Licensor may provide the Work either in its Source Code form, or as -Executable Code. If the Work is provided as Executable Code, the Licensor -provides in addition a machine-readable copy of the Source Code of the Work -along with each copy of the Work that the Licensor distributes or indicates, in -a notice following the copyright notice attached to the Work, a repository where -the Source Code is easily and freely accessible for as long as the Licensor -continues to distribute or communicate the Work. - -4. Limitations on copyright - -Nothing in this Licence is intended to deprive the Licensee of the benefits from -any exception or limitation to the exclusive rights of the rights owners in the -Work, of the exhaustion of those rights or of other applicable limitations -thereto. - -5. Obligations of the Licensee - -The grant of the rights mentioned above is subject to some restrictions and -obligations imposed on the Licensee. Those obligations are the following: - -Attribution right: The Licensee shall keep intact all copyright, patent or -trademarks notices and all notices that refer to the Licence and to the -disclaimer of warranties. The Licensee must include a copy of such notices and a -copy of the Licence with every copy of the Work he/she distributes or -communicates. The Licensee must cause any Derivative Work to carry prominent -notices stating that the Work has been modified and the date of modification. - -Copyleft clause: If the Licensee distributes or communicates copies of the -Original Works or Derivative Works, this Distribution or Communication will be -done under the terms of this Licence or of a later version of this Licence -unless the Original Work is expressly distributed only under this version of the -Licence — for example by communicating ‘EUPL v. 1.2 only’. The Licensee -(becoming Licensor) cannot offer or impose any additional terms or conditions on -the Work or Derivative Work that alter or restrict the terms of the Licence. - -Compatibility clause: If the Licensee Distributes or Communicates Derivative -Works or copies thereof based upon both the Work and another work licensed under -a Compatible Licence, this Distribution or Communication can be done under the -terms of this Compatible Licence. For the sake of this clause, ‘Compatible -Licence’ refers to the licences listed in the appendix attached to this Licence. -Should the Licensee's obligations under the Compatible Licence conflict with -his/her obligations under this Licence, the obligations of the Compatible -Licence shall prevail. - -Provision of Source Code: When distributing or communicating copies of the Work, -the Licensee will provide a machine-readable copy of the Source Code or indicate -a repository where this Source will be easily and freely available for as long -as the Licensee continues to distribute or communicate the Work. - -Legal Protection: This Licence does not grant permission to use the trade names, -trademarks, service marks, or names of the Licensor, except as required for -reasonable and customary use in describing the origin of the Work and -reproducing the content of the copyright notice. - -6. Chain of Authorship - -The original Licensor warrants that the copyright in the Original Work granted -hereunder is owned by him/her or licensed to him/her and that he/she has the -power and authority to grant the Licence. - -Each Contributor warrants that the copyright in the modifications he/she brings -to the Work are owned by him/her or licensed to him/her and that he/she has the -power and authority to grant the Licence. - -Each time You accept the Licence, the original Licensor and subsequent -Contributors grant You a licence to their contributions to the Work, under the -terms of this Licence. - -7. Disclaimer of Warranty - -The Work is a work in progress, which is continuously improved by numerous -Contributors. It is not a finished work and may therefore contain defects or -‘bugs’ inherent to this type of development. - -For the above reason, the Work is provided under the Licence on an ‘as is’ basis -and without warranties of any kind concerning the Work, including without -limitation merchantability, fitness for a particular purpose, absence of defects -or errors, accuracy, non-infringement of intellectual property rights other than -copyright as stated in Article 6 of this Licence. - -This disclaimer of warranty is an essential part of the Licence and a condition -for the grant of any rights to the Work. - -8. Disclaimer of Liability - -Except in the cases of wilful misconduct or damages directly caused to natural -persons, the Licensor will in no event be liable for any direct or indirect, -material or moral, damages of any kind, arising out of the Licence or of the use -of the Work, including without limitation, damages for loss of goodwill, work -stoppage, computer failure or malfunction, loss of data or any commercial -damage, even if the Licensor has been advised of the possibility of such damage. -However, the Licensor will be liable under statutory product liability laws as -far such laws apply to the Work. - -9. Additional agreements - -While distributing the Work, You may choose to conclude an additional agreement, -defining obligations or services consistent with this Licence. However, if -accepting obligations, You may act only on your own behalf and on your sole -responsibility, not on behalf of the original Licensor or any other Contributor, -and only if You agree to indemnify, defend, and hold each Contributor harmless -for any liability incurred by, or claims asserted against such Contributor by -the fact You have accepted any warranty or additional liability. - -10. Acceptance of the Licence - -The provisions of this Licence can be accepted by clicking on an icon ‘I agree’ -placed under the bottom of a window displaying the text of this Licence or by -affirming consent in any other similar way, in accordance with the rules of -applicable law. Clicking on that icon indicates your clear and irrevocable -acceptance of this Licence and all of its terms and conditions. - -Similarly, you irrevocably accept this Licence and all of its terms and -conditions by exercising any rights granted to You by Article 2 of this Licence, -such as the use of the Work, the creation by You of a Derivative Work or the -Distribution or Communication by You of the Work or copies thereof. - -11. Information to the public - -In case of any Distribution or Communication of the Work by means of electronic -communication by You (for example, by offering to download the Work from a -remote location) the distribution channel or media (for example, a website) must -at least provide to the public the information requested by the applicable law -regarding the Licensor, the Licence and the way it may be accessible, concluded, -stored and reproduced by the Licensee. - -12. Termination of the Licence - -The Licence and the rights granted hereunder will terminate automatically upon -any breach by the Licensee of the terms of the Licence. - -Such a termination will not terminate the licences of any person who has -received the Work from the Licensee under the Licence, provided such persons -remain in full compliance with the Licence. - -13. Miscellaneous - -Without prejudice of Article 9 above, the Licence represents the complete -agreement between the Parties as to the Work. - -If any provision of the Licence is invalid or unenforceable under applicable -law, this will not affect the validity or enforceability of the Licence as a -whole. Such provision will be construed or reformed so as necessary to make it -valid and enforceable. - -The European Commission may publish other linguistic versions or new versions of -this Licence or updated versions of the Appendix, so far this is required and -reasonable, without reducing the scope of the rights granted by the Licence. New -versions of the Licence will be published with a unique version number. - -All linguistic versions of this Licence, approved by the European Commission, -have identical value. Parties can take advantage of the linguistic version of -their choice. - -14. Jurisdiction - -Without prejudice to specific agreement between parties, - -- any litigation resulting from the interpretation of this License, arising - between the European Union institutions, bodies, offices or agencies, as a - Licensor, and any Licensee, will be subject to the jurisdiction of the Court - of Justice of the European Union, as laid down in article 272 of the Treaty on - the Functioning of the European Union, - -- any litigation arising between other parties and resulting from the - interpretation of this License, will be subject to the exclusive jurisdiction - of the competent court where the Licensor resides or conducts its primary - business. - -15. Applicable Law - -Without prejudice to specific agreement between parties, - -- this Licence shall be governed by the law of the European Union Member State - where the Licensor has his seat, resides or has his registered office, - -- this licence shall be governed by Belgian law if the Licensor has no seat, - residence or registered office inside a European Union Member State. - -Appendix - -‘Compatible Licences’ according to Article 5 EUPL are: - -- GNU General Public License (GPL) v. 2, v. 3 -- GNU Affero General Public License (AGPL) v. 3 -- Open Software License (OSL) v. 2.1, v. 3.0 -- Eclipse Public License (EPL) v. 1.0 -- CeCILL v. 2.0, v. 2.1 -- Mozilla Public Licence (MPL) v. 2 -- GNU Lesser General Public Licence (LGPL) v. 2.1, v. 3 -- Creative Commons Attribution-ShareAlike v. 3.0 Unported (CC BY-SA 3.0) for - works other than software -- European Union Public Licence (EUPL) v. 1.1, v. 1.2 -- Québec Free and Open-Source Licence — Reciprocity (LiLiQ-R) or Strong - Reciprocity (LiLiQ-R+). - -The European Commission may update this Appendix to later versions of the above -licences without producing a new version of the EUPL, as long as they provide -the rights granted in Article 2 of this Licence and protect the covered Source -Code from exclusive appropriation. - -All other changes or additions to this Appendix require the production of a new -EUPL version. \ No newline at end of file diff --git a/vue2/packages/lib/invisibleStyle/README.md b/vue2/packages/lib/invisibleStyle/README.md deleted file mode 100644 index d35350379..000000000 --- a/vue2/packages/lib/invisibleStyle/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# invisibleStyle - -Exports a style for vector layer features that results in invisibility. Plugins that work with feature visibility ought to use this package to keep them interoperable. - -```js -import { InvisibleStyle, isInvisible, isVisible } from '@polar/lib-invisible-style' - -// making feature invisible -feature.setStyle(InvisibleStyle) - -// making feature visible -feature.setStyle(undefined) - -// checking if a feature is (in)visible -isInvisible(feature) // true or false -isVisible(feature) -``` diff --git a/vue2/packages/lib/invisibleStyle/index.ts b/vue2/packages/lib/invisibleStyle/index.ts deleted file mode 100644 index 61644be29..000000000 --- a/vue2/packages/lib/invisibleStyle/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -import Style from 'ol/style/Style' -import { Feature } from 'ol' - -export const InvisibleStyle = new Style() -export const isInvisible = (feature: Feature): boolean => - feature.getStyle() === InvisibleStyle -export const isVisible = (feature: Feature): boolean => - feature.getStyle() !== InvisibleStyle diff --git a/vue2/packages/lib/invisibleStyle/package.json b/vue2/packages/lib/invisibleStyle/package.json deleted file mode 100644 index 1b897fc80..000000000 --- a/vue2/packages/lib/invisibleStyle/package.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "@polar/lib-invisible-style", - "version": "3.0.0", - "description": "Provides semantic styling for elements to remove visiblity from them in a detectable fashion that adds programmatic semantics, i.e. whether an element should be considered as visible or not to the user and should hence appear (or be considered) in user interfaces.", - "keywords": [ - "OpenLayers", - "ol", - "POLAR", - "lib", - "visiblity", - "filter" - ], - "license": "EUPL-1.2", - "type": "module", - "author": "Dataport AöR ", - "main": "index.ts", - "repository": { - "type": "git", - "url": "git+https://github.com/Dataport/polar.git", - "directory": "packages/lib/invisibleStyle" - }, - "peerDependencies": { - "ol": "^10.4.0" - } -} diff --git a/vue2/packages/lib/invisibleStyle/vite.config.js b/vue2/packages/lib/invisibleStyle/vite.config.js deleted file mode 100644 index 0d2ec38a1..000000000 --- a/vue2/packages/lib/invisibleStyle/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import { getCodeConfig } from '../../../viteConfigs' - -export default getCodeConfig() From 36415dd215636bf977c883f34450fa9973ce4067 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Tue, 15 Jul 2025 18:21:50 +0200 Subject: [PATCH 080/697] Add marker styles and use getPolygonFillHatch of masterportalapi --- .../polar/core/src/utils/markers.ts | 112 ++++---- .../core/src/utils/markers/hatches.ts | 266 ------------------ 2 files changed, 57 insertions(+), 321 deletions(-) rename vue2/packages/core/src/utils/markers/index.ts => packages/polar/core/src/utils/markers.ts (59%) delete mode 100644 vue2/packages/core/src/utils/markers/hatches.ts diff --git a/vue2/packages/core/src/utils/markers/index.ts b/packages/polar/core/src/utils/markers.ts similarity index 59% rename from vue2/packages/core/src/utils/markers/index.ts rename to packages/polar/core/src/utils/markers.ts index 79ff0cf54..56edc5749 100644 --- a/vue2/packages/core/src/utils/markers/index.ts +++ b/packages/polar/core/src/utils/markers.ts @@ -1,7 +1,9 @@ +import PolygonStyle from '@masterportal/masterportalapi/src/vectorStyle/styles/polygon/stylePolygon' import Style from 'ol/style/Style' import Icon from 'ol/style/Icon' -import { MarkerStyle } from '@polar/lib-custom-types' -import { getPolygonFillHatch } from './hatches' +import type { MarkerStyle } from '../types' + +const polygonStyle = new PolygonStyle() type GetMarkerFunction = (style: MarkerStyle, multi: boolean) => Style @@ -20,15 +22,15 @@ const defaultUnselectableFill = '#333333' const prefix = 'data:image/svg+xml,' const getImagePattern = (fill: Exclude) => - typeof fill === 'string' - ? '' - : ` + typeof fill === 'string' + ? '' + : ` - + fill.size || 30 + }" height="${fill.size || 30}"> + ` @@ -36,15 +38,15 @@ const getImagePattern = (fill: Exclude) => * @masterportal/masterportalapi/public/marker.svg. */ const makeMarker = ({ - fill = defaultFill, - size = imgSize, - stroke = defaultStroke, - strokeWidth = defaultStrokeWidth, + fill = defaultFill, + size = imgSize, + stroke = defaultStroke, + strokeWidth = defaultStrokeWidth, }: MarkerStyle) => - `${prefix}${encodeURIComponent(` + `${prefix}${encodeURIComponent(` + size[1] + }" viewBox="0 0 30 43" xmlns="http://www.w3.org/2000/svg"> DB6C494E-88E8-49F1-89CE-97CBEC3A5240 ${getImagePattern(fill)} - `${prefix}${encodeURIComponent(` + `${prefix}${encodeURIComponent(` + clusterSize[1] + }" viewBox="0 0 30 43" xmlns="http://www.w3.org/2000/svg"> 0A6F4952-4A5A-4E86-88E4-4B3D2EA1E3DF ${getImagePattern(fill)} + typeof fill === 'string' ? fill : 'url(#img)' + }" fill-rule="nonzero"> @@ -87,45 +89,45 @@ const anchor = [0.5, 1] * This memoization function optimises this issue by reusing styles. * */ const memoizeStyle = (getMarker: GetMarkerFunction): GetMarkerFunction => { - const singleCache = new Map() - const multiCache = new Map() - return (style, multi) => { - const cache = multi ? multiCache : singleCache - if (cache.has(style)) { - return cache.get(style) - } - const markerStyle = getMarker(style, multi) - cache.set(style, markerStyle) - if (cache.size > 1000) { - console.warn( - `@polar/core: 1000+ styles have been created. This is possibly a memory leak. Please mind that the methods exported by this module are memoized. You *may* be calling the methods with constantly newly generated objects, or maybe there's just a lot of styles.` - ) - } - return markerStyle - } + const singleCache = new Map() + const multiCache = new Map() + return (style, multi) => { + const cache = multi ? multiCache : singleCache + if (cache.has(style)) { + return cache.get(style) + } + const markerStyle = getMarker(style, multi) + cache.set(style, markerStyle) + if (cache.size > 1000) { + console.warn( + `@polar/core: 1000+ styles have been created. This is possibly a memory leak. Please mind that the methods exported by this module are memoized. You *may* be calling the methods with constantly newly generated objects, or maybe there's just a lot of styles.` + ) + } + return markerStyle + } } const getStyleFunction = - (fallbackFill: string): GetMarkerFunction => - (style, multi = false) => - new Style({ - image: new Icon({ - src: (multi ? makeMultiMarker : makeMarker)({ - fill: fallbackFill, - ...style, - }), - anchor, - }), - }) + (fallbackFill: string): GetMarkerFunction => + (style, multi = false) => + new Style({ + image: new Icon({ + src: (multi ? makeMultiMarker : makeMarker)({ + fill: fallbackFill, + ...style, + }), + anchor, + }), + }) export const getDefaultStyle = memoizeStyle(getStyleFunction(defaultFill)) export const getHoveredStyle = memoizeStyle(getStyleFunction(defaultHoverFill)) export const getSelectedStyle = memoizeStyle( - getStyleFunction(defaultSelectionFill) + getStyleFunction(defaultSelectionFill) ) export const getUnselectableStyle = memoizeStyle( - getStyleFunction(defaultUnselectableFill) + getStyleFunction(defaultUnselectableFill) ) diff --git a/vue2/packages/core/src/utils/markers/hatches.ts b/vue2/packages/core/src/utils/markers/hatches.ts deleted file mode 100644 index 7c9e836a9..000000000 --- a/vue2/packages/core/src/utils/markers/hatches.ts +++ /dev/null @@ -1,266 +0,0 @@ -// adapting rules to match original file -/* eslint-disable tsdoc/syntax */ -/* eslint-disable @typescript-eslint/naming-convention */ - -import { MasterportalapiPolygonFillHatch } from '@polar/lib-custom-types' - -/* - * Polygon hatches from @masterportal/masterportalapi@2.31.0. - * Small adaptations have been made to fit markers. - * Licensed under MIT by Freie und Hansestadt Hamburg, Landesbetrieb Geoinformation und Vermessung. - * Project: https://bitbucket.org/geowerkstatt-hamburg/masterportalapi - * NOTE we can replace this file with a direct import after updating - * to a version supporting this feature, hence only minimal adaptation - */ - -// pattern library – default draw instructions as described in style.json.md -const diagonal = { - draw: [ - { - type: 'line', - parameters: [ - [1, -0.5], - [-0.5, 1], - ], - }, - { - type: 'line', - parameters: [ - [1.5, 0], - [0, 1.5], - ], - }, - ], -} -const zigLine = { - draw: [ - { - type: 'line', - parameters: [ - [0, -0.25], - [0.75, 0.5], - [0, 1.25], - ], - }, - ], -} -const namedHatches = { - diagonal, - 'zig-line': zigLine, - 'diagonal-right': { ...diagonal, rotate: 90 }, - 'zig-line-horizontal': { ...zigLine, rotate: 90 }, - rectangle: { - draw: [ - { - type: 'rect', - parameters: [ - [0.125, 0.125, 0.25, 0.25], - [0.625, 0.625, 0.25, 0.25], - ], - }, - ], - }, - triangle: { - draw: [ - { - type: 'line', - parameters: [ - [0.25, 0], - [0.5, 0.5], - [0, 0.5], - [0.25, 0], - ], - }, - { - type: 'line', - parameters: [ - [0.75, 0.5], - [1, 1], - [0.5, 1], - [0.75, 0.5], - ], - }, - ], - }, - diamond: { - draw: [ - { - type: 'line', - parameters: [ - [0.25, 0], - [0.5, 0.25], - [0.25, 0.5], - [0, 0.25], - [0.25, 0], - ], - }, - { - type: 'line', - parameters: [ - [0.75, 0.5], - [1, 0.75], - [0.75, 1], - [0.5, 0.75], - [0.75, 0.5], - ], - }, - ], - }, - circle: { - draw: [ - { - type: 'arc', - parameters: [ - 0.25, - 0.25, - ({ size, lineWidth }) => (size - 2 * lineWidth) / 4, - ], - }, - { - type: 'arc', - parameters: [ - 0.75, - 0.75, - ({ size, lineWidth }) => (size - 2 * lineWidth) / 4, - ], - }, - ], - }, -} - -/** - * Determines the absolute position of a relative segment coordinate. - * @param {Number} size side length of context - * @returns {Function} gets absolute position in context (x or y) - */ -function makeCalculateAbsolutePosition(size) { - return (relativePosition) => relativePosition * size -} - -/** - * Draws a singular draw instruction to context, i.e., a single line, rect, or arc. - * @param {CanvasRenderingContext2D} context draw context - * @param {Number} size side length of context - * @param {Object} segment draw segment, i.e. a singular draw instruction - * @param {('rect'|'line'|'arc')} segment.type what kind of segment it is - * @param {Array} segment.parameters type-specific parameters, see style.json.md - * @returns {void} side-effect on context - */ -function drawSegment(context, size, { type, parameters }) { - const calculateAbsolutePosition = makeCalculateAbsolutePosition(size) - - context.beginPath() - - if (type === 'rect') { - parameters.forEach((rect) => - context.rect(...rect.map(calculateAbsolutePosition)) - ) - } else if (type === 'line') { - const [start, ...waypoints] = parameters - - context.moveTo(...start.map(calculateAbsolutePosition)) - waypoints.forEach((waypoint) => - context.lineTo(...waypoint.map(calculateAbsolutePosition)) - ) - } else if (type === 'arc') { - const [x, y, getRadiusOrRadius, startAngle, endAngle, counterclockwise] = - parameters - const radius = - typeof getRadiusOrRadius === 'function' - ? getRadiusOrRadius({ size, lineWidth: context.lineWidth }) - : getRadiusOrRadius - - context.arc( - makeCalculateAbsolutePosition(size)(x), - makeCalculateAbsolutePosition(size)(y), - radius, - // default to full circle - startAngle || 0, - endAngle || 2 * Math.PI, - counterclockwise || false - ) - } else { - console.error( - `@polar/core: Unknown segment type "${type}". Skipping segment.` - ) - - return - } - - context.stroke() -} - -/** - * Rotates a given context of side length "size" by "degrees" around its center. - * Normally, rotation would happen based on the top left corner. - * @param {CanvasRenderingContext2D} context draw context - * @param {Number} size side length of context - * @param {Number} [degrees=90] degrees to rotate context by - * @returns {void} side-effect on context - */ -function rotateContextCenter(context, size, degrees = 90) { - const halfSize = 0.5 * size - - context.translate(halfSize, halfSize) - context.rotate(degrees * (Math.PI / 180)) - context.translate(-halfSize, -halfSize) -} - -/** - * Draws a hatch pattern to the context element. - * @param {CanvasRenderingContext2D} context draw context - * @param {Number} size side length of context - * @param {(("diagonal"|"zig-line"|"diagonal-right"|"zig-line-horizontal"|"rectangle"|"triangle"|"diamond"|"circle")|Object)} pattern Name of pattern library object, or draw instructions as described in style.json.md - * @returns {void} side-effect on context - */ -function drawHatch(context, size, pattern) { - const hatchDefinition = - typeof pattern === 'string' ? namedHatches[pattern] : pattern - - if (hatchDefinition) { - const { draw, rotate } = hatchDefinition - - if (draw) { - draw.forEach((segment) => drawSegment(context, size, segment)) - } - - if (rotate) { - rotateContextCenter(context, size, rotate) - } - } else { - console.error( - `@polar/core: Unknown polygon style "${pattern}". Skipping hatching.` - ) - } -} - -/** - * Generates a polygon fill pattern. - * @param {object} params parameters as defined in style.json.md#Polygon.polygonFillHatch - * @returns {HTMLCanvasElement} contains polygon fill pattern - */ -export function getPolygonFillHatch({ - pattern = 'diagonal', - size = 30, - lineWidth = 10, - backgroundColor = [0, 0, 0, 1], - patternColor = [255, 255, 255, 1], -}: MasterportalapiPolygonFillHatch): HTMLCanvasElement { - const canvas = document.createElement('canvas') - const context = canvas.getContext('2d') as CanvasRenderingContext2D - - canvas.width = size - canvas.height = size - - context.fillStyle = `rgba(${backgroundColor.join(',')})` - context.fillRect(0, 0, canvas.width, canvas.height) - - context.lineWidth = lineWidth - context.strokeStyle = `rgba(${patternColor.join(',')})` - - drawHatch(context, size, pattern) - - context.fillStyle = context.createPattern(canvas, 'repeat') as CanvasPattern - - return canvas -} From 320a08ff75acead18a1e4c7dd1762122f75d0533 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Tue, 15 Jul 2025 21:13:41 +0200 Subject: [PATCH 081/697] Add missing assigment to layerConf serviceRegister is the POLAR parameter accepting both strings and arrays and layerConf is the mpapi-Parameter which we only use with an array. --- packages/polar/core/src/components/PolarMap.ce.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/polar/core/src/components/PolarMap.ce.vue b/packages/polar/core/src/components/PolarMap.ce.vue index 0c0b3ca8b..93d9229ba 100644 --- a/packages/polar/core/src/components/PolarMap.ce.vue +++ b/packages/polar/core/src/components/PolarMap.ce.vue @@ -86,6 +86,7 @@ function createMap() { { target: polarMapContainer.value, ...mapZoomOffset(coreStore.configuration), + layerConf: coreStore.serviceRegister, }, '2D', { From 46b1bf2c6660da96489c35f89ac9bb7a3e9c9164 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Thu, 17 Jul 2025 11:23:58 +0200 Subject: [PATCH 082/697] Move invisibleStyle --- packages/polar/lib/{invisibleStyle/index.ts => invisibleStyle.ts} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename packages/polar/lib/{invisibleStyle/index.ts => invisibleStyle.ts} (100%) diff --git a/packages/polar/lib/invisibleStyle/index.ts b/packages/polar/lib/invisibleStyle.ts similarity index 100% rename from packages/polar/lib/invisibleStyle/index.ts rename to packages/polar/lib/invisibleStyle.ts From 65b03e2fc96c9258588a3771454664334fe3aee3 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Thu, 17 Jul 2025 11:29:46 +0200 Subject: [PATCH 083/697] Add lib function getCluster --- packages/polar/lib/getCluster.ts | 43 +++ vue2/packages/lib/getCluster/CHANGELOG.md | 13 - vue2/packages/lib/getCluster/LICENSE | 287 -------------------- vue2/packages/lib/getCluster/README.md | 3 - vue2/packages/lib/getCluster/index.ts | 40 --- vue2/packages/lib/getCluster/package.json | 24 -- vue2/packages/lib/getCluster/vite.config.js | 3 - 7 files changed, 43 insertions(+), 370 deletions(-) create mode 100644 packages/polar/lib/getCluster.ts delete mode 100644 vue2/packages/lib/getCluster/CHANGELOG.md delete mode 100644 vue2/packages/lib/getCluster/LICENSE delete mode 100644 vue2/packages/lib/getCluster/README.md delete mode 100644 vue2/packages/lib/getCluster/index.ts delete mode 100644 vue2/packages/lib/getCluster/package.json delete mode 100644 vue2/packages/lib/getCluster/vite.config.js diff --git a/packages/polar/lib/getCluster.ts b/packages/polar/lib/getCluster.ts new file mode 100644 index 000000000..766597577 --- /dev/null +++ b/packages/polar/lib/getCluster.ts @@ -0,0 +1,43 @@ +import { Feature, Map } from 'ol' +import VectorLayer from 'ol/layer/Vector' +import VectorSource from 'ol/source/Vector' + +/* + * Helper function to retrieve the related cluster of a feature. + * Returns the feature if it's a cluster feature, or the cluster the feature is in. + */ +export default function (map: Map, feature: Feature, layerId: string): Feature { + if (feature.get('features')) { + return feature + } + + const layer = map + .getLayers() + .getArray() + .find((layer) => layer.get('id') === feature.get(layerId)) + + if (!(layer instanceof VectorLayer)) { + throw new Error( + `@polar/lib-get-cluster: The layer with the id ${layerId} either does not exist or is not a VectorLayer.` + ) + } + + // If the layer can be found, it has a source + const cluster = (layer.getSource() as VectorSource) + .getFeatures() + .find((candidate: Feature) => candidate.get('features').includes(feature)) + + if (!(cluster instanceof Feature)) { + throw new Error( + '@polar/lib-get-cluster: No cluster could be found for the given feature.' + ) + } + // The given feature should be the last in the array, as it the one "above" all thus added last + cluster.set('features', [ + ...cluster.get('features').filter((f: Feature) => f !== feature), + feature, + ]) + // true = silent change (prevents cluster recomputation & rerender) + cluster.set(layerId, feature.get(layerId), true) + return cluster +} diff --git a/vue2/packages/lib/getCluster/CHANGELOG.md b/vue2/packages/lib/getCluster/CHANGELOG.md deleted file mode 100644 index 83b5e1bbd..000000000 --- a/vue2/packages/lib/getCluster/CHANGELOG.md +++ /dev/null @@ -1,13 +0,0 @@ -# CHANGELOG - -## 3.0.0 - -- Breaking: Upgrade peerDependency `ol` from `^9.2.4` to `^10.3.1`. - -## 2.0.0 - -- Breaking: Upgrade peerDependency of `ol` from `^7.1.0` to `^9.2.4`. - -## 1.0.0 - -Initial release. diff --git a/vue2/packages/lib/getCluster/LICENSE b/vue2/packages/lib/getCluster/LICENSE deleted file mode 100644 index c29ce2f83..000000000 --- a/vue2/packages/lib/getCluster/LICENSE +++ /dev/null @@ -1,287 +0,0 @@ - EUROPEAN UNION PUBLIC LICENCE v. 1.2 - EUPL © the European Union 2007, 2016 - -This European Union Public Licence (the ‘EUPL’) applies to the Work (as defined -below) which is provided under the terms of this Licence. Any use of the Work, -other than as authorised under this Licence is prohibited (to the extent such -use is covered by a right of the copyright holder of the Work). - -The Work is provided under the terms of this Licence when the Licensor (as -defined below) has placed the following notice immediately following the -copyright notice for the Work: - - Licensed under the EUPL - -or has expressed by any other means his willingness to license under the EUPL. - -1. Definitions - -In this Licence, the following terms have the following meaning: - -- ‘The Licence’: this Licence. - -- ‘The Original Work’: the work or software distributed or communicated by the - Licensor under this Licence, available as Source Code and also as Executable - Code as the case may be. - -- ‘Derivative Works’: the works or software that could be created by the - Licensee, based upon the Original Work or modifications thereof. This Licence - does not define the extent of modification or dependence on the Original Work - required in order to classify a work as a Derivative Work; this extent is - determined by copyright law applicable in the country mentioned in Article 15. - -- ‘The Work’: the Original Work or its Derivative Works. - -- ‘The Source Code’: the human-readable form of the Work which is the most - convenient for people to study and modify. - -- ‘The Executable Code’: any code which has generally been compiled and which is - meant to be interpreted by a computer as a program. - -- ‘The Licensor’: the natural or legal person that distributes or communicates - the Work under the Licence. - -- ‘Contributor(s)’: any natural or legal person who modifies the Work under the - Licence, or otherwise contributes to the creation of a Derivative Work. - -- ‘The Licensee’ or ‘You’: any natural or legal person who makes any usage of - the Work under the terms of the Licence. - -- ‘Distribution’ or ‘Communication’: any act of selling, giving, lending, - renting, distributing, communicating, transmitting, or otherwise making - available, online or offline, copies of the Work or providing access to its - essential functionalities at the disposal of any other natural or legal - person. - -2. Scope of the rights granted by the Licence - -The Licensor hereby grants You a worldwide, royalty-free, non-exclusive, -sublicensable licence to do the following, for the duration of copyright vested -in the Original Work: - -- use the Work in any circumstance and for all usage, -- reproduce the Work, -- modify the Work, and make Derivative Works based upon the Work, -- communicate to the public, including the right to make available or display - the Work or copies thereof to the public and perform publicly, as the case may - be, the Work, -- distribute the Work or copies thereof, -- lend and rent the Work or copies thereof, -- sublicense rights in the Work or copies thereof. - -Those rights can be exercised on any media, supports and formats, whether now -known or later invented, as far as the applicable law permits so. - -In the countries where moral rights apply, the Licensor waives his right to -exercise his moral right to the extent allowed by law in order to make effective -the licence of the economic rights here above listed. - -The Licensor grants to the Licensee royalty-free, non-exclusive usage rights to -any patents held by the Licensor, to the extent necessary to make use of the -rights granted on the Work under this Licence. - -3. Communication of the Source Code - -The Licensor may provide the Work either in its Source Code form, or as -Executable Code. If the Work is provided as Executable Code, the Licensor -provides in addition a machine-readable copy of the Source Code of the Work -along with each copy of the Work that the Licensor distributes or indicates, in -a notice following the copyright notice attached to the Work, a repository where -the Source Code is easily and freely accessible for as long as the Licensor -continues to distribute or communicate the Work. - -4. Limitations on copyright - -Nothing in this Licence is intended to deprive the Licensee of the benefits from -any exception or limitation to the exclusive rights of the rights owners in the -Work, of the exhaustion of those rights or of other applicable limitations -thereto. - -5. Obligations of the Licensee - -The grant of the rights mentioned above is subject to some restrictions and -obligations imposed on the Licensee. Those obligations are the following: - -Attribution right: The Licensee shall keep intact all copyright, patent or -trademarks notices and all notices that refer to the Licence and to the -disclaimer of warranties. The Licensee must include a copy of such notices and a -copy of the Licence with every copy of the Work he/she distributes or -communicates. The Licensee must cause any Derivative Work to carry prominent -notices stating that the Work has been modified and the date of modification. - -Copyleft clause: If the Licensee distributes or communicates copies of the -Original Works or Derivative Works, this Distribution or Communication will be -done under the terms of this Licence or of a later version of this Licence -unless the Original Work is expressly distributed only under this version of the -Licence — for example by communicating ‘EUPL v. 1.2 only’. The Licensee -(becoming Licensor) cannot offer or impose any additional terms or conditions on -the Work or Derivative Work that alter or restrict the terms of the Licence. - -Compatibility clause: If the Licensee Distributes or Communicates Derivative -Works or copies thereof based upon both the Work and another work licensed under -a Compatible Licence, this Distribution or Communication can be done under the -terms of this Compatible Licence. For the sake of this clause, ‘Compatible -Licence’ refers to the licences listed in the appendix attached to this Licence. -Should the Licensee's obligations under the Compatible Licence conflict with -his/her obligations under this Licence, the obligations of the Compatible -Licence shall prevail. - -Provision of Source Code: When distributing or communicating copies of the Work, -the Licensee will provide a machine-readable copy of the Source Code or indicate -a repository where this Source will be easily and freely available for as long -as the Licensee continues to distribute or communicate the Work. - -Legal Protection: This Licence does not grant permission to use the trade names, -trademarks, service marks, or names of the Licensor, except as required for -reasonable and customary use in describing the origin of the Work and -reproducing the content of the copyright notice. - -6. Chain of Authorship - -The original Licensor warrants that the copyright in the Original Work granted -hereunder is owned by him/her or licensed to him/her and that he/she has the -power and authority to grant the Licence. - -Each Contributor warrants that the copyright in the modifications he/she brings -to the Work are owned by him/her or licensed to him/her and that he/she has the -power and authority to grant the Licence. - -Each time You accept the Licence, the original Licensor and subsequent -Contributors grant You a licence to their contributions to the Work, under the -terms of this Licence. - -7. Disclaimer of Warranty - -The Work is a work in progress, which is continuously improved by numerous -Contributors. It is not a finished work and may therefore contain defects or -‘bugs’ inherent to this type of development. - -For the above reason, the Work is provided under the Licence on an ‘as is’ basis -and without warranties of any kind concerning the Work, including without -limitation merchantability, fitness for a particular purpose, absence of defects -or errors, accuracy, non-infringement of intellectual property rights other than -copyright as stated in Article 6 of this Licence. - -This disclaimer of warranty is an essential part of the Licence and a condition -for the grant of any rights to the Work. - -8. Disclaimer of Liability - -Except in the cases of wilful misconduct or damages directly caused to natural -persons, the Licensor will in no event be liable for any direct or indirect, -material or moral, damages of any kind, arising out of the Licence or of the use -of the Work, including without limitation, damages for loss of goodwill, work -stoppage, computer failure or malfunction, loss of data or any commercial -damage, even if the Licensor has been advised of the possibility of such damage. -However, the Licensor will be liable under statutory product liability laws as -far such laws apply to the Work. - -9. Additional agreements - -While distributing the Work, You may choose to conclude an additional agreement, -defining obligations or services consistent with this Licence. However, if -accepting obligations, You may act only on your own behalf and on your sole -responsibility, not on behalf of the original Licensor or any other Contributor, -and only if You agree to indemnify, defend, and hold each Contributor harmless -for any liability incurred by, or claims asserted against such Contributor by -the fact You have accepted any warranty or additional liability. - -10. Acceptance of the Licence - -The provisions of this Licence can be accepted by clicking on an icon ‘I agree’ -placed under the bottom of a window displaying the text of this Licence or by -affirming consent in any other similar way, in accordance with the rules of -applicable law. Clicking on that icon indicates your clear and irrevocable -acceptance of this Licence and all of its terms and conditions. - -Similarly, you irrevocably accept this Licence and all of its terms and -conditions by exercising any rights granted to You by Article 2 of this Licence, -such as the use of the Work, the creation by You of a Derivative Work or the -Distribution or Communication by You of the Work or copies thereof. - -11. Information to the public - -In case of any Distribution or Communication of the Work by means of electronic -communication by You (for example, by offering to download the Work from a -remote location) the distribution channel or media (for example, a website) must -at least provide to the public the information requested by the applicable law -regarding the Licensor, the Licence and the way it may be accessible, concluded, -stored and reproduced by the Licensee. - -12. Termination of the Licence - -The Licence and the rights granted hereunder will terminate automatically upon -any breach by the Licensee of the terms of the Licence. - -Such a termination will not terminate the licences of any person who has -received the Work from the Licensee under the Licence, provided such persons -remain in full compliance with the Licence. - -13. Miscellaneous - -Without prejudice of Article 9 above, the Licence represents the complete -agreement between the Parties as to the Work. - -If any provision of the Licence is invalid or unenforceable under applicable -law, this will not affect the validity or enforceability of the Licence as a -whole. Such provision will be construed or reformed so as necessary to make it -valid and enforceable. - -The European Commission may publish other linguistic versions or new versions of -this Licence or updated versions of the Appendix, so far this is required and -reasonable, without reducing the scope of the rights granted by the Licence. New -versions of the Licence will be published with a unique version number. - -All linguistic versions of this Licence, approved by the European Commission, -have identical value. Parties can take advantage of the linguistic version of -their choice. - -14. Jurisdiction - -Without prejudice to specific agreement between parties, - -- any litigation resulting from the interpretation of this License, arising - between the European Union institutions, bodies, offices or agencies, as a - Licensor, and any Licensee, will be subject to the jurisdiction of the Court - of Justice of the European Union, as laid down in article 272 of the Treaty on - the Functioning of the European Union, - -- any litigation arising between other parties and resulting from the - interpretation of this License, will be subject to the exclusive jurisdiction - of the competent court where the Licensor resides or conducts its primary - business. - -15. Applicable Law - -Without prejudice to specific agreement between parties, - -- this Licence shall be governed by the law of the European Union Member State - where the Licensor has his seat, resides or has his registered office, - -- this licence shall be governed by Belgian law if the Licensor has no seat, - residence or registered office inside a European Union Member State. - -Appendix - -‘Compatible Licences’ according to Article 5 EUPL are: - -- GNU General Public License (GPL) v. 2, v. 3 -- GNU Affero General Public License (AGPL) v. 3 -- Open Software License (OSL) v. 2.1, v. 3.0 -- Eclipse Public License (EPL) v. 1.0 -- CeCILL v. 2.0, v. 2.1 -- Mozilla Public Licence (MPL) v. 2 -- GNU Lesser General Public Licence (LGPL) v. 2.1, v. 3 -- Creative Commons Attribution-ShareAlike v. 3.0 Unported (CC BY-SA 3.0) for - works other than software -- European Union Public Licence (EUPL) v. 1.1, v. 1.2 -- Québec Free and Open-Source Licence — Reciprocity (LiLiQ-R) or Strong - Reciprocity (LiLiQ-R+). - -The European Commission may update this Appendix to later versions of the above -licences without producing a new version of the EUPL, as long as they provide -the rights granted in Article 2 of this Licence and protect the covered Source -Code from exclusive appropriation. - -All other changes or additions to this Appendix require the production of a new -EUPL version. \ No newline at end of file diff --git a/vue2/packages/lib/getCluster/README.md b/vue2/packages/lib/getCluster/README.md deleted file mode 100644 index 2f7d1257a..000000000 --- a/vue2/packages/lib/getCluster/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# getCluster - -Helper function to retrieve the related cluster of a feature. diff --git a/vue2/packages/lib/getCluster/index.ts b/vue2/packages/lib/getCluster/index.ts deleted file mode 100644 index 9ecdda297..000000000 --- a/vue2/packages/lib/getCluster/index.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { Feature, Map } from 'ol' -import VectorLayer from 'ol/layer/Vector' -import VectorSource from 'ol/source/Vector' - -// returns feature if it's a cluster feature, or the cluster the feature is in. -export default function (map: Map, feature: Feature, layerId: string): Feature { - if (feature.get('features')) { - return feature - } - - const layer = map - .getLayers() - .getArray() - .find((layer) => layer.get('id') === feature.get(layerId)) - - if (!(layer instanceof VectorLayer)) { - throw new Error( - `@polar/lib-get-cluster: The layer with the id ${layerId} either does not exist or is not a VectorLayer.` - ) - } - - // If the layer can be found, it has a source - const cluster = (layer.getSource() as VectorSource) - .getFeatures() - .find((candidate: Feature) => candidate.get('features').includes(feature)) - - if (!(cluster instanceof Feature)) { - throw new Error( - '@polar/lib-get-cluster: No cluster could be found for the given feature.' - ) - } - // The given feature should be the last in the array, as it the one "above" all thus added last - cluster.set('features', [ - ...cluster.get('features').filter((f: Feature) => f !== feature), - feature, - ]) - // true = silent change (prevents cluster recomputation & rerender) - cluster.set(layerId, feature.get(layerId), true) - return cluster -} diff --git a/vue2/packages/lib/getCluster/package.json b/vue2/packages/lib/getCluster/package.json deleted file mode 100644 index a0a3e692a..000000000 --- a/vue2/packages/lib/getCluster/package.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "@polar/lib-get-cluster", - "version": "3.0.0", - "description": "Provides a method to retrieve a cluster a feature belongs to.", - "keywords": [ - "OpenLayers", - "ol", - "POLAR", - "lib", - "cluster" - ], - "license": "EUPL-1.2", - "type": "module", - "author": "Dataport AöR ", - "main": "index.ts", - "repository": { - "type": "git", - "url": "git+https://github.com/Dataport/polar.git", - "directory": "packages/lib/getCluster" - }, - "peerDependencies": { - "ol": "^10.4.0" - } -} diff --git a/vue2/packages/lib/getCluster/vite.config.js b/vue2/packages/lib/getCluster/vite.config.js deleted file mode 100644 index 0d2ec38a1..000000000 --- a/vue2/packages/lib/getCluster/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import { getCodeConfig } from '../../../viteConfigs' - -export default getCodeConfig() From 77b6522b14d7c734437b418bf289ac9e152cc46e Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Thu, 17 Jul 2025 11:52:07 +0200 Subject: [PATCH 084/697] Add action centerOnFeature --- packages/polar/core/src/stores/useCoreStore.ts | 17 ++++++++++++++--- vue2/packages/core/src/vuePlugins/vuex.ts | 7 ------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/packages/polar/core/src/stores/useCoreStore.ts b/packages/polar/core/src/stores/useCoreStore.ts index c845a6d80..0e4294ca9 100644 --- a/packages/polar/core/src/stores/useCoreStore.ts +++ b/packages/polar/core/src/stores/useCoreStore.ts @@ -1,9 +1,11 @@ import i18next from 'i18next' -import { Map } from 'ol' -import { defineStore } from 'pinia' -import { computed, ref, watch } from 'vue' +import { type Feature, Map } from 'ol' import { type Coordinate } from 'ol/coordinate' +import { easeOut } from 'ol/easing' +import { type Point } from 'ol/geom' import { type Interaction } from 'ol/interaction' +import { defineStore } from 'pinia' +import { computed, ref, watch } from 'vue' import type { MapConfiguration, PluginContainer } from '../types' import { createPanAndZoomInteractions } from '../utils/interactions' import { SMALL_DISPLAY_HEIGHT, SMALL_DISPLAY_WIDTH } from '../utils/constants' @@ -80,6 +82,14 @@ export const useCoreStore = defineStore('core', () => { } } + function centerOnFeature(feature: Feature) { + map.value.getView().animate({ + center: (feature.getGeometry() as Point).getCoordinates(), + duration: 400, + easing: easeOut, + }) + } + function setCenter() { // @ts-expect-error | map always has a center center.value = map.value.getView().getCenter() @@ -170,6 +180,7 @@ export const useCoreStore = defineStore('core', () => { deviceIsHorizontal, // Actions addInterceptor, + centerOnFeature, setMap, updateDragAndZoomInteractions, updateHasSmallDisplay, diff --git a/vue2/packages/core/src/vuePlugins/vuex.ts b/vue2/packages/core/src/vuePlugins/vuex.ts index f1ec55030..3489a5f86 100644 --- a/vue2/packages/core/src/vuePlugins/vuex.ts +++ b/vue2/packages/core/src/vuePlugins/vuex.ts @@ -174,13 +174,6 @@ export const makeStore = (mapConfiguration: MapConfig) => { }, actions: { checkServiceAvailability, - centerOnFeature({ rootGetters: { map } }, feature: Feature) { - map.getView().animate({ - center: (feature.getGeometry() as Point).getCoordinates(), - duration: 400, - easing: easeOut, - }) - }, useExtendedMasterportalapiMarkers, updateSelection, }, From d890a0dc9805fe935aab5ba1785af5d94cba53ee Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Fri, 18 Jul 2025 18:11:49 +0200 Subject: [PATCH 085/697] Change map to not be a ref Might've worked, everything retrieved from the map is proxied by Pinia, but might lead to some unexpected results later on. --- .../polar/core/src/components/PolarMap.ce.vue | 3 +- .../polar/core/src/stores/useCoreStore.ts | 38 +++++++++++-------- 2 files changed, 25 insertions(+), 16 deletions(-) diff --git a/packages/polar/core/src/components/PolarMap.ce.vue b/packages/polar/core/src/components/PolarMap.ce.vue index 93d9229ba..94dda30d9 100644 --- a/packages/polar/core/src/components/PolarMap.ce.vue +++ b/packages/polar/core/src/components/PolarMap.ce.vue @@ -119,7 +119,8 @@ function updateListeners() { new Hammer(polarMapContainer.value).on('pan', (e) => { if ( e.maxPointers === 1 && - coreStore.map + coreStore + .getMap() .getInteractions() .getArray() .some((interaction) => diff --git a/packages/polar/core/src/stores/useCoreStore.ts b/packages/polar/core/src/stores/useCoreStore.ts index 0e4294ca9..eac7eec4c 100644 --- a/packages/polar/core/src/stores/useCoreStore.ts +++ b/packages/polar/core/src/stores/useCoreStore.ts @@ -11,6 +11,7 @@ import { createPanAndZoomInteractions } from '../utils/interactions' import { SMALL_DISPLAY_HEIGHT, SMALL_DISPLAY_WIDTH } from '../utils/constants' let interactions: Interaction[] = [] +let map: Map export const useCoreStore = defineStore('core', () => { const center = ref([0, 0]) @@ -22,8 +23,6 @@ export const useCoreStore = defineStore('core', () => { }) const hasSmallDisplay = ref(false) const language = ref(i18next.language) - // NOTE: Only instantiated here for proper typing - const map = ref(new Map()) const mapHasDimensions = ref(false) const oidcToken = ref('') const plugins = ref([]) @@ -83,7 +82,7 @@ export const useCoreStore = defineStore('core', () => { } function centerOnFeature(feature: Feature) { - map.value.getView().animate({ + map.getView().animate({ center: (feature.getGeometry() as Point).getCoordinates(), duration: 400, easing: easeOut, @@ -92,31 +91,40 @@ export const useCoreStore = defineStore('core', () => { function setCenter() { // @ts-expect-error | map always has a center - center.value = map.value.getView().getCenter() + center.value = map.getView().getCenter() } function setZoom() { // @ts-expect-error | map always has a zoom level defined - zoom.value = map.value.getView().getZoom() + zoom.value = map.getView().getZoom() } + + function getMap() { + return map + } + function setMap(newMap: Map) { - map.value.un('moveend', setCenter) - map.value.un('moveend', setZoom) - map.value = newMap - map.value.on('moveend', setCenter) - map.value.on('moveend', setZoom) + // NOTE: Not defined in the beginning + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + if (map) { + map.un('moveend', setCenter) + map.un('moveend', setZoom) + } + map = newMap + map.on('moveend', setCenter) + map.on('moveend', setZoom) setCenter() setZoom() } function updateDragAndZoomInteractions() { - interactions.forEach((i) => map.value.removeInteraction(i)) + interactions.forEach((i) => map.removeInteraction(i)) interactions = createPanAndZoomInteractions( hasWindowSize.value, window.innerHeight <= SMALL_DISPLAY_HEIGHT || window.innerWidth <= SMALL_DISPLAY_WIDTH ) interactions.forEach((i) => { - map.value.addInteraction(i) + map.addInteraction(i) }) } @@ -141,9 +149,9 @@ export const useCoreStore = defineStore('core', () => { function updateSizeOnReady() { let attemptCounter = 0 const intervalId = setInterval(() => { - const size = map.value.getSize() + const size = map.getSize() if (attemptCounter++ < 100 && (!size || size[0] === 0 || size[1] === 0)) { - map.value.updateSize() + map.updateSize() } else if (attemptCounter === 100) { console.error( `@polar/core: The POLAR map client could not update its size. The map is probably invisible due to having 0 width or 0 height. This might be a CSS issue – please check the wrapper's size.` @@ -169,7 +177,6 @@ export const useCoreStore = defineStore('core', () => { clientWidth, hasSmallDisplay, language, - map, oidcToken, plugins, serviceRegister, @@ -181,6 +188,7 @@ export const useCoreStore = defineStore('core', () => { // Actions addInterceptor, centerOnFeature, + getMap, setMap, updateDragAndZoomInteractions, updateHasSmallDisplay, From f8ba8089ca3ae9984b8357779185fb6b15da4ee4 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Fri, 18 Jul 2025 20:32:32 +0200 Subject: [PATCH 086/697] Add error todo --- packages/polar/core/src/components/PolarMap.ce.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/polar/core/src/components/PolarMap.ce.vue b/packages/polar/core/src/components/PolarMap.ce.vue index 94dda30d9..e4eef8828 100644 --- a/packages/polar/core/src/components/PolarMap.ce.vue +++ b/packages/polar/core/src/components/PolarMap.ce.vue @@ -64,6 +64,7 @@ const polarWrapper = useTemplateRef('polar-wrapper') let resizeObserver: ResizeObserver | null = null async function loadKern() { + // TODO: HMR is broken, getting the following error: TypeError: can't access property "innerText", kernStyle is null const externalStyle = document.getElementById('kern-styles') if (externalStyle) { externalStyle.id = 'polar-kern-styles' From e5318f4487fbb78b2d6ebb7fe4e7abd817c620ef Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Fri, 18 Jul 2025 20:33:30 +0200 Subject: [PATCH 087/697] Add todo --- packages/polar/core/src/components/PolarMap.ce.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/polar/core/src/components/PolarMap.ce.vue b/packages/polar/core/src/components/PolarMap.ce.vue index e4eef8828..52f8da92f 100644 --- a/packages/polar/core/src/components/PolarMap.ce.vue +++ b/packages/polar/core/src/components/PolarMap.ce.vue @@ -86,6 +86,7 @@ function createMap() { const map = api.map.createMap( { target: polarMapContainer.value, + // TODO(dopenguin): Do the mapZoomOffset call earlier, not in the component ...mapZoomOffset(coreStore.configuration), layerConf: coreStore.serviceRegister, }, From 1ed97d87a9241bc5312ef06bc43af11773ab6166 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Wed, 23 Jul 2025 11:15:08 +0200 Subject: [PATCH 088/697] Bump dependencies --- package-lock.json | 2261 ++++++++++++++++++++++----------------------- 1 file changed, 1081 insertions(+), 1180 deletions(-) diff --git a/package-lock.json b/package-lock.json index 277c9f803..e559fa574 100644 --- a/package-lock.json +++ b/package-lock.json @@ -64,9 +64,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.5.tgz", - "integrity": "sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz", + "integrity": "sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==", "dev": true, "license": "MIT", "engines": { @@ -74,22 +74,22 @@ } }, "node_modules/@babel/core": { - "version": "7.27.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.4.tgz", - "integrity": "sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz", + "integrity": "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.3", + "@babel/generator": "^7.28.0", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-module-transforms": "^7.27.3", - "@babel/helpers": "^7.27.4", - "@babel/parser": "^7.27.4", + "@babel/helpers": "^7.27.6", + "@babel/parser": "^7.28.0", "@babel/template": "^7.27.2", - "@babel/traverse": "^7.27.4", - "@babel/types": "^7.27.3", + "@babel/traverse": "^7.28.0", + "@babel/types": "^7.28.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -115,16 +115,16 @@ } }, "node_modules/@babel/generator": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.5.tgz", - "integrity": "sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz", + "integrity": "sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.27.5", - "@babel/types": "^7.27.3", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", + "@babel/parser": "^7.28.0", + "@babel/types": "^7.28.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" }, "engines": { @@ -232,22 +232,32 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.4.tgz", - "integrity": "sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz", + "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "debug": "^4.4.1", "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" + "resolve": "^1.22.10" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-member-expression-to-functions": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz", @@ -425,12 +435,12 @@ } }, "node_modules/@babel/parser": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.5.tgz", - "integrity": "sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz", + "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==", "license": "MIT", "dependencies": { - "@babel/types": "^7.27.3" + "@babel/types": "^7.28.0" }, "bin": { "parser": "bin/babel-parser.js" @@ -524,9 +534,9 @@ } }, "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.27.1.tgz", - "integrity": "sha512-DTxe4LBPrtFdsWzgpmbBKevg3e9PBy+dXRt19kSbucbZvL2uqtdqwwpluL1jfxYE0wIDTFp1nTy/q6gNLsxXrg==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.28.0.tgz", + "integrity": "sha512-zOiZqvANjWDUaUS9xMxbMcK/Zccztbe/6ikvUXaG9nsPH3w6qh5UaPGAnirI/WhIbZ8m3OHU0ReyPrknG+ZKeg==", "dev": true, "license": "MIT", "dependencies": { @@ -668,15 +678,15 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.27.1.tgz", - "integrity": "sha512-eST9RrwlpaoJBDHShc+DS2SG4ATTi2MYNb4OxYkf3n+7eb49LWpnS+HSpVfW4x927qQwgk8A2hGNVaajAEw0EA==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz", + "integrity": "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-remap-async-to-generator": "^7.27.1", - "@babel/traverse": "^7.27.1" + "@babel/traverse": "^7.28.0" }, "engines": { "node": ">=6.9.0" @@ -720,9 +730,9 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.27.5.tgz", - "integrity": "sha512-JF6uE2s67f0y2RZcm2kpAUEbD50vH62TyWVebxwHAlbSdM49VqPz8t4a1uIjp4NIOIZ4xzLfjY5emt/RCyC7TQ==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.0.tgz", + "integrity": "sha512-gKKnwjpdx5sER/wl0WN0efUBFzF/56YZO0RJrSYP4CljXnP31ByY7fol89AzomdlLNzI36AvOTmYHsnZTCkq8Q==", "dev": true, "license": "MIT", "dependencies": { @@ -770,18 +780,18 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.27.1.tgz", - "integrity": "sha512-7iLhfFAubmpeJe/Wo2TVuDrykh/zlWXLzPNdL0Jqn/Xu8R3QQ8h9ff8FQoISZOsw74/HFqFI7NX63HN7QFIHKA==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.0.tgz", + "integrity": "sha512-IjM1IoJNw72AZFlj33Cu8X0q2XK/6AaVC3jQu+cgQ5lThWD5ajnuUAml80dqRmOhmPkTH8uAwnpMu9Rvj0LTRA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-globals": "^7.28.0", "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-replace-supers": "^7.27.1", - "@babel/traverse": "^7.27.1", - "globals": "^11.1.0" + "@babel/traverse": "^7.28.0" }, "engines": { "node": ">=6.9.0" @@ -790,16 +800,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-classes/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/plugin-transform-computed-properties": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", @@ -818,13 +818,14 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.27.3.tgz", - "integrity": "sha512-s4Jrok82JpiaIprtY2nHsYmrThKvvwgHwjgd7UMiYhZaN0asdXNLr0y+NjTfkA7SyQE5i2Fb7eawUOZmLvyqOA==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.0.tgz", + "integrity": "sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.0" }, "engines": { "node": ">=6.9.0" @@ -899,6 +900,23 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-explicit-resource-management": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.0.tgz", + "integrity": "sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-exponentiation-operator": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.27.1.tgz", @@ -1166,16 +1184,17 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.27.3.tgz", - "integrity": "sha512-7ZZtznF9g4l2JCImCo5LNKFHB5eXnN39lLtLY5Tg+VkR0jwOt7TBciMckuiQIOIW7L5tkQOCh3bVGYeXgMx52Q==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.0.tgz", + "integrity": "sha512-9VNGikXxzu5eCiQjdE4IZn8sb9q7Xsk5EXLDBKUYg1e/Tve8/05+KJEtcxGxAgCY5t/BpKQM+JEL/yT4tvgiUA==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-plugin-utils": "^7.27.1", - "@babel/plugin-transform-destructuring": "^7.27.3", - "@babel/plugin-transform-parameters": "^7.27.1" + "@babel/plugin-transform-destructuring": "^7.28.0", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/traverse": "^7.28.0" }, "engines": { "node": ">=6.9.0" @@ -1235,9 +1254,9 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.1.tgz", - "integrity": "sha512-018KRk76HWKeZ5l4oTj2zPpSh+NbGdt0st5S6x0pga6HgrjBOJb24mMDHorFopOOd6YHkLgOZ+zaCjZGPO4aKg==", + "version": "7.27.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", + "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", "dev": true, "license": "MIT", "dependencies": { @@ -1302,9 +1321,9 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.27.5.tgz", - "integrity": "sha512-uhB8yHerfe3MWnuLAhEbeQ4afVoqv8BQsPqrTv7e/jZ9y00kJL6l9a/f4OWaKxotmjzewfEyXE1vgDJenkQ2/Q==", + "version": "7.28.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.1.tgz", + "integrity": "sha512-P0QiV/taaa3kXpLY+sXla5zec4E+4t4Aqc9ggHlfZ7a2cp8/x/Gv08jfwEtn9gnnYIMvHx6aoOZ8XJL8eU71Dg==", "dev": true, "license": "MIT", "dependencies": { @@ -1351,17 +1370,17 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.27.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.27.4.tgz", - "integrity": "sha512-D68nR5zxU64EUzV8i7T3R5XP0Xhrou/amNnddsRQssx6GrTLdZl1rLxyjtVZBd+v/NVX4AbTPOB5aU8thAZV1A==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.28.0.tgz", + "integrity": "sha512-dGopk9nZrtCs2+nfIem25UuHyt5moSJamArzIoh9/vezUQPmYDOzjaHDCkAzuGJibCIkPup8rMT2+wYB6S73cA==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1", - "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.11.0", - "babel-plugin-polyfill-regenerator": "^0.6.1", + "babel-plugin-polyfill-corejs2": "^0.4.14", + "babel-plugin-polyfill-corejs3": "^0.13.0", + "babel-plugin-polyfill-regenerator": "^0.6.5", "semver": "^6.3.1" }, "engines": { @@ -1463,13 +1482,13 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.27.1.tgz", - "integrity": "sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.0.tgz", + "integrity": "sha512-4AEiDEBPIZvLQaWlc9liCavE0xRM0dNca41WtBeM3jgFptfUOSG9z0uteLhq6+3rq+WB6jIvUwKDTpXEHPJ2Vg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-create-class-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", @@ -1550,13 +1569,13 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.27.2.tgz", - "integrity": "sha512-Ma4zSuYSlGNRlCLO+EAzLnCmJK2vdstgv+n7aUP+/IKZrOfWHOJVdSJtuub8RzHTj3ahD37k5OKJWvzf16TQyQ==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.28.0.tgz", + "integrity": "sha512-VmaxeGOwuDqzLl5JUkIRM1X2Qu2uKGxHEQWh+cvvbl7JuJRgKGJSfsEF/bUaxFhJl/XAyxBe7q7qSuTbKFuCyg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.27.2", + "@babel/compat-data": "^7.28.0", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-validator-option": "^7.27.1", @@ -1570,19 +1589,20 @@ "@babel/plugin-syntax-import-attributes": "^7.27.1", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.27.1", - "@babel/plugin-transform-async-generator-functions": "^7.27.1", + "@babel/plugin-transform-async-generator-functions": "^7.28.0", "@babel/plugin-transform-async-to-generator": "^7.27.1", "@babel/plugin-transform-block-scoped-functions": "^7.27.1", - "@babel/plugin-transform-block-scoping": "^7.27.1", + "@babel/plugin-transform-block-scoping": "^7.28.0", "@babel/plugin-transform-class-properties": "^7.27.1", "@babel/plugin-transform-class-static-block": "^7.27.1", - "@babel/plugin-transform-classes": "^7.27.1", + "@babel/plugin-transform-classes": "^7.28.0", "@babel/plugin-transform-computed-properties": "^7.27.1", - "@babel/plugin-transform-destructuring": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0", "@babel/plugin-transform-dotall-regex": "^7.27.1", "@babel/plugin-transform-duplicate-keys": "^7.27.1", "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1", "@babel/plugin-transform-dynamic-import": "^7.27.1", + "@babel/plugin-transform-explicit-resource-management": "^7.28.0", "@babel/plugin-transform-exponentiation-operator": "^7.27.1", "@babel/plugin-transform-export-namespace-from": "^7.27.1", "@babel/plugin-transform-for-of": "^7.27.1", @@ -1599,15 +1619,15 @@ "@babel/plugin-transform-new-target": "^7.27.1", "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1", "@babel/plugin-transform-numeric-separator": "^7.27.1", - "@babel/plugin-transform-object-rest-spread": "^7.27.2", + "@babel/plugin-transform-object-rest-spread": "^7.28.0", "@babel/plugin-transform-object-super": "^7.27.1", "@babel/plugin-transform-optional-catch-binding": "^7.27.1", "@babel/plugin-transform-optional-chaining": "^7.27.1", - "@babel/plugin-transform-parameters": "^7.27.1", + "@babel/plugin-transform-parameters": "^7.27.7", "@babel/plugin-transform-private-methods": "^7.27.1", "@babel/plugin-transform-private-property-in-object": "^7.27.1", "@babel/plugin-transform-property-literals": "^7.27.1", - "@babel/plugin-transform-regenerator": "^7.27.1", + "@babel/plugin-transform-regenerator": "^7.28.0", "@babel/plugin-transform-regexp-modifiers": "^7.27.1", "@babel/plugin-transform-reserved-words": "^7.27.1", "@babel/plugin-transform-shorthand-properties": "^7.27.1", @@ -1620,10 +1640,10 @@ "@babel/plugin-transform-unicode-regex": "^7.27.1", "@babel/plugin-transform-unicode-sets-regex": "^7.27.1", "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.11.0", - "babel-plugin-polyfill-regenerator": "^0.6.1", - "core-js-compat": "^3.40.0", + "babel-plugin-polyfill-corejs2": "^0.4.14", + "babel-plugin-polyfill-corejs3": "^0.13.0", + "babel-plugin-polyfill-regenerator": "^0.6.5", + "core-js-compat": "^3.43.0", "semver": "^6.3.1" }, "engines": { @@ -1703,38 +1723,28 @@ } }, "node_modules/@babel/traverse": { - "version": "7.27.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.4.tgz", - "integrity": "sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz", + "integrity": "sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==", "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.3", - "@babel/parser": "^7.27.4", + "@babel/generator": "^7.28.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.0", "@babel/template": "^7.27.2", - "@babel/types": "^7.27.3", - "debug": "^4.3.1", - "globals": "^11.1.0" + "@babel/types": "^7.28.0", + "debug": "^4.3.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/types": { - "version": "7.27.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.6.tgz", - "integrity": "sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==", + "version": "7.28.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.1.tgz", + "integrity": "sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==", "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.27.1", @@ -1745,11 +1755,13 @@ } }, "node_modules/@cesium/engine": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/@cesium/engine/-/engine-18.0.0.tgz", - "integrity": "sha512-BmORpS2BVGT/Rd9f591a7PudFxXeCq2agdBAUX6XBhxUboieI9hU5MEC7EjT0sSLGLtwVw9i2hu4/XOXUnFXWg==", + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@cesium/engine/-/engine-18.3.0.tgz", + "integrity": "sha512-ILNA1a+RX2gNsQGyF2zq27Ucaj5UMj19paYoJbKxX/U0QtxLuFUhJ2yg6wr2eBtC3X3kd475o7kAx0LpfCZxpg==", "license": "Apache-2.0", "dependencies": { + "@cesium/wasm-splats": "^0.1.0-alpha.2", + "@spz-loader/core": "0.1.0", "@tweenjs/tween.js": "^25.0.0", "@zip.js/zip.js": "^2.7.34", "autolinker": "^4.0.0", @@ -1763,7 +1775,7 @@ "ktx-parse": "^1.0.0", "lerc": "^2.0.0", "mersenne-twister": "^1.1.0", - "meshoptimizer": "^0.23.0", + "meshoptimizer": "^0.24.0", "pako": "^2.0.4", "protobufjs": "^7.1.0", "rbush": "^4.0.1", @@ -1774,13 +1786,19 @@ "node": ">=20.19.0" } }, + "node_modules/@cesium/wasm-splats": { + "version": "0.1.0-alpha.2", + "resolved": "https://registry.npmjs.org/@cesium/wasm-splats/-/wasm-splats-0.1.0-alpha.2.tgz", + "integrity": "sha512-t9pMkknv31hhIbLpMa8yPvmqfpvs5UkUjgqlQv9SeO8VerCXOYnyP8/486BDaFrztM0A7FMbRjsXtNeKvqQghA==", + "license": "Apache-2.0" + }, "node_modules/@cesium/widgets": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/@cesium/widgets/-/widgets-12.1.0.tgz", - "integrity": "sha512-t93u/yyVp0x+27Bl6g4DyQtLOFfpF8hZjou+/JpekSExS2uy8akPVl5KjTbwonlx0D1AaTmjP45mLRLvcLpb3g==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@cesium/widgets/-/widgets-12.3.0.tgz", + "integrity": "sha512-5Aa54lCrdywogY1ypOwRmRrb72LVrPvrOzOrcYeQ50DDZSs5hCxVXWecYYsq3qoeK0buA9wP/5TBWE7RlsV7OA==", "license": "Apache-2.0", "dependencies": { - "@cesium/engine": "^18.0.0", + "@cesium/engine": "^18.3.0", "nosleep.js": "^0.12.0" }, "engines": { @@ -1810,190 +1828,21 @@ "eslint": ">= 9" } }, - "node_modules/@dataport/eslint-config-geodev/node_modules/@typescript-eslint/parser": { - "version": "8.34.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.34.1.tgz", - "integrity": "sha512-4O3idHxhyzjClSMJ0a29AcoK0+YwnEqzI6oz3vlRf3xw0zbzt15MzXwItOlnr5nIth6zlY2RENLsOPvhyrKAQA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/scope-manager": "8.34.1", - "@typescript-eslint/types": "8.34.1", - "@typescript-eslint/typescript-estree": "8.34.1", - "@typescript-eslint/visitor-keys": "8.34.1", - "debug": "^4.3.4" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" - } - }, - "node_modules/@dataport/eslint-config-geodev/node_modules/@typescript-eslint/project-service": { - "version": "8.34.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.34.1.tgz", - "integrity": "sha512-nuHlOmFZfuRwLJKDGQOVc0xnQrAmuq1Mj/ISou5044y1ajGNp2BNliIqp7F2LPQ5sForz8lempMFCovfeS1XoA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.34.1", - "@typescript-eslint/types": "^8.34.1", - "debug": "^4.3.4" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <5.9.0" - } - }, - "node_modules/@dataport/eslint-config-geodev/node_modules/@typescript-eslint/scope-manager": { - "version": "8.34.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.34.1.tgz", - "integrity": "sha512-beu6o6QY4hJAgL1E8RaXNC071G4Kso2MGmJskCFQhRhg8VOH/FDbC8soP8NHN7e/Hdphwp8G8cE6OBzC8o41ZA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.34.1", - "@typescript-eslint/visitor-keys": "8.34.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@dataport/eslint-config-geodev/node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.34.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.34.1.tgz", - "integrity": "sha512-K4Sjdo4/xF9NEeA2khOb7Y5nY6NSXBnod87uniVYW9kHP+hNlDV8trUSFeynA2uxWam4gIWgWoygPrv9VMWrYg==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <5.9.0" - } - }, - "node_modules/@dataport/eslint-config-geodev/node_modules/@typescript-eslint/types": { - "version": "8.34.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.1.tgz", - "integrity": "sha512-rjLVbmE7HR18kDsjNIZQHxmv9RZwlgzavryL5Lnj2ujIRTeXlKtILHgRNmQ3j4daw7zd+mQgy+uyt6Zo6I0IGA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@dataport/eslint-config-geodev/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.34.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.34.1.tgz", - "integrity": "sha512-rjCNqqYPuMUF5ODD+hWBNmOitjBWghkGKJg6hiCHzUvXRy6rK22Jd3rwbP2Xi+R7oYVvIKhokHVhH41BxPV5mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/project-service": "8.34.1", - "@typescript-eslint/tsconfig-utils": "8.34.1", - "@typescript-eslint/types": "8.34.1", - "@typescript-eslint/visitor-keys": "8.34.1", - "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^2.1.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <5.9.0" - } - }, - "node_modules/@dataport/eslint-config-geodev/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.34.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.34.1.tgz", - "integrity": "sha512-xoh5rJ+tgsRKoXnkBPFRLZ7rjKM0AfVbC68UZ/ECXoDbfggb9RbEySN359acY1vS3qZ0jVTVWzbtfapwm5ztxw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.34.1", - "eslint-visitor-keys": "^4.2.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@dataport/eslint-config-geodev/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@dataport/eslint-config-geodev/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/@emnapi/core": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.4.3.tgz", - "integrity": "sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==", + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.4.5.tgz", + "integrity": "sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q==", "dev": true, "license": "MIT", "dependencies": { - "@emnapi/wasi-threads": "1.0.2", + "@emnapi/wasi-threads": "1.0.4", "tslib": "^2.4.0" } }, "node_modules/@emnapi/runtime": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz", - "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==", + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.5.tgz", + "integrity": "sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==", "dev": true, "license": "MIT", "dependencies": { @@ -2001,9 +1850,9 @@ } }, "node_modules/@emnapi/wasi-threads": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.2.tgz", - "integrity": "sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.4.tgz", + "integrity": "sha512-PJR+bOmMOPH8AtcTGAyYNiuJ3/Fcoj2XN/gBEWzDIKh254XO+mM9XoXHk5GNEhodxeMznbg7BlRojVbKN+gC6g==", "dev": true, "license": "MIT", "dependencies": { @@ -2011,9 +1860,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.5.tgz", - "integrity": "sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.8.tgz", + "integrity": "sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA==", "cpu": [ "ppc64" ], @@ -2028,9 +1877,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.5.tgz", - "integrity": "sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.8.tgz", + "integrity": "sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw==", "cpu": [ "arm" ], @@ -2045,9 +1894,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.5.tgz", - "integrity": "sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.8.tgz", + "integrity": "sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w==", "cpu": [ "arm64" ], @@ -2062,9 +1911,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.5.tgz", - "integrity": "sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.8.tgz", + "integrity": "sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA==", "cpu": [ "x64" ], @@ -2079,9 +1928,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.5.tgz", - "integrity": "sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.8.tgz", + "integrity": "sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw==", "cpu": [ "arm64" ], @@ -2096,9 +1945,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.5.tgz", - "integrity": "sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.8.tgz", + "integrity": "sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg==", "cpu": [ "x64" ], @@ -2113,9 +1962,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.5.tgz", - "integrity": "sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.8.tgz", + "integrity": "sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA==", "cpu": [ "arm64" ], @@ -2130,9 +1979,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.5.tgz", - "integrity": "sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.8.tgz", + "integrity": "sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw==", "cpu": [ "x64" ], @@ -2147,9 +1996,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.5.tgz", - "integrity": "sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.8.tgz", + "integrity": "sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg==", "cpu": [ "arm" ], @@ -2164,9 +2013,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.5.tgz", - "integrity": "sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.8.tgz", + "integrity": "sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w==", "cpu": [ "arm64" ], @@ -2181,9 +2030,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.5.tgz", - "integrity": "sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.8.tgz", + "integrity": "sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg==", "cpu": [ "ia32" ], @@ -2198,9 +2047,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.5.tgz", - "integrity": "sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.8.tgz", + "integrity": "sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ==", "cpu": [ "loong64" ], @@ -2215,9 +2064,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.5.tgz", - "integrity": "sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.8.tgz", + "integrity": "sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw==", "cpu": [ "mips64el" ], @@ -2232,9 +2081,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.5.tgz", - "integrity": "sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.8.tgz", + "integrity": "sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ==", "cpu": [ "ppc64" ], @@ -2249,9 +2098,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.5.tgz", - "integrity": "sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.8.tgz", + "integrity": "sha512-rAqDYFv3yzMrq7GIcen3XP7TUEG/4LK86LUPMIz6RT8A6pRIDn0sDcvjudVZBiiTcZCY9y2SgYX2lgK3AF+1eg==", "cpu": [ "riscv64" ], @@ -2266,9 +2115,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.5.tgz", - "integrity": "sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.8.tgz", + "integrity": "sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg==", "cpu": [ "s390x" ], @@ -2283,9 +2132,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.5.tgz", - "integrity": "sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.8.tgz", + "integrity": "sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ==", "cpu": [ "x64" ], @@ -2300,9 +2149,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.5.tgz", - "integrity": "sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.8.tgz", + "integrity": "sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw==", "cpu": [ "arm64" ], @@ -2317,9 +2166,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.5.tgz", - "integrity": "sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.8.tgz", + "integrity": "sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg==", "cpu": [ "x64" ], @@ -2334,9 +2183,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.5.tgz", - "integrity": "sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.8.tgz", + "integrity": "sha512-j8HgrDuSJFAujkivSMSfPQSAa5Fxbvk4rgNAS5i3K+r8s1X0p1uOO2Hl2xNsGFppOeHOLAVgYwDVlmxhq5h+SQ==", "cpu": [ "arm64" ], @@ -2351,9 +2200,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.5.tgz", - "integrity": "sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.8.tgz", + "integrity": "sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ==", "cpu": [ "x64" ], @@ -2367,10 +2216,27 @@ "node": ">=18" } }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.8.tgz", + "integrity": "sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, "node_modules/@esbuild/sunos-x64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.5.tgz", - "integrity": "sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.8.tgz", + "integrity": "sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w==", "cpu": [ "x64" ], @@ -2385,9 +2251,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.5.tgz", - "integrity": "sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.8.tgz", + "integrity": "sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ==", "cpu": [ "arm64" ], @@ -2402,9 +2268,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.5.tgz", - "integrity": "sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.8.tgz", + "integrity": "sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg==", "cpu": [ "ia32" ], @@ -2419,9 +2285,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.5.tgz", - "integrity": "sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.8.tgz", + "integrity": "sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw==", "cpu": [ "x64" ], @@ -2478,9 +2344,9 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.1.tgz", - "integrity": "sha512-OL0RJzC/CBzli0DrrR31qzj6d6i6Mm3HByuhflhl4LOBiWxN+3i6/t/ZQQNii4tjksXi8r2CRW1wMpWA2ULUEw==", + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.0.tgz", + "integrity": "sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -2492,10 +2358,34 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, + "node_modules/@eslint/config-array/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/@eslint/config-helpers": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.3.tgz", - "integrity": "sha512-u180qk2Um1le4yf0ruXH3PYFeEZeYC3p/4wCTKrr2U1CmGdzGi3KtY0nuPDH48UJxlKCC5RDzbcbh4X0XlqgHg==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.0.tgz", + "integrity": "sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==", "dev": true, "license": "Apache-2.0", "engines": { @@ -2503,9 +2393,9 @@ } }, "node_modules/@eslint/core": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.14.0.tgz", - "integrity": "sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==", + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz", + "integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -2539,6 +2429,17 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/@eslint/eslintrc/node_modules/globals": { "version": "14.0.0", "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", @@ -2552,10 +2453,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/@eslint/js": { - "version": "9.29.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.29.0.tgz", - "integrity": "sha512-3PIF4cBw/y+1u2EazflInpV+lYsSG0aByVIQzAgb1m1MhHFSbqTyNqtBKHgWf/9Ykud+DhILS9EGkmekVhbKoQ==", + "version": "9.31.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.31.0.tgz", + "integrity": "sha512-LOm5OVt7D4qiKCqoiPbA7LWmI+tbw1VbTUowBcUMgQSuM6poJufkFkYDcQpo5KfgD39TnNySV26QjOh7VFpSyw==", "dev": true, "license": "MIT", "engines": { @@ -2581,64 +2495,64 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@eslint/json/node_modules/@eslint/core": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz", - "integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==", + "node_modules/@eslint/markdown": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@eslint/markdown/-/markdown-6.6.0.tgz", + "integrity": "sha512-IsWPy2jU3gaQDlioDC4sT4I4kG1hX1OMWs/q2sWwJrPoMASHW/Z4SDw+6Aql6EsHejGbagYuJbFq9Zvx+Y1b1Q==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", + "workspaces": [ + "examples/*" + ], "dependencies": { - "@types/json-schema": "^7.0.15" + "@eslint/core": "^0.14.0", + "@eslint/plugin-kit": "^0.3.1", + "github-slugger": "^2.0.0", + "mdast-util-from-markdown": "^2.0.2", + "mdast-util-frontmatter": "^2.0.1", + "mdast-util-gfm": "^3.0.0", + "micromark-extension-frontmatter": "^2.0.0", + "micromark-extension-gfm": "^3.0.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@eslint/json/node_modules/@eslint/plugin-kit": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.8.tgz", - "integrity": "sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==", + "node_modules/@eslint/markdown/node_modules/@eslint/core": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.14.0.tgz", + "integrity": "sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.13.0", - "levn": "^0.4.1" + "@types/json-schema": "^7.0.15" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@eslint/json/node_modules/@eslint/plugin-kit/node_modules/@eslint/core": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.13.0.tgz", - "integrity": "sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==", + "node_modules/@eslint/markdown/node_modules/@eslint/plugin-kit": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.4.tgz", + "integrity": "sha512-Ul5l+lHEcw3L5+k8POx6r74mxEYKG5kOb6Xpy2gCRW6zweT6TEhAf8vhxGgjhqrd/VO/Dirhsb+1hNpD1ue9hw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@types/json-schema": "^7.0.15" + "@eslint/core": "^0.15.1", + "levn": "^0.4.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@eslint/markdown": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@eslint/markdown/-/markdown-6.6.0.tgz", - "integrity": "sha512-IsWPy2jU3gaQDlioDC4sT4I4kG1hX1OMWs/q2sWwJrPoMASHW/Z4SDw+6Aql6EsHejGbagYuJbFq9Zvx+Y1b1Q==", + "node_modules/@eslint/markdown/node_modules/@eslint/plugin-kit/node_modules/@eslint/core": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.1.tgz", + "integrity": "sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==", "dev": true, - "license": "MIT", - "workspaces": [ - "examples/*" - ], + "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.14.0", - "@eslint/plugin-kit": "^0.3.1", - "github-slugger": "^2.0.0", - "mdast-util-from-markdown": "^2.0.2", - "mdast-util-frontmatter": "^2.0.1", - "mdast-util-gfm": "^3.0.0", - "micromark-extension-frontmatter": "^2.0.0", - "micromark-extension-gfm": "^3.0.0" + "@types/json-schema": "^7.0.15" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2655,13 +2569,13 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.2.tgz", - "integrity": "sha512-4SaFZCNfJqvk/kenHpI8xvN42DMaoycy4PzKc5otHxRswww1kAt82OlBuwRVLofCACCTZEcla2Ydxv8scMXaTg==", + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.8.tgz", + "integrity": "sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.15.0", + "@eslint/core": "^0.13.0", "levn": "^0.4.1" }, "engines": { @@ -2669,9 +2583,9 @@ } }, "node_modules/@eslint/plugin-kit/node_modules/@eslint/core": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.0.tgz", - "integrity": "sha512-b7ePw78tEWWkpgZCDYkbqDOP8dmM6qe+AOC6iuJqlq1R/0ahMAeH3qynpnqKFGkMltrp44ohV4ubGyvLX28tzw==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.13.0.tgz", + "integrity": "sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -2933,18 +2847,14 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "version": "0.3.12", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz", + "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { @@ -2957,26 +2867,16 @@ "node": ">=6.0.0" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz", + "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==", "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "version": "0.3.29", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz", + "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2985,13 +2885,15 @@ } }, "node_modules/@kern-ux-annex/webc": { - "version": "2.14.9", - "resolved": "https://registry.npmjs.org/@kern-ux-annex/webc/-/webc-2.14.9.tgz", - "integrity": "sha512-1BxmmacmB3rstvZPVP9Ayndz9eI2bPYi47zq3NUTnCPj2PZZFpxg2o7wfbeKGLYdBWSFS6+9DKepYbz1yKJU7w==", + "version": "2.20.8", + "resolved": "https://registry.npmjs.org/@kern-ux-annex/webc/-/webc-2.20.8.tgz", + "integrity": "sha512-vEwRomsUwhAnw/7Ibj9sC4vddMeM7eeQi/Dpye/5HbVIpIstwGQwMRkxmrfyY8fxu3AAeDk0nwGcBU5aFZy9nQ==", "license": "EUPL-1.2", "dependencies": { "@kern-ux/native": "2.2.0", - "lit": "^3.3.0", + "@types/prismjs": "^1.26.5", + "lit": "^3.3.1", + "prismjs": "^1.30.0", "tslib": "^2.8.1" }, "engines": { @@ -3010,18 +2912,18 @@ } }, "node_modules/@lit-labs/ssr-dom-shim": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.3.0.tgz", - "integrity": "sha512-nQIWonJ6eFAvUUrSlwyHDm/aE8PBDu5kRpL0vHMg6K8fK3Diq1xdPjTnsJSwxABhaZ+5eBi1btQB5ShUTKo4nQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.4.0.tgz", + "integrity": "sha512-ficsEARKnmmW5njugNYKipTm4SFnbik7CXtoencDZzmzo/dQ+2Q0bgkzJuoJP20Aj0F+izzJjOqsnkd6F/o1bw==", "license": "BSD-3-Clause" }, "node_modules/@lit/reactive-element": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.1.0.tgz", - "integrity": "sha512-L2qyoZSQClcBmq0qajBVbhYEcG6iK0XfLn66ifLe/RfC0/ihpc+pl0Wdn8bJ8o+hj38cG0fGXRgSS20MuXn7qA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.1.1.tgz", + "integrity": "sha512-N+dm5PAYdQ8e6UlywyyrgI2t++wFGXfHx+dSJ1oBrg6FAxUj40jId++EaRm80MKX5JnlH1sBsyZ5h0bcZKemCg==", "license": "BSD-3-Clause", "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.2.0" + "@lit-labs/ssr-dom-shim": "^1.4.0" } }, "node_modules/@mapbox/jsonlint-lines-primitives": { @@ -3111,15 +3013,14 @@ "license": "MIT" }, "node_modules/@napi-rs/wasm-runtime": { - "version": "0.2.11", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.11.tgz", - "integrity": "sha512-9DPkXtvHydrcOsopiYpUgPHpmj0HWZKMUnL2dZqpvC42lsratuBG06V5ipyno0fUek5VlFsNQ+AcFATSrJXgMA==", + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.4.tgz", + "integrity": "sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==", "dev": true, "license": "MIT", - "optional": true, "dependencies": { - "@emnapi/core": "^1.4.3", - "@emnapi/runtime": "^1.4.3", + "@emnapi/core": "^1.1.0", + "@emnapi/runtime": "^1.1.0", "@tybys/wasm-util": "^0.9.0" } }, @@ -3191,32 +3092,6 @@ "nx": "21.2.0" } }, - "node_modules/@nx/devkit/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@nx/devkit/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/@nx/js": { "version": "21.2.0", "resolved": "https://registry.npmjs.org/@nx/js/-/js-21.2.0.tgz", @@ -3737,9 +3612,9 @@ "license": "MIT" }, "node_modules/@pkgr/core": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.7.tgz", - "integrity": "sha512-YLT9Zo3oNPJoBjBc4q8G2mjU4tqIbf5CEOORbUUr48dCD9q3umJ3IPlVqOqDakPfd2HuwccBaqlGhN4Gmr5OWg==", + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz", + "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==", "dev": true, "license": "MIT", "engines": { @@ -3879,9 +3754,9 @@ } }, "node_modules/@puppeteer/browsers": { - "version": "2.10.5", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.10.5.tgz", - "integrity": "sha512-eifa0o+i8dERnngJwKrfp3dEq7ia5XFyoqB17S4gK8GhsQE4/P8nxOfQSE0zQHxzzLo/cmF+7+ywEQ7wK7Fb+w==", + "version": "2.10.6", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.10.6.tgz", + "integrity": "sha512-pHUn6ZRt39bP3698HFQlu2ZHCkS/lPcpv7fVQcGBSzNNygw171UXAKrCUhy+TEMw4lEttOKDgNpb04hwUAJeiQ==", "license": "Apache-2.0", "dependencies": { "debug": "^4.4.1", @@ -3889,7 +3764,7 @@ "progress": "^2.0.3", "proxy-agent": "^6.5.0", "semver": "^7.7.2", - "tar-fs": "^3.0.8", + "tar-fs": "^3.1.0", "yargs": "^17.7.2" }, "bin": { @@ -3900,9 +3775,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.43.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.43.0.tgz", - "integrity": "sha512-Krjy9awJl6rKbruhQDgivNbD1WuLb8xAclM4IR4cN5pHGAs2oIMMQJEiC3IC/9TZJ+QZkmZhlMO/6MBGxPidpw==", + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.45.1.tgz", + "integrity": "sha512-NEySIFvMY0ZQO+utJkgoMiCAjMrGvnbDLHvcmlA33UXJpYBCvlBEbMMtV837uCkS+plG2umfhn0T5mMAxGrlRA==", "cpu": [ "arm" ], @@ -3914,9 +3789,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.43.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.43.0.tgz", - "integrity": "sha512-ss4YJwRt5I63454Rpj+mXCXicakdFmKnUNxr1dLK+5rv5FJgAxnN7s31a5VchRYxCFWdmnDWKd0wbAdTr0J5EA==", + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.45.1.tgz", + "integrity": "sha512-ujQ+sMXJkg4LRJaYreaVx7Z/VMgBBd89wGS4qMrdtfUFZ+TSY5Rs9asgjitLwzeIbhwdEhyj29zhst3L1lKsRQ==", "cpu": [ "arm64" ], @@ -3928,9 +3803,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.43.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.43.0.tgz", - "integrity": "sha512-eKoL8ykZ7zz8MjgBenEF2OoTNFAPFz1/lyJ5UmmFSz5jW+7XbH1+MAgCVHy72aG59rbuQLcJeiMrP8qP5d/N0A==", + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.45.1.tgz", + "integrity": "sha512-FSncqHvqTm3lC6Y13xncsdOYfxGSLnP+73k815EfNmpewPs+EyM49haPS105Rh4aF5mJKywk9X0ogzLXZzN9lA==", "cpu": [ "arm64" ], @@ -3942,9 +3817,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.43.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.43.0.tgz", - "integrity": "sha512-SYwXJgaBYW33Wi/q4ubN+ldWC4DzQY62S4Ll2dgfr/dbPoF50dlQwEaEHSKrQdSjC6oIe1WgzosoaNoHCdNuMg==", + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.45.1.tgz", + "integrity": "sha512-2/vVn/husP5XI7Fsf/RlhDaQJ7x9zjvC81anIVbr4b/f0xtSmXQTFcGIQ/B1cXIYM6h2nAhJkdMHTnD7OtQ9Og==", "cpu": [ "x64" ], @@ -3956,9 +3831,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.43.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.43.0.tgz", - "integrity": "sha512-SV+U5sSo0yujrjzBF7/YidieK2iF6E7MdF6EbYxNz94lA+R0wKl3SiixGyG/9Klab6uNBIqsN7j4Y/Fya7wAjQ==", + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.45.1.tgz", + "integrity": "sha512-4g1kaDxQItZsrkVTdYQ0bxu4ZIQ32cotoQbmsAnW1jAE4XCMbcBPDirX5fyUzdhVCKgPcrwWuucI8yrVRBw2+g==", "cpu": [ "arm64" ], @@ -3970,9 +3845,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.43.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.43.0.tgz", - "integrity": "sha512-J7uCsiV13L/VOeHJBo5SjasKiGxJ0g+nQTrBkAsmQBIdil3KhPnSE9GnRon4ejX1XDdsmK/l30IYLiAaQEO0Cg==", + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.45.1.tgz", + "integrity": "sha512-L/6JsfiL74i3uK1Ti2ZFSNsp5NMiM4/kbbGEcOCps99aZx3g8SJMO1/9Y0n/qKlWZfn6sScf98lEOUe2mBvW9A==", "cpu": [ "x64" ], @@ -3984,9 +3859,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.43.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.43.0.tgz", - "integrity": "sha512-gTJ/JnnjCMc15uwB10TTATBEhK9meBIY+gXP4s0sHD1zHOaIh4Dmy1X9wup18IiY9tTNk5gJc4yx9ctj/fjrIw==", + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.45.1.tgz", + "integrity": "sha512-RkdOTu2jK7brlu+ZwjMIZfdV2sSYHK2qR08FUWcIoqJC2eywHbXr0L8T/pONFwkGukQqERDheaGTeedG+rra6Q==", "cpu": [ "arm" ], @@ -3998,9 +3873,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.43.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.43.0.tgz", - "integrity": "sha512-ZJ3gZynL1LDSIvRfz0qXtTNs56n5DI2Mq+WACWZ7yGHFUEirHBRt7fyIk0NsCKhmRhn7WAcjgSkSVVxKlPNFFw==", + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.45.1.tgz", + "integrity": "sha512-3kJ8pgfBt6CIIr1o+HQA7OZ9mp/zDk3ctekGl9qn/pRBgrRgfwiffaUmqioUGN9hv0OHv2gxmvdKOkARCtRb8Q==", "cpu": [ "arm" ], @@ -4012,9 +3887,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.43.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.43.0.tgz", - "integrity": "sha512-8FnkipasmOOSSlfucGYEu58U8cxEdhziKjPD2FIa0ONVMxvl/hmONtX/7y4vGjdUhjcTHlKlDhw3H9t98fPvyA==", + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.45.1.tgz", + "integrity": "sha512-k3dOKCfIVixWjG7OXTCOmDfJj3vbdhN0QYEqB+OuGArOChek22hn7Uy5A/gTDNAcCy5v2YcXRJ/Qcnm4/ma1xw==", "cpu": [ "arm64" ], @@ -4026,9 +3901,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.43.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.43.0.tgz", - "integrity": "sha512-KPPyAdlcIZ6S9C3S2cndXDkV0Bb1OSMsX0Eelr2Bay4EsF9yi9u9uzc9RniK3mcUGCLhWY9oLr6er80P5DE6XA==", + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.45.1.tgz", + "integrity": "sha512-PmI1vxQetnM58ZmDFl9/Uk2lpBBby6B6rF4muJc65uZbxCs0EA7hhKCk2PKlmZKuyVSHAyIw3+/SiuMLxKxWog==", "cpu": [ "arm64" ], @@ -4040,9 +3915,9 @@ ] }, "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.43.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.43.0.tgz", - "integrity": "sha512-HPGDIH0/ZzAZjvtlXj6g+KDQ9ZMHfSP553za7o2Odegb/BEfwJcR0Sw0RLNpQ9nC6Gy8s+3mSS9xjZ0n3rhcYg==", + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.45.1.tgz", + "integrity": "sha512-9UmI0VzGmNJ28ibHW2GpE2nF0PBQqsyiS4kcJ5vK+wuwGnV5RlqdczVocDSUfGX/Na7/XINRVoUgJyFIgipoRg==", "cpu": [ "loong64" ], @@ -4054,9 +3929,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.43.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.43.0.tgz", - "integrity": "sha512-gEmwbOws4U4GLAJDhhtSPWPXUzDfMRedT3hFMyRAvM9Mrnj+dJIFIeL7otsv2WF3D7GrV0GIewW0y28dOYWkmw==", + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.45.1.tgz", + "integrity": "sha512-7nR2KY8oEOUTD3pBAxIBBbZr0U7U+R9HDTPNy+5nVVHDXI4ikYniH1oxQz9VoB5PbBU1CZuDGHkLJkd3zLMWsg==", "cpu": [ "ppc64" ], @@ -4068,9 +3943,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.43.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.43.0.tgz", - "integrity": "sha512-XXKvo2e+wFtXZF/9xoWohHg+MuRnvO29TI5Hqe9xwN5uN8NKUYy7tXUG3EZAlfchufNCTHNGjEx7uN78KsBo0g==", + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.45.1.tgz", + "integrity": "sha512-nlcl3jgUultKROfZijKjRQLUu9Ma0PeNv/VFHkZiKbXTBQXhpytS8CIj5/NfBeECZtY2FJQubm6ltIxm/ftxpw==", "cpu": [ "riscv64" ], @@ -4082,9 +3957,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.43.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.43.0.tgz", - "integrity": "sha512-ruf3hPWhjw6uDFsOAzmbNIvlXFXlBQ4nk57Sec8E8rUxs/AI4HD6xmiiasOOx/3QxS2f5eQMKTAwk7KHwpzr/Q==", + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.45.1.tgz", + "integrity": "sha512-HJV65KLS51rW0VY6rvZkiieiBnurSzpzore1bMKAhunQiECPuxsROvyeaot/tcK3A3aGnI+qTHqisrpSgQrpgA==", "cpu": [ "riscv64" ], @@ -4096,9 +3971,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.43.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.43.0.tgz", - "integrity": "sha512-QmNIAqDiEMEvFV15rsSnjoSmO0+eJLoKRD9EAa9rrYNwO/XRCtOGM3A5A0X+wmG+XRrw9Fxdsw+LnyYiZWWcVw==", + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.45.1.tgz", + "integrity": "sha512-NITBOCv3Qqc6hhwFt7jLV78VEO/il4YcBzoMGGNxznLgRQf43VQDae0aAzKiBeEPIxnDrACiMgbqjuihx08OOw==", "cpu": [ "s390x" ], @@ -4110,9 +3985,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.43.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.43.0.tgz", - "integrity": "sha512-jAHr/S0iiBtFyzjhOkAics/2SrXE092qyqEg96e90L3t9Op8OTzS6+IX0Fy5wCt2+KqeHAkti+eitV0wvblEoQ==", + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.45.1.tgz", + "integrity": "sha512-+E/lYl6qu1zqgPEnTrs4WysQtvc/Sh4fC2nByfFExqgYrqkKWp1tWIbe+ELhixnenSpBbLXNi6vbEEJ8M7fiHw==", "cpu": [ "x64" ], @@ -4124,9 +3999,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.43.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.43.0.tgz", - "integrity": "sha512-3yATWgdeXyuHtBhrLt98w+5fKurdqvs8B53LaoKD7P7H7FKOONLsBVMNl9ghPQZQuYcceV5CDyPfyfGpMWD9mQ==", + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.45.1.tgz", + "integrity": "sha512-a6WIAp89p3kpNoYStITT9RbTbTnqarU7D8N8F2CV+4Cl9fwCOZraLVuVFvlpsW0SbIiYtEnhCZBPLoNdRkjQFw==", "cpu": [ "x64" ], @@ -4138,9 +4013,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.43.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.43.0.tgz", - "integrity": "sha512-wVzXp2qDSCOpcBCT5WRWLmpJRIzv23valvcTwMHEobkjippNf+C3ys/+wf07poPkeNix0paTNemB2XrHr2TnGw==", + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.45.1.tgz", + "integrity": "sha512-T5Bi/NS3fQiJeYdGvRpTAP5P02kqSOpqiopwhj0uaXB6nzs5JVi2XMJb18JUSKhCOX8+UE1UKQufyD6Or48dJg==", "cpu": [ "arm64" ], @@ -4152,9 +4027,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.43.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.43.0.tgz", - "integrity": "sha512-fYCTEyzf8d+7diCw8b+asvWDCLMjsCEA8alvtAutqJOJp/wL5hs1rWSqJ1vkjgW0L2NB4bsYJrpKkiIPRR9dvw==", + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.45.1.tgz", + "integrity": "sha512-lxV2Pako3ujjuUe9jiU3/s7KSrDfH6IgTSQOnDWr9aJ92YsFd7EurmClK0ly/t8dzMkDtd04g60WX6yl0sGfdw==", "cpu": [ "ia32" ], @@ -4166,9 +4041,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.43.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.43.0.tgz", - "integrity": "sha512-SnGhLiE5rlK0ofq8kzuDkM0g7FN1s5VYY+YSMTibP7CqShxCQvqtNxTARS4xX4PFJfHjG0ZQYX9iGzI3FQh5Aw==", + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.45.1.tgz", + "integrity": "sha512-M/fKi4sasCdM8i0aWJjCSFm2qEnYRR8AMLG2kxp6wD13+tMGA4Z1tVAuHkNRjud5SW2EM3naLuK35w9twvf6aA==", "cpu": [ "x64" ], @@ -4186,6 +4061,16 @@ "dev": true, "license": "MIT" }, + "node_modules/@spz-loader/core": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@spz-loader/core/-/core-0.1.0.tgz", + "integrity": "sha512-atqn/DLy0xNkqRgz3l/5CD12y1M44JdjTmAFQYDKvzf0pIyj+NlJ/PeCRlSJQfXmZ2JndNOCpcGOFVldANf/EA==", + "license": "Apache-2.0", + "engines": { + "node": ">=16", + "pnpm": ">=8" + } + }, "node_modules/@stylistic/eslint-plugin": { "version": "2.11.0", "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-2.11.0.tgz", @@ -4270,9 +4155,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "24.0.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.3.tgz", - "integrity": "sha512-R4I/kzCYAdRLzfiCabn9hxWfbuHS573x+r0dJMkkzThEa7pbrcDWK+9zu3e7aBOouf+rQAciqPFMnxwr0aWgKg==", + "version": "24.1.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.1.0.tgz", + "integrity": "sha512-ut5FthK5moxFKH2T1CUOC6ctR67rQRvvHdFLCD2Ql6KXmMuCrjsSsRI9UsLCm9M18BMwClv4pn327UvB7eeO1w==", "license": "MIT", "dependencies": { "undici-types": "~7.8.0" @@ -4285,6 +4170,12 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/prismjs": { + "version": "1.26.5", + "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.5.tgz", + "integrity": "sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==", + "license": "MIT" + }, "node_modules/@types/rbush": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/rbush/-/rbush-4.0.0.tgz", @@ -4315,17 +4206,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.34.0.tgz", - "integrity": "sha512-QXwAlHlbcAwNlEEMKQS2RCgJsgXrTJdjXT08xEgbPFa2yYQgVjBymxP5DrfrE7X7iodSzd9qBUHUycdyVJTW1w==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.38.0.tgz", + "integrity": "sha512-CPoznzpuAnIOl4nhj4tRr4gIPj5AfKgkiJmGQDaq+fQnRJTYlcBjbX3wbciGmpoPf8DREufuPRe1tNMZnGdanA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.34.0", - "@typescript-eslint/type-utils": "8.34.0", - "@typescript-eslint/utils": "8.34.0", - "@typescript-eslint/visitor-keys": "8.34.0", + "@typescript-eslint/scope-manager": "8.38.0", + "@typescript-eslint/type-utils": "8.38.0", + "@typescript-eslint/utils": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0", "graphemer": "^1.4.0", "ignore": "^7.0.0", "natural-compare": "^1.4.0", @@ -4339,7 +4230,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.34.0", + "@typescript-eslint/parser": "^8.38.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <5.9.0" } @@ -4355,16 +4246,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.34.0.tgz", - "integrity": "sha512-vxXJV1hVFx3IXz/oy2sICsJukaBrtDEQSBiV48/YIV5KWjX1dO+bcIr/kCPrW6weKXvsaGKFNlwH0v2eYdRRbA==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.38.0.tgz", + "integrity": "sha512-Zhy8HCvBUEfBECzIl1PKqF4p11+d0aUJS1GeUiuqK9WmOug8YCmC4h4bjyBvMyAMI9sbRczmrYL5lKg/YMbrcQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.34.0", - "@typescript-eslint/types": "8.34.0", - "@typescript-eslint/typescript-estree": "8.34.0", - "@typescript-eslint/visitor-keys": "8.34.0", + "@typescript-eslint/scope-manager": "8.38.0", + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0", "debug": "^4.3.4" }, "engines": { @@ -4380,14 +4271,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.34.0.tgz", - "integrity": "sha512-iEgDALRf970/B2YExmtPMPF54NenZUf4xpL3wsCRx/lgjz6ul/l13R81ozP/ZNuXfnLCS+oPmG7JIxfdNYKELw==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.38.0.tgz", + "integrity": "sha512-dbK7Jvqcb8c9QfH01YB6pORpqX1mn5gDZc9n63Ak/+jD67oWXn3Gs0M6vddAN+eDXBCS5EmNWzbSxsn9SzFWWg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.34.0", - "@typescript-eslint/types": "^8.34.0", + "@typescript-eslint/tsconfig-utils": "^8.38.0", + "@typescript-eslint/types": "^8.38.0", "debug": "^4.3.4" }, "engines": { @@ -4402,14 +4293,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.34.0.tgz", - "integrity": "sha512-9Ac0X8WiLykl0aj1oYQNcLZjHgBojT6cW68yAgZ19letYu+Hxd0rE0veI1XznSSst1X5lwnxhPbVdwjDRIomRw==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.38.0.tgz", + "integrity": "sha512-WJw3AVlFFcdT9Ri1xs/lg8LwDqgekWXWhH3iAF+1ZM+QPd7oxQ6jvtW/JPwzAScxitILUIFs0/AnQ/UWHzbATQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.34.0", - "@typescript-eslint/visitor-keys": "8.34.0" + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -4420,9 +4311,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.34.0.tgz", - "integrity": "sha512-+W9VYHKFIzA5cBeooqQxqNriAP0QeQ7xTiDuIOr71hzgffm3EL2hxwWBIIj4GuofIbKxGNarpKqIq6Q6YrShOA==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.38.0.tgz", + "integrity": "sha512-Lum9RtSE3EroKk/bYns+sPOodqb2Fv50XOl/gMviMKNvanETUuUcC9ObRbzrJ4VSd2JalPqgSAavwrPiPvnAiQ==", "dev": true, "license": "MIT", "engines": { @@ -4437,14 +4328,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.34.0.tgz", - "integrity": "sha512-n7zSmOcUVhcRYC75W2pnPpbO1iwhJY3NLoHEtbJwJSNlVAZuwqu05zY3f3s2SDWWDSo9FdN5szqc73DCtDObAg==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.38.0.tgz", + "integrity": "sha512-c7jAvGEZVf0ao2z+nnz8BUaHZD09Agbh+DY7qvBQqLiz8uJzRgVPj5YvOh8I8uEiH8oIUGIfHzMwUcGVco/SJg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.34.0", - "@typescript-eslint/utils": "8.34.0", + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.0", + "@typescript-eslint/utils": "8.38.0", "debug": "^4.3.4", "ts-api-utils": "^2.1.0" }, @@ -4461,9 +4353,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.0.tgz", - "integrity": "sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.38.0.tgz", + "integrity": "sha512-wzkUfX3plUqij4YwWaJyqhiPE5UCRVlFpKn1oCRn2O1bJ592XxWJj8ROQ3JD5MYXLORW84063z3tZTb/cs4Tyw==", "dev": true, "license": "MIT", "engines": { @@ -4475,16 +4367,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.34.0.tgz", - "integrity": "sha512-rOi4KZxI7E0+BMqG7emPSK1bB4RICCpF7QD3KCLXn9ZvWoESsOMlHyZPAHyG04ujVplPaHbmEvs34m+wjgtVtg==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.38.0.tgz", + "integrity": "sha512-fooELKcAKzxux6fA6pxOflpNS0jc+nOQEEOipXFNjSlBS6fqrJOVY/whSn70SScHrcJ2LDsxWrneFoWYSVfqhQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.34.0", - "@typescript-eslint/tsconfig-utils": "8.34.0", - "@typescript-eslint/types": "8.34.0", - "@typescript-eslint/visitor-keys": "8.34.0", + "@typescript-eslint/project-service": "8.38.0", + "@typescript-eslint/tsconfig-utils": "8.38.0", + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -4503,16 +4395,6 @@ "typescript": ">=4.8.4 <5.9.0" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", @@ -4530,16 +4412,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.34.0.tgz", - "integrity": "sha512-8L4tWatGchV9A1cKbjaavS6mwYwp39jql8xUmIIKJdm+qiaeHy5KMKlBrf30akXAWBzn2SqKsNOtSENWUwg7XQ==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.38.0.tgz", + "integrity": "sha512-hHcMA86Hgt+ijJlrD8fX0j1j8w4C92zue/8LOPAFioIno+W0+L7KqE8QZKCcPGc/92Vs9x36w/4MPTJhqXdyvg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.34.0", - "@typescript-eslint/types": "8.34.0", - "@typescript-eslint/typescript-estree": "8.34.0" + "@typescript-eslint/scope-manager": "8.38.0", + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -4554,14 +4436,14 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.34.0.tgz", - "integrity": "sha512-qHV7pW7E85A0x6qyrFn+O+q1k1p3tQCsqIZ1KZ5ESLXY57aTvUd3/a4rdPTeXisvhXn2VQG0VSKUqs8KHF2zcA==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.38.0.tgz", + "integrity": "sha512-pWrTcoFNWuwHlA9CvlfSsGWs14JxfN1TH25zM5L7o0pRLhsoZkDnTsXfQRJBEWJoV5DL0jf+Z+sxiud+K0mq1g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.34.0", - "eslint-visitor-keys": "^4.2.0" + "@typescript-eslint/types": "8.38.0", + "eslint-visitor-keys": "^4.2.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -4572,9 +4454,9 @@ } }, "node_modules/@unrs/resolver-binding-android-arm-eabi": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.9.0.tgz", - "integrity": "sha512-h1T2c2Di49ekF2TE8ZCoJkb+jwETKUIPDJ/nO3tJBKlLFPu+fyd93f0rGP/BvArKx2k2HlRM4kqkNarj3dvZlg==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz", + "integrity": "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==", "cpu": [ "arm" ], @@ -4586,9 +4468,9 @@ ] }, "node_modules/@unrs/resolver-binding-android-arm64": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.9.0.tgz", - "integrity": "sha512-sG1NHtgXtX8owEkJ11yn34vt0Xqzi3k9TJ8zppDmyG8GZV4kVWw44FHwKwHeEFl07uKPeC4ZoyuQaGh5ruJYPA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz", + "integrity": "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==", "cpu": [ "arm64" ], @@ -4600,9 +4482,9 @@ ] }, "node_modules/@unrs/resolver-binding-darwin-arm64": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.9.0.tgz", - "integrity": "sha512-nJ9z47kfFnCxN1z/oYZS7HSNsFh43y2asePzTEZpEvK7kGyuShSl3RRXnm/1QaqFL+iP+BjMwuB+DYUymOkA5A==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz", + "integrity": "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==", "cpu": [ "arm64" ], @@ -4614,9 +4496,9 @@ ] }, "node_modules/@unrs/resolver-binding-darwin-x64": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.9.0.tgz", - "integrity": "sha512-TK+UA1TTa0qS53rjWn7cVlEKVGz2B6JYe0C++TdQjvWYIyx83ruwh0wd4LRxYBM5HeuAzXcylA9BH2trARXJTw==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz", + "integrity": "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==", "cpu": [ "x64" ], @@ -4628,9 +4510,9 @@ ] }, "node_modules/@unrs/resolver-binding-freebsd-x64": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.9.0.tgz", - "integrity": "sha512-6uZwzMRFcD7CcCd0vz3Hp+9qIL2jseE/bx3ZjaLwn8t714nYGwiE84WpaMCYjU+IQET8Vu/+BNAGtYD7BG/0yA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz", + "integrity": "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==", "cpu": [ "x64" ], @@ -4642,9 +4524,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.9.0.tgz", - "integrity": "sha512-bPUBksQfrgcfv2+mm+AZinaKq8LCFvt5PThYqRotqSuuZK1TVKkhbVMS/jvSRfYl7jr3AoZLYbDkItxgqMKRkg==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz", + "integrity": "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==", "cpu": [ "arm" ], @@ -4656,9 +4538,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.9.0.tgz", - "integrity": "sha512-uT6E7UBIrTdCsFQ+y0tQd3g5oudmrS/hds5pbU3h4s2t/1vsGWbbSKhBSCD9mcqaqkBwoqlECpUrRJCmldl8PA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz", + "integrity": "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==", "cpu": [ "arm" ], @@ -4670,9 +4552,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.9.0.tgz", - "integrity": "sha512-vdqBh911wc5awE2bX2zx3eflbyv8U9xbE/jVKAm425eRoOVv/VseGZsqi3A3SykckSpF4wSROkbQPvbQFn8EsA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz", + "integrity": "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==", "cpu": [ "arm64" ], @@ -4684,9 +4566,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-arm64-musl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.9.0.tgz", - "integrity": "sha512-/8JFZ/SnuDr1lLEVsxsuVwrsGquTvT51RZGvyDB/dOK3oYK2UqeXzgeyq6Otp8FZXQcEYqJwxb9v+gtdXn03eQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz", + "integrity": "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==", "cpu": [ "arm64" ], @@ -4698,9 +4580,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.9.0.tgz", - "integrity": "sha512-FkJjybtrl+rajTw4loI3L6YqSOpeZfDls4SstL/5lsP2bka9TiHUjgMBjygeZEis1oC8LfJTS8FSgpKPaQx2tQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz", + "integrity": "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==", "cpu": [ "ppc64" ], @@ -4712,9 +4594,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.9.0.tgz", - "integrity": "sha512-w/NZfHNeDusbqSZ8r/hp8iL4S39h4+vQMc9/vvzuIKMWKppyUGKm3IST0Qv0aOZ1rzIbl9SrDeIqK86ZpUK37w==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz", + "integrity": "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==", "cpu": [ "riscv64" ], @@ -4726,9 +4608,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.9.0.tgz", - "integrity": "sha512-bEPBosut8/8KQbUixPry8zg/fOzVOWyvwzOfz0C0Rw6dp+wIBseyiHKjkcSyZKv/98edrbMknBaMNJfA/UEdqw==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz", + "integrity": "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==", "cpu": [ "riscv64" ], @@ -4740,9 +4622,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.9.0.tgz", - "integrity": "sha512-LDtMT7moE3gK753gG4pc31AAqGUC86j3AplaFusc717EUGF9ZFJ356sdQzzZzkBk1XzMdxFyZ4f/i35NKM/lFA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz", + "integrity": "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==", "cpu": [ "s390x" ], @@ -4754,9 +4636,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-x64-gnu": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.9.0.tgz", - "integrity": "sha512-WmFd5KINHIXj8o1mPaT8QRjA9HgSXhN1gl9Da4IZihARihEnOylu4co7i/yeaIpcfsI6sYs33cNZKyHYDh0lrA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz", + "integrity": "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==", "cpu": [ "x64" ], @@ -4768,9 +4650,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-x64-musl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.9.0.tgz", - "integrity": "sha512-CYuXbANW+WgzVRIl8/QvZmDaZxrqvOldOwlbUjIM4pQ46FJ0W5cinJ/Ghwa/Ng1ZPMJMk1VFdsD/XwmCGIXBWg==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz", + "integrity": "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==", "cpu": [ "x64" ], @@ -4782,9 +4664,9 @@ ] }, "node_modules/@unrs/resolver-binding-wasm32-wasi": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.9.0.tgz", - "integrity": "sha512-6Rp2WH0OoitMYR57Z6VE8Y6corX8C6QEMWLgOV6qXiJIeZ1F9WGXY/yQ8yDC4iTraotyLOeJ2Asea0urWj2fKQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz", + "integrity": "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==", "cpu": [ "wasm32" ], @@ -4798,10 +4680,34 @@ "node": ">=14.0.0" } }, + "node_modules/@unrs/resolver-binding-wasm32-wasi/node_modules/@napi-rs/wasm-runtime": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz", + "integrity": "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.4.3", + "@emnapi/runtime": "^1.4.3", + "@tybys/wasm-util": "^0.10.0" + } + }, + "node_modules/@unrs/resolver-binding-wasm32-wasi/node_modules/@tybys/wasm-util": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.0.tgz", + "integrity": "sha512-VyyPYFlOMNylG45GoAe0xDoLwWuowvf92F9kySqzYh8vmYm7D2u4iUJKa1tOUpS70Ku13ASrOkS4ScXFsTaCNQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.9.0.tgz", - "integrity": "sha512-rknkrTRuvujprrbPmGeHi8wYWxmNVlBoNW8+4XF2hXUnASOjmuC9FNF1tGbDiRQWn264q9U/oGtixyO3BT8adQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz", + "integrity": "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==", "cpu": [ "arm64" ], @@ -4813,9 +4719,9 @@ ] }, "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.9.0.tgz", - "integrity": "sha512-Ceymm+iBl+bgAICtgiHyMLz6hjxmLJKqBim8tDzpX61wpZOx2bPK6Gjuor7I2RiUynVjvvkoRIkrPyMwzBzF3A==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz", + "integrity": "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==", "cpu": [ "ia32" ], @@ -4827,9 +4733,9 @@ ] }, "node_modules/@unrs/resolver-binding-win32-x64-msvc": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.9.0.tgz", - "integrity": "sha512-k59o9ZyeyS0hAlcaKFezYSH2agQeRFEB7KoQLXl3Nb3rgkqT1NY9Vwy+SqODiLmYnEjxWJVRE/yq2jFVqdIxZw==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz", + "integrity": "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==", "cpu": [ "x64" ], @@ -4855,53 +4761,53 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.5.16", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.16.tgz", - "integrity": "sha512-AOQS2eaQOaaZQoL1u+2rCJIKDruNXVBZSiUD3chnUrsoX5ZTQMaCvXlWNIfxBJuU15r1o7+mpo5223KVtIhAgQ==", + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.18.tgz", + "integrity": "sha512-3slwjQrrV1TO8MoXgy3aynDQ7lslj5UqDxuHnrzHtpON5CBinhWjJETciPngpin/T3OuW3tXUf86tEurusnztw==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.27.2", - "@vue/shared": "3.5.16", + "@babel/parser": "^7.28.0", + "@vue/shared": "3.5.18", "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.1" } }, "node_modules/@vue/compiler-dom": { - "version": "3.5.16", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.16.tgz", - "integrity": "sha512-SSJIhBr/teipXiXjmWOVWLnxjNGo65Oj/8wTEQz0nqwQeP75jWZ0n4sF24Zxoht1cuJoWopwj0J0exYwCJ0dCQ==", + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.18.tgz", + "integrity": "sha512-RMbU6NTU70++B1JyVJbNbeFkK+A+Q7y9XKE2EM4NLGm2WFR8x9MbAtWxPPLdm0wUkuZv9trpwfSlL6tjdIa1+A==", "license": "MIT", "dependencies": { - "@vue/compiler-core": "3.5.16", - "@vue/shared": "3.5.16" + "@vue/compiler-core": "3.5.18", + "@vue/shared": "3.5.18" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.5.16", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.16.tgz", - "integrity": "sha512-rQR6VSFNpiinDy/DVUE0vHoIDUF++6p910cgcZoaAUm3POxgNOOdS/xgoll3rNdKYTYPnnbARDCZOyZ+QSe6Pw==", + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.18.tgz", + "integrity": "sha512-5aBjvGqsWs+MoxswZPoTB9nSDb3dhd1x30xrrltKujlCxo48j8HGDNj3QPhF4VIS0VQDUrA1xUfp2hEa+FNyXA==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.27.2", - "@vue/compiler-core": "3.5.16", - "@vue/compiler-dom": "3.5.16", - "@vue/compiler-ssr": "3.5.16", - "@vue/shared": "3.5.16", + "@babel/parser": "^7.28.0", + "@vue/compiler-core": "3.5.18", + "@vue/compiler-dom": "3.5.18", + "@vue/compiler-ssr": "3.5.18", + "@vue/shared": "3.5.18", "estree-walker": "^2.0.2", "magic-string": "^0.30.17", - "postcss": "^8.5.3", + "postcss": "^8.5.6", "source-map-js": "^1.2.1" } }, "node_modules/@vue/compiler-ssr": { - "version": "3.5.16", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.16.tgz", - "integrity": "sha512-d2V7kfxbdsjrDSGlJE7my1ZzCXViEcqN6w14DOsDrUCHEA6vbnVCpRFfrc4ryCP/lCKzX2eS1YtnLE/BuC9f/A==", + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.18.tgz", + "integrity": "sha512-xM16Ak7rSWHkM3m22NlmcdIM+K4BMyFARAfV9hYFl+SFuRzrZ3uGMNW05kA5pmeMa0X9X963Kgou7ufdbpOP9g==", "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.5.16", - "@vue/shared": "3.5.16" + "@vue/compiler-dom": "3.5.18", + "@vue/shared": "3.5.18" } }, "node_modules/@vue/devtools-api": { @@ -4938,53 +4844,53 @@ } }, "node_modules/@vue/reactivity": { - "version": "3.5.16", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.16.tgz", - "integrity": "sha512-FG5Q5ee/kxhIm1p2bykPpPwqiUBV3kFySsHEQha5BJvjXdZTUfmya7wP7zC39dFuZAcf/PD5S4Lni55vGLMhvA==", + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.18.tgz", + "integrity": "sha512-x0vPO5Imw+3sChLM5Y+B6G1zPjwdOri9e8V21NnTnlEvkxatHEH5B5KEAJcjuzQ7BsjGrKtfzuQ5eQwXh8HXBg==", "license": "MIT", "dependencies": { - "@vue/shared": "3.5.16" + "@vue/shared": "3.5.18" } }, "node_modules/@vue/runtime-core": { - "version": "3.5.16", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.16.tgz", - "integrity": "sha512-bw5Ykq6+JFHYxrQa7Tjr+VSzw7Dj4ldR/udyBZbq73fCdJmyy5MPIFR9IX/M5Qs+TtTjuyUTCnmK3lWWwpAcFQ==", + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.18.tgz", + "integrity": "sha512-DUpHa1HpeOQEt6+3nheUfqVXRog2kivkXHUhoqJiKR33SO4x+a5uNOMkV487WPerQkL0vUuRvq/7JhRgLW3S+w==", "license": "MIT", "dependencies": { - "@vue/reactivity": "3.5.16", - "@vue/shared": "3.5.16" + "@vue/reactivity": "3.5.18", + "@vue/shared": "3.5.18" } }, "node_modules/@vue/runtime-dom": { - "version": "3.5.16", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.16.tgz", - "integrity": "sha512-T1qqYJsG2xMGhImRUV9y/RseB9d0eCYZQ4CWca9ztCuiPj/XWNNN+lkNBuzVbia5z4/cgxdL28NoQCvC0Xcfww==", + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.18.tgz", + "integrity": "sha512-YwDj71iV05j4RnzZnZtGaXwPoUWeRsqinblgVJwR8XTXYZ9D5PbahHQgsbmzUvCWNF6x7siQ89HgnX5eWkr3mw==", "license": "MIT", "dependencies": { - "@vue/reactivity": "3.5.16", - "@vue/runtime-core": "3.5.16", - "@vue/shared": "3.5.16", + "@vue/reactivity": "3.5.18", + "@vue/runtime-core": "3.5.18", + "@vue/shared": "3.5.18", "csstype": "^3.1.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.5.16", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.16.tgz", - "integrity": "sha512-BrX0qLiv/WugguGsnQUJiYOE0Fe5mZTwi6b7X/ybGB0vfrPH9z0gD/Y6WOR1sGCgX4gc25L1RYS5eYQKDMoNIg==", + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.18.tgz", + "integrity": "sha512-PvIHLUoWgSbDG7zLHqSqaCoZvHi6NNmfVFOqO+OnwvqMz/tqQr3FuGWS8ufluNddk7ZLBJYMrjcw1c6XzR12mA==", "license": "MIT", "dependencies": { - "@vue/compiler-ssr": "3.5.16", - "@vue/shared": "3.5.16" + "@vue/compiler-ssr": "3.5.18", + "@vue/shared": "3.5.18" }, "peerDependencies": { - "vue": "3.5.16" + "vue": "3.5.18" } }, "node_modules/@vue/shared": { - "version": "3.5.16", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.16.tgz", - "integrity": "sha512-c/0fWy3Jw6Z8L9FmTyYfkpM5zklnqqa9+a6dz3DvONRKW2NEbh46BP0FHuLFSWi2TnQEtp91Z6zOWNrU6QiyPg==", + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.18.tgz", + "integrity": "sha512-cZy8Dq+uuIXbxCZpuLd2GJdeSO/lIzIspC2WtkqIpje5QyFbvLaI5wZtdUjLHjGZrlVX6GilejatWwVYYRc8tA==", "license": "MIT" }, "node_modules/@yarnpkg/lockfile": { @@ -5033,9 +4939,9 @@ } }, "node_modules/@zip.js/zip.js": { - "version": "2.7.62", - "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.7.62.tgz", - "integrity": "sha512-OaLvZ8j4gCkLn048ypkZu29KX30r8/OfFF2w4Jo5WXFr+J04J+lzJ5TKZBVgFXhlvSkqNFQdfnY1Q8TMTCyBVA==", + "version": "2.7.67", + "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.7.67.tgz", + "integrity": "sha512-oD79XcCf24GzNmxmoJ/A/LrUodU1QDVpJ3WuJ17uf0kMks+LrmdxDtg9MSPSR3nrYxkF3A5B9+dbc3CnefVI3Q==", "license": "BSD-3-Clause", "engines": { "bun": ">=0.7.0", @@ -5388,14 +5294,14 @@ } }, "node_modules/axios": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.10.0.tgz", - "integrity": "sha512-/1xYAC4MP/HEG+3duIhFr4ZQXR4sQXOIe+o6sdqzeykGLx6Upp/1p8MHqhINOvGeP7xyNHe7tsiJByc4SSVUxw==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.11.0.tgz", + "integrity": "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==", "dev": true, "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", + "form-data": "^4.0.4", "proxy-from-env": "^1.1.0" } }, @@ -5437,14 +5343,14 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.13.tgz", - "integrity": "sha512-3sX/eOms8kd3q2KZ6DAhKPc0dgm525Gqq5NtWKZ7QYYZEv57OQ54KtblzJzH1lQF/eQxO8KjWGIK9IPUJNus5g==", + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", + "integrity": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.4", + "@babel/compat-data": "^7.27.7", + "@babel/helper-define-polyfill-provider": "^0.6.5", "semver": "^6.3.1" }, "peerDependencies": { @@ -5462,27 +5368,27 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz", - "integrity": "sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", + "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.3", - "core-js-compat": "^3.40.0" + "@babel/helper-define-polyfill-provider": "^0.6.5", + "core-js-compat": "^3.43.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.4.tgz", - "integrity": "sha512-7gD3pRadPrbjhjLyxebmx/WrFYcuSjZ0XbdUujQMZ/fcE9oeewk2U/7PCvez84UeuK3oSjmPZ0Ch0dlupQvGzw==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz", + "integrity": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.4" + "@babel/helper-define-polyfill-provider": "^0.6.5" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -5518,9 +5424,9 @@ "license": "MIT" }, "node_modules/bare-events": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.4.tgz", - "integrity": "sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.6.0.tgz", + "integrity": "sha512-EKZ5BTXYExaNqi3I3f9RtEsaI/xBSGjE0XZCZilPzFAV/goswFHuPd9jEZlPIZ/iNZJwDSao9qRiScySz7MbQg==", "license": "Apache-2.0", "optional": true }, @@ -5620,9 +5526,9 @@ } }, "node_modules/birpc": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/birpc/-/birpc-2.4.0.tgz", - "integrity": "sha512-5IdNxTyhXHv2UlgnPHQ0h+5ypVmkrYHzL8QT+DwFZ//2N/oNV8Ch+BCRmTJ3x6/z9Axo/cXYBc9eprsUVK/Jsg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/birpc/-/birpc-2.5.0.tgz", + "integrity": "sha512-VSWO/W6nNQdyP520F1mhf+Lc2f8pjGQOtoHHm7Ze8Go1kX7akpVIrtTa0fn+HB0QJEDVacl6aO08YE0PgXfdnQ==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/antfu" @@ -5646,31 +5552,6 @@ "readable-stream": "^3.4.0" } }, - "node_modules/bl/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", @@ -5679,14 +5560,13 @@ "license": "ISC" }, "node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "balanced-match": "^1.0.0" } }, "node_modules/braces": { @@ -5703,9 +5583,9 @@ } }, "node_modules/browserslist": { - "version": "4.25.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.0.tgz", - "integrity": "sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==", + "version": "4.25.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz", + "integrity": "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==", "dev": true, "funding": [ { @@ -5723,8 +5603,8 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001718", - "electron-to-chromium": "^1.5.160", + "caniuse-lite": "^1.0.30001726", + "electron-to-chromium": "^1.5.173", "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.3" }, @@ -5735,6 +5615,31 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, "node_modules/buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", @@ -5809,9 +5714,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001723", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001723.tgz", - "integrity": "sha512-1R/elMjtehrFejxwmexeXAtae5UO9iSyFn6G/I806CYC/BLyyBk1EPhrKBkWhy6wM6Xnm47dSJQec+tLJ39WHw==", + "version": "1.0.30001727", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz", + "integrity": "sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==", "dev": true, "funding": [ { @@ -5841,17 +5746,17 @@ } }, "node_modules/cesium": { - "version": "1.130.0", - "resolved": "https://registry.npmjs.org/cesium/-/cesium-1.130.0.tgz", - "integrity": "sha512-OgmmjStUoRhLVA2YnMt6eK3p2vwePZ2dw4ukpze8cVdkUWlxM6rtboldOgZvg1LLnpeEpcGOB5h6+sNuT6a56w==", + "version": "1.131.0", + "resolved": "https://registry.npmjs.org/cesium/-/cesium-1.131.0.tgz", + "integrity": "sha512-4OVlpds2TR6elsHLfVAp5FOqxjNbvKA7Ff5n3yuwDBFKgYgc6JErbpBSjY31pBI2ZJSWhKLknCNjrTR8FlVTFg==", "license": "Apache-2.0", "workspaces": [ "packages/engine", "packages/widgets" ], "dependencies": { - "@cesium/engine": "^18.0.0", - "@cesium/widgets": "^12.1.0" + "@cesium/engine": "^18.3.0", + "@cesium/widgets": "^12.3.0" }, "engines": { "node": ">=20.19.0" @@ -5911,9 +5816,9 @@ } }, "node_modules/chromium-bidi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-5.1.0.tgz", - "integrity": "sha512-9MSRhWRVoRPDG0TgzkHrshFSJJNZzfY5UFqUMuksg7zL1yoZIZ3jLB0YAgHclbiAxPI86pBnwDX1tbzoiV8aFw==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-7.1.1.tgz", + "integrity": "sha512-L2BKQ0rSLADgbPMIdDh3wnYHs3EiUiMay2Sq0CTolheaADmWIf6Pe+T9LJRcnh5rcMz0U7MVk0cQVvKsGRMa1g==", "license": "Apache-2.0", "dependencies": { "mitt": "^3.0.1", @@ -6108,9 +6013,9 @@ } }, "node_modules/core-js": { - "version": "3.43.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.43.0.tgz", - "integrity": "sha512-N6wEbTTZSYOY2rYAn85CuvWWkCK6QweMn7/4Nr3w+gDBeBhk/x4EJeY6FPo4QzDoJZxVTv8U7CMvgWk6pOHHqA==", + "version": "3.44.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.44.0.tgz", + "integrity": "sha512-aFCtd4l6GvAXwVEh3XbbVqJGHDJt0OZRa+5ePGx3LLwi12WfexqQxcsohb2wgsa/92xtl19Hd66G/L+TaAxDMw==", "hasInstallScript": true, "license": "MIT", "funding": { @@ -6119,13 +6024,13 @@ } }, "node_modules/core-js-compat": { - "version": "3.43.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.43.0.tgz", - "integrity": "sha512-2GML2ZsCc5LR7hZYz4AXmjQw8zuy2T//2QntwdnpuYI7jteT6GVYJL7F6C2C57R7gSYrcqVW3lAALefdbhBLDA==", + "version": "3.44.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.44.0.tgz", + "integrity": "sha512-JepmAj2zfl6ogy34qfWtcE7nHKAJnKsQFRn++scjVS2bZFllwptzw61BZcZFYBPpUznLfAvh0LGhxKppk04ClA==", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.25.0" + "browserslist": "^4.25.1" }, "funding": { "type": "opencollective", @@ -6538,9 +6443,9 @@ } }, "node_modules/earcut": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/earcut/-/earcut-3.0.1.tgz", - "integrity": "sha512-0l1/0gOjESMeQyYaK5IDiPNvFeu93Z/cO0TjZh9eZ1vyCtZnA7KMZ8rQggpsJHIbGSdrqYq9OhuveadOVHCshw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-3.0.2.tgz", + "integrity": "sha512-X7hshQbLyMJ/3RPhyObLARM2sNxxmRALLKx1+NVFFnQ9gKzmCrxm9+uLIAdBcvc8FNLpctqlQ2V6AE92Ol9UDQ==", "license": "ISC" }, "node_modules/eastasianwidth": { @@ -6573,9 +6478,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.169", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.169.tgz", - "integrity": "sha512-q7SQx6mkLy0GTJK9K9OiWeaBMV4XQtBSdf6MJUzDB/H/5tFXfIiX38Lci1Kl6SsgiEhz1SQI1ejEOU5asWEhwQ==", + "version": "1.5.190", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.190.tgz", + "integrity": "sha512-k4McmnB2091YIsdCgkS0fMVMPOJgxl93ltFzaryXqwip1AaxeDqKCGLxkXODDA5Ab/D+tV5EL5+aTx76RvLRxw==", "dev": true, "license": "ISC" }, @@ -6595,9 +6500,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.18.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", - "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", + "version": "5.18.2", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.2.tgz", + "integrity": "sha512-6Jw4sE1maoRJo3q8MsSIn2onJFbLTOjY9hlx4DZXmOKvLRd1Ok2kXmAGXaafL2+ijsJZ1ClYbl/pmqr9+k4iUQ==", "dev": true, "license": "MIT", "dependencies": { @@ -6833,9 +6738,9 @@ } }, "node_modules/esbuild": { - "version": "0.25.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.5.tgz", - "integrity": "sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.8.tgz", + "integrity": "sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -6846,31 +6751,32 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.5", - "@esbuild/android-arm": "0.25.5", - "@esbuild/android-arm64": "0.25.5", - "@esbuild/android-x64": "0.25.5", - "@esbuild/darwin-arm64": "0.25.5", - "@esbuild/darwin-x64": "0.25.5", - "@esbuild/freebsd-arm64": "0.25.5", - "@esbuild/freebsd-x64": "0.25.5", - "@esbuild/linux-arm": "0.25.5", - "@esbuild/linux-arm64": "0.25.5", - "@esbuild/linux-ia32": "0.25.5", - "@esbuild/linux-loong64": "0.25.5", - "@esbuild/linux-mips64el": "0.25.5", - "@esbuild/linux-ppc64": "0.25.5", - "@esbuild/linux-riscv64": "0.25.5", - "@esbuild/linux-s390x": "0.25.5", - "@esbuild/linux-x64": "0.25.5", - "@esbuild/netbsd-arm64": "0.25.5", - "@esbuild/netbsd-x64": "0.25.5", - "@esbuild/openbsd-arm64": "0.25.5", - "@esbuild/openbsd-x64": "0.25.5", - "@esbuild/sunos-x64": "0.25.5", - "@esbuild/win32-arm64": "0.25.5", - "@esbuild/win32-ia32": "0.25.5", - "@esbuild/win32-x64": "0.25.5" + "@esbuild/aix-ppc64": "0.25.8", + "@esbuild/android-arm": "0.25.8", + "@esbuild/android-arm64": "0.25.8", + "@esbuild/android-x64": "0.25.8", + "@esbuild/darwin-arm64": "0.25.8", + "@esbuild/darwin-x64": "0.25.8", + "@esbuild/freebsd-arm64": "0.25.8", + "@esbuild/freebsd-x64": "0.25.8", + "@esbuild/linux-arm": "0.25.8", + "@esbuild/linux-arm64": "0.25.8", + "@esbuild/linux-ia32": "0.25.8", + "@esbuild/linux-loong64": "0.25.8", + "@esbuild/linux-mips64el": "0.25.8", + "@esbuild/linux-ppc64": "0.25.8", + "@esbuild/linux-riscv64": "0.25.8", + "@esbuild/linux-s390x": "0.25.8", + "@esbuild/linux-x64": "0.25.8", + "@esbuild/netbsd-arm64": "0.25.8", + "@esbuild/netbsd-x64": "0.25.8", + "@esbuild/openbsd-arm64": "0.25.8", + "@esbuild/openbsd-x64": "0.25.8", + "@esbuild/openharmony-arm64": "0.25.8", + "@esbuild/sunos-x64": "0.25.8", + "@esbuild/win32-arm64": "0.25.8", + "@esbuild/win32-ia32": "0.25.8", + "@esbuild/win32-x64": "0.25.8" } }, "node_modules/escalade": { @@ -6917,19 +6823,19 @@ } }, "node_modules/eslint": { - "version": "9.29.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.29.0.tgz", - "integrity": "sha512-GsGizj2Y1rCWDu6XoEekL3RLilp0voSePurjZIkxL3wlm5o5EC9VpgaP7lrCvjnkuLvzFBQWB3vWB3K5KQTveQ==", + "version": "9.31.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.31.0.tgz", + "integrity": "sha512-QldCVh/ztyKJJZLr4jXNUByx3gR+TDYZCRXEktiZoUR3PGy4qCmSbkxcIle8GEwGpb5JBZazlaJ/CxLidXdEbQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.20.1", - "@eslint/config-helpers": "^0.2.1", - "@eslint/core": "^0.14.0", + "@eslint/config-array": "^0.21.0", + "@eslint/config-helpers": "^0.3.0", + "@eslint/core": "^0.15.0", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.29.0", + "@eslint/js": "9.31.0", "@eslint/plugin-kit": "^0.3.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", @@ -6994,9 +6900,9 @@ } }, "node_modules/eslint-config-prettier": { - "version": "10.1.5", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.5.tgz", - "integrity": "sha512-zc1UmCpNltmVY34vuLRV61r1K27sWuX39E+uyUnY8xS2Bex88VV9cugG+UZbRSRGtGyFboj+D8JODyme1plMpw==", + "version": "10.1.8", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz", + "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", "dev": true, "license": "MIT", "bin": { @@ -7010,14 +6916,14 @@ } }, "node_modules/eslint-import-context": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eslint-import-context/-/eslint-import-context-0.1.8.tgz", - "integrity": "sha512-bq+F7nyc65sKpZGT09dY0S0QrOnQtuDVIfyTGQ8uuvtMIF7oHp6CEP3mouN0rrnYF3Jqo6Ke0BfU/5wASZue1w==", + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/eslint-import-context/-/eslint-import-context-0.1.9.tgz", + "integrity": "sha512-K9Hb+yRaGAGUbwjhFNHvSmmkZs9+zbuoe3kFQ4V1wYjrepUFYM2dZAfNtjbbj3qsPfUfsA68Bx/ICWQMi+C8Eg==", "dev": true, "license": "MIT", "dependencies": { "get-tsconfig": "^4.10.1", - "stable-hash-x": "^0.1.1" + "stable-hash-x": "^0.2.0" }, "engines": { "node": "^12.20.0 || ^14.18.0 || >=16.0.0" @@ -7092,21 +6998,21 @@ } }, "node_modules/eslint-plugin-import-x": { - "version": "4.15.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-import-x/-/eslint-plugin-import-x-4.15.2.tgz", - "integrity": "sha512-J5gx7sN6DTm0LRT//eP3rVVQ2Yi4hrX0B+DbWxa5er8PZ6JjLo9GUBwogIFvEDdwJaSqZplpQT+haK/cXhb7VQ==", + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import-x/-/eslint-plugin-import-x-4.16.1.tgz", + "integrity": "sha512-vPZZsiOKaBAIATpFE2uMI4w5IRwdv/FpQ+qZZMR4E+PeOcM4OeoEbqxRMnywdxP19TyB/3h6QBB0EWon7letSQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "^8.34.0", + "@typescript-eslint/types": "^8.35.0", "comment-parser": "^1.4.1", "debug": "^4.4.1", - "eslint-import-context": "^0.1.8", + "eslint-import-context": "^0.1.9", "is-glob": "^4.0.3", "minimatch": "^9.0.3 || ^10.0.1", "semver": "^7.7.2", - "stable-hash-x": "^0.1.1", - "unrs-resolver": "^1.9.0" + "stable-hash-x": "^0.2.0", + "unrs-resolver": "^1.9.2" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -7128,31 +7034,14 @@ } } }, - "node_modules/eslint-plugin-import-x/node_modules/minimatch": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz", - "integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==", - "dev": true, - "license": "ISC", - "dependencies": { - "@isaacs/brace-expansion": "^5.0.0" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/eslint-plugin-n": { - "version": "17.20.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.20.0.tgz", - "integrity": "sha512-IRSoatgB/NQJZG5EeTbv/iAx1byOGdbbyhQrNvWdCfTnmPxUT0ao9/eGOeG7ljD8wJBsxwE8f6tES5Db0FRKEw==", + "version": "17.21.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.21.0.tgz", + "integrity": "sha512-1+iZ8We4ZlwVMtb/DcHG3y5/bZOdazIpa/4TySo22MLKdwrLcfrX0hbadnCvykSQCCmkAnWmIP8jZVb2AAq29A==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.5.0", - "@typescript-eslint/utils": "^8.26.1", "enhanced-resolve": "^5.17.1", "eslint-plugin-es-x": "^7.8.0", "get-tsconfig": "^4.8.1", @@ -7164,22 +7053,12 @@ }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": ">=8.23.0" - } - }, - "node_modules/eslint-plugin-n/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": ">=8.23.0" } }, "node_modules/eslint-plugin-n/node_modules/globals": { @@ -7212,9 +7091,9 @@ } }, "node_modules/eslint-plugin-prettier": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.0.tgz", - "integrity": "sha512-8qsOYwkkGrahrgoUv76NZi23koqXOGiiEzXMrT8Q7VcYaUISR+5MorIUxfWqYXN0fN/31WbSrxCxFkVQ43wwrA==", + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.3.tgz", + "integrity": "sha512-NAdMYww51ehKfDyDhv59/eIItUVzU0Io9H2E8nHNGKEeeqlnci+1gCvrHib6EmZdf6GxF+LCV5K7UC65Ezvw7w==", "dev": true, "license": "MIT", "dependencies": { @@ -7294,6 +7173,30 @@ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" } }, + "node_modules/eslint-plugin-react/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint-plugin-react/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/eslint-plugin-react/node_modules/resolve": { "version": "2.0.0-next.5", "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", @@ -7334,9 +7237,9 @@ } }, "node_modules/eslint-plugin-vue": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-10.2.0.tgz", - "integrity": "sha512-tl9s+KN3z0hN2b8fV2xSs5ytGl7Esk1oSCxULLwFcdaElhZ8btYYZFrWxvh4En+czrSDtuLCeCOGa8HhEZuBdQ==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-10.3.0.tgz", + "integrity": "sha512-A0u9snqjCfYaPnqqOaH6MBLVWDUIN4trXn8J3x67uDcXvR7X6Ut8p16N+nYhMCQ9Y7edg2BIRGzfyZsY0IdqoQ==", "dev": true, "license": "MIT", "dependencies": { @@ -7351,8 +7254,14 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "peerDependencies": { + "@typescript-eslint/parser": "^7.0.0 || ^8.0.0", "eslint": "^8.57.0 || ^9.0.0", "vue-eslint-parser": "^10.0.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/parser": { + "optional": true + } } }, "node_modules/eslint-plugin-vue-pug": { @@ -7398,6 +7307,57 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint/node_modules/@eslint/core": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.1.tgz", + "integrity": "sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/eslint/node_modules/@eslint/plugin-kit": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.4.tgz", + "integrity": "sha512-Ul5l+lHEcw3L5+k8POx6r74mxEYKG5kOb6Xpy2gCRW6zweT6TEhAf8vhxGgjhqrd/VO/Dirhsb+1hNpD1ue9hw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.15.1", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/esm": { "version": "3.2.25", "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", @@ -7669,16 +7629,6 @@ "minimatch": "^5.0.1" } }, - "node_modules/filelist/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, "node_modules/filelist/node_modules/minimatch": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", @@ -7821,9 +7771,9 @@ } }, "node_modules/form-data": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.3.tgz", - "integrity": "sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", + "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", "dev": true, "license": "MIT", "dependencies": { @@ -7952,12 +7902,6 @@ "node": ">=6.9.0" } }, - "node_modules/geographiclib-geodesic": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/geographiclib-geodesic/-/geographiclib-geodesic-2.1.1.tgz", - "integrity": "sha512-lkd8EUkPSByobWu9BPMHTdYA5AUZxOa8McmUNtBE9KrvUJEvSADnN6gTDmhXbi6NzdA16LtWLpSxLE/lIIRhyA==", - "license": "MIT" - }, "node_modules/geotiff": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/geotiff/-/geotiff-2.1.3.tgz", @@ -8150,9 +8094,9 @@ } }, "node_modules/globals": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-16.2.0.tgz", - "integrity": "sha512-O+7l9tPdHCU320IigZZPj5zmRCFG9xHmx9cU8FqU2Rp+JN714seHV+2S9+JslCpY4gJwU2vOGox0wzgae/MCEg==", + "version": "16.3.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.3.0.tgz", + "integrity": "sha512-bqWEnJ1Nt3neqx2q5SFfGS8r/ahumIakg3HcwtNlrVlwXIeNumWn/c7Pn/wKzGhf6SaW6H6uWXLqC30STCMchQ==", "dev": true, "license": "MIT", "engines": { @@ -8364,9 +8308,9 @@ } }, "node_modules/i18next": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-25.2.1.tgz", - "integrity": "sha512-+UoXK5wh+VlE1Zy5p6MjcvctHXAhRwQKCxiJD8noKZzIXmnAX8gdHX5fLPA3MEVxEN4vbZkQFy8N0LyD9tUqPw==", + "version": "25.3.2", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-25.3.2.tgz", + "integrity": "sha512-JSnbZDxRVbphc5jiptxr3o2zocy5dEqpVm9qCGdJwRNO+9saUJS0/u4LnM/13C23fUEWxAylPqKU/NpMV/IjqA==", "funding": [ { "type": "individual", @@ -8383,7 +8327,7 @@ ], "license": "MIT", "dependencies": { - "@babel/runtime": "^7.27.1" + "@babel/runtime": "^7.27.6" }, "peerDependencies": { "typescript": "^5" @@ -9091,6 +9035,30 @@ "node": ">=10" } }, + "node_modules/jake/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/jake/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/jest-diff": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", @@ -9272,9 +9240,9 @@ } }, "node_modules/ktx-parse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ktx-parse/-/ktx-parse-1.0.0.tgz", - "integrity": "sha512-Z31kVizz4DF/6vo9YiSYVBhuXAfyQy9bGxlW3+mB5OELoZjfXVZQpRoctsx8IEDKxBd6SagXKo7qRvu38i8Jfg==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ktx-parse/-/ktx-parse-1.0.1.tgz", + "integrity": "sha512-djwUWv/82Xc8LOVinJU4EBrVqYkO8OsUDSPEtY/OOVY8BSe3DMU7D7PlIAZ0pI7ZZtErj7mqpJcgffUTABvgaA==", "license": "MIT" }, "node_modules/lerc": { @@ -9317,9 +9285,9 @@ } }, "node_modules/lit": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lit/-/lit-3.3.0.tgz", - "integrity": "sha512-DGVsqsOIHBww2DqnuZzW7QsuCdahp50ojuDaBPC7jUDRpYoH0z7kHBBYZewRzer75FwtrkmkKk7iOAwSaWdBmw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/lit/-/lit-3.3.1.tgz", + "integrity": "sha512-Ksr/8L3PTapbdXJCk+EJVB78jDodUMaP54gD24W186zGRARvwrsPfS60wae/SSCTCNZVPd1chXqio1qHQmu4NA==", "license": "BSD-3-Clause", "dependencies": { "@lit/reactive-element": "^2.1.0", @@ -9328,20 +9296,20 @@ } }, "node_modules/lit-element": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.2.0.tgz", - "integrity": "sha512-MGrXJVAI5x+Bfth/pU9Kst1iWID6GHDLEzFEnyULB/sFiRLgkd8NPK/PeeXxktA3T6EIIaq8U3KcbTU5XFcP2Q==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.2.1.tgz", + "integrity": "sha512-WGAWRGzirAgyphK2urmYOV72tlvnxw7YfyLDgQ+OZnM9vQQBQnumQ7jUJe6unEzwGU3ahFOjuz1iz1jjrpCPuw==", "license": "BSD-3-Clause", "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.2.0", + "@lit-labs/ssr-dom-shim": "^1.4.0", "@lit/reactive-element": "^2.1.0", "lit-html": "^3.3.0" } }, "node_modules/lit-html": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.3.0.tgz", - "integrity": "sha512-RHoswrFAxY2d8Cf2mm4OZ1DgzCoBKUKSPvA1fhtSELxUERq2aQQ2h05pO9j81gS1o7RIRJ+CePLogfyahwmynw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.3.1.tgz", + "integrity": "sha512-S9hbyDu/vs1qNrithiNyeyv64c9yqiW9l+DBgI18fL+MTvOtWoFR0FWiyq1TxaYef5wNlpEmzlXoBlZEO+WjoA==", "license": "BSD-3-Clause", "dependencies": { "@types/trusted-types": "^2.0.2" @@ -9363,13 +9331,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true, - "license": "MIT" - }, "node_modules/lodash-es": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", @@ -9779,9 +9740,9 @@ "license": "MIT" }, "node_modules/meshoptimizer": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/meshoptimizer/-/meshoptimizer-0.23.0.tgz", - "integrity": "sha512-zAZcfhHE3wBbwEN8MfCMI9PKRyOpz8491wcR2dxkv3IlNwDZrq2hEs5JZVtzfBrmjWhBZZtZZUO0OBSNFq5iUQ==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/meshoptimizer/-/meshoptimizer-0.24.0.tgz", + "integrity": "sha512-Iq/8cM5cK2B0P0QdKHexr30zEJn5sQxjXKtQJGp6LO7r1VUPwhgxau18pvybVDnEDsKE49GdlJYwqPX9A/P9Sw==", "license": "MIT" }, "node_modules/mgrs": { @@ -10459,16 +10420,19 @@ } }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, "license": "ISC", "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "*" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/minimist": { @@ -10521,9 +10485,9 @@ } }, "node_modules/napi-postinstall": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.2.4.tgz", - "integrity": "sha512-ZEzHJwBhZ8qQSbknHqYcdtQVr8zUgGyM/q6h6qAyhtyVMNrSgDhrC4disf03dYW0e+czXyLnZINnCTEkWy0eJg==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.2.tgz", + "integrity": "sha512-tWVJxJHmBWLy69PvO96TZMZDrzmw5KeiZBz3RHmiM2XZ9grBJ2WgMAFVVg25nqp3ZjTFUs2Ftw1JhscL3Teliw==", "dev": true, "license": "MIT", "bin": { @@ -10544,23 +10508,23 @@ "license": "MIT" }, "node_modules/neostandard": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/neostandard/-/neostandard-0.12.1.tgz", - "integrity": "sha512-As/LDK+xx591BLb1rPRaPs+JfXFgyNx5BoBui1KBeF/J4s0mW8+NBohrYnMfgm1w1t7E/Y/tU34MjMiP6lns6A==", + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/neostandard/-/neostandard-0.12.2.tgz", + "integrity": "sha512-VZU8EZpSaNadp3rKEwBhVD1Kw8jE3AftQLkCyOaM7bWemL1LwsYRsBnAmXy2LjG9zO8t66qJdqB7ccwwORyrAg==", "dev": true, "license": "MIT", "dependencies": { "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", "@stylistic/eslint-plugin": "2.11.0", - "eslint-import-resolver-typescript": "^3.7.0", - "eslint-plugin-import-x": "^4.5.0", - "eslint-plugin-n": "^17.14.0", + "eslint-import-resolver-typescript": "^3.10.1", + "eslint-plugin-import-x": "^4.16.1", + "eslint-plugin-n": "^17.20.0", "eslint-plugin-promise": "^7.2.1", - "eslint-plugin-react": "^7.37.2", + "eslint-plugin-react": "^7.37.5", "find-up": "^5.0.0", - "globals": "^15.13.0", + "globals": "^15.15.0", "peowly": "^1.3.2", - "typescript-eslint": "^8.17.0" + "typescript-eslint": "^8.35.1" }, "bin": { "neostandard": "cli.mjs" @@ -10737,62 +10701,6 @@ } } }, - "node_modules/nx/node_modules/@napi-rs/wasm-runtime": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.4.tgz", - "integrity": "sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@emnapi/core": "^1.1.0", - "@emnapi/runtime": "^1.1.0", - "@tybys/wasm-util": "^0.9.0" - } - }, - "node_modules/nx/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/nx/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/nx/node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -10995,6 +10903,24 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/optionator": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", @@ -11321,9 +11247,9 @@ } }, "node_modules/postcss": { - "version": "8.5.5", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.5.tgz", - "integrity": "sha512-d/jtm+rdNT8tpXuHY5MMtcbJFBkhXE6593XVR9UoGCH8jSFGci7jGvMGH5RYd5PBJW+00NZQt6gf7CbagJCrhg==", + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", "funding": [ { "type": "opencollective", @@ -11373,9 +11299,9 @@ } }, "node_modules/prettier": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", - "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz", + "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", "dev": true, "license": "MIT", "bin": { @@ -11429,12 +11355,14 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/pretty-format/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" + "node_modules/prismjs": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", + "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", + "license": "MIT", + "engines": { + "node": ">=6" + } }, "node_modules/proc-log": { "version": "3.0.0", @@ -11456,14 +11384,16 @@ } }, "node_modules/proj4": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/proj4/-/proj4-2.17.0.tgz", - "integrity": "sha512-BqVoruVAOUgkw5U9Ns76+E2nHZG0Y42tbkC+0BpyqjhwPIai29hoivyQoyelEKFSfaV3zkR3NqPRD0EwPM4Wug==", + "version": "2.19.7", + "resolved": "https://registry.npmjs.org/proj4/-/proj4-2.19.7.tgz", + "integrity": "sha512-1YdHp6/MyGh6s0T1zCwGnOUiah/ov/8HJYkHMXHD8YuUTpkbo82OuCSivSs4ydCIODZVico5QVTTXi5yoDkMZA==", "license": "MIT", "dependencies": { - "geographiclib-geodesic": "^2.1.1", "mgrs": "1.0.0", "wkt-parser": "^1.5.1" + }, + "funding": { + "url": "https://github.com/sponsors/ahocevar" } }, "node_modules/promise": { @@ -11487,6 +11417,13 @@ "react-is": "^16.13.1" } }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true, + "license": "MIT" + }, "node_modules/protobufjs": { "version": "7.5.3", "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.3.tgz", @@ -11705,17 +11642,17 @@ } }, "node_modules/puppeteer": { - "version": "24.12.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-24.12.0.tgz", - "integrity": "sha512-MJtM71qex8h03bDBZTyPfSC7tfvDLILnWWl4rNdo3+HODiFZX+3yj/qLVwVu/gXoxQ7U8dNDKyFz4e8VBHdcmw==", + "version": "24.14.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-24.14.0.tgz", + "integrity": "sha512-GB7suRDkp9pUnxpNGAORICQCtw11KFbg6U2iJXVTflzJLK5D1qzq8xOOmLgN/QnDBpDMdpn96ri52XkuN83Giw==", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "@puppeteer/browsers": "2.10.5", - "chromium-bidi": "5.1.0", + "@puppeteer/browsers": "2.10.6", + "chromium-bidi": "7.1.1", "cosmiconfig": "^9.0.0", "devtools-protocol": "0.0.1464554", - "puppeteer-core": "24.12.0", + "puppeteer-core": "24.14.0", "typed-query-selector": "^2.12.0" }, "bin": { @@ -11726,13 +11663,13 @@ } }, "node_modules/puppeteer-core": { - "version": "24.12.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.12.0.tgz", - "integrity": "sha512-VrPXPho5Q90Ao86FwJVb+JeAF2Tf41wOTGg8k2SyQJePiJ6hJ5iujYpmP+bmhlb6o+J26bQYRDPOYXP7ALWcxQ==", + "version": "24.14.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.14.0.tgz", + "integrity": "sha512-NO9XpCl+i8oB0zJp81iPhzMo2QK8/JTj4ramSvTpGCo9CPCNo4AZ8qVOGpSgXzlcOfOT3VHOkzTfPo08GOE5jA==", "license": "Apache-2.0", "dependencies": { - "@puppeteer/browsers": "2.10.5", - "chromium-bidi": "5.1.0", + "@puppeteer/browsers": "2.10.6", + "chromium-bidi": "7.1.1", "debug": "^4.4.1", "devtools-protocol": "0.0.1464554", "typed-query-selector": "^2.12.0", @@ -11829,9 +11766,9 @@ } }, "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true, "license": "MIT" }, @@ -12123,13 +12060,13 @@ } }, "node_modules/rollup": { - "version": "4.43.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.43.0.tgz", - "integrity": "sha512-wdN2Kd3Twh8MAEOEJZsuxuLKCsBEo4PVNLK6tQWAn10VhsVewQLzcucMgLolRlhFybGxfclbPeEYBaP6RvUFGg==", + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.45.1.tgz", + "integrity": "sha512-4iya7Jb76fVpQyLoiVpzUrsjQ12r3dM7fIVz+4NwoYvZOShknRmiv+iu9CClZml5ZLGb0XMcYLutK6w9tgxHDw==", "dev": true, "license": "MIT", "dependencies": { - "@types/estree": "1.0.7" + "@types/estree": "1.0.8" }, "bin": { "rollup": "dist/bin/rollup" @@ -12139,36 +12076,29 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.43.0", - "@rollup/rollup-android-arm64": "4.43.0", - "@rollup/rollup-darwin-arm64": "4.43.0", - "@rollup/rollup-darwin-x64": "4.43.0", - "@rollup/rollup-freebsd-arm64": "4.43.0", - "@rollup/rollup-freebsd-x64": "4.43.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.43.0", - "@rollup/rollup-linux-arm-musleabihf": "4.43.0", - "@rollup/rollup-linux-arm64-gnu": "4.43.0", - "@rollup/rollup-linux-arm64-musl": "4.43.0", - "@rollup/rollup-linux-loongarch64-gnu": "4.43.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.43.0", - "@rollup/rollup-linux-riscv64-gnu": "4.43.0", - "@rollup/rollup-linux-riscv64-musl": "4.43.0", - "@rollup/rollup-linux-s390x-gnu": "4.43.0", - "@rollup/rollup-linux-x64-gnu": "4.43.0", - "@rollup/rollup-linux-x64-musl": "4.43.0", - "@rollup/rollup-win32-arm64-msvc": "4.43.0", - "@rollup/rollup-win32-ia32-msvc": "4.43.0", - "@rollup/rollup-win32-x64-msvc": "4.43.0", + "@rollup/rollup-android-arm-eabi": "4.45.1", + "@rollup/rollup-android-arm64": "4.45.1", + "@rollup/rollup-darwin-arm64": "4.45.1", + "@rollup/rollup-darwin-x64": "4.45.1", + "@rollup/rollup-freebsd-arm64": "4.45.1", + "@rollup/rollup-freebsd-x64": "4.45.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.45.1", + "@rollup/rollup-linux-arm-musleabihf": "4.45.1", + "@rollup/rollup-linux-arm64-gnu": "4.45.1", + "@rollup/rollup-linux-arm64-musl": "4.45.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.45.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.45.1", + "@rollup/rollup-linux-riscv64-gnu": "4.45.1", + "@rollup/rollup-linux-riscv64-musl": "4.45.1", + "@rollup/rollup-linux-s390x-gnu": "4.45.1", + "@rollup/rollup-linux-x64-gnu": "4.45.1", + "@rollup/rollup-linux-x64-musl": "4.45.1", + "@rollup/rollup-win32-arm64-msvc": "4.45.1", + "@rollup/rollup-win32-ia32-msvc": "4.45.1", + "@rollup/rollup-win32-x64-msvc": "4.45.1", "fsevents": "~2.3.2" } }, - "node_modules/rollup/node_modules/@types/estree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", - "dev": true, - "license": "MIT" - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -12487,9 +12417,9 @@ } }, "node_modules/socks": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.5.tgz", - "integrity": "sha512-iF+tNDQla22geJdTyJB1wM/qrX9DMRwWrciEPwWLPRWAUEM8sQiyxgckLxWT1f7+9VabJS0jTGGr4QgBuvi6Ww==", + "version": "2.8.6", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.6.tgz", + "integrity": "sha512-pe4Y2yzru68lXCb38aAqRf5gvN8YdjP1lok5o0J7BOHljkyCGKVz7H3vpVIXKD27rj2giOJ7DwVyk/GWrPHDWA==", "license": "MIT", "dependencies": { "ip-address": "^9.0.5", @@ -12596,9 +12526,9 @@ "license": "MIT" }, "node_modules/stable-hash-x": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/stable-hash-x/-/stable-hash-x-0.1.1.tgz", - "integrity": "sha512-l0x1D6vhnsNUGPFVDx45eif0y6eedVC8nm5uACTrVFJFtl2mLRW17aWtVyxFCpn5t94VUPkjU8vSLwIuwwqtJQ==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/stable-hash-x/-/stable-hash-x-0.2.0.tgz", + "integrity": "sha512-o3yWv49B/o4QZk5ZcsALc6t0+eCelPc44zZsLtCQnZPDwFpDYSWcDnrv2TtMmMbQ7uKo3J0HTURCqckw23czNQ==", "dev": true, "license": "MIT", "engines": { @@ -12868,13 +12798,13 @@ } }, "node_modules/synckit": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.8.tgz", - "integrity": "sha512-+XZ+r1XGIJGeQk3VvXhT6xx/VpbHsRzsTkGgF6E5RX9TTXD0118l87puaEBZ566FhqblC6U0d4XnubznJDm30A==", + "version": "0.11.11", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.11.tgz", + "integrity": "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==", "dev": true, "license": "MIT", "dependencies": { - "@pkgr/core": "^0.2.4" + "@pkgr/core": "^0.2.9" }, "engines": { "node": "^14.18.0 || >=16.0.0" @@ -13210,15 +13140,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.34.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.34.0.tgz", - "integrity": "sha512-MRpfN7uYjTrTGigFCt8sRyNqJFhjN0WwZecldaqhWm+wy0gaRt8Edb/3cuUy0zdq2opJWT6iXINKAtewnDOltQ==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.38.0.tgz", + "integrity": "sha512-FsZlrYK6bPDGoLeZRuvx2v6qrM03I0U0SnfCLPs/XCCPCFD80xU9Pg09H/K+XFa68uJuZo7l/Xhs+eDRg2l3hg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.34.0", - "@typescript-eslint/parser": "8.34.0", - "@typescript-eslint/utils": "8.34.0" + "@typescript-eslint/eslint-plugin": "8.38.0", + "@typescript-eslint/parser": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.0", + "@typescript-eslint/utils": "8.38.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -13367,38 +13298,38 @@ } }, "node_modules/unrs-resolver": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.9.0.tgz", - "integrity": "sha512-wqaRu4UnzBD2ABTC1kLfBjAqIDZ5YUTr/MLGa7By47JV1bJDSW7jq/ZSLigB7enLe7ubNaJhtnBXgrc/50cEhg==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz", + "integrity": "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==", "dev": true, "hasInstallScript": true, "license": "MIT", "dependencies": { - "napi-postinstall": "^0.2.2" + "napi-postinstall": "^0.3.0" }, "funding": { "url": "https://opencollective.com/unrs-resolver" }, "optionalDependencies": { - "@unrs/resolver-binding-android-arm-eabi": "1.9.0", - "@unrs/resolver-binding-android-arm64": "1.9.0", - "@unrs/resolver-binding-darwin-arm64": "1.9.0", - "@unrs/resolver-binding-darwin-x64": "1.9.0", - "@unrs/resolver-binding-freebsd-x64": "1.9.0", - "@unrs/resolver-binding-linux-arm-gnueabihf": "1.9.0", - "@unrs/resolver-binding-linux-arm-musleabihf": "1.9.0", - "@unrs/resolver-binding-linux-arm64-gnu": "1.9.0", - "@unrs/resolver-binding-linux-arm64-musl": "1.9.0", - "@unrs/resolver-binding-linux-ppc64-gnu": "1.9.0", - "@unrs/resolver-binding-linux-riscv64-gnu": "1.9.0", - "@unrs/resolver-binding-linux-riscv64-musl": "1.9.0", - "@unrs/resolver-binding-linux-s390x-gnu": "1.9.0", - "@unrs/resolver-binding-linux-x64-gnu": "1.9.0", - "@unrs/resolver-binding-linux-x64-musl": "1.9.0", - "@unrs/resolver-binding-wasm32-wasi": "1.9.0", - "@unrs/resolver-binding-win32-arm64-msvc": "1.9.0", - "@unrs/resolver-binding-win32-ia32-msvc": "1.9.0", - "@unrs/resolver-binding-win32-x64-msvc": "1.9.0" + "@unrs/resolver-binding-android-arm-eabi": "1.11.1", + "@unrs/resolver-binding-android-arm64": "1.11.1", + "@unrs/resolver-binding-darwin-arm64": "1.11.1", + "@unrs/resolver-binding-darwin-x64": "1.11.1", + "@unrs/resolver-binding-freebsd-x64": "1.11.1", + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1", + "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1", + "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-arm64-musl": "1.11.1", + "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1", + "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1", + "@unrs/resolver-binding-linux-x64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-x64-musl": "1.11.1", + "@unrs/resolver-binding-wasm32-wasi": "1.11.1", + "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1", + "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1", + "@unrs/resolver-binding-win32-x64-msvc": "1.11.1" } }, "node_modules/update-browserslist-db": { @@ -13575,16 +13506,16 @@ } }, "node_modules/vue": { - "version": "3.5.16", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.16.tgz", - "integrity": "sha512-rjOV2ecxMd5SiAmof2xzh2WxntRcigkX/He4YFJ6WdRvVUrbt6DxC1Iujh10XLl8xCDRDtGKMeO3D+pRQ1PP9w==", + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.18.tgz", + "integrity": "sha512-7W4Y4ZbMiQ3SEo+m9lnoNpV9xG7QVMLa+/0RFwwiAVkeYoyGXqWE85jabU4pllJNUzqfLShJ5YLptewhCWUgNA==", "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.5.16", - "@vue/compiler-sfc": "3.5.16", - "@vue/runtime-dom": "3.5.16", - "@vue/server-renderer": "3.5.16", - "@vue/shared": "3.5.16" + "@vue/compiler-dom": "3.5.18", + "@vue/compiler-sfc": "3.5.18", + "@vue/runtime-dom": "3.5.18", + "@vue/server-renderer": "3.5.18", + "@vue/shared": "3.5.18" }, "peerDependencies": { "typescript": "*" @@ -13596,9 +13527,9 @@ } }, "node_modules/vue-eslint-parser": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-10.1.3.tgz", - "integrity": "sha512-dbCBnd2e02dYWsXoqX5yKUZlOt+ExIpq7hmHKPb5ZqKcjf++Eo0hMseFTZMLKThrUk61m+Uv6A2YSBve6ZvuDQ==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-10.2.0.tgz", + "integrity": "sha512-CydUvFOQKD928UzZhTp4pr2vWz1L+H99t7Pkln2QSPdvmURT0MoC4wUccfCnuEaihNsu9aYYyk+bep8rlfkUXw==", "dev": true, "license": "MIT", "dependencies": { @@ -13607,7 +13538,6 @@ "eslint-visitor-keys": "^4.2.0", "espree": "^10.3.0", "esquery": "^1.6.0", - "lodash": "^4.17.21", "semver": "^7.6.3" }, "engines": { @@ -14007,14 +13937,6 @@ "@polar/polar": "*" } }, - "packages/clients/snowbox-nested-kolibri": { - "name": "@polar/client-snowbox-nested-kolibri", - "extraneous": true, - "license": "EUPL-1.2", - "devDependencies": { - "@polar/core": "*" - } - }, "packages/clients/snowbox-prod": { "name": "@polar/client-snowbox-prod", "license": "EUPL-1.2", @@ -14026,27 +13948,6 @@ "@polar/polar": "*" } }, - "packages/core": { - "name": "@polar/core-new", - "version": "3.2.0", - "extraneous": true, - "license": "EUPL-1.2", - "dependencies": { - "@masterportal/masterportalapi": "2.48.0", - "@public-ui/components": "^3.0.0", - "@public-ui/themes": "^3.0.0", - "@public-ui/vue": "^3.0.0", - "i18next": "^25.2.1", - "i18next-browser-languagedetector": "^8.2.0", - "i18next-vue": "^5.3.0", - "pinia": "^3.0.3", - "pug": "^3.0.3", - "vue": "^3.5.16" - }, - "peerDependencies": { - "ol": "10.4.0" - } - }, "packages/polar": { "name": "@polar/polar", "version": "0.1.0", From 236281aa83b90dcf3eef7959d460448be7f5df64 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Wed, 23 Jul 2025 11:15:34 +0200 Subject: [PATCH 089/697] Remove legacy loadKoliBri util --- packages/polar/core/src/utils/loadKoliBri.ts | 16 ---------------- 1 file changed, 16 deletions(-) delete mode 100644 packages/polar/core/src/utils/loadKoliBri.ts diff --git a/packages/polar/core/src/utils/loadKoliBri.ts b/packages/polar/core/src/utils/loadKoliBri.ts deleted file mode 100644 index 20dcbedf0..000000000 --- a/packages/polar/core/src/utils/loadKoliBri.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { defineCustomElements } from '@public-ui/components/dist/loader' -import { register } from '@public-ui/components' -import { setTagNameTransformer } from '@public-ui/vue' -import { DEFAULT } from '@public-ui/themes' - -export async function loadKoliBri (tagPrefix: string) { - const kolibriOptions = { - transformTagName: (tagName: string) => `${tagPrefix}-${tagName}`, - } - setTagNameTransformer(kolibriOptions.transformTagName) - await register( - DEFAULT, - args => defineCustomElements(args, kolibriOptions), - kolibriOptions - ) -} From e738bd1c92a3a2756e03952c16489853be25e1b4 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Wed, 23 Jul 2025 12:22:48 +0200 Subject: [PATCH 090/697] Prohibit CE attributes passthrough --- packages/polar/core/src/components/PolarMap.ce.vue | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/polar/core/src/components/PolarMap.ce.vue b/packages/polar/core/src/components/PolarMap.ce.vue index 52f8da92f..bf1670238 100644 --- a/packages/polar/core/src/components/PolarMap.ce.vue +++ b/packages/polar/core/src/components/PolarMap.ce.vue @@ -46,6 +46,10 @@ import { mapZoomOffset } from '../utils/mapZoomOffset' import { type MasterportalApiConfiguration } from '../types' import PolarUi from './PolarUI.ce.vue' +defineOptions({ + inheritAttrs: false, +}) + const isMacOS = navigator.userAgent.indexOf('Mac') !== -1 const coreStore = useCoreStore() From c1c5467e15a1d68dc08826b356c1e95bed85f8e2 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Wed, 23 Jul 2025 12:22:18 +0200 Subject: [PATCH 091/697] Allow KERN theming --- .../polar/core/src/components/PolarMap.ce.vue | 22 ++-------------- packages/polar/core/src/utils/loadKern.ts | 26 +++++++++++++++++++ 2 files changed, 28 insertions(+), 20 deletions(-) create mode 100644 packages/polar/core/src/utils/loadKern.ts diff --git a/packages/polar/core/src/components/PolarMap.ce.vue b/packages/polar/core/src/components/PolarMap.ce.vue index bf1670238..e9920d9ef 100644 --- a/packages/polar/core/src/components/PolarMap.ce.vue +++ b/packages/polar/core/src/components/PolarMap.ce.vue @@ -43,6 +43,7 @@ import { } from 'vue' import { useCoreStore } from '../stores/useCoreStore' import { mapZoomOffset } from '../utils/mapZoomOffset' +import { loadKern } from '../utils/loadKern' import { type MasterportalApiConfiguration } from '../types' import PolarUi from './PolarUI.ce.vue' @@ -67,25 +68,6 @@ const polarWrapper = useTemplateRef('polar-wrapper') let resizeObserver: ResizeObserver | null = null -async function loadKern() { - // TODO: HMR is broken, getting the following error: TypeError: can't access property "innerText", kernStyle is null - const externalStyle = document.getElementById('kern-styles') - if (externalStyle) { - externalStyle.id = 'polar-kern-styles' - } - - await import('@kern-ux-annex/webc') - const kernStyle = document.getElementById('kern-styles') - const kernSheet = new CSSStyleSheet() - kernSheet.replaceSync(kernStyle.innerText.replaceAll(':root', ':host')) - polarWrapper.value.parentNode.adoptedStyleSheets = [kernSheet] - kernStyle.remove() - - if (externalStyle) { - externalStyle.id = 'kern-styles' - } -} - function createMap() { const map = api.map.createMap( { @@ -165,7 +147,7 @@ function setup() { } onMounted(async () => { - await loadKern() + await loadKern(polarWrapper.value.parentNode) if (Array.isArray(coreStore.serviceRegister)) { setup() return diff --git a/packages/polar/core/src/utils/loadKern.ts b/packages/polar/core/src/utils/loadKern.ts new file mode 100644 index 000000000..60895a989 --- /dev/null +++ b/packages/polar/core/src/utils/loadKern.ts @@ -0,0 +1,26 @@ +const theme = { + color: { + }, +} + +export async function loadKern(host: ShadowRoot) { + const externalStyle = document.getElementById('kern-styles') + if (externalStyle) { + externalStyle.id = 'polar-kern-styles' + } + + const { applyKernTheme } = await import('@kern-ux-annex/webc') + applyKernTheme({ theme }, host.querySelector('.polar-wrapper')) + + const kernStyle = document.getElementById('kern-styles') + if (kernStyle) { + const kernSheet = new CSSStyleSheet() + kernSheet.replaceSync(kernStyle.innerText.replaceAll(':root', ':host')) + host.adoptedStyleSheets = [kernSheet] + kernStyle.remove() + } + + if (externalStyle) { + externalStyle.id = 'kern-styles' + } +} From 3943bac2959c929327ec91ea406525d9bc31220c Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Thu, 24 Jul 2025 16:45:58 +0200 Subject: [PATCH 092/697] Remove already fixed todo --- packages/polar/core/src/components/PolarMap.ce.vue | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/polar/core/src/components/PolarMap.ce.vue b/packages/polar/core/src/components/PolarMap.ce.vue index 52f8da92f..f89e5fef4 100644 --- a/packages/polar/core/src/components/PolarMap.ce.vue +++ b/packages/polar/core/src/components/PolarMap.ce.vue @@ -209,7 +209,6 @@ function demo() { display: flex; justify-content: center; align-items: center; - /* TODO(dopenguin): Currently too large, spanning more than the map div */ width: inherit; height: inherit; z-index: 42; From 6e040d5e0ec1df799b04399863261424912c8c75 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Thu, 24 Jul 2025 16:46:26 +0200 Subject: [PATCH 093/697] Implement markers formerly known as extendedMasterportalapiMarkers --- packages/clients/snowbox/src/index.html | 2 +- packages/clients/snowbox/src/snowbox.js | 46 ++- .../polar/core/src/components/PolarMap.ce.vue | 6 + packages/polar/core/src/index.ts | 11 +- .../polar/core/src/stores/useMarkerStore.ts | 381 ++++++++++++++++++ packages/polar/core/src/types.ts | 49 +++ packages/polar/core/src/utils/markers.ts | 60 +-- .../core/src/components/MapContainer.vue | 17 +- .../core/src/utils/addClusterStyle.ts | 28 -- .../core/src/utils/resolveClusterClick.ts | 16 - .../index.ts | 219 ---------- .../setLayerId.ts | 33 -- vue2/packages/core/src/vuePlugins/vuex.ts | 42 +- vue2/packages/types/custom/core.ts | 41 -- 14 files changed, 504 insertions(+), 447 deletions(-) create mode 100644 packages/polar/core/src/stores/useMarkerStore.ts delete mode 100644 vue2/packages/core/src/utils/addClusterStyle.ts delete mode 100644 vue2/packages/core/src/utils/resolveClusterClick.ts delete mode 100644 vue2/packages/core/src/vuePlugins/actions/useExtendedMasterportalapiMarkers/index.ts delete mode 100644 vue2/packages/core/src/vuePlugins/actions/useExtendedMasterportalapiMarkers/setLayerId.ts diff --git a/packages/clients/snowbox/src/index.html b/packages/clients/snowbox/src/index.html index 44a8244ed..82182c00f 100644 --- a/packages/clients/snowbox/src/index.html +++ b/packages/clients/snowbox/src/index.html @@ -25,7 +25,7 @@

POLAR map client

- Current client width: px + Coordinates of currently selected feature:

Demo application ("Snowbox")

diff --git a/packages/clients/snowbox/src/snowbox.js b/packages/clients/snowbox/src/snowbox.js index ed38f1886..b771bfe6a 100644 --- a/packages/clients/snowbox/src/snowbox.js +++ b/packages/clients/snowbox/src/snowbox.js @@ -8,6 +8,18 @@ import { const basemapId = '23420' const basemapGreyId = '23421' +const reports = '6059' + +// arbitrary condition for testing +const isEvenId = (mmlid) => Number(mmlid.slice(-1)) % 2 === 0 + +const isReportSelectable = (feature) => + feature + .get('features') + .reduce( + (accumulator, current) => isEvenId(current.get('mmlid')) || accumulator, + false + ) await createMap( { @@ -23,7 +35,34 @@ await createMap( type: 'background', name: 'snowbox.layers.basemapGrey', }, + { + id: reports, + type: 'mask', + name: 'snowbox.layers.reports', + visibility: true, + }, ], + markers: { + layers: [reports], + defaultStyle: { + stroke: '#FFFFFF', + fill: '#005CA9', + }, + hoverStyle: { + stroke: '#46688E', + fill: '#8BA1B8', + }, + selectionStyle: { + stroke: '#FFFFFF', + fill: '#E10019', + }, + unselectableStyle: { + stroke: '#FFFFFF', + fill: '#333333', + }, + isSelectable: isReportSelectable, + clusterClickZoom: true, + }, }, 'https://geodienste.hamburg.de/services-internet.json' ) @@ -40,10 +79,11 @@ setTimeout( setTimeout(() => removePlugin('TEST'), 10000) -// TODO: Update with plugin examples subscribe( - 'clientWidth', - (width) => (document.getElementById('client-width').innerText = width) + 'markers/selectedCoordinates', + (coordinates) => + (document.getElementById('selected-feature-coordinates').innerText = + JSON.stringify(coordinates)) ) /* simple language switcher attached for demo purposes; diff --git a/packages/polar/core/src/components/PolarMap.ce.vue b/packages/polar/core/src/components/PolarMap.ce.vue index f89e5fef4..bf858cb5b 100644 --- a/packages/polar/core/src/components/PolarMap.ce.vue +++ b/packages/polar/core/src/components/PolarMap.ce.vue @@ -44,6 +44,7 @@ import { import { useCoreStore } from '../stores/useCoreStore' import { mapZoomOffset } from '../utils/mapZoomOffset' import { type MasterportalApiConfiguration } from '../types' +import { useMarkerStore } from '../stores/useMarkerStore' import PolarUi from './PolarUI.ce.vue' const isMacOS = navigator.userAgent.indexOf('Mac') !== -1 @@ -152,7 +153,12 @@ function setup() { if (coreStore.configuration.secureServiceUrlRegex) { coreStore.addInterceptor(coreStore.configuration.secureServiceUrlRegex) } + const markerStore = useMarkerStore() + markerStore.addClusterStyle() createMap() + if (coreStore.configuration.markers) { + markerStore.setupMarkers(coreStore.configuration.markers) + } resizeObserver = new ResizeObserver(updateClientDimensions) resizeObserver.observe(polarWrapper.value as Element) updateClientDimensions() diff --git a/packages/polar/core/src/index.ts b/packages/polar/core/src/index.ts index 9c36098a1..4379046c7 100644 --- a/packages/polar/core/src/index.ts +++ b/packages/polar/core/src/index.ts @@ -1,3 +1,4 @@ +import '@kern-ux/native/dist/fonts/fira-sans.css' import i18next from 'i18next' import merge from 'lodash.merge' import { storeToRefs } from 'pinia' @@ -7,8 +8,8 @@ import { I18Next } from './vuePlugins/i18next' import { Pinia } from './vuePlugins/pinia' import type { MapConfiguration, PluginContainer, PluginOptions } from './types' import { useCoreStore } from './stores/useCoreStore' +import { useMarkerStore } from './stores/useMarkerStore' import defaults from './utils/defaults' -import '@kern-ux/native/dist/fonts/fira-sans.css' export function addPlugins(plugins: PluginContainer[]) { plugins.forEach(addPlugin) @@ -120,14 +121,16 @@ export function subscribe( const steps = path.split('/') const isCore = steps.length === 1 - // const store = isCore ? useCoreStore() : getStore(steps[0]) + const store = isCore ? useCoreStore() : getStore(steps[0]) const parameterName = steps[isCore ? 0 : 1] - return watch(storeToRefs(useCoreStore())[parameterName], callback, { + return watch(storeToRefs(store)[parameterName], callback, { immediate: true, ...options, }) } // TODO(dopenguin): Implement this once plugins are added so that the respective store is selected here. -// function getStore(storeName: string) {} +function getStore(storeName: string) { + return useMarkerStore() +} diff --git a/packages/polar/core/src/stores/useMarkerStore.ts b/packages/polar/core/src/stores/useMarkerStore.ts new file mode 100644 index 000000000..acfef65c4 --- /dev/null +++ b/packages/polar/core/src/stores/useMarkerStore.ts @@ -0,0 +1,381 @@ +import { Feature, MapBrowserEvent } from 'ol' +import { createEmpty, extend } from 'ol/extent' +import type BaseLayer from 'ol/layer/Base' +import VectorLayer from 'ol/layer/Vector' +import RenderFeature from 'ol/render/Feature' +import Cluster from 'ol/source/Cluster' +import VectorSource from 'ol/source/Vector' +import { defineStore } from 'pinia' +import { computed, ref, watch } from 'vue' +import { Point } from 'ol/geom' +import getCluster from '../../../lib/getCluster' +import { InvisibleStyle, isVisible } from '../../../lib/invisibleStyle' +import { Markers, MarkersIsSelectableFunction, MarkerStyle } from '../types' +import { getMarkerStyle } from '../utils/markers' +import { useCoreStore } from './useCoreStore' + +export const useMarkerStore = defineStore('markers', () => { + // these have been measured to fit once and influence marker size + const imgSize: [number, number] = [26, 36] + const imgSizeMulti: [number, number] = [40, 36] + + const defaultStroke = '#FFFFFF' + const defaultStrokeWidth = '2' + + // These are all configurable parameters + let layers: Markers['layers'] = [] + let defaultStyle: MarkerStyle = { + clusterSize: imgSizeMulti, + fill: '#005CA9', + size: imgSize, + stroke: defaultStroke, + strokeWidth: defaultStrokeWidth, + } + let hoverStyle: MarkerStyle = { + clusterSize: imgSizeMulti, + fill: '#7B1045', + size: imgSize, + stroke: defaultStroke, + strokeWidth: defaultStrokeWidth, + } + let selectionStyle: MarkerStyle = { + clusterSize: imgSizeMulti, + fill: '#679100', + size: imgSize, + stroke: defaultStroke, + strokeWidth: defaultStrokeWidth, + } + let unselectableStyle: MarkerStyle = { + clusterSize: imgSizeMulti, + fill: '#333333', + size: imgSize, + stroke: defaultStroke, + strokeWidth: defaultStrokeWidth, + } + let callOnMapSelect: Markers['callOnMapSelect'] + let clusterClickZoom: Markers['clusterClickZoom'] = false + let isSelectable: MarkersIsSelectableFunction = () => true + + let lastZoom = 0 + + // NOTE: This needs to be doubled to be able to compare OpenLayers objects and have reactivity to watch for changes. + let hoveredValue: Feature | null = null + let selectedValue: Feature | null = null + const hovered = ref(null) + const selected = ref(null) + + const selectedCoordinates = computed(() => + selected.value === null + ? null + : (selected.value.getGeometry() as Point).getCoordinates() + ) + + function addClusterStyle() { + const coreStore = useCoreStore() + + const serviceRegister = coreStore.serviceRegister + if (typeof serviceRegister === 'string') { + console.error( + '@polar/core: The service register has not been instantiated yet, please call this action at a later time.' + ) + return serviceRegister + } + return serviceRegister.map((service) => { + if (service.clusterDistance !== undefined) { + // @masterportal/masterportalapi hook + service.style = (feature: Feature) => { + const visibleFeaturesCount: number = ( + feature.get('features') || [] + ).filter(isVisible).length + + if (visibleFeaturesCount === 0) { + return InvisibleStyle + } + return getMarkerStyle(defaultStyle, visibleFeaturesCount > 1) + } + } + + return service + }) + } + + function layerFilter(layer: BaseLayer) { + return layers.includes(layer.get('id')) + } + + function resolveClusterClick(feature: Feature) { + const features = feature.get('features') as Feature[] + + const extent = createEmpty() + features.forEach((feature) => + extend(extent, feature.getGeometry()?.getExtent() || []) + ) + + useCoreStore() + .getMap() + .getView() + .fit(extent, { + duration: 400, + padding: [80, 30, 80, 30], + }) + } + + function updateSelection(feature: Feature | null, centerOnFeature = false) { + const coreStore = useCoreStore() + + selectedValue?.setStyle(undefined) + selected.value?.setStyle(undefined) + selectedValue = null + selected.value = null + + if (feature === null) { + return + } + + const selectedValueCluster = getCluster( + coreStore.getMap(), + feature, + '_gfiLayerId' + ) + + selectedValueCluster.setStyle( + getMarkerStyle( + selectionStyle, + selectedValueCluster.get('features')?.length > 1 + ) + ) + + selectedValue = selectedValueCluster + selected.value = selectedValueCluster + if (centerOnFeature) { + coreStore.centerOnFeature(selectedValue) + } + } + + // NOTE: key `_gfiLayerId` required for GFI plugin interconnection + function setLayerId(feature: Feature) { + if (feature.get('_gfiLayerId')) { + return + } + + const layerId = useCoreStore() + .getMap() + .getLayers() + .getArray() + .find((layer) => { + if (layer instanceof VectorLayer) { + let step: VectorLayer | VectorSource | Cluster = layer + while (step instanceof VectorLayer || step instanceof Cluster) { + // @ts-expect-error | Clusters in masterportalapi always have a source. + step = step.getSource() + // @ts-expect-error | It's not a vector layer anymore. + if (step.hasFeature(feature)) { + return true + } + } + return Boolean(step.hasFeature(feature)) + } + return false + }) + ?.get('id') as string | undefined + if (layerId) { + feature.set('_gfiLayerId', layerId, true) + } + } + + function setupMarkers(configuration: Markers) { + const map = useCoreStore().getMap() + + layers = configuration.layers + defaultStyle = { ...defaultStyle, ...configuration.defaultStyle } + hoverStyle = { ...hoverStyle, ...configuration.hoverStyle } + selectionStyle = { ...selectionStyle, ...configuration.selectionStyle } + unselectableStyle = { + ...unselectableStyle, + ...configuration.unselectableStyle, + } + callOnMapSelect = + typeof configuration.callOnMapSelect === 'function' + ? configuration.callOnMapSelect + : callOnMapSelect + clusterClickZoom = + typeof configuration.clusterClickZoom === 'boolean' + ? configuration.clusterClickZoom + : clusterClickZoom + isSelectable = + typeof configuration.isSelectable === 'function' + ? configuration.isSelectable + : isSelectable + + lastZoom = map.getView().getZoom() as number + + map + .getLayers() + .getArray() + .filter(layerFilter) + .forEach((layer) => { + // only vector layers reach this + const source = (layer as VectorLayer).getSource() + if (source !== null) { + // @ts-expect-error | Undocumented hook. + source.geometryFunction = + // prevents features from jumping due to invisible features "pulling" + (feature: Feature) => + isVisible(feature) ? feature.getGeometry() : null + } + const originalStyleFunction = (layer as VectorLayer).getStyle() + ;(layer as VectorLayer).setStyle((feature) => { + if (isSelectable(feature as Feature)) { + // @ts-expect-error | always is a function due to masterportalapi design + return originalStyleFunction(feature) + } + return getMarkerStyle( + unselectableStyle, + feature.get('features').length > 1 + ) + }) + }) + + // // // STORE EVENT HANDLING + + watch(hovered, (feature) => { + if (hoveredValue !== null && hoveredValue !== selectedValue) { + hoveredValue.setStyle(undefined) + hovered.value?.setStyle(undefined) + hoveredValue = null + hovered.value = null + } + if (feature !== null && feature !== selectedValue) { + hoveredValue = feature + hovered.value = feature + const isMultiFeature = hoveredValue.get('features')?.length > 1 + hoveredValue.setStyle(getMarkerStyle(hoverStyle, isMultiFeature)) + hovered.value.setStyle(getMarkerStyle(hoverStyle, isMultiFeature)) + } + }) + + map.on('moveend', mapMoveEnd) + map.on('pointermove', mapPointerMove) + map.on('click', mapClick) + /* click leads to singlelick; if an element is selectedValue, to not let other + * plugins pick it up, something was already done with it */ + map.on('singleclick', mapSingleClick) + } + + // // // MAP EVENT HANDLING + + let lastClickEvent: MapBrowserEvent | null = null + + function mapMoveEnd() { + const zoom = useCoreStore().getMap().getView().getZoom() as number + if (zoom !== lastZoom) { + lastZoom = zoom + if (selectedValue) { + const baseFeature = (selectedValue.get('features')?.[0] || + selectedValue) as Feature + setLayerId(baseFeature) + updateSelection(baseFeature) + } + } + } + + function mapPointerMove(event: MapBrowserEvent) { + const feature = useCoreStore().getMap().getFeaturesAtPixel(event.pixel, { + layerFilter, + })[0] + + if (feature === selectedValue || feature instanceof RenderFeature) { + return + } + if (hoveredValue !== null && hoveredValue !== selectedValue) { + hoveredValue.setStyle(undefined) + hovered.value?.setStyle(undefined) + hoveredValue = null + hovered.value = null + } + // NOTE: Not all pixels include features. + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + if (!feature || !isSelectable(feature)) { + return + } + const isMultiFeature = feature.get('features')?.length > 1 + setLayerId(feature) + feature.setStyle(getMarkerStyle(hoverStyle, isMultiFeature)) + hoveredValue = feature + hovered.value = feature + } + + function mapClick(event: MapBrowserEvent) { + const coreStore = useCoreStore() + const map = coreStore.getMap() + if (selectedValue !== null) { + updateSelection(null) + } + const feature = map.getFeaturesAtPixel(event.pixel, { layerFilter })[0] + + if ( + // NOTE: Not all pixels include features. + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + !feature || + feature instanceof RenderFeature || + !isSelectable(feature) + ) { + return + } + + const isMultiFeature = feature.get('features')?.length > 1 + lastClickEvent = event + event.stopPropagation() + + const isMaxZoom = map.getView().getZoom() !== map.getView().getMaxZoom() + if (clusterClickZoom && isMultiFeature && isMaxZoom) { + resolveClusterClick(feature) + return + } + + hoveredValue?.setStyle(undefined) + hovered.value?.setStyle(undefined) + hoveredValue = null + hovered.value = null + setLayerId(feature) + updateSelection(feature, true) + + if (callOnMapSelect) { + const { action, payload, pluginName } = callOnMapSelect + if (!pluginName) { + coreStore[action](payload) + return + } + + const plugin = coreStore.plugins.find(({ name }) => name === pluginName) + if (!plugin) { + console.error( + `@polar/core:callOnMapSelect: Plugin ${pluginName} does not exist or is not configured. Action ${action} could not be called.` + ) + return + } + const pluginStore = plugin.storeModule?.() + if (!pluginStore) { + console.error( + `@polar/core:callOnMapSelect: Plugin ${pluginName} does not have a store module. Action ${action} could not be called.` + ) + return + } + pluginStore[action](payload) + } + } + + function mapSingleClick(event: MapBrowserEvent) { + if (event.originalEvent === lastClickEvent?.originalEvent) { + event.stopPropagation() + } + } + + return { + addClusterStyle, + setupMarkers, + hovered, + selected, + selectedCoordinates, + } +}) diff --git a/packages/polar/core/src/types.ts b/packages/polar/core/src/types.ts index 1b4c11b5f..9807e8e54 100644 --- a/packages/polar/core/src/types.ts +++ b/packages/polar/core/src/types.ts @@ -1,4 +1,5 @@ import type { Resource } from 'i18next' +import { Feature } from 'ol' import type { _ActionsTree, _GettersTree, @@ -52,6 +53,53 @@ export interface PluginContainer { /** The initial language the client should be using; defaults to 'de' if not given */ export type InitialLanguage = 'de' | 'en' +export type MarkersIsSelectableFunction = (feature: Feature) => boolean + +interface PolygonFillHatch { + pattern?: + | 'diagonal' + | 'diagonal-right' + | 'zig-line' + | 'zig-line-horizontal' + | 'circle' + | 'rectangle' + | 'triangle' + | 'diamond' + | object + size?: number + lineWidth?: number + backgroundColor?: [number, number, number, number] + patternColor?: [number, number, number, number] +} + +export interface MarkerStyle { + clusterSize: [number, number] + fill: string | PolygonFillHatch + size: [number, number] + strokeWidth: string | number + stroke: string +} + +interface CallOnMapSelect { + action: string + payload: unknown + pluginName?: string +} + +// TODO(dopenguin): Also allow for the styling to happen per layer; also allow the markers themselves to be changeable +export interface Markers { + layers: string[] + // Various styles + defaultStyle?: Partial + hoverStyle?: Partial + selectionStyle?: Partial + unselectableStyle?: Partial + // Behaviour + callOnMapSelect?: CallOnMapSelect + clusterClickZoom?: boolean + isSelectable?: MarkersIsSelectableFunction +} + export interface LayerConfigurationOptionLayers { /** * Legend image to be used for sub-layer. If false, no image is displayed. @@ -136,6 +184,7 @@ export interface MapConfiguration extends MasterportalApiConfiguration { layers: LayerConfiguration[] language?: InitialLanguage locales?: Locale[] + markers?: Markers oidcToken?: string secureServiceUrlRegex?: string } diff --git a/packages/polar/core/src/utils/markers.ts b/packages/polar/core/src/utils/markers.ts index 56edc5749..9e9674ddb 100644 --- a/packages/polar/core/src/utils/markers.ts +++ b/packages/polar/core/src/utils/markers.ts @@ -7,21 +7,9 @@ const polygonStyle = new PolygonStyle() type GetMarkerFunction = (style: MarkerStyle, multi: boolean) => Style -// these have been measured to fit once and influence marker size -const imgSize: [number, number] = [26, 36] -const imgSizeMulti: [number, number] = [40, 36] - -const defaultStroke = '#FFFFFF' -const defaultStrokeWidth = '2' - -const defaultFill = '#005CA9' -const defaultHoverFill = '#7B1045' -const defaultSelectionFill = '#679100' -const defaultUnselectableFill = '#333333' - const prefix = 'data:image/svg+xml,' -const getImagePattern = (fill: Exclude) => +const getImagePattern = (fill: MarkerStyle['fill']) => typeof fill === 'string' ? '' : ` @@ -37,12 +25,7 @@ const getImagePattern = (fill: Exclude) => /* Path of marker svg used in this file copied and adapted from * @masterportal/masterportalapi/public/marker.svg. */ -const makeMarker = ({ - fill = defaultFill, - size = imgSize, - stroke = defaultStroke, - strokeWidth = defaultStrokeWidth, -}: MarkerStyle) => +const makeMarker = ({ fill, size, stroke, strokeWidth }: MarkerStyle) => `${prefix}${encodeURIComponent(` - isVisible(feature) ? feature.getGeometry() : null - } - const originalStyleFunction = (layer as VectorLayer).getStyle() - ;(layer as VectorLayer).setStyle((feature) => { - if ( - typeof isSelectable === 'undefined' || - isSelectable(feature as Feature) - ) { - // @ts-expect-error | always is a function due to masterportalapi design - return originalStyleFunction(feature) - } - return getUnselectableStyle( - unselectableStyle, - feature.get('features').length > 1 - ) - }) - }) - - // // // STORE EVENT HANDLING - - this.watch( - () => getters.hovered, - (feature: Feature | null) => { - if (hovered !== null && hovered !== selected) { - hovered.setStyle(undefined) - hovered = null - } - if (feature !== null && feature !== selected) { - hovered = feature - const isMultiFeature = hovered.get('features')?.length > 1 - hovered.setStyle(getHoveredStyle(hoverStyle, isMultiFeature)) - } - } - ) - - // // // MAP EVENT HANDLING - - // on zoom change, re-select since cluster was updated - let lastZoom = map.getView().getZoom() - map.on('moveend', function () { - const zoom = map.getView().getZoom() - if (zoom !== lastZoom) { - lastZoom = zoom - if (selected) { - const baseFeature = selected.get('features')?.[0] || selected - setLayerId(map, baseFeature) - dispatch('updateSelection', { feature: baseFeature }) - } - } - }) - - map.on('pointermove', function (event) { - const feature = map.getFeaturesAtPixel(event.pixel, { layerFilter })[0] - if (feature === selected || feature instanceof RenderFeature) { - return - } - if (hovered !== null && hovered !== selected) { - hovered.setStyle(undefined) - hovered = null - commit('setHovered', hovered) - } - if (!feature || !isSelectable(feature)) { - return - } - const isMultiFeature = feature.get('features')?.length > 1 - setLayerId(map, feature) - hovered = feature - commit('setHovered', hovered) - feature.setStyle(getHoveredStyle(hoverStyle, isMultiFeature)) - }) - - map.on('click', function (event) { - if (selected !== null) { - selected.setStyle(undefined) - selected = null - commit('setSelected', selected) - dispatch('updateSelection', { feature: selected }) - } - const feature = map.getFeaturesAtPixel(event.pixel, { layerFilter })[0] - if ( - !feature || - feature instanceof RenderFeature || - !isSelectable(feature) - ) { - return - } - const isMultiFeature = feature.get('features')?.length > 1 - lastClickEvent = event - event.stopPropagation() - if ( - clusterClickZoom && - isMultiFeature && - map.getView().getZoom() !== map.getView().getMaxZoom() - ) { - resolveClusterClick(map, feature) - } else { - setLayerId(map, feature) - selected = feature - if (dispatchOnMapSelect) { - dispatch(...dispatchOnMapSelect) - } - hovered?.setStyle?.(undefined) - hovered = null - commit('setHovered', null) - commit('setSelected', selected) - selected.setStyle(getSelectedStyle(localSelectionStyle, isMultiFeature)) - dispatch('updateSelection', { feature: selected, centerOnFeature: true }) - dispatch('centerOnFeature', selected) - } - }) - - /* click leads to singlelick; if an element is selected, to not let other - * plugins pick it up, something was already done with it */ - map.on('singleclick', function (event) { - if (event?.originalEvent === lastClickEvent?.originalEvent) { - event.stopPropagation() - } - }) -} diff --git a/vue2/packages/core/src/vuePlugins/actions/useExtendedMasterportalapiMarkers/setLayerId.ts b/vue2/packages/core/src/vuePlugins/actions/useExtendedMasterportalapiMarkers/setLayerId.ts deleted file mode 100644 index d8f4d0977..000000000 --- a/vue2/packages/core/src/vuePlugins/actions/useExtendedMasterportalapiMarkers/setLayerId.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { Feature, Map } from 'ol' -import Cluster from 'ol/source/Cluster' -import VectorLayer from 'ol/layer/Vector' -import VectorSource from 'ol/source/Vector' - -// key `_gfiLayerId` required for GFI plugin interconnection -export const setLayerId = (map: Map, feature: Feature): void => { - if (feature.get('_gfiLayerId')) { - return - } - const layerId = map - .getLayers() - .getArray() - .find((layer) => { - if (layer instanceof VectorLayer) { - let step: VectorLayer | VectorSource | Cluster = layer - while (step instanceof VectorLayer || step instanceof Cluster) { - // @ts-expect-error | Clusters in masterportalapi always have a source. - step = step.getSource() - // @ts-expect-error | It's not a vector layer anymore. - if (step.hasFeature(feature)) { - return true - } - } - return Boolean(step?.hasFeature?.(feature)) - } - return false - }) - ?.get('id') - if (layerId) { - feature.set('_gfiLayerId', layerId, true) - } -} diff --git a/vue2/packages/core/src/vuePlugins/vuex.ts b/vue2/packages/core/src/vuePlugins/vuex.ts index 3489a5f86..111aaec14 100644 --- a/vue2/packages/core/src/vuePlugins/vuex.ts +++ b/vue2/packages/core/src/vuePlugins/vuex.ts @@ -15,15 +15,8 @@ import { PluginContainer, PolarError, } from '@polar/lib-custom-types' -import { Feature, Map } from 'ol' -import { Point } from 'ol/geom' -import { easeOut } from 'ol/easing' -import getCluster from '@polar/lib-get-cluster' +import { Map } from 'ol' import { CapabilitiesModule } from '../storeModules/capabilities' -import { - updateSelection, - useExtendedMasterportalapiMarkers, -} from './actions/useExtendedMasterportalapiMarkers' import checkServiceAvailability from './actions/checkServiceAvailability' // @ts-expect-error | 'TS2339: Property 'env' does not exist on type 'ImportMeta'.' - It does since we're using vite as a bundler. @@ -58,10 +51,8 @@ const getInitialState = (): CoreState => ({ clientWidth: 0, components: 1, center: null, - hovered: 1, moveHandle: 1, moveHandleActionButton: 1, - selected: 1, zoomLevel: 0, // @ts-expect-error | Required values are set in utils/createMap/index.ts configuration: { @@ -91,10 +82,8 @@ export const makeStore = (mapConfiguration: MapConfig) => { * This is intended. */ let map: null | Map = null - let hovered: null | Feature = null let moveHandle: MoveHandleProperties | null = null let moveHandleActionButton: MoveHandleActionButton | null = null - let selected: null | Feature = null let components: PluginContainer[] = [] const store = new Store({ @@ -122,20 +111,6 @@ export const makeStore = (mapConfiguration: MapConfig) => { noop(state.moveHandleActionButton) return moveHandleActionButton }, - hovered: (state) => { - noop(state.hovered) - return hovered - }, - selected: (state) => { - noop(state.selected) - return selected - }, - selectedCoordinates: (state) => { - noop(state.selected) - return selected === null - ? null - : (selected.getGeometry() as Point).getCoordinates() - }, // hack: deliver components (outside vuex) based on counter; see NOTE above components: (state) => { noop(state.components) @@ -144,15 +119,6 @@ export const makeStore = (mapConfiguration: MapConfig) => { }, mutations: { ...generateSimpleMutations(getInitialState()), - setHovered: (state, payload) => { - if (payload === null || payload.get('features')) { - hovered = payload - } else if (map !== null) { - // nested features are invisible and hence unfit for styling - hovered = getCluster(map, payload, '_gfiLayerId') - } - state.hovered = state.hovered + 1 - }, setMoveHandle: (state, payload: MoveHandleProperties | null) => { moveHandle = payload state.moveHandle += 1 @@ -164,18 +130,12 @@ export const makeStore = (mapConfiguration: MapConfig) => { moveHandleActionButton = payload state.moveHandleActionButton += 1 }, - setSelected: (state, payload) => { - selected = payload - state.selected = state.selected + 1 - }, addError: (state, error: PolarError) => { state.errors.push(error) }, }, actions: { checkServiceAvailability, - useExtendedMasterportalapiMarkers, - updateSelection, }, }) diff --git a/vue2/packages/types/custom/core.ts b/vue2/packages/types/custom/core.ts index 911aada48..9d2656f72 100644 --- a/vue2/packages/types/custom/core.ts +++ b/vue2/packages/types/custom/core.ts @@ -356,10 +356,6 @@ export interface FullscreenConfiguration extends PluginOptions { targetContainerId?: string } -export type ExtendedMasterportalapiMarkersIsSelectableFunction = ( - feature: Feature -) => boolean - export type GfiIsSelectableFunction = (feature: GeoJsonFeature) => boolean /** configurable function to gather additional info */ @@ -540,46 +536,9 @@ export interface ZoomConfiguration extends PluginOptions { * */ -export interface MasterportalapiPolygonFillHatch { - pattern?: - | 'diagonal' - | 'diagonal-right' - | 'zig-line' - | 'zig-line-horizontal' - | 'circle' - | 'rectangle' - | 'triangle' - | 'diamond' - | object - size?: number - lineWidth?: number - backgroundColor?: [number, number, number, number] - patternColor?: [number, number, number, number] -} - -export interface MarkerStyle { - clusterSize?: [number, number] - fill?: string | MasterportalapiPolygonFillHatch - size?: [number, number] - strokeWidth?: string | number - stroke?: string -} - -export interface ExtendedMasterportalapiMarkers { - layers: string[] - defaultStyle?: MarkerStyle - hoverStyle?: MarkerStyle - selectionStyle?: MarkerStyle - unselectableStyle?: MarkerStyle - clusterClickZoom?: boolean - dispatchOnMapSelect?: [string, unknown] - isSelectable?: ExtendedMasterportalapiMarkersIsSelectableFunction -} - export interface MapConfig extends MasterportalApiConfig { /** if true, all services' availability will be checked with head requests */ checkServiceAvailability?: boolean - extendedMasterportalapiMarkers?: ExtendedMasterportalapiMarkers featureStyles?: string renderFaToLightDom?: boolean stylePath?: string From 88422540c61292024f234a48e4c667f2a6ecbb3b Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Thu, 24 Jul 2025 16:51:37 +0200 Subject: [PATCH 094/697] Add TODO --- packages/clients/snowbox/src/snowbox.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/clients/snowbox/src/snowbox.js b/packages/clients/snowbox/src/snowbox.js index b771bfe6a..9067ca0f5 100644 --- a/packages/clients/snowbox/src/snowbox.js +++ b/packages/clients/snowbox/src/snowbox.js @@ -60,7 +60,8 @@ await createMap( stroke: '#FFFFFF', fill: '#333333', }, - isSelectable: isReportSelectable, + // TODO(dopenguin): Has some HMR issues, needs to be fixed + // isSelectable: isReportSelectable, clusterClickZoom: true, }, }, From f44c61ab46106e9e120d5f7b7bee078aa238235b Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Thu, 24 Jul 2025 16:51:49 +0200 Subject: [PATCH 095/697] Fix linting issue --- packages/polar/core/src/utils/loadKern.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/polar/core/src/utils/loadKern.ts b/packages/polar/core/src/utils/loadKern.ts index 60895a989..3d3f5ce7a 100644 --- a/packages/polar/core/src/utils/loadKern.ts +++ b/packages/polar/core/src/utils/loadKern.ts @@ -1,6 +1,5 @@ const theme = { - color: { - }, + color: {}, } export async function loadKern(host: ShadowRoot) { From 640453d206d6d85e92cb03bf9aa1a62a9e45409b Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Thu, 24 Jul 2025 17:09:31 +0200 Subject: [PATCH 096/697] Move the mapZoomOffset call to the exported createMap call --- packages/polar/core/src/components/PolarMap.ce.vue | 4 +--- packages/polar/core/src/index.ts | 5 +++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/polar/core/src/components/PolarMap.ce.vue b/packages/polar/core/src/components/PolarMap.ce.vue index b41132c98..1d0a281cb 100644 --- a/packages/polar/core/src/components/PolarMap.ce.vue +++ b/packages/polar/core/src/components/PolarMap.ce.vue @@ -42,7 +42,6 @@ import { watch, } from 'vue' import { useCoreStore } from '../stores/useCoreStore' -import { mapZoomOffset } from '../utils/mapZoomOffset' import { loadKern } from '../utils/loadKern' import { type MasterportalApiConfiguration } from '../types' import { useMarkerStore } from '../stores/useMarkerStore' @@ -73,8 +72,7 @@ function createMap() { const map = api.map.createMap( { target: polarMapContainer.value, - // TODO(dopenguin): Do the mapZoomOffset call earlier, not in the component - ...mapZoomOffset(coreStore.configuration), + ...coreStore.configuration, layerConf: coreStore.serviceRegister, }, '2D', diff --git a/packages/polar/core/src/index.ts b/packages/polar/core/src/index.ts index 4379046c7..3b6ad9829 100644 --- a/packages/polar/core/src/index.ts +++ b/packages/polar/core/src/index.ts @@ -10,6 +10,7 @@ import type { MapConfiguration, PluginContainer, PluginOptions } from './types' import { useCoreStore } from './stores/useCoreStore' import { useMarkerStore } from './stores/useMarkerStore' import defaults from './utils/defaults' +import { mapZoomOffset } from './utils/mapZoomOffset' export function addPlugins(plugins: PluginContainer[]) { plugins.forEach(addPlugin) @@ -95,10 +96,10 @@ export function createMap( const coreStore = useCoreStore() - coreStore.configuration = { + coreStore.configuration = mapZoomOffset({ ...defaults, ...mapConfiguration, - } + }) coreStore.serviceRegister = serviceRegister if (coreStore.configuration.oidcToken) { From a89e424d5635ebae09fccbb71567e0608cef9791 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Thu, 24 Jul 2025 20:22:07 +0200 Subject: [PATCH 097/697] Update comments --- packages/polar/core/src/stores/useMarkerStore.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/polar/core/src/stores/useMarkerStore.ts b/packages/polar/core/src/stores/useMarkerStore.ts index acfef65c4..d21611082 100644 --- a/packages/polar/core/src/stores/useMarkerStore.ts +++ b/packages/polar/core/src/stores/useMarkerStore.ts @@ -58,7 +58,8 @@ export const useMarkerStore = defineStore('markers', () => { let lastZoom = 0 - // NOTE: This needs to be doubled to be able to compare OpenLayers objects and have reactivity to watch for changes. + // NOTE: This needs to be doubled to be able to compare OpenLayers objects + // and have reactivity to watch for changes. let hoveredValue: Feature | null = null let selectedValue: Feature | null = null const hovered = ref(null) @@ -257,8 +258,10 @@ export const useMarkerStore = defineStore('markers', () => { map.on('moveend', mapMoveEnd) map.on('pointermove', mapPointerMove) map.on('click', mapClick) - /* click leads to singlelick; if an element is selectedValue, to not let other - * plugins pick it up, something was already done with it */ + /* + * click leads to singlelick; if an element is selected, + * to not let other plugins pick it up, something was already done with it + */ map.on('singleclick', mapSingleClick) } From 4e3232d527a03a69dae7a62530cfc5414d274e8b Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Fri, 25 Jul 2025 12:35:45 +0200 Subject: [PATCH 098/697] Update @dataport/eslint-config-geodev --- package-lock.json | 190 ++++++++++++++-------------------------------- 1 file changed, 55 insertions(+), 135 deletions(-) diff --git a/package-lock.json b/package-lock.json index e559fa574..dadd7d230 100644 --- a/package-lock.json +++ b/package-lock.json @@ -421,14 +421,14 @@ } }, "node_modules/@babel/helpers": { - "version": "7.27.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz", - "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==", + "version": "7.28.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.2.tgz", + "integrity": "sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw==", "dev": true, "license": "MIT", "dependencies": { "@babel/template": "^7.27.2", - "@babel/types": "^7.27.6" + "@babel/types": "^7.28.2" }, "engines": { "node": ">=6.9.0" @@ -1699,9 +1699,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.27.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz", - "integrity": "sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==", + "version": "7.28.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.2.tgz", + "integrity": "sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA==", "license": "MIT", "engines": { "node": ">=6.9.0" @@ -1742,9 +1742,9 @@ } }, "node_modules/@babel/types": { - "version": "7.28.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.1.tgz", - "integrity": "sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==", + "version": "7.28.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz", + "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.27.1", @@ -1806,15 +1806,15 @@ } }, "node_modules/@dataport/eslint-config-geodev": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@dataport/eslint-config-geodev/-/eslint-config-geodev-0.3.3.tgz", - "integrity": "sha512-4j3F+8rtlp1UgkxYyJ8KmcZm716t7AVA/c6FHdqPgAUd/20pbqs01a3KjWqZXmcu3yftntl4/HRGkpc4RAZcrQ==", + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@dataport/eslint-config-geodev/-/eslint-config-geodev-0.3.4.tgz", + "integrity": "sha512-7exn8dGF9NMZjPb/fisIivMFvZb6yqXOlVnIO7WEyzr8Aewawpc82eQqrUaNGG329DzIS2MQ/xOkADhl4rUWSQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint/js": "^9.25.1", - "@eslint/json": "^0.12.0", - "@eslint/markdown": "^6.6.0", + "@eslint/json": "^0.13.1", + "@eslint/markdown": "^7.1.0", "@typescript-eslint/parser": "^8.34.1", "eslint-plugin-tsdoc": "^0.4.0", "eslint-plugin-vue": "^10.0.0", @@ -2393,9 +2393,9 @@ } }, "node_modules/@eslint/core": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz", - "integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.1.tgz", + "integrity": "sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -2480,15 +2480,15 @@ } }, "node_modules/@eslint/json": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@eslint/json/-/json-0.12.0.tgz", - "integrity": "sha512-n/7dz8HFStpEe4o5eYk0tdkBdGUS/ZGb0GQCeDWN1ZmRq67HMHK4vC33b0rQlTT6xdZoX935P4vstiWVk5Ying==", + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/@eslint/json/-/json-0.13.1.tgz", + "integrity": "sha512-AGzO7cR0QqSEfJdx9jT4SHQ6BJ5K0G8kN7WNGI1Hgy5AVbUhBKfFoN0gNo86j97aqkU57mqFUW9ytMPdEnVARA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.12.0", - "@eslint/plugin-kit": "^0.2.7", - "@humanwhocodes/momoa": "^3.3.4", + "@eslint/core": "^0.15.1", + "@eslint/plugin-kit": "^0.3.4", + "@humanwhocodes/momoa": "^3.3.8", "natural-compare": "^1.4.0" }, "engines": { @@ -2496,21 +2496,21 @@ } }, "node_modules/@eslint/markdown": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@eslint/markdown/-/markdown-6.6.0.tgz", - "integrity": "sha512-IsWPy2jU3gaQDlioDC4sT4I4kG1hX1OMWs/q2sWwJrPoMASHW/Z4SDw+6Aql6EsHejGbagYuJbFq9Zvx+Y1b1Q==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@eslint/markdown/-/markdown-7.1.0.tgz", + "integrity": "sha512-Y+X1B1j+/zupKDVJfkKc8uYMjQkGzfnd8lt7vK3y8x9Br6H5dBuhAfFrQ6ff7HAMm/1BwgecyEiRFkYCWPRxmA==", "dev": true, "license": "MIT", "workspaces": [ "examples/*" ], "dependencies": { - "@eslint/core": "^0.14.0", - "@eslint/plugin-kit": "^0.3.1", + "@eslint/core": "^0.15.1", + "@eslint/plugin-kit": "^0.3.4", "github-slugger": "^2.0.0", "mdast-util-from-markdown": "^2.0.2", "mdast-util-frontmatter": "^2.0.1", - "mdast-util-gfm": "^3.0.0", + "mdast-util-gfm": "^3.1.0", "micromark-extension-frontmatter": "^2.0.0", "micromark-extension-gfm": "^3.0.0" }, @@ -2518,46 +2518,6 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@eslint/markdown/node_modules/@eslint/core": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.14.0.tgz", - "integrity": "sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/markdown/node_modules/@eslint/plugin-kit": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.4.tgz", - "integrity": "sha512-Ul5l+lHEcw3L5+k8POx6r74mxEYKG5kOb6Xpy2gCRW6zweT6TEhAf8vhxGgjhqrd/VO/Dirhsb+1hNpD1ue9hw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/core": "^0.15.1", - "levn": "^0.4.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/markdown/node_modules/@eslint/plugin-kit/node_modules/@eslint/core": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.1.tgz", - "integrity": "sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, "node_modules/@eslint/object-schema": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", @@ -2569,32 +2529,19 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.8.tgz", - "integrity": "sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==", + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.4.tgz", + "integrity": "sha512-Ul5l+lHEcw3L5+k8POx6r74mxEYKG5kOb6Xpy2gCRW6zweT6TEhAf8vhxGgjhqrd/VO/Dirhsb+1hNpD1ue9hw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.13.0", + "@eslint/core": "^0.15.1", "levn": "^0.4.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@eslint/plugin-kit/node_modules/@eslint/core": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.13.0.tgz", - "integrity": "sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, "node_modules/@floating-ui/core": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.2.tgz", @@ -4939,9 +4886,9 @@ } }, "node_modules/@zip.js/zip.js": { - "version": "2.7.67", - "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.7.67.tgz", - "integrity": "sha512-oD79XcCf24GzNmxmoJ/A/LrUodU1QDVpJ3WuJ17uf0kMks+LrmdxDtg9MSPSR3nrYxkF3A5B9+dbc3CnefVI3Q==", + "version": "2.7.68", + "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.7.68.tgz", + "integrity": "sha512-HkabH6ThvDh1btwLbJiLFXzUW4fNN0leoYiopCg03OWg394j8NSb/Mro4i5J0S9ZLTwbBUpFrx86TzDXQRlT4Q==", "license": "BSD-3-Clause", "engines": { "bun": ">=0.7.0", @@ -5816,9 +5763,9 @@ } }, "node_modules/chromium-bidi": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-7.1.1.tgz", - "integrity": "sha512-L2BKQ0rSLADgbPMIdDh3wnYHs3EiUiMay2Sq0CTolheaADmWIf6Pe+T9LJRcnh5rcMz0U7MVk0cQVvKsGRMa1g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-7.2.0.tgz", + "integrity": "sha512-gREyhyBstermK+0RbcJLbFhcQctg92AGgDe/h/taMJEOLRdtSswBAO9KmvltFSQWgM2LrwWu5SIuEUbdm3JsyQ==", "license": "Apache-2.0", "dependencies": { "mitt": "^3.0.1", @@ -6478,9 +6425,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.190", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.190.tgz", - "integrity": "sha512-k4McmnB2091YIsdCgkS0fMVMPOJgxl93ltFzaryXqwip1AaxeDqKCGLxkXODDA5Ab/D+tV5EL5+aTx76RvLRxw==", + "version": "1.5.191", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.191.tgz", + "integrity": "sha512-xcwe9ELcuxYLUFqZZxL19Z6HVKcvNkIwhbHUz7L3us6u12yR+7uY89dSl570f/IqNthx8dAw3tojG7i4Ni4tDA==", "dev": true, "license": "ISC" }, @@ -7307,33 +7254,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/@eslint/core": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.1.tgz", - "integrity": "sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/eslint/node_modules/@eslint/plugin-kit": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.4.tgz", - "integrity": "sha512-Ul5l+lHEcw3L5+k8POx6r74mxEYKG5kOb6Xpy2gCRW6zweT6TEhAf8vhxGgjhqrd/VO/Dirhsb+1hNpD1ue9hw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/core": "^0.15.1", - "levn": "^0.4.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, "node_modules/eslint/node_modules/brace-expansion": { "version": "1.1.12", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", @@ -11384,9 +11304,9 @@ } }, "node_modules/proj4": { - "version": "2.19.7", - "resolved": "https://registry.npmjs.org/proj4/-/proj4-2.19.7.tgz", - "integrity": "sha512-1YdHp6/MyGh6s0T1zCwGnOUiah/ov/8HJYkHMXHD8YuUTpkbo82OuCSivSs4ydCIODZVico5QVTTXi5yoDkMZA==", + "version": "2.19.8", + "resolved": "https://registry.npmjs.org/proj4/-/proj4-2.19.8.tgz", + "integrity": "sha512-9nYcsbBy7be8qL1egB4NOTg0ninpdSqJcsPzNpzZzwcRTvVQbF4TLEWFzuL6IEVFDCYk0IQAWio+95uOFXqb4A==", "license": "MIT", "dependencies": { "mgrs": "1.0.0", @@ -11642,17 +11562,17 @@ } }, "node_modules/puppeteer": { - "version": "24.14.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-24.14.0.tgz", - "integrity": "sha512-GB7suRDkp9pUnxpNGAORICQCtw11KFbg6U2iJXVTflzJLK5D1qzq8xOOmLgN/QnDBpDMdpn96ri52XkuN83Giw==", + "version": "24.15.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-24.15.0.tgz", + "integrity": "sha512-HPSOTw+DFsU/5s2TUUWEum9WjFbyjmvFDuGHtj2X4YUz2AzOzvKMkT3+A3FR+E+ZefiX/h3kyLyXzWJWx/eMLQ==", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { "@puppeteer/browsers": "2.10.6", - "chromium-bidi": "7.1.1", + "chromium-bidi": "7.2.0", "cosmiconfig": "^9.0.0", "devtools-protocol": "0.0.1464554", - "puppeteer-core": "24.14.0", + "puppeteer-core": "24.15.0", "typed-query-selector": "^2.12.0" }, "bin": { @@ -11663,13 +11583,13 @@ } }, "node_modules/puppeteer-core": { - "version": "24.14.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.14.0.tgz", - "integrity": "sha512-NO9XpCl+i8oB0zJp81iPhzMo2QK8/JTj4ramSvTpGCo9CPCNo4AZ8qVOGpSgXzlcOfOT3VHOkzTfPo08GOE5jA==", + "version": "24.15.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.15.0.tgz", + "integrity": "sha512-2iy0iBeWbNyhgiCGd/wvGrDSo73emNFjSxYOcyAqYiagkYt5q4cPfVXaVDKBsukgc2fIIfLAalBZlaxldxdDYg==", "license": "Apache-2.0", "dependencies": { "@puppeteer/browsers": "2.10.6", - "chromium-bidi": "7.1.1", + "chromium-bidi": "7.2.0", "debug": "^4.4.1", "devtools-protocol": "0.0.1464554", "typed-query-selector": "^2.12.0", From 6d839c2111e601aba4195684bf04b24f2434a4a1 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Fri, 25 Jul 2025 19:20:21 +0200 Subject: [PATCH 099/697] Rename _gfiLayerId to _polarLayerId --- packages/polar/core/src/stores/useMarkerStore.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/polar/core/src/stores/useMarkerStore.ts b/packages/polar/core/src/stores/useMarkerStore.ts index d21611082..eed82db17 100644 --- a/packages/polar/core/src/stores/useMarkerStore.ts +++ b/packages/polar/core/src/stores/useMarkerStore.ts @@ -136,7 +136,7 @@ export const useMarkerStore = defineStore('markers', () => { const selectedValueCluster = getCluster( coreStore.getMap(), feature, - '_gfiLayerId' + '_polarLayerId' ) selectedValueCluster.setStyle( @@ -153,9 +153,8 @@ export const useMarkerStore = defineStore('markers', () => { } } - // NOTE: key `_gfiLayerId` required for GFI plugin interconnection function setLayerId(feature: Feature) { - if (feature.get('_gfiLayerId')) { + if (feature.get('_polarLayerId')) { return } @@ -180,7 +179,7 @@ export const useMarkerStore = defineStore('markers', () => { }) ?.get('id') as string | undefined if (layerId) { - feature.set('_gfiLayerId', layerId, true) + feature.set('_polarLayerId', layerId, true) } } From 5a95ea01506794f49d5fc64958ed5ae2e8bd1587 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Mon, 28 Jul 2025 10:55:10 +0200 Subject: [PATCH 100/697] Remove vue-pug linting (as pug is not used) --- eslint.config.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/eslint.config.js b/eslint.config.js index 6ec4ba954..f7a837b8c 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -3,7 +3,6 @@ import mainConfig from '@dataport/eslint-config-geodev' import browserConfig from '@dataport/eslint-config-geodev/browser' import tsConfig from '@dataport/eslint-config-geodev/typescript' import vueConfig from '@dataport/eslint-config-geodev/vue' -import vuePugConfig from '@dataport/eslint-config-geodev/vue-pug' import jsonConfig from '@dataport/eslint-config-geodev/json' import markdownConfig from '@dataport/eslint-config-geodev/markdown' import prettierConfig from 'eslint-plugin-prettier/recommended' @@ -78,7 +77,6 @@ export default defineConfig([ browserConfig, tsConfig, vueConfig, - vuePugConfig, prettierConfig, { rules: { From fb7e0714f6ec4c04ac6c3a2a7c3fe4a8d9573aa1 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Mon, 28 Jul 2025 12:48:26 +0200 Subject: [PATCH 101/697] Fix #polar-wrapper CSS style --- packages/polar/core/src/components/PolarMap.ce.vue | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/polar/core/src/components/PolarMap.ce.vue b/packages/polar/core/src/components/PolarMap.ce.vue index 1d0a281cb..1226dcb8f 100644 --- a/packages/polar/core/src/components/PolarMap.ce.vue +++ b/packages/polar/core/src/components/PolarMap.ce.vue @@ -186,8 +186,10 @@ function demo() { - + + + - - -

POLAR map client

-

Demo application ("Snowbox")

- - - diff --git a/packages/clients/snowbox-prod/src/snowbox.js b/packages/clients/snowbox-prod/src/snowbox.js deleted file mode 100644 index 4e96bfb13..000000000 --- a/packages/clients/snowbox-prod/src/snowbox.js +++ /dev/null @@ -1,23 +0,0 @@ -import { createMap } from '@polar/polar' - -const basemapId = '23420' -const basemapGreyId = '23421' - -await createMap( - { - layers: [ - { - id: basemapId, - visibility: true, - type: 'background', - name: 'snowbox.layers.basemap', - }, - { - id: basemapGreyId, - type: 'background', - name: 'snowbox.layers.basemapGrey', - }, - ], - }, - 'https://geodienste.hamburg.de/services-internet.json' -) diff --git a/packages/clients/snowbox-prod/vite.config.js b/packages/clients/snowbox-prod/vite.config.js deleted file mode 100644 index ec6262584..000000000 --- a/packages/clients/snowbox-prod/vite.config.js +++ /dev/null @@ -1,7 +0,0 @@ -import { getClientConfig } from '../../../viteConfigs' - -export default getClientConfig({ - server: { - port: 1235, - }, -}) diff --git a/packages/clients/snowbox/API.md b/packages/clients/snowbox/API.md deleted file mode 100644 index ddd8978ac..000000000 --- a/packages/clients/snowbox/API.md +++ /dev/null @@ -1,7 +0,0 @@ -# Snowbox API Documentation - -This is an API file that is used as part of the generated documentation. It will appear as main document in the snowbox's documentation. - -If the snowbox implemented any own features that are not derived from either core of plugins, this would be the place to document them. However, since that's not the case, it only features this introduction text and the link list below. - -For all additional details, check the [full documentation](https://dataport.github.io/polar/docs/snowbox/client-snowbox.html). diff --git a/packages/clients/snowbox/LICENSE b/packages/clients/snowbox/LICENSE deleted file mode 100644 index c29ce2f83..000000000 --- a/packages/clients/snowbox/LICENSE +++ /dev/null @@ -1,287 +0,0 @@ - EUROPEAN UNION PUBLIC LICENCE v. 1.2 - EUPL © the European Union 2007, 2016 - -This European Union Public Licence (the ‘EUPL’) applies to the Work (as defined -below) which is provided under the terms of this Licence. Any use of the Work, -other than as authorised under this Licence is prohibited (to the extent such -use is covered by a right of the copyright holder of the Work). - -The Work is provided under the terms of this Licence when the Licensor (as -defined below) has placed the following notice immediately following the -copyright notice for the Work: - - Licensed under the EUPL - -or has expressed by any other means his willingness to license under the EUPL. - -1. Definitions - -In this Licence, the following terms have the following meaning: - -- ‘The Licence’: this Licence. - -- ‘The Original Work’: the work or software distributed or communicated by the - Licensor under this Licence, available as Source Code and also as Executable - Code as the case may be. - -- ‘Derivative Works’: the works or software that could be created by the - Licensee, based upon the Original Work or modifications thereof. This Licence - does not define the extent of modification or dependence on the Original Work - required in order to classify a work as a Derivative Work; this extent is - determined by copyright law applicable in the country mentioned in Article 15. - -- ‘The Work’: the Original Work or its Derivative Works. - -- ‘The Source Code’: the human-readable form of the Work which is the most - convenient for people to study and modify. - -- ‘The Executable Code’: any code which has generally been compiled and which is - meant to be interpreted by a computer as a program. - -- ‘The Licensor’: the natural or legal person that distributes or communicates - the Work under the Licence. - -- ‘Contributor(s)’: any natural or legal person who modifies the Work under the - Licence, or otherwise contributes to the creation of a Derivative Work. - -- ‘The Licensee’ or ‘You’: any natural or legal person who makes any usage of - the Work under the terms of the Licence. - -- ‘Distribution’ or ‘Communication’: any act of selling, giving, lending, - renting, distributing, communicating, transmitting, or otherwise making - available, online or offline, copies of the Work or providing access to its - essential functionalities at the disposal of any other natural or legal - person. - -2. Scope of the rights granted by the Licence - -The Licensor hereby grants You a worldwide, royalty-free, non-exclusive, -sublicensable licence to do the following, for the duration of copyright vested -in the Original Work: - -- use the Work in any circumstance and for all usage, -- reproduce the Work, -- modify the Work, and make Derivative Works based upon the Work, -- communicate to the public, including the right to make available or display - the Work or copies thereof to the public and perform publicly, as the case may - be, the Work, -- distribute the Work or copies thereof, -- lend and rent the Work or copies thereof, -- sublicense rights in the Work or copies thereof. - -Those rights can be exercised on any media, supports and formats, whether now -known or later invented, as far as the applicable law permits so. - -In the countries where moral rights apply, the Licensor waives his right to -exercise his moral right to the extent allowed by law in order to make effective -the licence of the economic rights here above listed. - -The Licensor grants to the Licensee royalty-free, non-exclusive usage rights to -any patents held by the Licensor, to the extent necessary to make use of the -rights granted on the Work under this Licence. - -3. Communication of the Source Code - -The Licensor may provide the Work either in its Source Code form, or as -Executable Code. If the Work is provided as Executable Code, the Licensor -provides in addition a machine-readable copy of the Source Code of the Work -along with each copy of the Work that the Licensor distributes or indicates, in -a notice following the copyright notice attached to the Work, a repository where -the Source Code is easily and freely accessible for as long as the Licensor -continues to distribute or communicate the Work. - -4. Limitations on copyright - -Nothing in this Licence is intended to deprive the Licensee of the benefits from -any exception or limitation to the exclusive rights of the rights owners in the -Work, of the exhaustion of those rights or of other applicable limitations -thereto. - -5. Obligations of the Licensee - -The grant of the rights mentioned above is subject to some restrictions and -obligations imposed on the Licensee. Those obligations are the following: - -Attribution right: The Licensee shall keep intact all copyright, patent or -trademarks notices and all notices that refer to the Licence and to the -disclaimer of warranties. The Licensee must include a copy of such notices and a -copy of the Licence with every copy of the Work he/she distributes or -communicates. The Licensee must cause any Derivative Work to carry prominent -notices stating that the Work has been modified and the date of modification. - -Copyleft clause: If the Licensee distributes or communicates copies of the -Original Works or Derivative Works, this Distribution or Communication will be -done under the terms of this Licence or of a later version of this Licence -unless the Original Work is expressly distributed only under this version of the -Licence — for example by communicating ‘EUPL v. 1.2 only’. The Licensee -(becoming Licensor) cannot offer or impose any additional terms or conditions on -the Work or Derivative Work that alter or restrict the terms of the Licence. - -Compatibility clause: If the Licensee Distributes or Communicates Derivative -Works or copies thereof based upon both the Work and another work licensed under -a Compatible Licence, this Distribution or Communication can be done under the -terms of this Compatible Licence. For the sake of this clause, ‘Compatible -Licence’ refers to the licences listed in the appendix attached to this Licence. -Should the Licensee's obligations under the Compatible Licence conflict with -his/her obligations under this Licence, the obligations of the Compatible -Licence shall prevail. - -Provision of Source Code: When distributing or communicating copies of the Work, -the Licensee will provide a machine-readable copy of the Source Code or indicate -a repository where this Source will be easily and freely available for as long -as the Licensee continues to distribute or communicate the Work. - -Legal Protection: This Licence does not grant permission to use the trade names, -trademarks, service marks, or names of the Licensor, except as required for -reasonable and customary use in describing the origin of the Work and -reproducing the content of the copyright notice. - -6. Chain of Authorship - -The original Licensor warrants that the copyright in the Original Work granted -hereunder is owned by him/her or licensed to him/her and that he/she has the -power and authority to grant the Licence. - -Each Contributor warrants that the copyright in the modifications he/she brings -to the Work are owned by him/her or licensed to him/her and that he/she has the -power and authority to grant the Licence. - -Each time You accept the Licence, the original Licensor and subsequent -Contributors grant You a licence to their contributions to the Work, under the -terms of this Licence. - -7. Disclaimer of Warranty - -The Work is a work in progress, which is continuously improved by numerous -Contributors. It is not a finished work and may therefore contain defects or -‘bugs’ inherent to this type of development. - -For the above reason, the Work is provided under the Licence on an ‘as is’ basis -and without warranties of any kind concerning the Work, including without -limitation merchantability, fitness for a particular purpose, absence of defects -or errors, accuracy, non-infringement of intellectual property rights other than -copyright as stated in Article 6 of this Licence. - -This disclaimer of warranty is an essential part of the Licence and a condition -for the grant of any rights to the Work. - -8. Disclaimer of Liability - -Except in the cases of wilful misconduct or damages directly caused to natural -persons, the Licensor will in no event be liable for any direct or indirect, -material or moral, damages of any kind, arising out of the Licence or of the use -of the Work, including without limitation, damages for loss of goodwill, work -stoppage, computer failure or malfunction, loss of data or any commercial -damage, even if the Licensor has been advised of the possibility of such damage. -However, the Licensor will be liable under statutory product liability laws as -far such laws apply to the Work. - -9. Additional agreements - -While distributing the Work, You may choose to conclude an additional agreement, -defining obligations or services consistent with this Licence. However, if -accepting obligations, You may act only on your own behalf and on your sole -responsibility, not on behalf of the original Licensor or any other Contributor, -and only if You agree to indemnify, defend, and hold each Contributor harmless -for any liability incurred by, or claims asserted against such Contributor by -the fact You have accepted any warranty or additional liability. - -10. Acceptance of the Licence - -The provisions of this Licence can be accepted by clicking on an icon ‘I agree’ -placed under the bottom of a window displaying the text of this Licence or by -affirming consent in any other similar way, in accordance with the rules of -applicable law. Clicking on that icon indicates your clear and irrevocable -acceptance of this Licence and all of its terms and conditions. - -Similarly, you irrevocably accept this Licence and all of its terms and -conditions by exercising any rights granted to You by Article 2 of this Licence, -such as the use of the Work, the creation by You of a Derivative Work or the -Distribution or Communication by You of the Work or copies thereof. - -11. Information to the public - -In case of any Distribution or Communication of the Work by means of electronic -communication by You (for example, by offering to download the Work from a -remote location) the distribution channel or media (for example, a website) must -at least provide to the public the information requested by the applicable law -regarding the Licensor, the Licence and the way it may be accessible, concluded, -stored and reproduced by the Licensee. - -12. Termination of the Licence - -The Licence and the rights granted hereunder will terminate automatically upon -any breach by the Licensee of the terms of the Licence. - -Such a termination will not terminate the licences of any person who has -received the Work from the Licensee under the Licence, provided such persons -remain in full compliance with the Licence. - -13. Miscellaneous - -Without prejudice of Article 9 above, the Licence represents the complete -agreement between the Parties as to the Work. - -If any provision of the Licence is invalid or unenforceable under applicable -law, this will not affect the validity or enforceability of the Licence as a -whole. Such provision will be construed or reformed so as necessary to make it -valid and enforceable. - -The European Commission may publish other linguistic versions or new versions of -this Licence or updated versions of the Appendix, so far this is required and -reasonable, without reducing the scope of the rights granted by the Licence. New -versions of the Licence will be published with a unique version number. - -All linguistic versions of this Licence, approved by the European Commission, -have identical value. Parties can take advantage of the linguistic version of -their choice. - -14. Jurisdiction - -Without prejudice to specific agreement between parties, - -- any litigation resulting from the interpretation of this License, arising - between the European Union institutions, bodies, offices or agencies, as a - Licensor, and any Licensee, will be subject to the jurisdiction of the Court - of Justice of the European Union, as laid down in article 272 of the Treaty on - the Functioning of the European Union, - -- any litigation arising between other parties and resulting from the - interpretation of this License, will be subject to the exclusive jurisdiction - of the competent court where the Licensor resides or conducts its primary - business. - -15. Applicable Law - -Without prejudice to specific agreement between parties, - -- this Licence shall be governed by the law of the European Union Member State - where the Licensor has his seat, resides or has his registered office, - -- this licence shall be governed by Belgian law if the Licensor has no seat, - residence or registered office inside a European Union Member State. - -Appendix - -‘Compatible Licences’ according to Article 5 EUPL are: - -- GNU General Public License (GPL) v. 2, v. 3 -- GNU Affero General Public License (AGPL) v. 3 -- Open Software License (OSL) v. 2.1, v. 3.0 -- Eclipse Public License (EPL) v. 1.0 -- CeCILL v. 2.0, v. 2.1 -- Mozilla Public Licence (MPL) v. 2 -- GNU Lesser General Public Licence (LGPL) v. 2.1, v. 3 -- Creative Commons Attribution-ShareAlike v. 3.0 Unported (CC BY-SA 3.0) for - works other than software -- European Union Public Licence (EUPL) v. 1.1, v. 1.2 -- Québec Free and Open-Source Licence — Reciprocity (LiLiQ-R) or Strong - Reciprocity (LiLiQ-R+). - -The European Commission may update this Appendix to later versions of the above -licences without producing a new version of the EUPL, as long as they provide -the rights granted in Article 2 of this Licence and protect the covered Source -Code from exclusive appropriation. - -All other changes or additions to this Appendix require the production of a new -EUPL version. \ No newline at end of file diff --git a/packages/clients/snowbox/README.md b/packages/clients/snowbox/README.md deleted file mode 100644 index a078201be..000000000 --- a/packages/clients/snowbox/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Snowbox ❄️📦 - -Welcome to the Snowbox. - -This is - -- a sandbox -- a showbox -- a dev playground -- an example client -- an e2e test base client diff --git a/packages/clients/snowbox/package.json b/packages/clients/snowbox/package.json deleted file mode 100644 index 190c7554e..000000000 --- a/packages/clients/snowbox/package.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "@polar/client-snowbox", - "private": true, - "description": "Snow❄️📦box (Test Environment)", - "keywords": [ - "OpenLayers", - "ol", - "POLAR", - "client", - "Snowbox", - "testing" - ], - "license": "EUPL-1.2", - "type": "module", - "author": "Dataport AöR ", - "scripts": { - "dev": "vite --host" - }, - "//": "Don't push versions but '*'. Do locally as you desire.", - "devDependencies": { - "@polar/polar": "*" - }, - "nx": { - "includedScripts": [ - "dev" - ] - }, - "dependencies": { - } -} diff --git a/packages/clients/snowbox/vite.config.js b/packages/clients/snowbox/vite.config.js deleted file mode 100644 index 2fc094d6c..000000000 --- a/packages/clients/snowbox/vite.config.js +++ /dev/null @@ -1,4 +0,0 @@ -import { getClientConfig } from '../../../viteConfigs' - -export default getClientConfig({ -}) diff --git a/packages/polar/package.json b/packages/polar/package.json deleted file mode 100644 index 36d83e95f..000000000 --- a/packages/polar/package.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "name": "@polar/polar", - "version": "0.1.0", - "description": "POLAR core package. Provides POLAR environment with store setup, localization, UI framework, and other basics.", - "keywords": [ - "OpenLayers", - "ol", - "POLAR", - "core", - "base" - ], - "license": "EUPL-1.2", - "type": "module", - "author": "Dataport AöR ", - "exports": { - ".": "./dist/polar.js", - "./polar.css": "./dist/polar.css" - }, - "scripts": { - "build": "vite build --watch", - "build:ci": "vite build" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/Dataport/polar.git", - "directory": "packages/core" - }, - "dependencies": { - "@kern-ux-annex/webc": "^2.14.9", - "@kern-ux/native": "^2.2.0", - "@masterportal/masterportalapi": "2.48.0", - "hammerjs": "2.0.8", - "i18next": "^25.2.1", - "i18next-browser-languagedetector": "^8.2.0", - "i18next-vue": "^5.3.0", - "lodash.merge": "^4.6.2", - "pinia": "^3.0.3", - "pug": "^3.0.3", - "vue": "^3.5.16" - }, - "peerDependencies": { - "ol": "10.4.0" - }, - "nx": { - "includedScripts": [ - "build", - "build:ci" - ] - }, - "files": [ - "dist/**/*", - "CHANGELOG.md" - ] -} diff --git a/patches/@masterportal+masterportalapi+2.48.0.patch b/patches/@masterportal+masterportalapi+2.48.0.patch new file mode 100644 index 000000000..b75355554 --- /dev/null +++ b/patches/@masterportal+masterportalapi+2.48.0.patch @@ -0,0 +1,42 @@ +diff --git a/node_modules/@masterportal/masterportalapi/src/maps/olcs/3dUtils/fixedOverlaySynchronizer.js b/node_modules/@masterportal/masterportalapi/src/maps/olcs/3dUtils/fixedOverlaySynchronizer.js +index 6613447..cc83711 100644 +--- a/node_modules/@masterportal/masterportalapi/src/maps/olcs/3dUtils/fixedOverlaySynchronizer.js ++++ b/node_modules/@masterportal/masterportalapi/src/maps/olcs/3dUtils/fixedOverlaySynchronizer.js +@@ -1,4 +1,4 @@ +-import OverlaySynchronizer from "olcs/lib/olcs/OverlaySynchronizer.js"; ++import OverlaySynchronizer from "olcs/OverlaySynchronizer"; + + /** + * Represents a FixedOverlaySynchronizer. +diff --git a/node_modules/@masterportal/masterportalapi/src/maps/olcs/3dUtils/wmsRasterSynchronizer.js b/node_modules/@masterportal/masterportalapi/src/maps/olcs/3dUtils/wmsRasterSynchronizer.js +index aeebfaf..de492e6 100644 +--- a/node_modules/@masterportal/masterportalapi/src/maps/olcs/3dUtils/wmsRasterSynchronizer.js ++++ b/node_modules/@masterportal/masterportalapi/src/maps/olcs/3dUtils/wmsRasterSynchronizer.js +@@ -2,12 +2,12 @@ + * @module olcs.WMSRasterSynchronizer + */ + import olLayerGroup from "ol/layer/Group.js"; +-import {getUid} from "olcs/lib/olcs/util.js"; ++import {getUid} from "olcs/util"; + import TileWMS from "ol/source/TileWMS.js"; + import ImageWMS from "ol/source/ImageWMS.js"; + import WMTS from "ol/source/WMTS.js"; +-import AbstractSynchronizer from "olcs/lib/olcs/AbstractSynchronizer.js"; +-import {extentToRectangle, tileLayerToImageryLayer, updateCesiumLayerProperties} from "olcs/lib/olcs/core.js"; ++import AbstractSynchronizer from "olcs/AbstractSynchronizer"; ++import {extentToRectangle, tileLayerToImageryLayer, updateCesiumLayerProperties} from "olcs/core"; + import {Tile, Image as ImageLayer} from "ol/layer.js"; + import {stableSort} from "ol/array.js"; + import {getBottomLeft, getBottomRight, getTopRight, getTopLeft} from "ol/extent.js"; +diff --git a/node_modules/@masterportal/masterportalapi/src/maps/olcs/olcsMap.js b/node_modules/@masterportal/masterportalapi/src/maps/olcs/olcsMap.js +index 2192925..685cc9a 100644 +--- a/node_modules/@masterportal/masterportalapi/src/maps/olcs/olcsMap.js ++++ b/node_modules/@masterportal/masterportalapi/src/maps/olcs/olcsMap.js +@@ -1,6 +1,6 @@ + import OLCesium from "olcs"; + import {transform, get} from "ol/proj.js"; +-import VectorSynchronizer from "olcs/lib/olcs/VectorSynchronizer.js"; ++import VectorSynchronizer from "olcs/VectorSynchronizer"; + + import FixedOverlaySynchronizer from "./3dUtils/fixedOverlaySynchronizer.js"; + import WMSRasterSynchronizer from "./3dUtils/wmsRasterSynchronizer.js"; diff --git a/patches/@masterportal+masterportalapi+2.49.0.patch b/patches/@masterportal+masterportalapi+2.49.0.patch deleted file mode 100644 index 39c81785d..000000000 --- a/patches/@masterportal+masterportalapi+2.49.0.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/node_modules/@masterportal/masterportalapi/src/renderer/webgl.js b/node_modules/@masterportal/masterportalapi/src/renderer/webgl.js -index 2934cee..2f0476b 100644 ---- a/node_modules/@masterportal/masterportalapi/src/renderer/webgl.js -+++ b/node_modules/@masterportal/masterportalapi/src/renderer/webgl.js -@@ -7,7 +7,8 @@ import styleList from "../vectorStyle/styleList"; - import {getRulesForFeature} from "../vectorStyle/lib/getRuleForIndex"; - import {returnColor} from "../vectorStyle/lib/colorConvertions"; - import {asArray} from "ol/color.js"; --import {packColor, parseLiteralStyle} from "ol/webgl/styleparser.js"; -+import {packColor} from "ol/render/webgl/compileUtil.js"; -+import {parseLiteralStyle} from "ol/render/webgl/style.js"; - - /** - * The default style for OpenLayers WebGLPoints class diff --git a/scripts/build-masterportalapi-patch.sh b/scripts/build-masterportalapi-patch.sh new file mode 100755 index 000000000..4f4964f75 --- /dev/null +++ b/scripts/build-masterportalapi-patch.sh @@ -0,0 +1,3 @@ +#!/bin/sh +find node_modules/@masterportal/masterportalapi/ -type f -name '*.js' -print0 | \ + xargs -0 sed -i 's|olcs/lib/olcs/\([a-zA-Z]\+\)\.js|olcs/\1|g' diff --git a/packages/clients/snowbox/src/snowbox.js b/snowbox.js similarity index 98% rename from packages/clients/snowbox/src/snowbox.js rename to snowbox.js index c049d4723..4ecdebbad 100644 --- a/packages/clients/snowbox/src/snowbox.js +++ b/snowbox.js @@ -4,7 +4,7 @@ import { createMap, removePlugin, subscribe, -} from '../../../polar/core/src/index.ts' +} from './src/core/index.ts' const basemapId = '23420' const basemapGreyId = '23421' diff --git a/packages/polar/core/src/components/PolarMap.ce.vue b/src/core/components/PolarMap.ce.vue similarity index 100% rename from packages/polar/core/src/components/PolarMap.ce.vue rename to src/core/components/PolarMap.ce.vue diff --git a/packages/polar/core/src/components/PolarUI.ce.vue b/src/core/components/PolarUI.ce.vue similarity index 100% rename from packages/polar/core/src/components/PolarUI.ce.vue rename to src/core/components/PolarUI.ce.vue diff --git a/packages/polar/core/src/components/layouts/NineLayout.ce.vue b/src/core/components/layouts/NineLayout.ce.vue similarity index 100% rename from packages/polar/core/src/components/layouts/NineLayout.ce.vue rename to src/core/components/layouts/NineLayout.ce.vue diff --git a/packages/polar/core/src/components/layouts/SidebarLayout.ce.vue b/src/core/components/layouts/SidebarLayout.ce.vue similarity index 100% rename from packages/polar/core/src/components/layouts/SidebarLayout.ce.vue rename to src/core/components/layouts/SidebarLayout.ce.vue diff --git a/packages/polar/core/src/index.ts b/src/core/index.ts similarity index 100% rename from packages/polar/core/src/index.ts rename to src/core/index.ts diff --git a/packages/polar/core/src/locales.ts b/src/core/locales.ts similarity index 100% rename from packages/polar/core/src/locales.ts rename to src/core/locales.ts diff --git a/packages/polar/core/src/stores/useCoreStore.ts b/src/core/stores/useCoreStore.ts similarity index 100% rename from packages/polar/core/src/stores/useCoreStore.ts rename to src/core/stores/useCoreStore.ts diff --git a/packages/polar/core/src/stores/useMarkerStore.ts b/src/core/stores/useMarkerStore.ts similarity index 97% rename from packages/polar/core/src/stores/useMarkerStore.ts rename to src/core/stores/useMarkerStore.ts index 81555eb07..9ab1b8d92 100644 --- a/packages/polar/core/src/stores/useMarkerStore.ts +++ b/src/core/stores/useMarkerStore.ts @@ -9,6 +9,7 @@ import Cluster from 'ol/source/Cluster' import VectorSource from 'ol/source/Vector' import { defineStore } from 'pinia' import { computed, ref, watch } from 'vue' +<<<<<<< HEAD:packages/polar/core/src/stores/useMarkerStore.ts import getCluster from '../../../lib/getCluster' import { isVisible } from '../../../lib/invisibleStyle' import { @@ -17,6 +18,11 @@ import { MarkerLayer, MarkerStyle, } from '../types' +======= +import getCluster from '../../lib/getCluster' +import { isVisible } from '../../lib/invisibleStyle' +import { Markers, MarkersIsSelectableFunction, MarkerStyle } from '../types' +>>>>>>> 62cef819 (Migrate to single-repo structure):src/core/stores/useMarkerStore.ts import { getMarkerStyle } from '../utils/markers' import { useCoreStore } from './useCoreStore' diff --git a/packages/polar/core/src/types.ts b/src/core/types.ts similarity index 100% rename from packages/polar/core/src/types.ts rename to src/core/types.ts diff --git a/packages/polar/core/src/utils/NineLayoutTag.ts b/src/core/utils/NineLayoutTag.ts similarity index 100% rename from packages/polar/core/src/utils/NineLayoutTag.ts rename to src/core/utils/NineLayoutTag.ts diff --git a/packages/polar/core/src/utils/constants.ts b/src/core/utils/constants.ts similarity index 100% rename from packages/polar/core/src/utils/constants.ts rename to src/core/utils/constants.ts diff --git a/packages/polar/core/src/utils/defaults.ts b/src/core/utils/defaults.ts similarity index 100% rename from packages/polar/core/src/utils/defaults.ts rename to src/core/utils/defaults.ts diff --git a/packages/polar/core/src/utils/interactions.ts b/src/core/utils/interactions.ts similarity index 100% rename from packages/polar/core/src/utils/interactions.ts rename to src/core/utils/interactions.ts diff --git a/packages/polar/core/src/utils/loadKern.ts b/src/core/utils/loadKern.ts similarity index 100% rename from packages/polar/core/src/utils/loadKern.ts rename to src/core/utils/loadKern.ts diff --git a/packages/polar/core/src/utils/mapZoomOffset.ts b/src/core/utils/mapZoomOffset.ts similarity index 100% rename from packages/polar/core/src/utils/mapZoomOffset.ts rename to src/core/utils/mapZoomOffset.ts diff --git a/packages/polar/core/src/utils/markers.ts b/src/core/utils/markers.ts similarity index 100% rename from packages/polar/core/src/utils/markers.ts rename to src/core/utils/markers.ts diff --git a/packages/polar/core/src/vuePlugins/i18next.ts b/src/core/vuePlugins/i18next.ts similarity index 100% rename from packages/polar/core/src/vuePlugins/i18next.ts rename to src/core/vuePlugins/i18next.ts diff --git a/packages/polar/core/src/vuePlugins/pinia.ts b/src/core/vuePlugins/pinia.ts similarity index 100% rename from packages/polar/core/src/vuePlugins/pinia.ts rename to src/core/vuePlugins/pinia.ts diff --git a/packages/polar/lib/getCluster.ts b/src/lib/getCluster.ts similarity index 100% rename from packages/polar/lib/getCluster.ts rename to src/lib/getCluster.ts diff --git a/packages/polar/lib/invisibleStyle.ts b/src/lib/invisibleStyle.ts similarity index 100% rename from packages/polar/lib/invisibleStyle.ts rename to src/lib/invisibleStyle.ts diff --git a/tsconfig.json b/tsconfig.json index ed8acf484..31991ed34 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,5 +1,7 @@ { - "include": ["packages"], + "include": [ + "src" + ], "compilerOptions": { "target": "es6", "module": "esnext", diff --git a/packages/polar/vite.config.ts b/vite.config.ts similarity index 84% rename from packages/polar/vite.config.ts rename to vite.config.ts index 577e928f7..24f613894 100644 --- a/packages/polar/vite.config.ts +++ b/vite.config.ts @@ -15,8 +15,11 @@ export default defineConfig({ lib: { name: '@polar/polar', fileName: 'polar', - entry: 'core/src/index.ts', + entry: 'src/core/index.ts', }, sourcemap: true, }, + server: { + port: 1234, + }, }) diff --git a/viteConfigs/index.js b/viteConfigs/index.js deleted file mode 100644 index e8b937597..000000000 --- a/viteConfigs/index.js +++ /dev/null @@ -1,6 +0,0 @@ -import merge from 'lodash.merge' -import clientConfiguration from './vite.client' - -export function getClientConfig(options = {}) { - return merge(clientConfiguration, options) -} diff --git a/viteConfigs/vite.client.js b/viteConfigs/vite.client.js deleted file mode 100644 index 64196524f..000000000 --- a/viteConfigs/vite.client.js +++ /dev/null @@ -1,50 +0,0 @@ -import { createRequire } from 'module' -import { resolve } from 'path' -import { defineConfig } from 'vite' -import commonJs from 'vite-plugin-commonjs' -import vue from '@vitejs/plugin-vue' - -const require = createRequire(import.meta.url) - -export default defineConfig({ - plugins: [ - commonJs(), - vue({ - template: { - compilerOptions: { - isCustomElement: (tag) => tag.includes('-'), - }, - }, - }), - ], - root: 'src', - define: { - 'process.env.NODE_ENV': `"${process.env.NODE_ENV}"`, - }, - build: { - outDir: '../dist', - sourcemap: true, - target: 'esnext', - }, - server: { - port: 1234, - }, - optimizeDeps: { - exclude: ['geojson'], - }, - resolve: { - alias: { - // mitigation for ignoring package.json exports in @masterportal/masterportalapi - 'olcs/lib/olcs': resolve( - __dirname, - '..', - 'node_modules', - 'olcs', - 'lib', - 'olcs' - ), - stream: require.resolve('stream-browserify'), - timers: require.resolve('timers-browserify'), - }, - }, -}) From 1ade4bc2dd5db2bd6407d863c7bc1a63fad1de64 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Wed, 30 Jul 2025 16:32:36 +0200 Subject: [PATCH 113/697] Fix type of timeout variable --- packages/polar/core/src/components/PolarMap.ce.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/polar/core/src/components/PolarMap.ce.vue b/packages/polar/core/src/components/PolarMap.ce.vue index 88cf3a011..d60edd7d7 100644 --- a/packages/polar/core/src/components/PolarMap.ce.vue +++ b/packages/polar/core/src/components/PolarMap.ce.vue @@ -122,7 +122,7 @@ function updateListeners() { } } -let noControlOnZoomTimeout: number +let noControlOnZoomTimeout: ReturnType function wheelEffect(event: WheelEvent) { clearTimeout(noControlOnZoomTimeout) From 03ab30b89b1883f0bc4392962d4aece00a75037c Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Wed, 30 Jul 2025 16:33:24 +0200 Subject: [PATCH 114/697] Implement featureStyles Make sure that markers takes precedence over configuration of a styleId on a layer. --- package-lock.json | 7 +++ packages/clients/snowbox/src/snowbox.js | 10 +++ packages/clients/snowbox/src/style.json | 17 ++++++ .../polar/core/src/components/PolarMap.ce.vue | 10 +-- .../polar/core/src/stores/useCoreStore.ts | 61 ++++++++++++++++++- packages/polar/core/src/types.ts | 1 + packages/polar/package.json | 1 + .../core/src/components/MapContainer.vue | 2 - vue2/packages/core/src/utils/setupStyling.ts | 51 ---------------- 9 files changed, 101 insertions(+), 59 deletions(-) create mode 100644 packages/clients/snowbox/src/style.json delete mode 100644 vue2/packages/core/src/utils/setupStyling.ts diff --git a/package-lock.json b/package-lock.json index dadd7d230..dbc0556a3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3721,6 +3721,12 @@ "node": ">=18" } }, + "node_modules/@repositoryname/noop": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@repositoryname/noop/-/noop-1.0.6.tgz", + "integrity": "sha512-UQ8owkg0Tp1F4VkMFqnN7rQia/rLYfQcSz8OtzkKPESGdx4cudAmbHBUsQMsS2s2KJKyP8+k88QbEt/mGwVM3g==", + "license": "MIT" + }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.45.1", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.45.1.tgz", @@ -13876,6 +13882,7 @@ "@kern-ux-annex/webc": "^2.14.9", "@kern-ux/native": "^2.2.0", "@masterportal/masterportalapi": "2.48.0", + "@repositoryname/noop": "^1.0.6", "hammerjs": "2.0.8", "i18next": "^25.2.1", "i18next-browser-languagedetector": "^8.2.0", diff --git a/packages/clients/snowbox/src/snowbox.js b/packages/clients/snowbox/src/snowbox.js index c049d4723..3dadf3e91 100644 --- a/packages/clients/snowbox/src/snowbox.js +++ b/packages/clients/snowbox/src/snowbox.js @@ -8,6 +8,7 @@ import { const basemapId = '23420' const basemapGreyId = '23421' +const ausgleichsflaechen = '1454' const reports = '6059' // arbitrary condition for testing @@ -40,8 +41,17 @@ await createMap( type: 'mask', name: 'snowbox.layers.reports', visibility: true, + styleId: 'panda', + }, + { + id: ausgleichsflaechen, + type: 'mask', + name: 'snowbox.layers.ausgleichsflaechen', + styleId: 'panda', + visibility: true, }, ], + featureStyles: './style.json', markers: { layers: [ { diff --git a/packages/clients/snowbox/src/style.json b/packages/clients/snowbox/src/style.json new file mode 100644 index 000000000..ddab0e95d --- /dev/null +++ b/packages/clients/snowbox/src/style.json @@ -0,0 +1,17 @@ +[ + { + "styleId": "panda", + "rules": [ + { + "style": { + "polygonStrokeColor": [3, 255, 1, 1], + "polygonFillHatch": { + "backgroundColor": [0, 0, 0, 0.25], + "pattern": "diagonal-right", + "patternColor": [3, 255, 1, 1] + } + } + } + ] + } +] diff --git a/packages/polar/core/src/components/PolarMap.ce.vue b/packages/polar/core/src/components/PolarMap.ce.vue index d60edd7d7..0911a33d8 100644 --- a/packages/polar/core/src/components/PolarMap.ce.vue +++ b/packages/polar/core/src/components/PolarMap.ce.vue @@ -133,7 +133,7 @@ function wheelEffect(event: WheelEvent) { ) } -function setup() { +async function setup() { if (coreStore.configuration.secureServiceUrlRegex) { coreStore.addInterceptor(coreStore.configuration.secureServiceUrlRegex) } @@ -141,6 +141,7 @@ function setup() { if (coreStore.configuration.markers) { useMarkerStore().setupMarkers(coreStore.configuration.markers) } + await coreStore.setupStyling() resizeObserver = new ResizeObserver(updateClientDimensions) resizeObserver.observe(polarWrapper.value as Element) updateClientDimensions() @@ -149,16 +150,15 @@ function setup() { } onMounted(async () => { - await loadKern(polarWrapper.value.parentNode) + await loadKern(polarWrapper.value?.parentNode as ShadowRoot) if (Array.isArray(coreStore.serviceRegister)) { - setup() - return + return setup() } rawLayerList.initializeLayerList( coreStore.serviceRegister, (layerConf: MasterportalApiConfiguration['layerConf']) => { coreStore.serviceRegister = layerConf - setup() + return setup() } ) }) diff --git a/packages/polar/core/src/stores/useCoreStore.ts b/packages/polar/core/src/stores/useCoreStore.ts index eac7eec4c..b97739848 100644 --- a/packages/polar/core/src/stores/useCoreStore.ts +++ b/packages/polar/core/src/stores/useCoreStore.ts @@ -1,8 +1,13 @@ +import createStyle from '@masterportal/masterportalapi/src/vectorStyle/createStyle' +import styleList from '@masterportal/masterportalapi/src/vectorStyle/styleList' +import noop from '@repositoryname/noop' import i18next from 'i18next' -import { type Feature, Map } from 'ol' +import type { Feature, Map } from 'ol' import { type Coordinate } from 'ol/coordinate' import { easeOut } from 'ol/easing' +import { type FeatureLike } from 'ol/Feature' import { type Point } from 'ol/geom' +import type VectorLayer from 'ol/layer/Vector' import { type Interaction } from 'ol/interaction' import { defineStore } from 'pinia' import { computed, ref, watch } from 'vue' @@ -102,6 +107,59 @@ export const useCoreStore = defineStore('core', () => { return map } + async function setupStyling() { + const register = serviceRegister.value + + if (configuration.value.featureStyles && Array.isArray(register)) { + await styleList.initializeStyleList( + // Masterportal specific field not required by POLAR + {}, + { styleConf: configuration.value.featureStyles }, + configuration.value.layers.map((layer) => { + const layerConfig = register.find((l) => l.id === layer.id) + if (layerConfig) { + return { + ...layer, + // Required by @masterportal/masterportalapi + typ: layerConfig.typ, + } + } + return layer + }), + // Masterportal specific field not required by POLAR + [], + // Callback currently yields no relevant benefit + noop + ) + // A layer can either be styled through the provided styles or through the markers configuration; markers takes precedence. + const markerLayers = configuration.value.markers + ? configuration.value.markers.layers.map(({ id }) => id) + : [] + map + .getLayers() + .getArray() + .filter( + (layer) => + typeof layer.get('styleId') === 'string' && + !markerLayers.includes(layer.get('id') as string) + ) + .forEach((layer) => { + const styleObject = styleList.returnStyleObject(layer.get('styleId')) + if (styleObject) { + ;(layer as VectorLayer).setStyle((feature: Feature | FeatureLike) => + createStyle.createStyle( + styleObject, + feature, + feature.get('features') !== undefined, + // NOTE: This field may be implemented in the future to be able to style points with graphics + '' + ) + ) + } + }) + } + } + function setMap(newMap: Map) { // NOTE: Not defined in the beginning // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition @@ -190,6 +248,7 @@ export const useCoreStore = defineStore('core', () => { centerOnFeature, getMap, setMap, + setupStyling, updateDragAndZoomInteractions, updateHasSmallDisplay, updateSizeOnReady, diff --git a/packages/polar/core/src/types.ts b/packages/polar/core/src/types.ts index 5b0c2e50d..000b8b434 100644 --- a/packages/polar/core/src/types.ts +++ b/packages/polar/core/src/types.ts @@ -192,6 +192,7 @@ export interface MasterportalApiConfiguration { export interface MapConfiguration extends MasterportalApiConfiguration { /** Configured layers */ layers: LayerConfiguration[] + featureStyles?: string language?: InitialLanguage locales?: Locale[] markers?: MarkerConfiguration diff --git a/packages/polar/package.json b/packages/polar/package.json index 36d83e95f..d0ba7cd84 100644 --- a/packages/polar/package.json +++ b/packages/polar/package.json @@ -29,6 +29,7 @@ "@kern-ux-annex/webc": "^2.14.9", "@kern-ux/native": "^2.2.0", "@masterportal/masterportalapi": "2.48.0", + "@repositoryname/noop": "^1.0.6", "hammerjs": "2.0.8", "i18next": "^25.2.1", "i18next-browser-languagedetector": "^8.2.0", diff --git a/vue2/packages/core/src/components/MapContainer.vue b/vue2/packages/core/src/components/MapContainer.vue index 73065d929..14a13e0d8 100644 --- a/vue2/packages/core/src/components/MapContainer.vue +++ b/vue2/packages/core/src/components/MapContainer.vue @@ -35,7 +35,6 @@ import { MapConfig, MoveHandleProperties, } from '@polar/lib-custom-types' -import { setupStyling } from '../utils/setupStyling' import { mapZoomOffset } from '../utils/mapZoomOffset' // NOTE: OpenLayers styles need to be imported as the map resides in the shadow DOM import 'ol/ol.css' @@ -104,7 +103,6 @@ export default Vue.extend({ }, } ) - setupStyling(this.mapConfiguration, map) this.setMap(map) this.mapConfiguration.locales?.forEach?.((locale: Locale) => i18next.addResourceBundle(locale.type, 'common', locale.resources, true) diff --git a/vue2/packages/core/src/utils/setupStyling.ts b/vue2/packages/core/src/utils/setupStyling.ts deleted file mode 100644 index 3e7629c50..000000000 --- a/vue2/packages/core/src/utils/setupStyling.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { MapConfig } from '@polar/lib-custom-types' -import noop from '@repositoryname/noop' -import styleList from '@masterportal/masterportalapi/src/vectorStyle/styleList' -import createStyle from '@masterportal/masterportalapi/src/vectorStyle/createStyle' -import VectorLayer from 'ol/layer/Vector' -import { Feature, Map } from 'ol' -import { FeatureLike } from 'ol/Feature' - -export async function setupStyling(mapConfiguration: MapConfig, map: Map) { - if (mapConfiguration.featureStyles) { - await styleList.initializeStyleList( - // Masterportal specific field not required by POLAR - {}, - { styleConf: mapConfiguration.featureStyles }, - mapConfiguration.layers.map((layer) => { - const layerConfig = mapConfiguration.layerConf.find( - (l) => l.id === layer.id - ) - if (layerConfig) { - return { - ...layer, - // Required by @masterportal/masterportalapi - typ: layerConfig.typ, - } - } - return layer - }), - // Masterportal specific field not required by POLAR - [], - // Callback currently yields no relevant benefit - noop - ) - map.getLayers().forEach((layer) => { - if (!layer.get('styleId')) { - return - } - const styleObject = styleList.returnStyleObject(layer.get('styleId')) - if (styleObject) { - ;(layer as VectorLayer).setStyle((feature: Feature | FeatureLike) => - createStyle.createStyle( - styleObject, - feature, - feature.get('features') !== undefined, - // NOTE: This field may be implemented in the future to be able to style points with graphics - '' - ) - ) - } - }) - } -} From 2a2783f29bf3443e62b6214e6b8216b988a24b63 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Wed, 30 Jul 2025 16:33:39 +0200 Subject: [PATCH 115/697] Instantiate variable with null to have correct typing later on --- packages/polar/core/src/stores/useMarkerStore.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/polar/core/src/stores/useMarkerStore.ts b/packages/polar/core/src/stores/useMarkerStore.ts index 81555eb07..2584b5b8d 100644 --- a/packages/polar/core/src/stores/useMarkerStore.ts +++ b/packages/polar/core/src/stores/useMarkerStore.ts @@ -58,7 +58,7 @@ export const useMarkerStore = defineStore('markers', () => { } let layers: MarkerLayer[] = [] - let callOnMapSelect: CallOnMapSelect + let callOnMapSelect: CallOnMapSelect | null = null let clusterClickZoom: MarkerConfiguration['clusterClickZoom'] = false let lastZoom = 0 From ad190d39f67b0fedc0fb132270ceab3b32f1e74c Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Wed, 30 Jul 2025 17:21:59 +0200 Subject: [PATCH 116/697] Add configurable parameter checkServiceAvailability Update functionality to only check layers that are being used. --- packages/clients/snowbox/src/snowbox.js | 1 + .../polar/core/src/components/PolarMap.ce.vue | 3 + .../polar/core/src/stores/useCoreStore.ts | 72 ++++++++++++++++++- packages/polar/core/src/types.ts | 13 ++++ .../core/src/components/MapContainer.vue | 4 -- vue2/packages/core/src/types.ts | 5 -- .../actions/checkServiceAvailability.ts | 55 -------------- vue2/packages/core/src/vuePlugins/vuex.ts | 9 --- vue2/packages/types/custom/core.ts | 9 --- 9 files changed, 88 insertions(+), 83 deletions(-) delete mode 100644 vue2/packages/core/src/vuePlugins/actions/checkServiceAvailability.ts diff --git a/packages/clients/snowbox/src/snowbox.js b/packages/clients/snowbox/src/snowbox.js index 3dadf3e91..963c846cc 100644 --- a/packages/clients/snowbox/src/snowbox.js +++ b/packages/clients/snowbox/src/snowbox.js @@ -51,6 +51,7 @@ await createMap( visibility: true, }, ], + checkServiceAvailability: true, featureStyles: './style.json', markers: { layers: [ diff --git a/packages/polar/core/src/components/PolarMap.ce.vue b/packages/polar/core/src/components/PolarMap.ce.vue index 0911a33d8..54035921e 100644 --- a/packages/polar/core/src/components/PolarMap.ce.vue +++ b/packages/polar/core/src/components/PolarMap.ce.vue @@ -138,6 +138,9 @@ async function setup() { coreStore.addInterceptor(coreStore.configuration.secureServiceUrlRegex) } createMap() + if (coreStore.configuration.checkServiceAvailability) { + coreStore.checkServiceAvailability() + } if (coreStore.configuration.markers) { useMarkerStore().setupMarkers(coreStore.configuration.markers) } diff --git a/packages/polar/core/src/stores/useCoreStore.ts b/packages/polar/core/src/stores/useCoreStore.ts index b97739848..38e072cbe 100644 --- a/packages/polar/core/src/stores/useCoreStore.ts +++ b/packages/polar/core/src/stores/useCoreStore.ts @@ -1,3 +1,4 @@ +import { ping } from '@masterportal/masterportalapi' import createStyle from '@masterportal/masterportalapi/src/vectorStyle/createStyle' import styleList from '@masterportal/masterportalapi/src/vectorStyle/styleList' import noop from '@repositoryname/noop' @@ -11,7 +12,12 @@ import type VectorLayer from 'ol/layer/Vector' import { type Interaction } from 'ol/interaction' import { defineStore } from 'pinia' import { computed, ref, watch } from 'vue' -import type { MapConfiguration, PluginContainer } from '../types' +import type { + MapConfiguration, + PluginContainer, + PolarError, + ServiceAvailabilityCheck, +} from '../types' import { createPanAndZoomInteractions } from '../utils/interactions' import { SMALL_DISPLAY_HEIGHT, SMALL_DISPLAY_WIDTH } from '../utils/constants' @@ -26,6 +32,7 @@ export const useCoreStore = defineStore('core', () => { layers: [], startCenter: [0, 0], }) + const errors = ref([]) const hasSmallDisplay = ref(false) const language = ref(i18next.language) const mapHasDimensions = ref(false) @@ -94,6 +101,68 @@ export const useCoreStore = defineStore('core', () => { }) } + function checkServiceAvailability() { + const register = serviceRegister.value + if (typeof register === 'string') { + console.error( + 'polar/core.checkServiceAvailability: Action was called when the parameter serviceRegister was not yet set to an array of services.' + ) + return + } + + configuration.value.layers + .map(({ id }) => register.find(({ id: serviceId }) => serviceId === id)) + .filter((service) => { + if (!service) { + console.warn( + `polar/core.checkServiceAvailability: Service with id "${service.id}" not found in service register.` + ) + return false + } + return true + }) + .map( + (service): ServiceAvailabilityCheck => ({ + ping: ping(service), + serviceId: service.id, + serviceName: service.name, + }) + ) + .forEach(({ ping, serviceId, serviceName }) => { + ping + .then((statusCode) => { + if (statusCode !== 200) { + const toastStore = plugins.value.find( + ({ name }) => name === 'toast' + )?.storeModule + if (toastStore) { + // TODO: Uncomment when toast plugin is implemented + /* toastStore().addToast({ + type: 'warning', + text: i18next.t('error.serviceUnavailable', { + serviceId, + serviceName, + }), + }) */ + } + // always print status code for debugging purposes + console.error( + `polar/core: Ping to "${serviceId}" returned "${statusCode}".` + ) + // always add to error log for listener purposes + errors.value.push({ + type: 'connection', + statusCode, + text: `Ping to "${serviceId}" returned "${statusCode}".`, + }) + } + }) + .catch((e) => { + console.error('polar/core', e) + }) + }) + } + function setCenter() { // @ts-expect-error | map always has a center center.value = map.getView().getCenter() @@ -246,6 +315,7 @@ export const useCoreStore = defineStore('core', () => { // Actions addInterceptor, centerOnFeature, + checkServiceAvailability, getMap, setMap, setupStyling, diff --git a/packages/polar/core/src/types.ts b/packages/polar/core/src/types.ts index 000b8b434..19647caa9 100644 --- a/packages/polar/core/src/types.ts +++ b/packages/polar/core/src/types.ts @@ -23,6 +23,18 @@ export interface Locale { type: string } +export interface PolarError { + type: 'connection' | 'uncategorized' + statusCode: number | null + text: string +} + +export interface ServiceAvailabilityCheck { + ping: Promise + serviceId: string + serviceName: string +} + // TODO(dopenguin): Adjust these options export interface PluginOptions { displayComponent?: boolean @@ -192,6 +204,7 @@ export interface MasterportalApiConfiguration { export interface MapConfiguration extends MasterportalApiConfiguration { /** Configured layers */ layers: LayerConfiguration[] + checkServiceAvailability?: boolean featureStyles?: string language?: InitialLanguage locales?: Locale[] diff --git a/vue2/packages/core/src/components/MapContainer.vue b/vue2/packages/core/src/components/MapContainer.vue index 14a13e0d8..99bc35ac3 100644 --- a/vue2/packages/core/src/components/MapContainer.vue +++ b/vue2/packages/core/src/components/MapContainer.vue @@ -108,13 +108,9 @@ export default Vue.extend({ i18next.addResourceBundle(locale.type, 'common', locale.resources, true) ) i18next.on('languageChanged', (lang) => (this.lang = lang)) - if (this.mapConfiguration.checkServiceAvailability) { - this.checkServiceAvailability() - } }, methods: { ...mapMutations(['setMap']), - ...mapActions(['checkServiceAvailability',]), }, }) diff --git a/vue2/packages/core/src/types.ts b/vue2/packages/core/src/types.ts index c13f39ac5..b6f244aa5 100644 --- a/vue2/packages/core/src/types.ts +++ b/vue2/packages/core/src/types.ts @@ -10,8 +10,3 @@ export interface CreateOptions { containerId: string mapConfiguration: MapConfig } - -export interface ServiceAvailabilityCheck { - ping: Promise - service: Record -} diff --git a/vue2/packages/core/src/vuePlugins/actions/checkServiceAvailability.ts b/vue2/packages/core/src/vuePlugins/actions/checkServiceAvailability.ts deleted file mode 100644 index 24e637ee7..000000000 --- a/vue2/packages/core/src/vuePlugins/actions/checkServiceAvailability.ts +++ /dev/null @@ -1,55 +0,0 @@ -import i18next from 'i18next' -import { ping } from '@masterportal/masterportalapi' -import { - CoreGetters, - CoreState, - PolarActionContext, - PolarError, - PolarStore, -} from '@polar/lib-custom-types' -import { ServiceAvailabilityCheck } from '../../types' - -export default function ( - this: PolarStore, - { commit, state, getters }: PolarActionContext -) { - state.configuration.layerConf - .map( - (service): ServiceAvailabilityCheck => ({ - ping: ping(service), - service, - }) - ) - .forEach(({ ping, service }) => - ping - .then((statusCode) => { - if (statusCode !== 200) { - // NOTE more output channels? make configurable. - if (this.hasModule(['plugin', 'toast'])) { - this.dispatch('plugin/toast/addToast', { - type: 'warning', - // @ts-expect-error | t seems to be mistyped https://www.i18next.com/translation-function/interpolation#basic - text: i18next.t('error.serviceUnavailable', { - serviceId: service.id, - serviceName: service.name, - }), - }) - } - // always print status code for debugging purposes - console.error( - `@polar/core: Ping to "${service.id}" returned "${statusCode}".` - ) - // always add to error log for listener purposes - commit('setErrors', [ - ...getters.errors, - { - type: 'connection', - statusCode, - text: `Ping to "${service.id}" returned "${statusCode}".`, - } as PolarError, - ]) - } - }) - .catch((e) => console.error('@polar/core', e)) - ) -} diff --git a/vue2/packages/core/src/vuePlugins/vuex.ts b/vue2/packages/core/src/vuePlugins/vuex.ts index 111aaec14..bad8d3e05 100644 --- a/vue2/packages/core/src/vuePlugins/vuex.ts +++ b/vue2/packages/core/src/vuePlugins/vuex.ts @@ -13,11 +13,9 @@ import { MoveHandleActionButton, MoveHandleProperties, PluginContainer, - PolarError, } from '@polar/lib-custom-types' import { Map } from 'ol' import { CapabilitiesModule } from '../storeModules/capabilities' -import checkServiceAvailability from './actions/checkServiceAvailability' // @ts-expect-error | 'TS2339: Property 'env' does not exist on type 'ImportMeta'.' - It does since we're using vite as a bundler. const devMode = import.meta.env.DEV @@ -61,7 +59,6 @@ const getInitialState = (): CoreState => ({ startCenter: [0, 0], }, hasSmallDisplay: false, - errors: [], language: '', mapHasDimensions: false, oidcToken: '', @@ -130,12 +127,6 @@ export const makeStore = (mapConfiguration: MapConfig) => { moveHandleActionButton = payload state.moveHandleActionButton += 1 }, - addError: (state, error: PolarError) => { - state.errors.push(error) - }, - }, - actions: { - checkServiceAvailability, }, }) diff --git a/vue2/packages/types/custom/core.ts b/vue2/packages/types/custom/core.ts index 9d2656f72..4e8322222 100644 --- a/vue2/packages/types/custom/core.ts +++ b/vue2/packages/types/custom/core.ts @@ -538,8 +538,6 @@ export interface ZoomConfiguration extends PluginOptions { export interface MapConfig extends MasterportalApiConfig { /** if true, all services' availability will be checked with head requests */ - checkServiceAvailability?: boolean - featureStyles?: string renderFaToLightDom?: boolean stylePath?: string vuetify?: UserVuetifyPreset @@ -571,12 +569,6 @@ export interface MapConfig extends MasterportalApiConfig { * */ -export interface PolarError { - type: 'connection' | 'uncategorized' - statusCode: number | null - text: string -} - type MoveHandleProps = object export interface MoveHandleProperties { @@ -607,7 +599,6 @@ export interface CoreState { 'epsg' | 'namedProjections' | 'options' | 'startResolution' > > - errors: PolarError[] hasSmallDisplay: boolean hovered: number language: string From 355d34156bf22219964b456b336b3fad81a87c5c Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Wed, 30 Jul 2025 19:39:16 +0200 Subject: [PATCH 117/697] Add language to polar wrapper --- packages/polar/core/src/components/PolarMap.ce.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/polar/core/src/components/PolarMap.ce.vue b/packages/polar/core/src/components/PolarMap.ce.vue index 54035921e..46a88ccb3 100644 --- a/packages/polar/core/src/components/PolarMap.ce.vue +++ b/packages/polar/core/src/components/PolarMap.ce.vue @@ -1,5 +1,5 @@ @@ -17,4 +18,16 @@ const uiPlugins = computed(() => ) - + From c1b4d5a2554eb18869f765bdda9b571a6db579e7 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Tue, 12 Aug 2025 10:39:56 +0200 Subject: [PATCH 208/697] locales: Allow shorthand overwriting in config --- examples/snowbox/index.js | 13 +++++++++++++ src/core/locales.ts | 4 ++-- src/core/vuePlugins/i18next.ts | 17 +++++++++++------ 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/examples/snowbox/index.js b/examples/snowbox/index.js index 31484ee72..2dcf60e8f 100644 --- a/examples/snowbox/index.js +++ b/examples/snowbox/index.js @@ -113,6 +113,19 @@ await createMap( clusterClickZoom: true, }, theme: dataportTheme, + locales: [ + { + type: 'de', + resources: { + 'plugins/fullscreen': { + button: { + label_on: 'Mach groß', + label_off: 'Mach klein', + }, + }, + }, + }, + ], }, 'https://geodienste.hamburg.de/services-internet.json' ) diff --git a/src/core/locales.ts b/src/core/locales.ts index 63b9989c3..74b18ba19 100644 --- a/src/core/locales.ts +++ b/src/core/locales.ts @@ -1,7 +1,7 @@ import type { Locale } from './types' export const resourcesDe = { - common: { + core: { canvas: { label: 'Kartenanwendung', }, @@ -20,7 +20,7 @@ export const resourcesDe = { } export const resourcesEn = { - common: { + core: { canvas: { label: 'Map application', }, diff --git a/src/core/vuePlugins/i18next.ts b/src/core/vuePlugins/i18next.ts index d3b20ba42..00e725fc9 100644 --- a/src/core/vuePlugins/i18next.ts +++ b/src/core/vuePlugins/i18next.ts @@ -17,12 +17,17 @@ export const I18Next: Plugin = { const configuredLocales = Array.isArray(localeOptions) ? locales.map((locale) => { const localeOption = localeOptions.find((l) => l.type === locale.type) + const overrideResources = Object.fromEntries( + Object.entries(localeOption?.resources || {}).map( + ([key, value]) => [ + key.match(/plugins\/.+/) ? `@polar/polar/${key}` : key, + value, + ] + ) + ) return { type: locale.type, - resources: toMerged( - locale.resources, - localeOption ? localeOption.resources : {} - ), + resources: toMerged(locale.resources, overrideResources), } }) : locales @@ -44,8 +49,8 @@ export const I18Next: Plugin = { }, load: 'languageOnly', fallbackLng: supportedLngs[0], - fallbackNS: 'common', - ns: ['common'], + fallbackNS: 'core', + ns: ['core'], supportedLngs, ...(options?.initialLanguage ? { lng: options.initialLanguage } : {}), }) From 152721bc9044087af9796c526a6121b3ec6c8bf4 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Tue, 12 Aug 2025 12:09:52 +0200 Subject: [PATCH 209/697] plugins/fullscreen: Rename PluginUI to FullscreenUI --- .../components/{PluginUI.ce.vue => FullscreenUI.ce.vue} | 0 src/plugins/fullscreen/index.ts | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename src/plugins/fullscreen/components/{PluginUI.ce.vue => FullscreenUI.ce.vue} (100%) diff --git a/src/plugins/fullscreen/components/PluginUI.ce.vue b/src/plugins/fullscreen/components/FullscreenUI.ce.vue similarity index 100% rename from src/plugins/fullscreen/components/PluginUI.ce.vue rename to src/plugins/fullscreen/components/FullscreenUI.ce.vue diff --git a/src/plugins/fullscreen/index.ts b/src/plugins/fullscreen/index.ts index 289a0e2f8..879c874ce 100644 --- a/src/plugins/fullscreen/index.ts +++ b/src/plugins/fullscreen/index.ts @@ -4,7 +4,7 @@ */ /* eslint-enable tsdoc/syntax */ -import component from './components/PluginUI.ce.vue' +import component from './components/FullscreenUI.ce.vue' import locales from './locales' import { useFullscreenStore } from './store' import { PluginId, type FullscreenPluginOptions } from './types' From 9b2b7f1e590515896a4a4f570cd83f49c4880aad Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Tue, 12 Aug 2025 14:51:01 +0200 Subject: [PATCH 210/697] Hide alpha-stability methods for client-targeted documentation --- package.json | 2 ++ src/core/stores/export.ts | 4 ++++ typedoc.json | 4 ++-- typedocPlugins/targetAudience.ts | 35 ++++++++++++++++++++++++++++++++ 4 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 typedocPlugins/targetAudience.ts diff --git a/package.json b/package.json index 833f81aaa..4e307e92b 100644 --- a/package.json +++ b/package.json @@ -53,6 +53,8 @@ "tsc": "tsc && vue-tsc -p src", "tsc:ci": "tsc && vue-tsc -p src", "docs": "node scripts/typedoc-install-vue-tsc.ts && typedoc --watch", + "docs:core": "node scripts/typedoc-install-vue-tsc.ts && typedoc --watch --targetAudience core", + "docs:plugin": "node scripts/typedoc-install-vue-tsc.ts && typedoc --watch --targetAudience plugin", "docs:ci": "typedoc", "clean": "node scripts/clean.ts", "postinstall": "patch-package", diff --git a/src/core/stores/export.ts b/src/core/stores/export.ts index c18014461..c76e70590 100644 --- a/src/core/stores/export.ts +++ b/src/core/stores/export.ts @@ -32,11 +32,15 @@ export const useCoreStore = defineStore('core', () => { /** * Allows accessing the POLAR DOM element (``). + * + * @alpha */ lightElement: mainStore.lightElement, /** * Allows accessing the Shadow DOM root of POLAR. + * + * @alpha */ shadowRoot: mainStore.shadowRoot, } diff --git a/typedoc.json b/typedoc.json index 7b409d964..cb4bbdefe 100644 --- a/typedoc.json +++ b/typedoc.json @@ -18,11 +18,11 @@ "required-first", "alphabetical-ignoring-documents" ], - "excludeInternal": true, "navigation": { "includeFolders": false }, "plugin": [ - "typedoc-plugin-vue" + "typedoc-plugin-vue", + "./typedocPlugins/targetAudience.ts" ] } diff --git a/typedocPlugins/targetAudience.ts b/typedocPlugins/targetAudience.ts new file mode 100644 index 000000000..d745ea635 --- /dev/null +++ b/typedocPlugins/targetAudience.ts @@ -0,0 +1,35 @@ +import * as td from 'typedoc' + +const targetAudiences = { + core: [], + plugin: ['internal'], + client: ['internal', 'alpha'], +} as Record + +export function load(app: td.Application) { + app.options.addDeclaration({ + type: td.ParameterType.String, + name: 'targetAudience', + help: 'Target audience for the generated documentation.', + defaultValue: 'client', + }) + + app.converter.on(td.Converter.EVENT_RESOLVE_BEGIN, (context) => { + const targetAudience = app.options.getValue('targetAudience') as string + if (!Object.keys(targetAudiences).includes(targetAudience)) { + app.logger.error('Invalid target audience: ' + targetAudience) + return + } + const hiddenModifiers = targetAudiences[targetAudience] + + const project = context.project + const reflections = Object.values(project.reflections) + reflections + .filter(({ comment }) => + hiddenModifiers.some((modifier) => comment?.hasModifier(`@${modifier}`)) + ) + .forEach((reflection) => { + project.removeReflection(reflection) + }) + }) +} From a680879bb4a3d62d64db4dfd787aeb6294cca525 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Tue, 12 Aug 2025 15:37:36 +0200 Subject: [PATCH 211/697] Replace @kern-ux-annex/webc with @kern-ux/native --- package-lock.json | 828 +--------------------------- package.json | 5 +- src/core/components/PolarMap.ce.vue | 10 +- src/core/types.ts | 18 +- src/core/utils/loadKern.ts | 48 +- 5 files changed, 53 insertions(+), 856 deletions(-) diff --git a/package-lock.json b/package-lock.json index fd49dbc08..a091cbf8f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,8 +12,7 @@ "devDependencies": { "@cesium/engine": "^15.0.0", "@dataport/eslint-config-geodev": "^0.3.3", - "@kern-ux-annex/webc": "^2.14.9", - "@kern-ux/native": "^2.2.0", + "@kern-ux/native": "^2.3.0", "@masterportal/masterportalapi": "2.48.0", "@material-symbols/svg-400": "^0.33.0", "@repositoryname/noop": "^1.0.6", @@ -1739,35 +1738,6 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@kern-ux-annex/webc": { - "version": "2.20.10", - "resolved": "https://registry.npmjs.org/@kern-ux-annex/webc/-/webc-2.20.10.tgz", - "integrity": "sha512-UvRnNT1XTebwjVUiSa0iemOpQvnbkbKB3pHmwnygERCKmd0zaFOnZvZebt516VMnR2Li/dRdz0AlunJaTQHOhQ==", - "dev": true, - "license": "EUPL-1.2", - "dependencies": { - "@kern-ux/native": "2.2.0", - "@types/prismjs": "^1.26.5", - "lit": "^3.3.1", - "prismjs": "^1.30.0", - "tslib": "^2.8.1" - }, - "engines": { - "node": ">=22" - } - }, - "node_modules/@kern-ux-annex/webc/node_modules/@kern-ux/native": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@kern-ux/native/-/native-2.2.0.tgz", - "integrity": "sha512-FRMaDED0LSCTO6e3XMRkje/0s+eomWswa1yVKmBzeX8On9NcX3ADGlYW7AZmDWxG12HwYTkV6dahOd7rkrWYcw==", - "dev": true, - "license": "EUPL-1.2", - "dependencies": { - "axe-core": "^4.10.3", - "dotenv": "^16.4.5", - "puppeteer": "^24.10.1" - } - }, "node_modules/@kern-ux/native": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@kern-ux/native/-/native-2.3.0.tgz", @@ -1775,23 +1745,6 @@ "dev": true, "license": "EUPL-1.2" }, - "node_modules/@lit-labs/ssr-dom-shim": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.4.0.tgz", - "integrity": "sha512-ficsEARKnmmW5njugNYKipTm4SFnbik7CXtoencDZzmzo/dQ+2Q0bgkzJuoJP20Aj0F+izzJjOqsnkd6F/o1bw==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@lit/reactive-element": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.1.1.tgz", - "integrity": "sha512-N+dm5PAYdQ8e6UlywyyrgI2t++wFGXfHx+dSJ1oBrg6FAxUj40jId++EaRm80MKX5JnlH1sBsyZ5h0bcZKemCg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.4.0" - } - }, "node_modules/@mapbox/jsonlint-lines-primitives": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", @@ -2480,28 +2433,6 @@ "dev": true, "license": "BSD-3-Clause" }, - "node_modules/@puppeteer/browsers": { - "version": "2.10.6", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.10.6.tgz", - "integrity": "sha512-pHUn6ZRt39bP3698HFQlu2ZHCkS/lPcpv7fVQcGBSzNNygw171UXAKrCUhy+TEMw4lEttOKDgNpb04hwUAJeiQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "debug": "^4.4.1", - "extract-zip": "^2.0.1", - "progress": "^2.0.3", - "proxy-agent": "^6.5.0", - "semver": "^7.7.2", - "tar-fs": "^3.1.0", - "yargs": "^17.7.2" - }, - "bin": { - "browsers": "lib/cjs/main-cli.js" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/@repositoryname/noop": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@repositoryname/noop/-/noop-1.0.6.tgz", @@ -3129,13 +3060,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/@tootallnate/quickjs-emscripten": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", - "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", - "dev": true, - "license": "MIT" - }, "node_modules/@tweenjs/tween.js": { "version": "25.0.0", "resolved": "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-25.0.0.tgz", @@ -3246,13 +3170,6 @@ "undici-types": "~7.10.0" } }, - "node_modules/@types/prismjs": { - "version": "1.26.5", - "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.5.tgz", - "integrity": "sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/rbush": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/rbush/-/rbush-4.0.0.tgz", @@ -3265,7 +3182,8 @@ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/@types/unist": { "version": "3.0.3", @@ -3274,17 +3192,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/yauzl": { - "version": "2.10.3", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", - "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "8.38.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.38.0.tgz", @@ -4595,19 +4502,6 @@ "node": ">=12" } }, - "node_modules/ast-types": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", - "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/async": { "version": "3.2.6", "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", @@ -4664,23 +4558,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/axe-core": { - "version": "4.10.3", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.3.tgz", - "integrity": "sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==", - "dev": true, - "license": "MPL-2.0", - "engines": { - "node": ">=4" - } - }, - "node_modules/b4a": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", - "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==", - "dev": true, - "license": "Apache-2.0" - }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -4688,83 +4565,6 @@ "dev": true, "license": "MIT" }, - "node_modules/bare-events": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.6.0.tgz", - "integrity": "sha512-EKZ5BTXYExaNqi3I3f9RtEsaI/xBSGjE0XZCZilPzFAV/goswFHuPd9jEZlPIZ/iNZJwDSao9qRiScySz7MbQg==", - "dev": true, - "license": "Apache-2.0", - "optional": true - }, - "node_modules/bare-fs": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.1.6.tgz", - "integrity": "sha512-25RsLF33BqooOEFNdMcEhMpJy8EoR88zSMrnOQOaM3USnOK2VmaJ1uaQEwPA6AQjrv1lXChScosN6CzbwbO9OQ==", - "dev": true, - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "bare-events": "^2.5.4", - "bare-path": "^3.0.0", - "bare-stream": "^2.6.4" - }, - "engines": { - "bare": ">=1.16.0" - }, - "peerDependencies": { - "bare-buffer": "*" - }, - "peerDependenciesMeta": { - "bare-buffer": { - "optional": true - } - } - }, - "node_modules/bare-os": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.6.1.tgz", - "integrity": "sha512-uaIjxokhFidJP+bmmvKSgiMzj2sV5GPHaZVAIktcxcpCyBFFWO+YlikVAdhmUo2vYFvFhOXIAlldqV29L8126g==", - "dev": true, - "license": "Apache-2.0", - "optional": true, - "engines": { - "bare": ">=1.14.0" - } - }, - "node_modules/bare-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz", - "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", - "dev": true, - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "bare-os": "^3.0.1" - } - }, - "node_modules/bare-stream": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.6.5.tgz", - "integrity": "sha512-jSmxKJNJmHySi6hC42zlZnq00rga4jjxcgNZjY9N5WlOe/iOoGRtdwGsHzQv2RlH2KOYMwGUXhf2zXd32BA9RA==", - "dev": true, - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "streamx": "^2.21.0" - }, - "peerDependencies": { - "bare-buffer": "*", - "bare-events": "*" - }, - "peerDependenciesMeta": { - "bare-buffer": { - "optional": true - }, - "bare-events": { - "optional": true - } - } - }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -4786,16 +4586,6 @@ ], "license": "MIT" }, - "node_modules/basic-ftp": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", - "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/birpc": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/birpc/-/birpc-2.5.0.tgz", @@ -4901,16 +4691,6 @@ "ieee754": "^1.2.1" } }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, "node_modules/bundle-name": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", @@ -5195,20 +4975,6 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/chromium-bidi": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-7.2.0.tgz", - "integrity": "sha512-gREyhyBstermK+0RbcJLbFhcQctg92AGgDe/h/taMJEOLRdtSswBAO9KmvltFSQWgM2LrwWu5SIuEUbdm3JsyQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "mitt": "^3.0.1", - "zod": "^3.24.1" - }, - "peerDependencies": { - "devtools-protocol": "*" - } - }, "node_modules/ci-info": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", @@ -5420,33 +5186,6 @@ "dev": true, "license": "MIT" }, - "node_modules/cosmiconfig": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", - "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", - "dev": true, - "license": "MIT", - "dependencies": { - "env-paths": "^2.2.1", - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -5503,16 +5242,6 @@ "dev": true, "license": "MIT" }, - "node_modules/data-uri-to-buffer": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", - "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, "node_modules/data-urls": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", @@ -5740,21 +5469,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/degenerator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", - "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ast-types": "^0.13.4", - "escodegen": "^2.1.0", - "esprima": "^4.0.1" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/dequal": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", @@ -5793,13 +5507,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/devtools-protocol": { - "version": "0.0.1464554", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1464554.tgz", - "integrity": "sha512-CAoP3lYfwAGQTaAXYvA6JZR0fjGUb7qec1qf4mToyoH2TZgUFeIqYcjh6f9jNuhHfuZiEdH+PONHYrLhRQX6aw==", - "dev": true, - "license": "BSD-3-Clause" - }, "node_modules/doctrine": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", @@ -5823,19 +5530,6 @@ "@types/trusted-types": "^2.0.7" } }, - "node_modules/dotenv": { - "version": "16.6.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", - "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, "node_modules/draco3d": { "version": "1.5.7", "resolved": "https://registry.npmjs.org/draco3d/-/draco3d-1.5.7.tgz", @@ -5929,16 +5623,6 @@ "dev": true, "license": "MIT" }, - "node_modules/end-of-stream": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", - "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, "node_modules/enhanced-resolve": { "version": "5.18.2", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.2.tgz", @@ -5973,26 +5657,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, "node_modules/error-stack-parser-es": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/error-stack-parser-es/-/error-stack-parser-es-1.0.5.tgz", @@ -6263,28 +5927,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, "node_modules/eslint": { "version": "9.32.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.32.0.tgz", @@ -6796,20 +6438,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/esquery": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", @@ -6934,27 +6562,6 @@ "dev": true, "license": "MIT" }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -6969,13 +6576,6 @@ "dev": true, "license": "Apache-2.0" }, - "node_modules/fast-fifo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", - "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", - "dev": true, - "license": "MIT" - }, "node_modules/fast-glob": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", @@ -7061,16 +6661,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "pend": "~1.2.0" - } - }, "node_modules/figures": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", @@ -7371,22 +6961,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/get-symbol-description": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", @@ -7418,21 +6992,6 @@ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } }, - "node_modules/get-uri": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.5.tgz", - "integrity": "sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==", - "dev": true, - "license": "MIT", - "dependencies": { - "basic-ftp": "^5.0.2", - "data-uri-to-buffer": "^6.0.2", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/github-slugger": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", @@ -7933,20 +7492,6 @@ "node": ">= 0.4" } }, - "node_modules/ip-address": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", - "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "^1.1.3" - }, - "engines": { - "node": ">= 12" - } - }, "node_modules/is-arguments": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", @@ -7982,13 +7527,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true, - "license": "MIT" - }, "node_modules/is-async-function": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", @@ -8588,13 +8126,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", - "dev": true, - "license": "MIT" - }, "node_modules/jsdom": { "version": "26.1.0", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-26.1.0.tgz", @@ -8764,13 +8295,6 @@ "node": ">=4" } }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true, - "license": "MIT" - }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -8926,13 +8450,6 @@ "node": ">= 0.8.0" } }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true, - "license": "MIT" - }, "node_modules/linkify-it": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", @@ -8943,40 +8460,6 @@ "uc.micro": "^2.0.0" } }, - "node_modules/lit": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/lit/-/lit-3.3.1.tgz", - "integrity": "sha512-Ksr/8L3PTapbdXJCk+EJVB78jDodUMaP54gD24W186zGRARvwrsPfS60wae/SSCTCNZVPd1chXqio1qHQmu4NA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@lit/reactive-element": "^2.1.0", - "lit-element": "^4.2.0", - "lit-html": "^3.3.0" - } - }, - "node_modules/lit-element": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.2.1.tgz", - "integrity": "sha512-WGAWRGzirAgyphK2urmYOV72tlvnxw7YfyLDgQ+OZnM9vQQBQnumQ7jUJe6unEzwGU3ahFOjuz1iz1jjrpCPuw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.4.0", - "@lit/reactive-element": "^2.1.0", - "lit-html": "^3.3.0" - } - }, - "node_modules/lit-html": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.3.1.tgz", - "integrity": "sha512-S9hbyDu/vs1qNrithiNyeyv64c9yqiW9l+DBgI18fL+MTvOtWoFR0FWiyq1TxaYef5wNlpEmzlXoBlZEO+WjoA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@types/trusted-types": "^2.0.2" - } - }, "node_modules/local-pkg": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.1.1.tgz", @@ -9071,16 +8554,6 @@ "dev": true, "license": "MIT" }, - "node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, "node_modules/lunr": { "version": "2.3.9", "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", @@ -10260,16 +9733,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/node-addon-api": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", @@ -10691,40 +10154,6 @@ "node": ">=6" } }, - "node_modules/pac-proxy-agent": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz", - "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@tootallnate/quickjs-emscripten": "^0.23.0", - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "get-uri": "^6.0.1", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.6", - "pac-resolver": "^7.0.1", - "socks-proxy-agent": "^8.0.5" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/pac-resolver": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", - "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", - "dev": true, - "license": "MIT", - "dependencies": { - "degenerator": "^5.0.0", - "netmask": "^2.0.2" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/pako": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", @@ -10752,25 +10181,6 @@ "dev": true, "license": "MIT" }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/parse-ms": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz", @@ -10950,13 +10360,6 @@ "dev": true, "license": "ISC" }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true, - "license": "MIT" - }, "node_modules/peowly": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/peowly/-/peowly-1.3.2.tgz", @@ -11284,16 +10687,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/prismjs": { - "version": "1.30.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", - "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", @@ -11311,16 +10704,6 @@ "dev": true, "license": "MIT" }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/proj4": { "version": "2.19.10", "resolved": "https://registry.npmjs.org/proj4/-/proj4-2.19.10.tgz", @@ -11379,33 +10762,6 @@ "dev": true, "license": "MIT" }, - "node_modules/proxy-agent": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", - "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "http-proxy-agent": "^7.0.1", - "https-proxy-agent": "^7.0.6", - "lru-cache": "^7.14.1", - "pac-proxy-agent": "^7.1.0", - "proxy-from-env": "^1.1.0", - "socks-proxy-agent": "^8.0.5" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true, - "license": "MIT" - }, "node_modules/pug-error": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.1.0.tgz", @@ -11425,17 +10781,6 @@ "pug-error": "^2.0.0" } }, - "node_modules/pump": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", - "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", - "dev": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -11456,46 +10801,6 @@ "node": ">=6" } }, - "node_modules/puppeteer": { - "version": "24.15.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-24.15.0.tgz", - "integrity": "sha512-HPSOTw+DFsU/5s2TUUWEum9WjFbyjmvFDuGHtj2X4YUz2AzOzvKMkT3+A3FR+E+ZefiX/h3kyLyXzWJWx/eMLQ==", - "dev": true, - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "@puppeteer/browsers": "2.10.6", - "chromium-bidi": "7.2.0", - "cosmiconfig": "^9.0.0", - "devtools-protocol": "0.0.1464554", - "puppeteer-core": "24.15.0", - "typed-query-selector": "^2.12.0" - }, - "bin": { - "puppeteer": "lib/cjs/puppeteer/node/cli.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/puppeteer-core": { - "version": "24.15.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.15.0.tgz", - "integrity": "sha512-2iy0iBeWbNyhgiCGd/wvGrDSo73emNFjSxYOcyAqYiagkYt5q4cPfVXaVDKBsukgc2fIIfLAalBZlaxldxdDYg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@puppeteer/browsers": "2.10.6", - "chromium-bidi": "7.2.0", - "debug": "^4.4.1", - "devtools-protocol": "0.0.1464554", - "typed-query-selector": "^2.12.0", - "ws": "^8.18.3" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/quansync": { "version": "0.2.10", "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.10.tgz", @@ -12249,47 +11554,6 @@ "node": ">=6" } }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks": { - "version": "2.8.6", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.6.tgz", - "integrity": "sha512-pe4Y2yzru68lXCb38aAqRf5gvN8YdjP1lok5o0J7BOHljkyCGKVz7H3vpVIXKD27rj2giOJ7DwVyk/GWrPHDWA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ip-address": "^9.0.5", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", - "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "socks": "^2.8.3" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/sort-asc": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/sort-asc/-/sort-asc-0.1.0.tgz", @@ -12361,13 +11625,6 @@ "through2": "^2.0.2" } }, - "node_modules/sprintf-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", - "dev": true, - "license": "BSD-3-Clause" - }, "node_modules/stable-hash": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", @@ -12475,20 +11732,6 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/streamx": { - "version": "2.22.1", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.22.1.tgz", - "integrity": "sha512-znKXEBxfatz2GBNK02kRnCXjV+AA4kjZIUxeWSr3UGirZMJfTE9uiwKHobnbgxWyL/JWro8tTq+vOqAK1/qbSA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-fifo": "^1.3.2", - "text-decoder": "^1.1.0" - }, - "optionalDependencies": { - "bare-events": "^2.2.0" - } - }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -12753,43 +11996,6 @@ "node": ">=6" } }, - "node_modules/tar-fs": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.0.tgz", - "integrity": "sha512-5Mty5y/sOF1YWj1J6GiBodjlDc05CUR8PKXrsnFAiSG0xA+GHeWLovaZPYUDXkH/1iKRf2+M5+OrRgzC7O9b7w==", - "dev": true, - "license": "MIT", - "dependencies": { - "pump": "^3.0.0", - "tar-stream": "^3.1.5" - }, - "optionalDependencies": { - "bare-fs": "^4.0.1", - "bare-path": "^3.0.0" - } - }, - "node_modules/tar-stream": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", - "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "b4a": "^1.6.4", - "fast-fifo": "^1.2.0", - "streamx": "^2.15.0" - } - }, - "node_modules/text-decoder": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", - "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "b4a": "^1.6.4" - } - }, "node_modules/through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", @@ -13249,13 +12455,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/typed-query-selector": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.0.tgz", - "integrity": "sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==", - "dev": true, - "license": "MIT" - }, "node_modules/typedoc": { "version": "0.28.9", "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.28.9.tgz", @@ -14689,17 +13888,6 @@ "node": ">=12" } }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", @@ -14726,16 +13914,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/zod": { - "version": "3.25.76", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", - "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - }, "node_modules/zstddec": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/zstddec/-/zstddec-0.1.0.tgz", diff --git a/package.json b/package.json index 4e307e92b..ba9af15a0 100644 --- a/package.json +++ b/package.json @@ -70,8 +70,7 @@ "devDependencies": { "@cesium/engine": "^15.0.0", "@dataport/eslint-config-geodev": "^0.3.3", - "@kern-ux-annex/webc": "^2.14.9", - "@kern-ux/native": "^2.2.0", + "@kern-ux/native": "^2.3.0", "@masterportal/masterportalapi": "2.48.0", "@material-symbols/svg-400": "^0.33.0", "@repositoryname/noop": "^1.0.6", @@ -103,7 +102,7 @@ "tsarch": "^5.4.1", "typedoc": "^0.28.8", "typedoc-plugin-vue": "^1.5.0", - "typescript": "^5.8.3", + "typescript": "~5.8.3", "util": "^0.12.5", "vite": "^7.0.6", "vite-plugin-checker": "^0.10.2", diff --git a/src/core/components/PolarMap.ce.vue b/src/core/components/PolarMap.ce.vue index 37dacb18a..0c6cbccb8 100644 --- a/src/core/components/PolarMap.ce.vue +++ b/src/core/components/PolarMap.ce.vue @@ -153,7 +153,7 @@ async function setup() { onMounted(async () => { coreStore.lightElement = useHost() coreStore.shadowRoot = useShadowRoot() - await loadKern( + loadKern( coreStore.shadowRoot as ShadowRoot, coreStore.configuration.theme?.kern || {} ) @@ -183,14 +183,18 @@ onBeforeUnmount(() => { watch(hasWindowSize, updateListeners) - + - + + diff --git a/src/core/components/PolarMap.ce.vue b/src/core/components/PolarMap.ce.vue index 5acc022ca..866636759 100644 --- a/src/core/components/PolarMap.ce.vue +++ b/src/core/components/PolarMap.ce.vue @@ -1,27 +1,13 @@ diff --git a/src/core/components/PolarMapOverlay.ce.vue b/src/core/components/PolarMapOverlay.ce.vue new file mode 100644 index 000000000..0d89794dc --- /dev/null +++ b/src/core/components/PolarMapOverlay.ce.vue @@ -0,0 +1,79 @@ + + + + + diff --git a/src/core/index.ts b/src/core/index.ts index b73af0693..117447d96 100644 --- a/src/core/index.ts +++ b/src/core/index.ts @@ -14,7 +14,7 @@ import { toMerged } from 'es-toolkit' import i18next from 'i18next' import { storeToRefs } from 'pinia' import { defineCustomElement, markRaw, watch, type WatchOptions } from 'vue' -import PolarMapCE from './components/PolarMap.ce.vue' +import PolarContainer from './components/PolarContainer.ce.vue' import { I18Next } from './vuePlugins/i18next' import { Pinia } from './vuePlugins/pinia' import type { MapConfiguration, PluginContainer, PluginOptions } from './types' @@ -157,16 +157,18 @@ export function createMap( serviceRegister: string | Record[], tagName = 'polar-map' ) { - const PolarMap = defineCustomElement(PolarMapCE, { + const PolarMap = defineCustomElement(PolarContainer, { configureApp(app) { + app.use(Pinia) app.use(I18Next, { initialLanguage: mapConfiguration.language, locales: mapConfiguration.locales, }) - app.use(Pinia) const coreStore = useMainStore() + // TODO(oeninghe-dataport): Pass configuration as CE properties. + // createMap may survive as a convenience wrapper. coreStore.configuration = mapZoomOffset({ ...defaults, ...mapConfiguration, diff --git a/src/core/stores/main.ts b/src/core/stores/main.ts index 63a1ed80f..941e0ee8c 100644 --- a/src/core/stores/main.ts +++ b/src/core/stores/main.ts @@ -1,27 +1,14 @@ -import { ping } from '@masterportal/masterportalapi' -import createStyle from '@masterportal/masterportalapi/src/vectorStyle/createStyle' -import styleList from '@masterportal/masterportalapi/src/vectorStyle/styleList' -import noop from '@repositoryname/noop' -import i18next from 'i18next' import type { Feature, Map } from 'ol' -import { type Coordinate } from 'ol/coordinate' -import { easeOut } from 'ol/easing' -import { type FeatureLike } from 'ol/Feature' -import { type Point } from 'ol/geom' -import type VectorLayer from 'ol/layer/Vector' -import { type Interaction } from 'ol/interaction' +import type { Coordinate } from 'ol/coordinate' +import type { Point } from 'ol/geom' import { defineStore } from 'pinia' import { computed, ref, watch } from 'vue' -import type { - MapConfiguration, - PluginContainer, - PolarError, - ServiceAvailabilityCheck, -} from '../types' -import { createPanAndZoomInteractions } from '../utils/interactions' +import type { MapConfiguration, PluginContainer } from '../types' import { SMALL_DISPLAY_HEIGHT, SMALL_DISPLAY_WIDTH } from '../utils/constants' +import { addInterceptor } from '../utils/addInterceptor' -let interactions: Interaction[] = [] +// TODO(oeninghe-dataport): Remove this from store +// Currently, this is still needed for the marker store let map: Map export const useMainStore = defineStore('main', () => { @@ -32,11 +19,10 @@ export const useMainStore = defineStore('main', () => { layers: [], startCenter: [0, 0], }) - const errors = ref([]) const hasSmallDisplay = ref(false) - const language = ref(i18next.language) + const language = ref('') const lightElement = ref(null) - const mapHasDimensions = ref(false) + const mapHasDimensions = ref(false) const oidcToken = ref('') const plugins = ref([]) const serviceRegister = ref[]>('') @@ -57,209 +43,20 @@ export const useMainStore = defineStore('main', () => { () => hasSmallHeight.value && hasWindowSize.value ) - // NOTE: Updates can happen if a user resizes the window or the fullscreen plugin is used. - // Added as a watcher to trigger the update at the correct time. - watch(hasWindowSize, updateDragAndZoomInteractions) - - i18next.on('languageChanged', (newLanguage) => { - language.value = newLanguage - }) - - function addInterceptor(secureServiceUrlRegex: string) { - // NOTE: Not applicable here. - // eslint-disable-next-line @typescript-eslint/unbound-method - const { fetch: originalFetch } = window - - // If interceptors for XMLHttpRequest or axios are needed, add them here. - window.fetch = (resource, originalConfig) => { - let config = originalConfig - - if ( - oidcToken.value && - typeof resource === 'string' && - resource.match(secureServiceUrlRegex) - ) { - config = { - ...originalConfig, - headers: { - // eslint-disable-next-line @typescript-eslint/naming-convention - Authorization: `Bearer ${oidcToken.value}`, - // NOTE: Currently expected that the headers are given as an object. - // eslint-disable-next-line @typescript-eslint/no-misused-spread - ...originalConfig?.headers, - }, - } + watch( + () => configuration.value.secureServiceUrlRegex, + (urlRegex) => { + if (urlRegex) { + addInterceptor( + urlRegex, + () => new Headers([['Authorization', `Bearer ${oidcToken.value}`]]) + ) } - - return originalFetch(resource, config) } - } + ) function centerOnFeature(feature: Feature) { - map.getView().animate({ - center: (feature.getGeometry() as Point).getCoordinates(), - duration: 400, - easing: easeOut, - }) - } - - function checkServiceAvailability() { - const register = serviceRegister.value - if (typeof register === 'string') { - console.error( - 'Action was called when the parameter serviceRegister was not yet set to an array of services.' - ) - return - } - - configuration.value.layers - .map(({ id }) => ({ - id, - service: register.find(({ id: serviceId }) => serviceId === id), - })) - .filter( - ( - service - ): service is { id: string; service: Record } => { - if (!service.service) { - console.warn( - `Service with id "${service.id}" not found in service register.` - ) - return false - } - return true - } - ) - .map( - ({ service }): ServiceAvailabilityCheck => ({ - ping: ping(service), - serviceId: service.id as string, - serviceName: service.name as string, - }) - ) - .forEach(({ ping, serviceId /*, serviceName */ }) => { - ping - .then((statusCode) => { - if (statusCode !== 200) { - const toastStore = plugins.value.find( - ({ id }) => id === 'toast' - )?.storeModule - if (toastStore) { - // TODO: Uncomment when toast plugin is implemented - /* toastStore().addToast({ - type: 'warning', - text: i18next.t('error.serviceUnavailable', { - serviceId, - serviceName, - }), - }) */ - } - // always print status code for debugging purposes - console.error(`Ping to "${serviceId}" returned "${statusCode}".`) - // always add to error log for listener purposes - errors.value.push({ - type: 'connection', - statusCode, - text: `Ping to "${serviceId}" returned "${statusCode}".`, - }) - } - }) - .catch((e: unknown) => { - console.error(e) - }) - }) - } - - function setCenter() { - // @ts-expect-error | map always has a center - center.value = map.getView().getCenter() - } - function setZoom() { - // @ts-expect-error | map always has a zoom level defined - zoom.value = map.getView().getZoom() - } - - function getMap() { - return map - } - - async function setupStyling() { - const register = serviceRegister.value - - if (configuration.value.featureStyles && Array.isArray(register)) { - await styleList.initializeStyleList( - // Masterportal specific field not required by POLAR - {}, - { styleConf: configuration.value.featureStyles }, - configuration.value.layers.map((layer) => { - const layerConfig = register.find((l) => l.id === layer.id) - if (layerConfig) { - return { - ...layer, - // Required by @masterportal/masterportalapi - typ: layerConfig.typ, - } - } - return layer - }), - // Masterportal specific field not required by POLAR - [], - // Callback currently yields no relevant benefit - noop - ) - // A layer can either be styled through the provided styles or through the markers configuration; markers takes precedence. - const markerLayers = configuration.value.markers - ? configuration.value.markers.layers.map(({ id }) => id) - : [] - map - .getLayers() - .getArray() - .filter( - (layer) => - typeof layer.get('styleId') === 'string' && - !markerLayers.includes(layer.get('id') as string) - ) - .forEach((layer) => { - const styleObject = styleList.returnStyleObject(layer.get('styleId')) - if (styleObject) { - ;(layer as VectorLayer).setStyle((feature: Feature | FeatureLike) => - createStyle.createStyle( - styleObject, - feature, - feature.get('features') !== undefined, - // NOTE: This field may be implemented in the future to be able to style points with graphics - '' - ) - ) - } - }) - } - } - - function setMap(newMap: Map) { - // NOTE: Not defined in the beginning - // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition - if (map) { - map.un('moveend', setCenter) - map.un('moveend', setZoom) - } - map = newMap - map.on('moveend', setCenter) - map.on('moveend', setZoom) - setCenter() - setZoom() - } - - function updateDragAndZoomInteractions() { - interactions.forEach((i) => map.removeInteraction(i)) - interactions = createPanAndZoomInteractions( - hasWindowSize.value, - window.innerHeight <= SMALL_DISPLAY_HEIGHT || - window.innerWidth <= SMALL_DISPLAY_WIDTH - ) - interactions.forEach((i) => { - map.addInteraction(i) - }) + center.value = (feature.getGeometry() as Point).getCoordinates() } function updateHasSmallDisplay() { @@ -268,38 +65,11 @@ export const useMainStore = defineStore('main', () => { window.innerWidth <= SMALL_DISPLAY_WIDTH } - /* - * Albeit the map will render without this in Firefox, it won't in Chromium- - * based browsers. The map reports "No map visible because the map - * container's width or height are 0.". However, if updating the map's size - * after letting all other tasks in callback queue execute, the DOM is - * prepared, and we're good to go. - * - * TODO(dopenguin): Check if this is still required for the icon menu - * - * For some reason, we'll have to wait two callback queues sometimes. - * The waiting is arbitrarily limited to 100 queues before an error is shown. - */ - function updateSizeOnReady() { - let attemptCounter = 0 - const intervalId = setInterval(() => { - const size = map.getSize() - if (attemptCounter++ < 100 && (!size || size[0] === 0 || size[1] === 0)) { - map.updateSize() - } else if (attemptCounter === 100) { - console.error( - `The POLAR map client could not update its size. The map is probably invisible due to having 0 width or 0 height. This might be a CSS issue – please check the wrapper's size.` - ) - mapHasDimensions.value = false - clearInterval(intervalId) - } else { - // OL prints warnings – add this log to reduce confusion - // eslint-disable-next-line no-console - console.log(`The map now has dimensions and can be rendered.`) - mapHasDimensions.value = true - clearInterval(intervalId) - } - }, 0) + function getMap() { + return map + } + function setMap(_map: Map) { + map = _map } return { @@ -310,24 +80,22 @@ export const useMainStore = defineStore('main', () => { hasSmallDisplay, language, lightElement, + mapHasDimensions, oidcToken, plugins, serviceRegister, shadowRoot, + center, + zoom, // Getters hasSmallHeight, hasSmallWidth, hasWindowSize, deviceIsHorizontal, + getMap, // Actions - addInterceptor, centerOnFeature, - checkServiceAvailability, - getMap, - setMap, - setupStyling, - updateDragAndZoomInteractions, updateHasSmallDisplay, - updateSizeOnReady, + setMap, } }) diff --git a/src/core/types.ts b/src/core/types.ts index f5351bbe0..cfc54472b 100644 --- a/src/core/types.ts +++ b/src/core/types.ts @@ -19,12 +19,6 @@ export interface Locale { type: string } -export interface PolarError { - type: 'connection' | 'uncategorized' - statusCode: number | null - text: string -} - export interface ServiceAvailabilityCheck { ping: Promise serviceId: string @@ -592,7 +586,7 @@ export interface MapConfiguration extends MasterportalApiConfiguration { * expression will send the JSON Web Token (JWT) found in the store parameter `oidcToken` as a Bearer token in the * Authorization header of the request. Requests already including an Authorization header will keep the already present one. */ - secureServiceUrlRegex?: string + secureServiceUrlRegex?: RegExp /** * Custom theme for POLAR. diff --git a/src/core/utils/addInterceptor.ts b/src/core/utils/addInterceptor.ts new file mode 100644 index 000000000..0558db2a9 --- /dev/null +++ b/src/core/utils/addInterceptor.ts @@ -0,0 +1,32 @@ +export function addInterceptor( + secureServiceUrlRegex: RegExp, + interceptorHeadersCallback: () => Headers +) { + // NOTE: Not applicable here. + // eslint-disable-next-line @typescript-eslint/unbound-method + const { fetch: originalFetch } = window + + // If interceptors for XMLHttpRequest or axios are needed, add them here. + window.fetch = (resource, originalConfig) => { + let config = originalConfig + const interceptorHeaders = interceptorHeadersCallback() + + if ( + Object.keys(interceptorHeaders).length > 0 && + typeof resource === 'string' && + resource.match(secureServiceUrlRegex) + ) { + const headers = new Headers(originalConfig?.headers) + interceptorHeaders.entries().forEach(([key, value]) => { + headers.append(key, value) + }) + + config = { + ...originalConfig, + headers, + } + } + + return originalFetch(resource, config) + } +} diff --git a/src/core/utils/checkServiceAvailability.ts b/src/core/utils/checkServiceAvailability.ts new file mode 100644 index 000000000..42d74d6ec --- /dev/null +++ b/src/core/utils/checkServiceAvailability.ts @@ -0,0 +1,58 @@ +import { ping } from '@masterportal/masterportalapi' +import type { MapConfiguration, ServiceAvailabilityCheck } from '../types' + +export function checkServiceAvailability( + configuration: MapConfiguration, + register: Record[] +) { + configuration.layers + .map(({ id }) => ({ + id, + service: register.find(({ id: serviceId }) => serviceId === id), + })) + .filter( + ( + service + ): service is { id: string; service: Record } => { + if (!service.service) { + console.warn( + `Service with id "${service.id}" not found in service register.` + ) + return false + } + return true + } + ) + .map( + ({ service }): ServiceAvailabilityCheck => ({ + ping: ping(service), + serviceId: service.id as string, + serviceName: service.name as string, + }) + ) + .forEach(({ ping, serviceId /*, serviceName */ }) => { + ping + .then((statusCode) => { + if (statusCode !== 200) { + // TODO: Uncomment when toast plugin is implemented + /* const toastStore = plugins.value.find( + ({ id }) => id === 'toast' + )?.storeModule + if (toastStore) { + toastStore().addToast({ + type: 'warning', + text: i18next.t('error.serviceUnavailable', { + serviceId, + serviceName, + }), + }) + } */ + // always print status code for debugging purposes + console.error(`Ping to "${serviceId}" returned "${statusCode}".`) + } + }) + .catch((e: unknown) => { + console.error(e) + }) + }) +} diff --git a/src/core/utils/map/setupStyling.ts b/src/core/utils/map/setupStyling.ts new file mode 100644 index 000000000..679cb37ca --- /dev/null +++ b/src/core/utils/map/setupStyling.ts @@ -0,0 +1,62 @@ +import type { Feature, Map } from 'ol' +import createStyle from '@masterportal/masterportalapi/src/vectorStyle/createStyle' +import styleList from '@masterportal/masterportalapi/src/vectorStyle/styleList' +import noop from '@repositoryname/noop' +import type VectorLayer from 'ol/layer/Vector' +import type { FeatureLike } from 'ol/Feature' +import type { MapConfiguration } from '@/core/types' + +export async function setupStyling( + map: Map, + configuration: MapConfiguration, + register: Record[] +) { + if (configuration.featureStyles && Array.isArray(register)) { + await styleList.initializeStyleList( + // Masterportal specific field not required by POLAR + {}, + { styleConf: configuration.featureStyles }, + configuration.layers.map((layer) => { + const layerConfig = register.find((l) => l.id === layer.id) + if (layerConfig) { + return { + ...layer, + // Required by @masterportal/masterportalapi + typ: layerConfig.typ, + } + } + return layer + }), + // Masterportal specific field not required by POLAR + [], + // Callback currently yields no relevant benefit + noop + ) + // A layer can either be styled through the provided styles or through the markers configuration; markers takes precedence. + const markerLayers = configuration.markers + ? configuration.markers.layers.map(({ id }) => id) + : [] + map + .getLayers() + .getArray() + .filter( + (layer) => + typeof layer.get('styleId') === 'string' && + !markerLayers.includes(layer.get('id') as string) + ) + .forEach((layer) => { + const styleObject = styleList.returnStyleObject(layer.get('styleId')) + if (styleObject) { + ;(layer as VectorLayer).setStyle((feature: Feature | FeatureLike) => + createStyle.createStyle( + styleObject, + feature, + feature.get('features') !== undefined, + // NOTE: This field may be implemented in the future to be able to style points with graphics + '' + ) + ) + } + }) + } +} diff --git a/src/core/utils/map/updateDragAndZoomInteractions.ts b/src/core/utils/map/updateDragAndZoomInteractions.ts new file mode 100644 index 000000000..5eb676ce7 --- /dev/null +++ b/src/core/utils/map/updateDragAndZoomInteractions.ts @@ -0,0 +1,19 @@ +import type { Map } from 'ol' +import type { Interaction } from 'ol/interaction' +import { createPanAndZoomInteractions } from '../interactions' + +let interactions: Interaction[] = [] + +export function updateDragAndZoomInteractions( + map: Map, + hasWindowSize: boolean, + hasSmallScreen: boolean +) { + for (const interaction of interactions) { + map.removeInteraction(interaction) + } + interactions = createPanAndZoomInteractions(hasWindowSize, hasSmallScreen) + for (const interaction of interactions) { + map.addInteraction(interaction) + } +} diff --git a/src/core/utils/map/updateSizeOnReady.ts b/src/core/utils/map/updateSizeOnReady.ts new file mode 100644 index 000000000..09de10b06 --- /dev/null +++ b/src/core/utils/map/updateSizeOnReady.ts @@ -0,0 +1,32 @@ +import type { Map } from 'ol' + +/** + * Albeit the map will render without this in Firefox, it won't in Chromium- + * based browsers. The map reports "No map visible because the map + * container's width or height are 0.". However, if updating the map's size + * after letting all other tasks in callback queue execute, the DOM is + * prepared, and we're good to go. + * + * @privateRemarks + * TODO(dopenguin): Check if this is still required for the icon menu + * + * For some reason, we'll have to wait two callback queues sometimes. + * The waiting is arbitrarily limited to 100 queues before an error is shown. + */ +export async function updateSizeOnReady(map: Map) { + await new Promise((resolve, reject) => { + let attemptCounter = 0 + const intervalId = setInterval(() => { + const size = map.getSize() + if (attemptCounter++ < 100 && (!size || size[0] === 0 || size[1] === 0)) { + map.updateSize() + } else if (attemptCounter === 100) { + clearInterval(intervalId) + reject(new Error('Could not update POLAR map client size')) + } else { + clearInterval(intervalId) + resolve() + } + }, 0) + }) +} diff --git a/src/core/vuePlugins/i18next.ts b/src/core/vuePlugins/i18next.ts index 00e725fc9..b89ad2697 100644 --- a/src/core/vuePlugins/i18next.ts +++ b/src/core/vuePlugins/i18next.ts @@ -5,6 +5,7 @@ import I18NextVue from 'i18next-vue' import type { Plugin } from 'vue' import locales from '../locales' import type { Locale } from '../types' +import { useMainStore } from '../stores/main' export const I18Next: Plugin = { async install( @@ -61,5 +62,11 @@ export const I18Next: Plugin = { .catch((error: unknown) => { console.error('i18next: Error while initializing.', error) }) + + const mainStore = useMainStore() + mainStore.language = i18next.language + i18next.on('languageChanged', (newLanguage) => { + mainStore.language = newLanguage + }) }, } From 4242646683ecfb0ce36ee0ce0bdb04075d3df78e Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Tue, 12 Aug 2025 18:38:31 +0200 Subject: [PATCH 222/697] Add IconMenu skeleton --- .../iconMenu/components/PluginUI.ce.vue | 7 + src/plugins/iconMenu/index.ts | 34 + src/plugins/iconMenu/locales.ts | 19 + src/plugins/iconMenu/store.ts | 29 + src/plugins/iconMenu/types.ts | 24 + vue2/packages/types/custom/core.ts | 951 +++++++++--------- 6 files changed, 581 insertions(+), 483 deletions(-) create mode 100644 src/plugins/iconMenu/components/PluginUI.ce.vue create mode 100644 src/plugins/iconMenu/index.ts create mode 100644 src/plugins/iconMenu/locales.ts create mode 100644 src/plugins/iconMenu/store.ts create mode 100644 src/plugins/iconMenu/types.ts diff --git a/src/plugins/iconMenu/components/PluginUI.ce.vue b/src/plugins/iconMenu/components/PluginUI.ce.vue new file mode 100644 index 000000000..53231c8e9 --- /dev/null +++ b/src/plugins/iconMenu/components/PluginUI.ce.vue @@ -0,0 +1,7 @@ + + + + + diff --git a/src/plugins/iconMenu/index.ts b/src/plugins/iconMenu/index.ts new file mode 100644 index 000000000..f5e1ed9ed --- /dev/null +++ b/src/plugins/iconMenu/index.ts @@ -0,0 +1,34 @@ +/* eslint-disable tsdoc/syntax */ +/** + * @module \@polar/polar/plugins/iconMenu + */ +/* eslint-enable tsdoc/syntax */ + +import component from './components/PluginUI.ce.vue' +import locales from './locales' +import { useIconMenuStore } from './store' +import { PluginId, type IconMenuPluginOptions } from './types' +import type { PluginContainer } from '@/core' + +/** + * Creates a plugin which adds the possibility to open other plugins from an + * iconized menu. + * + * @returns Plugin for use with {@link addPlugin}. + */ +export default function pluginIconMenu( + options: IconMenuPluginOptions +): PluginContainer { + return { + id: PluginId, + component, + locales, + storeModule: useIconMenuStore, + options: { + displayComponent: true, + ...options, + }, + } +} + +export * from './types' diff --git a/src/plugins/iconMenu/locales.ts b/src/plugins/iconMenu/locales.ts new file mode 100644 index 000000000..4f3c14f0d --- /dev/null +++ b/src/plugins/iconMenu/locales.ts @@ -0,0 +1,19 @@ +import type { Locale } from '@/core' + +export const resourcesDe = {} + +export const resourcesEn = {} + +// first type will be used as fallback language +const locales: Locale[] = [ + { + type: 'de', + resources: resourcesDe, + }, + { + type: 'en', + resources: resourcesEn, + }, +] + +export default locales diff --git a/src/plugins/iconMenu/store.ts b/src/plugins/iconMenu/store.ts new file mode 100644 index 000000000..ddb6edf72 --- /dev/null +++ b/src/plugins/iconMenu/store.ts @@ -0,0 +1,29 @@ +/* eslint-disable tsdoc/syntax */ +/** + * @module \@polar/polar/plugins/iconMenu/store + */ +/* eslint-enable tsdoc/syntax */ + +import { defineStore } from 'pinia' +import type { Reactive } from 'vue' +import { PluginId } from './types' + +/* eslint-disable tsdoc/syntax */ +/** + * @function + * + * Plugin store for the icon menu. + */ +/* eslint-enable tsdoc/syntax */ +export const useIconMenuStore = defineStore('plugins/iconMenu', () => { + function setupPlugin() {} + + function teardownPlugin() {} + + return { + /** @internal */ + setupPlugin, + /** @internal */ + teardownPlugin, + } +}) diff --git a/src/plugins/iconMenu/types.ts b/src/plugins/iconMenu/types.ts new file mode 100644 index 000000000..74308d6c1 --- /dev/null +++ b/src/plugins/iconMenu/types.ts @@ -0,0 +1,24 @@ +import type { Component } from 'vue' +import type { PluginContainer, PluginOptions } from '@/core' + +/** + * Plugin identifier. + */ +export const PluginId = '@polar/polar/plugins/iconMenu' + +export interface Menu { + id: string + plugin: PluginContainer + // Locale string; if not given `plugins.iconMenu.hints.${id}` is used + hint?: string + icon?: string +} + +/** + * Plugin options for iconMenu plugin. + */ +export interface IconMenuPluginOptions extends PluginOptions { + menus: Menu[] + buttonComponent?: Component + initiallyOpen?: string +} diff --git a/vue2/packages/types/custom/core.ts b/vue2/packages/types/custom/core.ts index 4e8322222..0880a33db 100644 --- a/vue2/packages/types/custom/core.ts +++ b/vue2/packages/types/custom/core.ts @@ -7,14 +7,14 @@ import { Color } from 'ol/color' import { ColorLike } from 'ol/colorlike' import { UserVuetifyPreset } from 'vuetify/types/services/presets' import { - ActionPayload, - Commit, - Dispatch, - MutationPayload, - MutationTree, - Plugin, - SubscribeActionOptions, - SubscribeOptions, + ActionPayload, + Commit, + Dispatch, + MutationPayload, + MutationTree, + Plugin, + SubscribeActionOptions, + SubscribeOptions, } from 'vuex' import { Feature as GeoJsonFeature, FeatureCollection } from 'geojson' import { VueConstructor, WatchOptions } from 'vue' @@ -29,17 +29,17 @@ import { Coordinate } from 'ol/coordinate' export type RenderType = 'iconMenu' | 'independent' | 'footer' export type LoaderStyles = - | 'CircleLoader' - | 'BasicLoader' - | 'none' - | 'RingLoader' - | 'RollerLoader' - | 'SpinnerLoader' - | 'v-progress-linear' + | 'CircleLoader' + | 'BasicLoader' + | 'none' + | 'RingLoader' + | 'RollerLoader' + | 'SpinnerLoader' + | 'v-progress-linear' /** LoadingIndicator Module Configuration */ export interface LoadingIndicatorConfiguration extends PluginOptions { - loaderStyle?: LoaderStyles + loaderStyle?: LoaderStyles } /** Possible search methods by type */ @@ -51,39 +51,39 @@ export type SearchType = 'bkg' | 'wfs' | 'mpapi' | string * please refer to the types in the plugin */ export interface QueryParameters { - /** sets the maximum number of features to retrieve */ - maxFeatures?: number + /** sets the maximum number of features to retrieve */ + maxFeatures?: number } export type SearchDisplayMode = 'mixed' | 'categorized' /** Object containing information for a specific search method */ export interface SearchMethodConfiguration { - type: SearchType - url: string - categoryId?: string - groupId?: string - hint?: string - label?: string - placeholder?: string - queryParameters?: QueryParameters + type: SearchType + url: string + categoryId?: string + groupId?: string + hint?: string + label?: string + placeholder?: string + queryParameters?: QueryParameters } export type SearchMethodFunction = ( - signal: AbortSignal, - url: SearchMethodConfiguration['url'], - inputValue: string, - queryParameters: SearchMethodConfiguration['queryParameters'] + signal: AbortSignal, + url: SearchMethodConfiguration['url'], + inputValue: string, + queryParameters: SearchMethodConfiguration['queryParameters'] ) => Promise | never export interface SelectResultPayload { - feature: GeoJsonFeature & { title: string } - categoryId: number + feature: GeoJsonFeature & { title: string } + categoryId: number } export type SelectResultFunction = ( - context: PolarActionContext, - payload: SelectResultPayload + context: PolarActionContext, + payload: SelectResultPayload ) => void /** @@ -93,89 +93,89 @@ export type SelectResultFunction = ( export type MemberSuffix = 'member' | 'featureMember' export interface AddressSearchGroupProperties { - label: string - resultDisplayMode: SearchDisplayMode - hint?: string - limitResults?: number - placeholder?: string + label: string + resultDisplayMode: SearchDisplayMode + hint?: string + limitResults?: number + placeholder?: string } export interface AddressSearchCategoryProperties { - /** display label for category */ - label: string + /** display label for category */ + label: string } /** AddressSearch Module Configuration */ export interface AddressSearchConfiguration extends PluginOptions { - // Configured search methods - searchMethods: SearchMethodConfiguration[] - // optional loading action name to start loading - addLoading?: string - // definition of categories referred to in searchMethods - categoryProperties?: Record - component?: VueConstructor - // optional additional search methods (client-side injections) - customSearchMethods?: Record - /** NOTE regarding \ – skipping further type chain upwards precision due to object optionality/clutter that would continue to MapConfig level; the inverted rabbit hole ends here; not using "unknown" since that errors in client configuration, not using "never" since that errors in AddressSearch plugin; this way, "any"thing goes */ - // optional selectResult overrides (client-side injections) - // eslint-disable-next-line @typescript-eslint/no-explicit-any - customSelectResult?: Record> - focusAfterSearch?: boolean - // definition of groups referred to in searchMethods - groupProperties?: Record - // Minimal input length before the search starts - minLength?: number - // optional loading action name to end loading - removeLoading?: string - afterResultComponent?: VueConstructor - // Time passed in milliseconds before another search is started - waitMs?: number + // Configured search methods + searchMethods: SearchMethodConfiguration[] + // optional loading action name to start loading + addLoading?: string + // definition of categories referred to in searchMethods + categoryProperties?: Record + component?: VueConstructor + // optional additional search methods (client-side injections) + customSearchMethods?: Record + /** NOTE regarding \ – skipping further type chain upwards precision due to object optionality/clutter that would continue to MapConfig level; the inverted rabbit hole ends here; not using "unknown" since that errors in client configuration, not using "never" since that errors in AddressSearch plugin; this way, "any"thing goes */ + // optional selectResult overrides (client-side injections) + // eslint-disable-next-line @typescript-eslint/no-explicit-any + customSelectResult?: Record> + focusAfterSearch?: boolean + // definition of groups referred to in searchMethods + groupProperties?: Record + // Minimal input length before the search starts + minLength?: number + // optional loading action name to end loading + removeLoading?: string + afterResultComponent?: VueConstructor + // Time passed in milliseconds before another search is started + waitMs?: number } export interface Attribution { - id: string - title: string + id: string + title: string } /** Attributions Module Configuration */ export interface AttributionsConfiguration extends PluginOptions { - buttonComponent?: VueConstructor - icons?: { - open?: string - close?: string - } - initiallyOpen?: boolean - listenToChanges?: string[] - layerAttributions?: Attribution[] - renderType?: RenderType - staticAttributions?: string[] - windowWidth?: number + buttonComponent?: VueConstructor + icons?: { + open?: string + close?: string + } + initiallyOpen?: boolean + listenToChanges?: string[] + layerAttributions?: Attribution[] + renderType?: RenderType + staticAttributions?: string[] + windowWidth?: number } export interface PolarCircleStyle { - fillColor?: Color | ColorLike - radius: number - strokeColor?: Color | ColorLike - displacement?: number[] - scale?: number | Size - rotation?: number + fillColor?: Color | ColorLike + radius: number + strokeColor?: Color | ColorLike + displacement?: number[] + scale?: number | Size + rotation?: number } export interface DrawStyle { - fill: Fill - stroke: Stroke - circle: PolarCircleStyle - measure?: TextOptions + fill: Fill + stroke: Stroke + circle: PolarCircleStyle + measure?: TextOptions } export interface TextStyle { - font: string | FontStyle - textColor?: Color | ColorLike + font: string | FontStyle + textColor?: Color | ColorLike } export interface FontStyle { - size: number[] - family: string + size: number[] + family: string } export type DrawMode = 'Circle' | 'LineString' | 'Point' | 'Polygon' | 'Text' @@ -183,351 +183,337 @@ export type DrawMode = 'Circle' | 'LineString' | 'Point' | 'Polygon' | 'Text' export type MeasureMode = 'none' | 'metres' | 'kilometres' | 'hectares' export interface MeasureOptions { - metres?: boolean - kilometres?: boolean - hectares?: boolean - initialOption?: MeasureMode + metres?: boolean + kilometres?: boolean + hectares?: boolean + initialOption?: MeasureMode } export interface Lasso { - id: string - minZoom: boolean + id: string + minZoom: boolean } export interface DrawConfiguration extends Partial { - addLoading?: string - enableOptions?: boolean - lassos?: Lasso[] - measureOptions?: MeasureOptions - removeLoading?: string - revision?: DrawRevision - selectableDrawModes?: DrawMode[] - snapTo?: string[] - style?: DrawStyle - textStyle?: TextStyle - toastAction?: string + addLoading?: string + enableOptions?: boolean + lassos?: Lasso[] + measureOptions?: MeasureOptions + removeLoading?: string + revision?: DrawRevision + selectableDrawModes?: DrawMode[] + snapTo?: string[] + style?: DrawStyle + textStyle?: TextStyle + toastAction?: string } export interface DrawRevision { - autofix?: boolean - metaServices?: DrawMetaService[] - validate?: boolean + autofix?: boolean + metaServices?: DrawMetaService[] + validate?: boolean } export interface DrawMetaService { - id: string - aggregationMode?: 'unequal' | 'all' - propertyNames?: string[] + id: string + aggregationMode?: 'unequal' | 'all' + propertyNames?: string[] } export interface ExportConfiguration extends PluginOptions { - /** - * Whether the user should be able to download a file - * or the data should only be accessible through the store. - */ - download?: boolean - /** Tool offers exporting current mapView as a jpg. */ - showJpg?: boolean - /** Tool offers exporting current mapView as a pdf. */ - showPdf?: boolean - /** Tool offers exporting current mapView as a png. */ - showPng?: boolean + /** + * Whether the user should be able to download a file + * or the data should only be accessible through the store. + */ + download?: boolean + /** Tool offers exporting current mapView as a jpg. */ + showJpg?: boolean + /** Tool offers exporting current mapView as a pdf. */ + showPdf?: boolean + /** Tool offers exporting current mapView as a png. */ + showPng?: boolean } export interface FilterConfigurationTimeOption { - amounts: number[] - unit?: 'days' + amounts: number[] + unit?: 'days' } interface FilterConfigurationTime { - targetProperty: string - freeSelection?: { - now?: 'until' | 'from' - unit?: 'days' - } - last?: FilterConfigurationTimeOption[] - next?: FilterConfigurationTimeOption[] - pattern?: string + targetProperty: string + freeSelection?: { + now?: 'until' | 'from' + unit?: 'days' + } + last?: FilterConfigurationTimeOption[] + next?: FilterConfigurationTimeOption[] + pattern?: string } interface FilerConfigurationCategory { - knownValues: (string | number)[] - targetProperty: string - selectAll?: boolean + knownValues: (string | number)[] + targetProperty: string + selectAll?: boolean } export interface FilterConfiguration extends PluginOptions { - layers: Record< - string, - { - categories?: FilerConfigurationCategory[] - time?: FilterConfigurationTime - } - > + layers: Record< + string, + { + categories?: FilerConfigurationCategory[] + time?: FilterConfigurationTime + } + > } /** Configuration of GFI feature regarding a specific layer */ export interface GfiLayerConfiguration { - /** - * Property of the features of a service having an url usable to trigger a - * download of features as a document. - */ - exportProperty?: string - // filter method to apply on response features, only relevant for WMS services - filterBy?: 'clickPosition' - // format the response is known to come in (e.g. "GML"); only relevant for WMS services - format?: 'GML' | 'GML2' | 'GML3' | 'GML32' | 'text' - /** - * Whether the found features' geometry, if available, is to be shown on the - * map. It is simply printed to a helper layer. - */ - geometry?: boolean - // name of field to use for geometry, if not default field - geometryName?: string - isSelectable?: GfiIsSelectableFunction - maxFeatures?: number - /** - * If window is true, the properties are either - * 1. filtered by whether their key is in a string[] - * 2. filtered by whether their key is in the given object's keys, and then - * translated to the object's value for that key - * I.e., a feature \{ a: 0, b: 0, c: 0 \} with ['a', 'b'] will show key-value - * pairs 'a':0 and 'b':0, and the same feature with object \{a: 'A'\} will - * show key-value pair 'A':0, mind the uppercase A, which is the mapped key. - * - * This does not influence what information is available in the store, - * only the UI is affected by these filters/mappings. - */ - properties?: string[] | Record - showTooltip?: (feature: Feature, map: Map) => [string, string][] - /** - * Whether the found features' properties are to be shown in the client's UI. - * They are displayed as a table, one feature at a time, and if multiple - * features are found, the user may step through all where the layer's window - * value is true. - */ - window?: boolean + /** + * Property of the features of a service having an url usable to trigger a + * download of features as a document. + */ + exportProperty?: string + // filter method to apply on response features, only relevant for WMS services + filterBy?: 'clickPosition' + // format the response is known to come in (e.g. "GML"); only relevant for WMS services + format?: 'GML' | 'GML2' | 'GML3' | 'GML32' | 'text' + /** + * Whether the found features' geometry, if available, is to be shown on the + * map. It is simply printed to a helper layer. + */ + geometry?: boolean + // name of field to use for geometry, if not default field + geometryName?: string + isSelectable?: GfiIsSelectableFunction + maxFeatures?: number + /** + * If window is true, the properties are either + * 1. filtered by whether their key is in a string[] + * 2. filtered by whether their key is in the given object's keys, and then + * translated to the object's value for that key + * I.e., a feature \{ a: 0, b: 0, c: 0 \} with ['a', 'b'] will show key-value + * pairs 'a':0 and 'b':0, and the same feature with object \{a: 'A'\} will + * show key-value pair 'A':0, mind the uppercase A, which is the mapped key. + * + * This does not influence what information is available in the store, + * only the UI is affected by these filters/mappings. + */ + properties?: string[] | Record + showTooltip?: (feature: Feature, map: Map) => [string, string][] + /** + * Whether the found features' properties are to be shown in the client's UI. + * They are displayed as a table, one feature at a time, and if multiple + * features are found, the user may step through all where the layer's window + * value is true. + */ + window?: boolean } export type BoundaryOnError = 'strict' | 'permissive' export interface LayerBoundPluginOptions extends PluginOptions { - /** - * If set, feature will only be applicable within the layer's features. - * The layer must contain vectors. This is useful for restricted maps to avoid - * selecting unfit coordinates. - */ - boundaryLayerId?: string - boundaryOnError?: BoundaryOnError - /** - * Used if boundaryLayer does not contain the plugin information to inform - * the user that something could not be set/updated. - */ - toastAction?: string + /** + * If set, feature will only be applicable within the layer's features. + * The layer must contain vectors. This is useful for restricted maps to avoid + * selecting unfit coordinates. + */ + boundaryLayerId?: string + boundaryOnError?: BoundaryOnError + /** + * Used if boundaryLayer does not contain the plugin information to inform + * the user that something could not be set/updated. + */ + toastAction?: string } export interface GeoLocationConfiguration extends LayerBoundPluginOptions { - /** - * Source paths through store to listen to for changes; it is assumed values - * listened to are coordinates that can be used to request information from - * the specified layers. - */ - checkLocationInitially?: boolean - /** whether to keep center on user or allow movement after first zoom to */ - keepCentered?: boolean - renderType?: RenderType - showTooltip?: boolean - /** - * Limits the viewable GFIs per layer by this number. The first n elements - * are chosen arbitrarily. Useful if you e.g. just want one result, or to - * limit an endless stream of returns to maybe 10 or so. Infinite by default. - */ - zoomLevel?: number + /** + * Source paths through store to listen to for changes; it is assumed values + * listened to are coordinates that can be used to request information from + * the specified layers. + */ + checkLocationInitially?: boolean + /** whether to keep center on user or allow movement after first zoom to */ + keepCentered?: boolean + renderType?: RenderType + showTooltip?: boolean + /** + * Limits the viewable GFIs per layer by this number. The first n elements + * are chosen arbitrarily. Useful if you e.g. just want one result, or to + * limit an endless stream of returns to maybe 10 or so. Infinite by default. + */ + zoomLevel?: number } /** Object containing information for highlighting a gfi result */ export interface HighlightStyle { - fill: Fill - stroke: Stroke + fill: Fill + stroke: Stroke } export interface FullscreenConfiguration extends PluginOptions { - renderType?: RenderType - targetContainerId?: string + renderType?: RenderType + targetContainerId?: string } export type GfiIsSelectableFunction = (feature: GeoJsonFeature) => boolean /** configurable function to gather additional info */ export type GfiAfterLoadFunction = ( - featureInformation: Record, - srsName: string // TODO: Might be interesting to overlap this with mapConfig.namedProjections for type safety in using only allowed epsg codes + featureInformation: Record, + srsName: string // TODO: Might be interesting to overlap this with mapConfig.namedProjections for type safety in using only allowed epsg codes ) => - | Record - | Promise> + | Record + | Promise> /** GFI Module Configuration */ export interface FeatureList { - mode: 'visible' | 'loaded' - bindWithCoreHoverSelect?: boolean - pageLength?: number - text?: (string | ((f: Feature) => string))[] + mode: 'visible' | 'loaded' + bindWithCoreHoverSelect?: boolean + pageLength?: number + text?: (string | ((f: Feature) => string))[] } export interface GfiConfiguration extends PluginOptions { - /** - * Source paths through store to listen to for changes; it is assumed values - * listened to are coordinates that can be used to request information from - * the specified layers. - */ - coordinateSources: string[] - /** - * The layers to request feature information from. Both WMS and WFS layers are - * supported. Keys are layer IDs as specified in the services.json registry. - */ - layers: Record - activeLayerPath?: string - afterLoadFunction?: GfiAfterLoadFunction - boxSelect?: boolean - /** - * If required the stroke and fill of the highlighted feature can be configured. - * Otherwise, a default style is applied. - */ - customHighlightStyle?: HighlightStyle - directSelect?: boolean - featureList?: FeatureList - /** - * Optionally replace GfiContent component. - * Usable to completely redesign content of GFI window. - */ - gfiContentComponent?: VueConstructor - /** - * Limits the viewable GFIs per layer by this number. The first n elements - * are chosen arbitrarily. Useful if you e.g. just want one result, or to - * limit an endless stream of returns to maybe 10 or so. Infinite by default. - */ - maxFeatures?: number - mode?: 'bboxDot' | 'intersects' - multiSelect?: 'box' | 'circle' - renderType?: RenderType -} - -export interface Menu { - id: string - icon?: string - plugin: object // TODO: Add a proper type - // Locale string; if not given `plugins.iconMenu.hints.${id}` is used - hint?: string -} - -export interface IconMenuConfiguration extends PluginOptions { - menus: Menu[] - buttonComponent?: VueConstructor - initiallyOpen?: string + /** + * Source paths through store to listen to for changes; it is assumed values + * listened to are coordinates that can be used to request information from + * the specified layers. + */ + coordinateSources: string[] + /** + * The layers to request feature information from. Both WMS and WFS layers are + * supported. Keys are layer IDs as specified in the services.json registry. + */ + layers: Record + activeLayerPath?: string + afterLoadFunction?: GfiAfterLoadFunction + boxSelect?: boolean + /** + * If required the stroke and fill of the highlighted feature can be configured. + * Otherwise, a default style is applied. + */ + customHighlightStyle?: HighlightStyle + directSelect?: boolean + featureList?: FeatureList + /** + * Optionally replace GfiContent component. + * Usable to completely redesign content of GFI window. + */ + gfiContentComponent?: VueConstructor + /** + * Limits the viewable GFIs per layer by this number. The first n elements + * are chosen arbitrarily. Useful if you e.g. just want one result, or to + * limit an endless stream of returns to maybe 10 or so. Infinite by default. + */ + maxFeatures?: number + mode?: 'bboxDot' | 'intersects' + multiSelect?: 'box' | 'circle' + renderType?: RenderType } export interface LayerChooserConfiguration extends PluginOptions { - component?: VueConstructor + component?: VueConstructor } export interface LegendConfiguration extends PluginOptions { - icons?: { - open?: string - close?: string - } + icons?: { + open?: string + close?: string + } } export interface AppearOnClick { - /** Whether the pin should be set with a click on a map. */ - show: boolean - /** At which zoomLevel it should be possible to have a pin set (if show is set to true). */ - atZoomLevel?: number + /** Whether the pin should be set with a click on a map. */ + show: boolean + /** At which zoomLevel it should be possible to have a pin set (if show is set to true). */ + atZoomLevel?: number } interface InitialPin { - coordinates: [number, number] - centerOn?: boolean - epsg?: string + coordinates: [number, number] + centerOn?: boolean + epsg?: string } type MovablePin = 'drag' | 'click' | 'none' interface PinStyle { - fill?: string - stroke?: string + fill?: string + stroke?: string } export interface PinsConfiguration extends LayerBoundPluginOptions { - appearOnClick?: AppearOnClick - /** Path in store from where coordinates can be retrieved from. */ - coordinateSource?: string - initial?: InitialPin - /** If the pin should be movable; defaults to false. */ - movable?: boolean | MovablePin - /** Pin styling */ - style?: PinStyle - /** The zoom level to zoom to when a pin is added to the map. */ - toZoomLevel?: number + appearOnClick?: AppearOnClick + /** Path in store from where coordinates can be retrieved from. */ + coordinateSource?: string + initial?: InitialPin + /** If the pin should be movable; defaults to false. */ + movable?: boolean | MovablePin + /** Pin styling */ + style?: PinStyle + /** The zoom level to zoom to when a pin is added to the map. */ + toZoomLevel?: number } export interface ReverseGeocoderConfiguration { - // WPS (Web Processing Service) URL - url: string - // optional loading action name to start loading - addLoading?: string - // points to an address acceptor; on resolve, address is dispatched there - addressTarget?: string - // points to a coordinate source; on update, coordinate is resolved - coordinateSource?: string - // optional loading action name to end loading - removeLoading?: string - // optionally zooms to given coordinate after successful reverse geocoding; number indicates zoom level - zoomTo?: number + // WPS (Web Processing Service) URL + url: string + // optional loading action name to start loading + addLoading?: string + // points to an address acceptor; on resolve, address is dispatched there + addressTarget?: string + // points to a coordinate source; on update, coordinate is resolved + coordinateSource?: string + // optional loading action name to end loading + removeLoading?: string + // optionally zooms to given coordinate after successful reverse geocoding; number indicates zoom level + zoomTo?: number } /** Style of a toast */ export interface ToastStyle { - /** Color of the toast. */ - color?: string - /** optional icon class from available icon set */ - icon?: string + /** Color of the toast. */ + color?: string + /** optional icon class from available icon set */ + icon?: string } /** various kinds of toasts */ export type ToastType = 'success' | 'info' | 'warning' | 'error' export type ToastTypeStyles = { - [key in ToastType]?: ToastStyle + [key in ToastType]?: ToastStyle } /** configuration for toast type styles */ export type ToastConfiguration = PluginOptions & ToastTypeStyles export interface ScaleConfiguration extends PluginOptions { - showScaleSwitcher?: boolean - zoomMethod?: string + showScaleSwitcher?: boolean + zoomMethod?: string } export interface PointerPositionProjection { - code: `EPSG:${string}` - decimals?: number + code: `EPSG:${string}` + decimals?: number } export interface PointerPositionConfiguration extends PluginOptions { - projections?: PointerPositionProjection[] + projections?: PointerPositionProjection[] } export interface ZoomIcons { - zoomIn: string - zoomOut: string + zoomIn: string + zoomOut: string } export interface ZoomConfiguration extends PluginOptions { - component?: VueConstructor - icons?: ZoomIcons - renderType?: RenderType - showMobile?: boolean - showZoomSlider?: boolean + component?: VueConstructor + icons?: ZoomIcons + renderType?: RenderType + showMobile?: boolean + showZoomSlider?: boolean } /** @@ -537,28 +523,27 @@ export interface ZoomConfiguration extends PluginOptions { */ export interface MapConfig extends MasterportalApiConfig { - /** if true, all services' availability will be checked with head requests */ - renderFaToLightDom?: boolean - stylePath?: string - vuetify?: UserVuetifyPreset - addressSearch?: AddressSearchConfiguration - loadingIndicator?: LoadingIndicatorConfiguration - attributions?: AttributionsConfiguration - draw?: DrawConfiguration - export?: ExportConfiguration - filter?: FilterConfiguration - fullscreen?: FullscreenConfiguration - geoLocation?: GeoLocationConfiguration - gfi?: GfiConfiguration - iconMenu?: IconMenuConfiguration - layerChooser?: LayerChooserConfiguration - legend?: LegendConfiguration - pins?: PinsConfiguration - pointerPosition?: PointerPositionConfiguration - reverseGeocoder?: ReverseGeocoderConfiguration - scale?: ScaleConfiguration - toast?: ToastConfiguration - zoom?: ZoomConfiguration + /** if true, all services' availability will be checked with head requests */ + renderFaToLightDom?: boolean + stylePath?: string + vuetify?: UserVuetifyPreset + addressSearch?: AddressSearchConfiguration + loadingIndicator?: LoadingIndicatorConfiguration + attributions?: AttributionsConfiguration + draw?: DrawConfiguration + export?: ExportConfiguration + filter?: FilterConfiguration + fullscreen?: FullscreenConfiguration + geoLocation?: GeoLocationConfiguration + gfi?: GfiConfiguration + layerChooser?: LayerChooserConfiguration + legend?: LegendConfiguration + pins?: PinsConfiguration + pointerPosition?: PointerPositionConfiguration + reverseGeocoder?: ReverseGeocoderConfiguration + scale?: ScaleConfiguration + toast?: ToastConfiguration + zoom?: ZoomConfiguration } /** @@ -572,180 +557,180 @@ export interface MapConfig extends MasterportalApiConfig { type MoveHandleProps = object export interface MoveHandleProperties { - closeLabel: string - closeFunction: (...args: unknown[]) => unknown - component: VueConstructor - // Plugin that added the moveHandle - plugin: string - closeIcon?: string - props?: MoveHandleProps + closeLabel: string + closeFunction: (...args: unknown[]) => unknown + component: VueConstructor + // Plugin that added the moveHandle + plugin: string + closeIcon?: string + props?: MoveHandleProps } export interface MoveHandleActionButton { - component: VueConstructor - props?: MoveHandleProps + component: VueConstructor + props?: MoveHandleProps } export interface CoreState { - center: [number, number] | null - clientHeight: number - clientWidth: number - components: number - // NOTE: The additional values are not required in the configuration but have default values. - configuration: MapConfig & - Required< - Pick< - MasterportalApiConfig, - 'epsg' | 'namedProjections' | 'options' | 'startResolution' - > - > - hasSmallDisplay: boolean - hovered: number - language: string - map: number - mapHasDimensions: boolean - moveHandle: number - moveHandleActionButton: number - oidcToken: string - // NOTE truly any since external plugins may bring whatever; unknown will lead to further errors - // eslint-disable-next-line @typescript-eslint/no-explicit-any - plugin: Record - selected: number - zoomLevel: number + center: [number, number] | null + clientHeight: number + clientWidth: number + components: number + // NOTE: The additional values are not required in the configuration but have default values. + configuration: MapConfig & + Required< + Pick< + MasterportalApiConfig, + 'epsg' | 'namedProjections' | 'options' | 'startResolution' + > + > + hasSmallDisplay: boolean + hovered: number + language: string + map: number + mapHasDimensions: boolean + moveHandle: number + moveHandleActionButton: number + oidcToken: string + // NOTE truly any since external plugins may bring whatever; unknown will lead to further errors + // eslint-disable-next-line @typescript-eslint/no-explicit-any + plugin: Record + selected: number + zoomLevel: number } export interface CoreGetters - extends Omit< - CoreState, - | 'components' - | 'hovered' - | 'map' - | 'moveHandle' - | 'moveHandleActionButton' - | 'selected' - > { - // omitted from CoreState as actual getter type diverges - components: PluginContainer[] - hovered: Feature | null - map: Map - mapHasDimensions: boolean - moveHandle: MoveHandleProperties - moveHandleActionButton: MoveHandleActionButton - selected: Feature | null - selectedCoordinate: Coordinate | null - - // regular getters - deviceIsHorizontal: boolean - hasSmallHeight: boolean - hasSmallWidth: boolean - /** Whether the application currently has the same size as the visual viewport of the users browser */ - hasWindowSize: boolean + extends Omit< + CoreState, + | 'components' + | 'hovered' + | 'map' + | 'moveHandle' + | 'moveHandleActionButton' + | 'selected' + > { + // omitted from CoreState as actual getter type diverges + components: PluginContainer[] + hovered: Feature | null + map: Map + mapHasDimensions: boolean + moveHandle: MoveHandleProperties + moveHandleActionButton: MoveHandleActionButton + selected: Feature | null + selectedCoordinate: Coordinate | null + + // regular getters + deviceIsHorizontal: boolean + hasSmallHeight: boolean + hasSmallWidth: boolean + /** Whether the application currently has the same size as the visual viewport of the users browser */ + hasWindowSize: boolean } export type PolarGetter = ( - state: S, - getters: G, - rootState: CoreState, - rootGetters: CoreGetters + state: S, + getters: G, + rootState: CoreState, + rootGetters: CoreGetters ) => P export type PolarGetterTree = { - [Property in keyof G]: PolarGetter + [Property in keyof G]: PolarGetter } export interface PolarActionContext { - dispatch: Dispatch - commit: Commit - state: S - getters: G - rootState: CoreState - rootGetters: CoreGetters + dispatch: Dispatch + commit: Commit + state: S + getters: G + rootState: CoreState + rootGetters: CoreGetters } export type PolarActionHandler = ( - this: PolarStore, - injectee: PolarActionContext, - // NOTE: This any is fine, as it can actually be anything. - // eslint-disable-next-line - payload?: any + this: PolarStore, + injectee: PolarActionContext, + // NOTE: This any is fine, as it can actually be anything. + // eslint-disable-next-line + payload?: any ) => unknown export interface PolarActionObject { - root?: boolean - handler: PolarActionHandler + root?: boolean + handler: PolarActionHandler } export type PolarAction = - | PolarActionHandler - | PolarActionObject + | PolarActionHandler + | PolarActionObject export interface PolarActionTree { - [key: string]: PolarAction + [key: string]: PolarAction } export interface PolarModule { - namespaced: boolean - state: S | (() => S) - getters: PolarGetterTree - actions?: PolarActionTree - mutations: MutationTree + namespaced: boolean + state: S | (() => S) + getters: PolarGetterTree + actions?: PolarActionTree + mutations: MutationTree } export interface PolarModuleTree { - [key: string]: PolarModule + [key: string]: PolarModule } export interface PolarStoreOptions { - state: S | (() => S) - getters: PolarGetterTree - actions: PolarActionTree - mutations?: MutationTree - modules?: PolarModuleTree - plugins?: Plugin[] - strict?: boolean - devtools?: boolean + state: S | (() => S) + getters: PolarGetterTree + actions: PolarActionTree + mutations?: MutationTree + modules?: PolarModuleTree + plugins?: Plugin[] + strict?: boolean + devtools?: boolean } export declare class PolarStore { - constructor(options: PolarStoreOptions) - readonly state: S - readonly getters: G - replaceState(state: S): void - // NOTE: options object is removed from type here as it's mostly used for SSR; see https://vuex.vuejs.org/api/#registermodule - registerModule( - path: string | string[], - module: PolarModule - ): void - - dispatch: Dispatch - commit: Commit - subscribe

( - // TODO: check if type any is valid - // eslint-disable-next-line @typescript-eslint/no-explicit-any - fn: (mutation: P, state: S) => any, - options?: SubscribeOptions - ): () => void - - subscribeAction

( - fn: SubscribeActionOptions, - options?: SubscribeOptions - ): () => void - - watch( - // TODO: check if type any is valid - // eslint-disable-next-line @typescript-eslint/no-explicit-any - getter: (state: S, getters: any) => T, - cb: (value: T, oldValue: T) => void, - options?: WatchOptions - ): () => void - - unregisterModule(path: string | string[]): void - - hasModule(path: string | string[]): boolean - hotUpdate(options: { - actions?: PolarActionTree - mutations?: MutationTree - getters?: PolarGetterTree - modules?: PolarModuleTree - }): void + constructor(options: PolarStoreOptions) + readonly state: S + readonly getters: G + replaceState(state: S): void + // NOTE: options object is removed from type here as it's mostly used for SSR; see https://vuex.vuejs.org/api/#registermodule + registerModule( + path: string | string[], + module: PolarModule + ): void + + dispatch: Dispatch + commit: Commit + subscribe

( + // TODO: check if type any is valid + // eslint-disable-next-line @typescript-eslint/no-explicit-any + fn: (mutation: P, state: S) => any, + options?: SubscribeOptions + ): () => void + + subscribeAction

( + fn: SubscribeActionOptions, + options?: SubscribeOptions + ): () => void + + watch( + // TODO: check if type any is valid + // eslint-disable-next-line @typescript-eslint/no-explicit-any + getter: (state: S, getters: any) => T, + cb: (value: T, oldValue: T) => void, + options?: WatchOptions + ): () => void + + unregisterModule(path: string | string[]): void + + hasModule(path: string | string[]): boolean + hotUpdate(options: { + actions?: PolarActionTree + mutations?: MutationTree + getters?: PolarGetterTree + modules?: PolarModuleTree + }): void } From 9163b7216580f876bfad2b7726126c70855e47c8 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Tue, 12 Aug 2025 19:00:34 +0200 Subject: [PATCH 223/697] Update vue component name --- .../iconMenu/components/{PluginUI.ce.vue => IconMenu.vue} | 0 src/plugins/iconMenu/index.ts | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename src/plugins/iconMenu/components/{PluginUI.ce.vue => IconMenu.vue} (100%) diff --git a/src/plugins/iconMenu/components/PluginUI.ce.vue b/src/plugins/iconMenu/components/IconMenu.vue similarity index 100% rename from src/plugins/iconMenu/components/PluginUI.ce.vue rename to src/plugins/iconMenu/components/IconMenu.vue diff --git a/src/plugins/iconMenu/index.ts b/src/plugins/iconMenu/index.ts index f5e1ed9ed..3cb7da7d7 100644 --- a/src/plugins/iconMenu/index.ts +++ b/src/plugins/iconMenu/index.ts @@ -4,7 +4,7 @@ */ /* eslint-enable tsdoc/syntax */ -import component from './components/PluginUI.ce.vue' +import component from './components/IconMenu.vue' import locales from './locales' import { useIconMenuStore } from './store' import { PluginId, type IconMenuPluginOptions } from './types' From 69278662179bd06bfa7fa4111784912f5fd8b5ff Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Tue, 12 Aug 2025 19:00:41 +0200 Subject: [PATCH 224/697] Remove unused imports --- src/plugins/iconMenu/store.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/plugins/iconMenu/store.ts b/src/plugins/iconMenu/store.ts index ddb6edf72..9912d94bc 100644 --- a/src/plugins/iconMenu/store.ts +++ b/src/plugins/iconMenu/store.ts @@ -5,8 +5,6 @@ /* eslint-enable tsdoc/syntax */ import { defineStore } from 'pinia' -import type { Reactive } from 'vue' -import { PluginId } from './types' /* eslint-disable tsdoc/syntax */ /** From c6a7554a294a4578e10c9c90f2a93c98217bbba2 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Tue, 12 Aug 2025 19:00:59 +0200 Subject: [PATCH 225/697] Add readme information to tsdoc --- src/plugins/iconMenu/index.ts | 8 ++- src/plugins/iconMenu/types.ts | 61 +++++++++++++++++- vue2/packages/plugins/IconMenu/README.md | 81 ------------------------ 3 files changed, 66 insertions(+), 84 deletions(-) delete mode 100644 vue2/packages/plugins/IconMenu/README.md diff --git a/src/plugins/iconMenu/index.ts b/src/plugins/iconMenu/index.ts index 3cb7da7d7..f31a480e3 100644 --- a/src/plugins/iconMenu/index.ts +++ b/src/plugins/iconMenu/index.ts @@ -11,8 +11,12 @@ import { PluginId, type IconMenuPluginOptions } from './types' import type { PluginContainer } from '@/core' /** - * Creates a plugin which adds the possibility to open other plugins from an - * iconized menu. + * Creates a plugin which adds the possibility to open various functionality as + * cards from an iconized menu. + * This way, obstructive UI can be hidden until the user desires to open it. + * + * Please use carefully – users may have issues finding process-relevant + * buttons or interactions if you hide them here. * * @returns Plugin for use with {@link addPlugin}. */ diff --git a/src/plugins/iconMenu/types.ts b/src/plugins/iconMenu/types.ts index 74308d6c1..39e9a4571 100644 --- a/src/plugins/iconMenu/types.ts +++ b/src/plugins/iconMenu/types.ts @@ -1,5 +1,6 @@ import type { Component } from 'vue' import type { PluginContainer, PluginOptions } from '@/core' +import type { NineLayoutTag } from '@/core/utils/NineLayoutTag.ts' /** * Plugin identifier. @@ -7,18 +8,76 @@ import type { PluginContainer, PluginOptions } from '@/core' export const PluginId = '@polar/polar/plugins/iconMenu' export interface Menu { + /** + * Unique identifier of the plugin. Also used to resolve hint locale. + */ id: string + /** + * The plugin that should be part of the icon menu. + */ plugin: PluginContainer - // Locale string; if not given `plugins.iconMenu.hints.${id}` is used + /** + * Overrides the default hint displayed for the icon menu button. + * Ff not given the locale in `plugins.iconMenu.hints.${id}` is used. + */ hint?: string + /** + * Icon for icon menu button. If given, render a button with the icon. When + * clicked, open the content of the configured plugin. If not given, render + * the plugin content as is inside the IconMenu. + * + * Current examples for the usage without icon include Zoom and Fullscreen. + */ icon?: string + position?: 'sidebar' | 'topRight' } /** * Plugin options for iconMenu plugin. */ export interface IconMenuPluginOptions extends PluginOptions { + /** + * Defines which plugins should be rendered as part of the icon menu. + * + * @example + * ``` + * { + * initiallyOpen: 'draw', + * displayComponent: true, + * menus: [ + * { + * plugin: PolarPluginFullscreen({}), + * icon: 'kern-icon--fullscreen', + * id: 'fullscreen', + * position: 'topRight' + * }, + * { + * plugin: PolarPluginDraw({}), + * icon: 'kern-icon--draw', + * id: 'draw', + * hint: 'Draw or write something on the map' + * position: 'sidebar' + * }, + * ] + * } + * ``` + */ menus: Menu[] + /** + * If {@link MapConfiguration.layout | `mapConfiguration.layers`} is set to `'nineRegions'`, then this parameter + * allows overriding the IconMenuButton.vue component for custom design and functionality. Coding knowledge is required + * to use this feature, as any implementation will have to rely upon the Pinia store model and has to implement the + * same props as the default IconMenuButton.vue. Please refer to the implementation. + */ buttonComponent?: Component + /** + * ID of the plugin which should be open on start; only applicable if the device doesn't have a small display. + */ initiallyOpen?: string + /** + * If {@link MapConfiguration.layout | `mapConfiguration.layers`} is set to `'nineRegions'`, then this parameter + * declares the positioning of the IconMenu. However, if {@link buttonComponent} is not set, then only `"TOP_RIGHT"` + * is allowed as value. + */ + layoutTag?: keyof typeof NineLayoutTag } diff --git a/vue2/packages/plugins/IconMenu/README.md b/vue2/packages/plugins/IconMenu/README.md deleted file mode 100644 index 062f21d21..000000000 --- a/vue2/packages/plugins/IconMenu/README.md +++ /dev/null @@ -1,81 +0,0 @@ -# IconMenu - -The IconMenu offers an icon-button based menu to open various functionality as cards. This way, obstructive UI can be hidden until the user desires to open it. Please use carefully – users may have issues finding process-relevant buttons/interactions if you hide them here. -Currently, the IconMenu should only be rendered with `layoutTag` set to `NineLayoutTag.TOP_RIGHT`. - -## Scope - -It is meant for additional information/functionality (legend, other layers) or power users in non-public clients. - -_Please note that the average user has never seen the client before and just wants to get done with it, not learn a map client._ - -## Configuration - -### iconMenu - -> ⚠️ This plugin can't be configured with the `mapConfiguration`, but is configured during client construction. Currently, no way exists to add plugins to it after the build took place. - -For details on the `displayComponent` attribute, refer to the [Global Plugin Parameters](../../core/README.md#global-plugin-parameters) section of `@polar/core`. - -| fieldName | type | description | -| - | - | - | -| layoutTag | enum['TOP_LEFT','TOP_MIDDLE','TOP_RIGHT','MIDDLE_LEFT','MIDDLE_MIDDLE','MIDDLE_RIGHT','BOTTOM_LEFT','BOTTOM_MIDDLE','BOTTOM_RIGHT'] | Defines where the icon menu is rendered. Only use `NineLayoutTag.TOP_RIGHT` here for the time being. | -| menus | menuEntry[] | Defines which plugins should be rendered as part of the icon menu. | -| buttonComponent | VueConstructor? | Allows overriding the IconMenuButton.vue component for custom design and functionality. Coding knowledge is required to use this feature, as any implementation will have to rely upon the VueX store model and has to implement the same props as the default IconMenuButton.vue. Please refer to the implementation. | -| initiallyOpen | string? | Id of the plugin which should be open on start; only applicable if the device doesn't have a small display. | - -Use the configuration during client build. - -Example Configuration: -```js -{ - initiallyOpen: 'layerChooser', - displayComponent: true, - menus: [ - { - plugin: PolarPluginLayerChooser({}), - icon: 'fa-layer-group', - id: 'layerChooser', - }, - { - plugin: PolarPluginDraw({}), - icon: 'fa-pencil', - id: 'draw', - hint: 'Draw or write something on the map' - }, - ], - layoutTag: NineLayoutTag.TOP_RIGHT, -} -``` - -#### iconMenu.menuEntry - -| fieldName | type | description | -| - | - | - | -| id | string | Id of the plugin, used to resolve hint locale. | -| plugin | PolarPlugin | The plugin that should be part of the icon menu. | -| hint | string? | Overrides the default hint displayed for the icon menu button. | -| icon | string? | Icon for icon menu button. If given, render a button with the icon. When clicked, open the content of the configured plugin. If not given, render the plugin content as is inside the IconMenu. Current examples for the usage without icon include Zoom and Fullscreen. | - -Example Configuration: -```js -{ - menus: [ - { - plugin: PolarPluginLayerChooser({}), - icon: 'fa-layer-group', - id: 'layerChooser', - }, - { - plugin: PolarPluginDraw({}), - icon: 'fa-pencil', - id: 'draw', - hint: 'Draw or write something on the map' - }, - ], -} -``` - -## Modes - -When landscape mode is active the IconMenu is oriented horizontally. Currently, the IconMenu works fine only if there is not more than one row of Icons in landscape mode. From 118a78339d5f93802d271f1795c92c93b009df67 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Tue, 12 Aug 2025 19:04:10 +0200 Subject: [PATCH 226/697] Update tsdoc information of iconMenu types --- src/plugins/iconMenu/types.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/plugins/iconMenu/types.ts b/src/plugins/iconMenu/types.ts index 39e9a4571..653d3aec4 100644 --- a/src/plugins/iconMenu/types.ts +++ b/src/plugins/iconMenu/types.ts @@ -18,15 +18,15 @@ export interface Menu { plugin: PluginContainer /** * Overrides the default hint displayed for the icon menu button. - * Ff not given the locale in `plugins.iconMenu.hints.${id}` is used. + * If not given, the locale in `plugins.iconMenu.hints.${id}` is used. */ hint?: string /** - * Icon for icon menu button. If given, render a button with the icon. When - * clicked, open the content of the configured plugin. If not given, render - * the plugin content as is inside the IconMenu. + * Icon for icon menu button. If given, render a button with the icon. When clicked, open the content of the + * configured plugin. If not given, render the plugin content as is inside the IconMenu. * - * Current examples for the usage without icon include Zoom and Fullscreen. + * Current examples for the usage without icon include Zoom and Fullscreen if + * {@link MapConfiguration.layout | `mapConfiguration.layers`} is set to `'nineRegions'` */ icon?: string position?: 'sidebar' | 'topRight' From 9f5a45f272ea39447202cd633f533860daafca42 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Tue, 12 Aug 2025 19:04:49 +0200 Subject: [PATCH 227/697] Add .ce to IconMenu component so that it will be usable --- .../iconMenu/components/{IconMenu.vue => IconMenu.ce.vue} | 0 src/plugins/iconMenu/index.ts | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename src/plugins/iconMenu/components/{IconMenu.vue => IconMenu.ce.vue} (100%) diff --git a/src/plugins/iconMenu/components/IconMenu.vue b/src/plugins/iconMenu/components/IconMenu.ce.vue similarity index 100% rename from src/plugins/iconMenu/components/IconMenu.vue rename to src/plugins/iconMenu/components/IconMenu.ce.vue diff --git a/src/plugins/iconMenu/index.ts b/src/plugins/iconMenu/index.ts index f31a480e3..bf1da8031 100644 --- a/src/plugins/iconMenu/index.ts +++ b/src/plugins/iconMenu/index.ts @@ -4,7 +4,7 @@ */ /* eslint-enable tsdoc/syntax */ -import component from './components/IconMenu.vue' +import component from './components/IconMenu.ce.vue' import locales from './locales' import { useIconMenuStore } from './store' import { PluginId, type IconMenuPluginOptions } from './types' From 55050ea2c11ce7c625ec981f99d4f5417088e6ff Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Tue, 12 Aug 2025 22:12:13 +0200 Subject: [PATCH 228/697] Split addPlugin in two functions to establish reusability in iconMenu Also move the check for the presence of layoutTag when a component should be displayed to NineLayout.ce.vue. --- src/core/components/layouts/NineLayout.ce.vue | 18 +++++++--- src/core/index.ts | 33 +++++++++++-------- 2 files changed, 33 insertions(+), 18 deletions(-) diff --git a/src/core/components/layouts/NineLayout.ce.vue b/src/core/components/layouts/NineLayout.ce.vue index 2295b65e6..cd30e38e2 100644 --- a/src/core/components/layouts/NineLayout.ce.vue +++ b/src/core/components/layouts/NineLayout.ce.vue @@ -22,15 +22,25 @@ import { NineLayoutTag } from '@/core/utils/NineLayoutTag' const tags = Object.entries(NineLayoutTag) const coreStore = useMainStore() -const { hasWindowSize, plugins } = storeToRefs(coreStore) +const { hasWindowSize } = storeToRefs(coreStore) const regions = computed(() => tags.reduce( (acc, [name]) => ({ ...acc, - [name]: plugins.value.filter( - ({ options }) => options?.displayComponent && options.layoutTag === name - ), + [name]: coreStore.plugins + .filter(({ id, options }) => { + if (options?.displayComponent && !options.layoutTag) { + console.warn( + `Component of plugin "${id}" was registered as visible ('displayComponent' had a truthy value), but no 'layoutTag' was associated. This may be an error in configuration and will lead to the component not being visible in the UI.` + ) + return false + } + return typeof options?.displayComponent === 'boolean' + ? options.displayComponent + : false + }) + .filter(({ options }) => options?.layoutTag === name), }), {} ) diff --git a/src/core/index.ts b/src/core/index.ts index b73af0693..502163db2 100644 --- a/src/core/index.ts +++ b/src/core/index.ts @@ -67,6 +67,25 @@ export function addPlugins(plugins: PluginContainer[]) { * @param plugin - Plugin to be added. */ export function addPlugin(plugin: PluginContainer) { + const coreStore = useMainStore() + + instantiatePlugin(plugin) + + coreStore.plugins = [ + ...coreStore.plugins, + { + ...plugin, + ...(plugin.component ? { component: markRaw(plugin.component) } : {}), + }, + ] +} + +/** + * @internal + * + * @param plugin - Plugin to be instantiated. + */ +export function instantiatePlugin(plugin: PluginContainer) { const { id, locales, options, storeModule } = plugin const coreStore = useMainStore() @@ -74,7 +93,6 @@ export function addPlugin(plugin: PluginContainer) { options || {}, (coreStore.configuration[id] || {}) as PluginOptions ) - /* configuration merge – "options" are from client-code, "configuration" * is from mapConfiguration object and thus overrides */ coreStore.configuration = { @@ -93,19 +111,6 @@ export function addPlugin(plugin: PluginContainer) { i18next.addResourceBundle(lng.type, id, lng.resources, true) }) } - - coreStore.plugins = [ - ...coreStore.plugins, - { - ...plugin, - ...(plugin.component ? { component: markRaw(plugin.component) } : {}), - }, - ] - if (pluginConfiguration.displayComponent && !pluginConfiguration.layoutTag) { - console.warn( - `Component of plugin "${id}" was registered as visible ('displayComponent' had a truthy value), but no 'layoutTag' was associated. This may be an error in configuration and will lead to the component not being visible in the UI.` - ) - } } export function removePlugin(pluginId: string) { From 7589edb5536147f4e30d43ef27815468979e6136 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Wed, 13 Aug 2025 19:07:18 +0200 Subject: [PATCH 229/697] Adjust type import --- src/core/types.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/types.ts b/src/core/types.ts index f5351bbe0..162b8242a 100644 --- a/src/core/types.ts +++ b/src/core/types.ts @@ -1,5 +1,5 @@ import type { Resource } from 'i18next' -import { Feature } from 'ol' +import type { Feature } from 'ol' import type { SetupStoreDefinition } from 'pinia' import type { Component, VueElement } from 'vue' import type { NineLayoutTag } from '@/core/utils/NineLayoutTag.ts' From 08b24c9a73d1e6770dfe63a74fcfd09ecda99ded Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Wed, 13 Aug 2025 19:07:34 +0200 Subject: [PATCH 230/697] Remove done todo --- src/core/types.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/core/types.ts b/src/core/types.ts index 162b8242a..6159bb382 100644 --- a/src/core/types.ts +++ b/src/core/types.ts @@ -31,7 +31,6 @@ export interface ServiceAvailabilityCheck { serviceName: string } -// TODO(dopenguin): Adjust these options export interface PluginOptions { displayComponent?: boolean layoutTag?: keyof typeof NineLayoutTag From 320886efe5c3484ea395cab965c5312ef874b3de Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Wed, 13 Aug 2025 19:19:16 +0200 Subject: [PATCH 231/697] Remove instantiatePlugin and move logic back to addPlugin addPlugin is needed as is. --- src/core/index.ts | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/src/core/index.ts b/src/core/index.ts index 502163db2..dda627f1c 100644 --- a/src/core/index.ts +++ b/src/core/index.ts @@ -67,25 +67,6 @@ export function addPlugins(plugins: PluginContainer[]) { * @param plugin - Plugin to be added. */ export function addPlugin(plugin: PluginContainer) { - const coreStore = useMainStore() - - instantiatePlugin(plugin) - - coreStore.plugins = [ - ...coreStore.plugins, - { - ...plugin, - ...(plugin.component ? { component: markRaw(plugin.component) } : {}), - }, - ] -} - -/** - * @internal - * - * @param plugin - Plugin to be instantiated. - */ -export function instantiatePlugin(plugin: PluginContainer) { const { id, locales, options, storeModule } = plugin const coreStore = useMainStore() @@ -111,6 +92,14 @@ export function instantiatePlugin(plugin: PluginContainer) { i18next.addResourceBundle(lng.type, id, lng.resources, true) }) } + + coreStore.plugins = [ + ...coreStore.plugins, + { + ...plugin, + ...(plugin.component ? { component: markRaw(plugin.component) } : {}), + }, + ] } export function removePlugin(pluginId: string) { From 2375c00870acb001ccf334c87c3cbf50faecb5a4 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Wed, 13 Aug 2025 21:58:24 +0200 Subject: [PATCH 232/697] Fix order of imports --- examples/snowbox/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/snowbox/index.js b/examples/snowbox/index.js index 2dcf60e8f..74d7da7a3 100644 --- a/examples/snowbox/index.js +++ b/examples/snowbox/index.js @@ -1,7 +1,7 @@ import { changeLanguage } from 'i18next' -import styleJsonUrl from './style.json?url' import pluginFullscreen from '@polar/polar/plugins/fullscreen' import { addPlugin, createMap, removePlugin, subscribe } from '@polar/polar' +import styleJsonUrl from './style.json?url' const basemapId = '23420' const basemapGreyId = '23421' From cf62c624d071c1a718609335bb8808d005041027 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Thu, 14 Aug 2025 11:54:19 +0200 Subject: [PATCH 233/697] core(refactor): Remove map handling from marker store --- src/core/components/PolarMap.ce.vue | 32 ++- src/core/stores/main.ts | 15 +- src/core/stores/marker.ts | 387 ++-------------------------- src/core/utils/map/setupMarkers.ts | 353 +++++++++++++++++++++++++ 4 files changed, 386 insertions(+), 401 deletions(-) create mode 100644 src/core/utils/map/setupMarkers.ts diff --git a/src/core/components/PolarMap.ce.vue b/src/core/components/PolarMap.ce.vue index 866636759..147319c6e 100644 --- a/src/core/components/PolarMap.ce.vue +++ b/src/core/components/PolarMap.ce.vue @@ -20,18 +20,18 @@ import { computed, onMounted, useTemplateRef, watch } from 'vue' import type { Map } from 'ol' import { easeOut } from 'ol/easing' import { useMainStore } from '../stores/main' -import { useMarkerStore } from '../stores/marker' import { updateDragAndZoomInteractions } from '../utils/map/updateDragAndZoomInteractions' import { updateSizeOnReady } from '../utils/map/updateSizeOnReady' import { setupStyling } from '../utils/map/setupStyling' import { checkServiceAvailability } from '../utils/checkServiceAvailability' +import { setupMarkers } from '../utils/map/setupMarkers' import PolarMapOverlay from './PolarMapOverlay.ce.vue' -const coreStore = useMainStore() +const mainStore = useMainStore() const { hasWindowSize, hasSmallDisplay, center, zoom, mapHasDimensions } = - storeToRefs(coreStore) + storeToRefs(mainStore) const polarMapContainer = useTemplateRef('polar-map-container') const overlay = useTemplateRef('polar-map-overlay') @@ -48,8 +48,8 @@ function createMap() { map = api.map.createMap( { target: polarMapContainer.value, - ...coreStore.configuration, - layerConf: coreStore.serviceRegister, + ...mainStore.configuration, + layerConf: mainStore.serviceRegister, }, '2D', { @@ -80,8 +80,6 @@ function createMap() { }) updateListeners() - - coreStore.setMap(map) } // NOTE: Updates can happen if a user resizes the window or the fullscreen plugin is used. @@ -112,22 +110,22 @@ function wheelEffect(event: WheelEvent) { } onMounted(async () => { - if (typeof coreStore.serviceRegister === 'string') { - coreStore.serviceRegister = await new Promise[]>( + if (typeof mainStore.serviceRegister === 'string') { + mainStore.serviceRegister = await new Promise[]>( (resolve) => - rawLayerList.initializeLayerList(coreStore.serviceRegister, resolve) + rawLayerList.initializeLayerList(mainStore.serviceRegister, resolve) ) } createMap() - if (coreStore.configuration.checkServiceAvailability) { - checkServiceAvailability(coreStore.configuration, coreStore.serviceRegister) + if (mainStore.configuration.checkServiceAvailability) { + checkServiceAvailability(mainStore.configuration, mainStore.serviceRegister) } - if (coreStore.configuration.markers) { - useMarkerStore().setupMarkers(coreStore.configuration.markers) + if (map && mainStore.configuration.markers) { + setupMarkers(map) } - if (map && Array.isArray(coreStore.serviceRegister)) { - await setupStyling(map, coreStore.configuration, coreStore.serviceRegister) + if (map && Array.isArray(mainStore.serviceRegister)) { + await setupStyling(map, mainStore.configuration, mainStore.serviceRegister) } }) @@ -135,7 +133,7 @@ function updateListeners() { if ( !hasWindowSize.value && polarMapContainer.value && - coreStore.hasSmallDisplay + mainStore.hasSmallDisplay ) { new Hammer(polarMapContainer.value).on('pan', (e) => { if ( diff --git a/src/core/stores/main.ts b/src/core/stores/main.ts index 941e0ee8c..273fc4978 100644 --- a/src/core/stores/main.ts +++ b/src/core/stores/main.ts @@ -1,4 +1,4 @@ -import type { Feature, Map } from 'ol' +import type { Feature } from 'ol' import type { Coordinate } from 'ol/coordinate' import type { Point } from 'ol/geom' import { defineStore } from 'pinia' @@ -7,10 +7,6 @@ import type { MapConfiguration, PluginContainer } from '../types' import { SMALL_DISPLAY_HEIGHT, SMALL_DISPLAY_WIDTH } from '../utils/constants' import { addInterceptor } from '../utils/addInterceptor' -// TODO(oeninghe-dataport): Remove this from store -// Currently, this is still needed for the marker store -let map: Map - export const useMainStore = defineStore('main', () => { const center = ref([0, 0]) const clientHeight = ref(0) @@ -65,13 +61,6 @@ export const useMainStore = defineStore('main', () => { window.innerWidth <= SMALL_DISPLAY_WIDTH } - function getMap() { - return map - } - function setMap(_map: Map) { - map = _map - } - return { // State configuration, @@ -92,10 +81,8 @@ export const useMainStore = defineStore('main', () => { hasSmallWidth, hasWindowSize, deviceIsHorizontal, - getMap, // Actions centerOnFeature, updateHasSmallDisplay, - setMap, } }) diff --git a/src/core/stores/marker.ts b/src/core/stores/marker.ts index 2e4d7e0ee..b0fbec93e 100644 --- a/src/core/stores/marker.ts +++ b/src/core/stores/marker.ts @@ -1,389 +1,36 @@ -import { toMerged } from 'es-toolkit' -import { Feature, MapBrowserEvent } from 'ol' -import { createEmpty, extend } from 'ol/extent' +import { Feature } from 'ol' import { Point } from 'ol/geom' -import type BaseLayer from 'ol/layer/Base' -import VectorLayer from 'ol/layer/Vector' -import RenderFeature from 'ol/render/Feature' -import Cluster from 'ol/source/Cluster' -import VectorSource from 'ol/source/Vector' import { defineStore } from 'pinia' -import { computed, ref, watch } from 'vue' -import type { - CallOnMapSelect, - MarkerConfiguration, - MarkerLayer, - MarkerStyle, -} from '../types' -import { getMarkerStyle } from '../utils/markers' +import { computed, ref } from 'vue' +import type { CallOnMapSelect } from '../types' import { useMainStore } from './main' -import { isVisible } from '@/lib/invisibleStyle' -import getCluster from '@/lib/getCluster' export const useMarkerStore = defineStore('marker', () => { - // these have been measured to fit once and influence marker size - const imgSize: [number, number] = [26, 36] - const imgSizeMulti: [number, number] = [40, 36] + const mainStore = useMainStore() + const configuration = computed(() => mainStore.configuration.markers) - const defaultStroke = '#FFFFFF' - const defaultStrokeWidth = '2' - - const defaultStyle: MarkerStyle = { - clusterSize: imgSizeMulti, - fill: '#005CA9', - size: imgSize, - stroke: defaultStroke, - strokeWidth: defaultStrokeWidth, - } - const hoverStyle: MarkerStyle = { - clusterSize: imgSizeMulti, - fill: '#7B1045', - size: imgSize, - stroke: defaultStroke, - strokeWidth: defaultStrokeWidth, - } - const selectionStyle: MarkerStyle = { - clusterSize: imgSizeMulti, - fill: '#679100', - size: imgSize, - stroke: defaultStroke, - strokeWidth: defaultStrokeWidth, - } - const unselectableStyle: MarkerStyle = { - clusterSize: imgSizeMulti, - fill: '#333333', - size: imgSize, - stroke: defaultStroke, - strokeWidth: defaultStrokeWidth, - } - - let layers: MarkerLayer[] = [] - let callOnMapSelect: CallOnMapSelect | null = null - let clusterClickZoom: MarkerConfiguration['clusterClickZoom'] = false - - let lastZoom = 0 + const callOnMapSelect = computed(() => + typeof configuration.value?.callOnMapSelect === 'function' + ? (configuration.value.callOnMapSelect as CallOnMapSelect) + : null + ) + const clusterClickZoom = computed( + () => (configuration.value?.clusterClickZoom as boolean) || false + ) - // NOTE: This needs to be doubled to be able to compare OpenLayers objects - // and have reactivity to watch for changes. - let hoveredValue: Feature | null = null - let selectedValue: Feature | null = null const hovered = ref(null) const selected = ref(null) - const selectedCoordinates = computed(() => selected.value === null ? null : (selected.value.getGeometry() as Point).getCoordinates() ) - // As this function is only internally used, it is expected that a layer is found. - function getLayerConfiguration(id: string) { - return layers.find((layer) => layer.id === id) as MarkerLayer - } - - function layerFilter(layer: BaseLayer) { - return layers.some(({ id }) => id === (layer.get('id') as string)) - } - - function findLayer(layerId: string) { - return useMainStore() - .getMap() - .getLayers() - .getArray() - .find((layer) => layer.get('id') === layerId) as VectorLayer | undefined - } - - function resolveClusterClick(feature: Feature) { - const features = feature.get('features') as Feature[] - - const extent = createEmpty() - features.forEach((feature) => - extend(extent, feature.getGeometry()?.getExtent() || []) - ) - - useMainStore() - .getMap() - .getView() - .fit(extent, { - duration: 400, - padding: [80, 30, 80, 30], - }) - } - - function updateSelection(feature: Feature | null, centerOnFeature = false) { - const coreStore = useMainStore() - - selectedValue?.setStyle(undefined) - selected.value?.setStyle(undefined) - selectedValue = null - selected.value = null - - if (feature === null) { - return - } - - const layerId = feature.get('_polarLayerId') as string - const selectedCluster = - // @ts-expect-error | Found layers always have a source and getDistance is defined on cluster sources. - typeof findLayer(layerId)?.getSource().getDistance === 'function' - ? getCluster(coreStore.getMap(), feature, '_polarLayerId') - : feature - - selectedCluster.setStyle( - getMarkerStyle( - getLayerConfiguration(feature.get('_polarLayerId') as string) - .selectionStyle, - selectedCluster.get('features')?.length > 1 - ) - ) - - selectedValue = selectedCluster - selected.value = selectedCluster - if (centerOnFeature) { - coreStore.centerOnFeature(selectedValue) - } - } - - function setLayerId(feature: Feature) { - if (feature.get('_polarLayerId')) { - return - } - - const layerId = useMainStore() - .getMap() - .getLayers() - .getArray() - .find((layer) => { - if (layer instanceof VectorLayer) { - let step: VectorLayer | VectorSource | Cluster = layer - while (step instanceof VectorLayer || step instanceof Cluster) { - // @ts-expect-error | Clusters in masterportalapi always have a source. - step = step.getSource() - // @ts-expect-error | It's not a vector layer anymore. - if (step.hasFeature(feature)) { - return true - } - } - return Boolean(step.hasFeature(feature)) - } - return false - }) - ?.get('id') as string | undefined - if (layerId) { - feature.set('_polarLayerId', layerId, true) - } - } - - function setupMarkers(configuration: MarkerConfiguration) { - const map = useMainStore().getMap() - - layers = configuration.layers.map((layer) => - toMerged( - { - defaultStyle, - hoverStyle, - selectionStyle, - unselectableStyle, - isSelectable: () => true, - }, - layer - ) - ) - callOnMapSelect = - typeof configuration.callOnMapSelect === 'function' - ? configuration.callOnMapSelect - : callOnMapSelect - clusterClickZoom = - typeof configuration.clusterClickZoom === 'boolean' - ? configuration.clusterClickZoom - : clusterClickZoom - - lastZoom = map.getView().getZoom() as number - - map - .getLayers() - .getArray() - .filter(layerFilter) - .forEach((layer) => { - // only vector layers reach this - const source = (layer as VectorLayer).getSource() - if (source !== null) { - // @ts-expect-error | Undocumented hook. - source.geometryFunction = - // prevents features from jumping due to invisible features "pulling" - (feature: Feature) => - isVisible(feature) ? feature.getGeometry() : null - } - const layerConfiguration = getLayerConfiguration( - layer.get('id') as string - ) - ;(layer as VectorLayer).setStyle((feature) => - getMarkerStyle( - layerConfiguration.isSelectable(feature as Feature) - ? layerConfiguration.defaultStyle - : layerConfiguration.unselectableStyle, - feature.get('features')?.length > 1 - ) - ) - }) - - // // // STORE EVENT HANDLING - - watch(hovered, (feature) => { - if (hoveredValue !== null && hoveredValue !== selectedValue) { - hoveredValue.setStyle(undefined) - hovered.value?.setStyle(undefined) - hoveredValue = null - hovered.value = null - } - if (feature !== null && feature !== selectedValue) { - hoveredValue = feature as Feature - hovered.value = feature - const isMultiFeature = hoveredValue.get('features')?.length > 1 - const style = getMarkerStyle( - getLayerConfiguration(feature.get('_polarLayerId') as string) - .hoverStyle, - isMultiFeature - ) - hoveredValue.setStyle(style) - hovered.value.setStyle(style) - } - }) - - map.on('moveend', mapMoveEnd) - map.on('pointermove', mapPointerMove) - map.on('click', mapClick) - /* - * click leads to singlelick; if an element is selected, - * to not let other plugins pick it up, something was already done with it - */ - map.on('singleclick', mapSingleClick) - } - - // // // MAP EVENT HANDLING - - let lastClickEvent: MapBrowserEvent | null = null - - function mapMoveEnd() { - const zoom = useMainStore().getMap().getView().getZoom() as number - if (zoom !== lastZoom) { - lastZoom = zoom - if (selectedValue) { - const baseFeature = (selectedValue.get('features')?.[0] || - selectedValue) as Feature - setLayerId(baseFeature) - updateSelection(baseFeature) - } - } - } - - function mapPointerMove(event: MapBrowserEvent) { - const feature = useMainStore().getMap().getFeaturesAtPixel(event.pixel, { - layerFilter, - })[0] - - if (feature === selectedValue || feature instanceof RenderFeature) { - return - } - if (hoveredValue !== null && hoveredValue !== selectedValue) { - hoveredValue.setStyle(undefined) - hovered.value?.setStyle(undefined) - hoveredValue = null - hovered.value = null - } - // NOTE: Not all pixels include features. - // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition - if (!feature) { - return - } - setLayerId(feature) - const layerConfiguration = getLayerConfiguration( - feature.get('_polarLayerId') as string - ) - if (!layerConfiguration.isSelectable(feature)) { - return - } - const isMultiFeature = feature.get('features')?.length > 1 - feature.setStyle( - getMarkerStyle(layerConfiguration.hoverStyle, isMultiFeature) - ) - hoveredValue = feature - hovered.value = feature - } - - function mapClick(event: MapBrowserEvent) { - const coreStore = useMainStore() - const map = coreStore.getMap() - if (selectedValue !== null) { - updateSelection(null) - } - const feature = map.getFeaturesAtPixel(event.pixel, { layerFilter })[0] - - if ( - // NOTE: Not all pixels include features. - // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition - !feature || - feature instanceof RenderFeature - ) { - return - } - setLayerId(feature) - const layerConfiguration = getLayerConfiguration( - feature.get('_polarLayerId') as string - ) - if (!layerConfiguration.isSelectable(feature)) { - return - } - - const isMultiFeature = feature.get('features')?.length > 1 - lastClickEvent = event - event.stopPropagation() - - const isMaxZoom = map.getView().getZoom() !== map.getView().getMaxZoom() - if (clusterClickZoom && isMultiFeature && isMaxZoom) { - resolveClusterClick(feature) - return - } - - hoveredValue?.setStyle(undefined) - hovered.value?.setStyle(undefined) - hoveredValue = null - hovered.value = null - updateSelection(feature, true) - - if (callOnMapSelect) { - const { action, payload, pluginName } = callOnMapSelect - if (!pluginName) { - coreStore[action](payload) - return - } - - const plugin = coreStore.plugins.find(({ id }) => id === pluginName) - if (!plugin) { - console.error( - `Plugin ${pluginName} does not exist or is not configured. Action ${action} could not be called.` - ) - return - } - const pluginStore = plugin.storeModule?.() - if (!pluginStore) { - console.error( - `Plugin ${pluginName} does not have a store module. Action ${action} could not be called.` - ) - return - } - pluginStore[action](payload) - } - } - - function mapSingleClick(event: MapBrowserEvent) { - if (event.originalEvent === lastClickEvent?.originalEvent) { - event.stopPropagation() - } - } - return { - setupMarkers, + configuration, + callOnMapSelect, + clusterClickZoom, + hovered, selected, selectedCoordinates, diff --git a/src/core/utils/map/setupMarkers.ts b/src/core/utils/map/setupMarkers.ts new file mode 100644 index 000000000..3df5c2654 --- /dev/null +++ b/src/core/utils/map/setupMarkers.ts @@ -0,0 +1,353 @@ +import { toMerged } from 'es-toolkit' +import { Feature, Map, MapBrowserEvent, MapEvent } from 'ol' +import { createEmpty, extend } from 'ol/extent' +import type BaseLayer from 'ol/layer/Base' +import VectorLayer from 'ol/layer/Vector' +import RenderFeature from 'ol/render/Feature' +import Cluster from 'ol/source/Cluster' +import VectorSource from 'ol/source/Vector' +import { watch, markRaw, toRaw } from 'vue' +import type { MarkerLayer, MarkerStyle } from '../../types' +import { getMarkerStyle } from '../../utils/markers' +import { useMainStore } from '../../stores/main' +import { isVisible } from '@/lib/invisibleStyle' +import getCluster from '@/lib/getCluster' +import { useMarkerStore } from '@/core/stores/marker' + +// these have been measured to fit once and influence marker size +const imgSize: [number, number] = [26, 36] +const imgSizeMulti: [number, number] = [40, 36] + +const defaultStroke = '#FFFFFF' +const defaultStrokeWidth = '2' + +const defaultStyle: MarkerStyle = { + clusterSize: imgSizeMulti, + fill: '#005CA9', + size: imgSize, + stroke: defaultStroke, + strokeWidth: defaultStrokeWidth, +} +const hoverStyle: MarkerStyle = { + clusterSize: imgSizeMulti, + fill: '#7B1045', + size: imgSize, + stroke: defaultStroke, + strokeWidth: defaultStrokeWidth, +} +const selectionStyle: MarkerStyle = { + clusterSize: imgSizeMulti, + fill: '#679100', + size: imgSize, + stroke: defaultStroke, + strokeWidth: defaultStrokeWidth, +} +const unselectableStyle: MarkerStyle = { + clusterSize: imgSizeMulti, + fill: '#333333', + size: imgSize, + stroke: defaultStroke, + strokeWidth: defaultStrokeWidth, +} + +let layers: MarkerLayer[] = [] + +let lastZoom = 0 + +// As this function is only internally used, it is expected that a layer is found. +function getLayerConfiguration(id: string) { + return layers.find((layer) => layer.id === id) as MarkerLayer +} + +function layerFilter(layer: BaseLayer) { + return layers.some(({ id }) => id === (layer.get('id') as string)) +} + +function findLayer(map: Map, layerId: string) { + return map + .getLayers() + .getArray() + .find((layer) => layer.get('id') === layerId) as VectorLayer | undefined +} + +function resolveClusterClick(map: Map, feature: Feature) { + const features = feature.get('features') as Feature[] + + const extent = createEmpty() + features.forEach((feature) => + extend(extent, feature.getGeometry()?.getExtent() || []) + ) + + map.getView().fit(extent, { + duration: 400, + padding: [80, 30, 80, 30], + }) +} + +function updateSelection( + map: Map, + feature: Feature | null, + centerOnFeature = false +) { + const store = useMarkerStore() + + store.selected?.setStyle(undefined) + store.selected = null + + if (feature === null) { + return + } + + const layerId = feature.get('_polarLayerId') as string + const selectedCluster = + // @ts-expect-error | Found layers always have a source and getDistance is defined on cluster sources. + typeof findLayer(map, layerId)?.getSource().getDistance === 'function' + ? getCluster(map, feature, '_polarLayerId') + : feature + + selectedCluster.setStyle( + getMarkerStyle( + getLayerConfiguration(feature.get('_polarLayerId') as string) + .selectionStyle, + selectedCluster.get('features')?.length > 1 + ) + ) + + store.selected = markRaw(selectedCluster) + if (centerOnFeature) { + const mainStore = useMainStore() + mainStore.centerOnFeature(store.selected as Feature) + } +} + +function setLayerId(map: Map, feature: Feature) { + if (feature.get('_polarLayerId')) { + return + } + + const layerId = map + .getLayers() + .getArray() + .find((layer) => { + if (layer instanceof VectorLayer) { + let step: VectorLayer | VectorSource | Cluster = layer + while (step instanceof VectorLayer || step instanceof Cluster) { + // @ts-expect-error | Clusters in masterportalapi always have a source. + step = step.getSource() + // @ts-expect-error | It's not a vector layer anymore. + if (step.hasFeature(feature)) { + return true + } + } + return Boolean(step.hasFeature(feature)) + } + return false + }) + ?.get('id') as string | undefined + if (layerId) { + feature.set('_polarLayerId', layerId, true) + } +} + +export function setupMarkers(map: Map) { + const store = useMarkerStore() + const configuration = store.configuration + if (!configuration) return + + layers = configuration.layers.map((layer) => + toMerged( + { + defaultStyle, + hoverStyle, + selectionStyle, + unselectableStyle, + isSelectable: () => true, + }, + layer + ) + ) + + lastZoom = map.getView().getZoom() as number + + map + .getLayers() + .getArray() + .filter(layerFilter) + .forEach((layer) => { + // only vector layers reach this + const source = (layer as VectorLayer).getSource() + if (source !== null) { + // @ts-expect-error | Undocumented hook. + source.geometryFunction = + // prevents features from jumping due to invisible features "pulling" + (feature: Feature) => + isVisible(feature) ? feature.getGeometry() : null + } + const layerConfiguration = getLayerConfiguration( + layer.get('id') as string + ) + ;(layer as VectorLayer).setStyle((feature) => + getMarkerStyle( + layerConfiguration.isSelectable(feature as Feature) + ? layerConfiguration.defaultStyle + : layerConfiguration.unselectableStyle, + feature.get('features')?.length > 1 + ) + ) + }) + + // // // STORE EVENT HANDLING + + watch( + () => store.hovered, + (feature) => { + if (feature !== null && feature !== toRaw(store.selected)) { + store.hovered?.setStyle(undefined) + store.hovered = null + } + if (feature !== null && feature !== toRaw(store.selected)) { + store.hovered = markRaw(feature) + const isMultiFeature = store.hovered.get('features')?.length > 1 + const style = getMarkerStyle( + getLayerConfiguration(feature.get('_polarLayerId') as string) + .hoverStyle, + isMultiFeature + ) + store.hovered.setStyle(style) + } + } + ) + + map.on('moveend', mapMoveEnd) + map.on('pointermove', mapPointerMove) + map.on('click', mapClick) + /* + * click leads to singlelick; if an element is selected, + * to not let other plugins pick it up, something was already done with it + */ + map.on('singleclick', mapSingleClick) +} + +// // // MAP EVENT HANDLING + +let lastClickEvent: MapBrowserEvent | null = null + +function mapMoveEnd({ map }: MapEvent) { + const store = useMarkerStore() + const zoom = map.getView().getZoom() as number + if (zoom !== lastZoom) { + lastZoom = zoom + if (store.selected) { + const baseFeature = (store.selected.get('features')?.[0] || + store.selected) as Feature + setLayerId(map, baseFeature) + updateSelection(map, baseFeature) + } + } +} + +function mapPointerMove({ map, pixel }: MapBrowserEvent) { + const store = useMarkerStore() + const feature = map.getFeaturesAtPixel(pixel, { + layerFilter, + })[0] + + if (feature === toRaw(store.selected) || feature instanceof RenderFeature) { + return + } + if ( + toRaw(store.hovered) !== null && + toRaw(store.hovered) !== toRaw(store.selected) + ) { + store.hovered?.setStyle(undefined) + store.hovered = null + } + + // NOTE: Not all pixels include features. + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + if (!feature) { + return + } + setLayerId(map, feature) + const layerConfiguration = getLayerConfiguration( + feature.get('_polarLayerId') as string + ) + if (!layerConfiguration.isSelectable(feature)) { + return + } + const isMultiFeature = feature.get('features')?.length > 1 + feature.setStyle( + getMarkerStyle(layerConfiguration.hoverStyle, isMultiFeature) + ) + store.hovered = markRaw(feature) +} + +function mapClick(event: MapBrowserEvent) { + const store = useMarkerStore() + const map = event.map + if (store.selected !== null) { + updateSelection(map, null) + } + const feature = map.getFeaturesAtPixel(event.pixel, { layerFilter })[0] + + if ( + // NOTE: Not all pixels include features. + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + !feature || + feature instanceof RenderFeature + ) { + return + } + setLayerId(map, feature) + const layerConfiguration = getLayerConfiguration( + feature.get('_polarLayerId') as string + ) + if (!layerConfiguration.isSelectable(feature)) { + return + } + + const isMultiFeature = feature.get('features')?.length > 1 + lastClickEvent = event + event.stopPropagation() + + const isMaxZoom = map.getView().getZoom() !== map.getView().getMaxZoom() + if (store.clusterClickZoom && isMultiFeature && isMaxZoom) { + resolveClusterClick(map, feature) + return + } + + store.hovered?.setStyle(undefined) + store.hovered = null + updateSelection(map, feature, true) + + if (store.callOnMapSelect) { + const mainStore = useMainStore() + const { action, payload, pluginName } = store.callOnMapSelect + if (!pluginName) { + mainStore[action](payload) + return + } + + const plugin = mainStore.plugins.find(({ id }) => id === pluginName) + if (!plugin) { + console.error( + `Plugin ${pluginName} does not exist or is not configured. Action ${action} could not be called.` + ) + return + } + const pluginStore = plugin.storeModule?.() + if (!pluginStore) { + console.error( + `Plugin ${pluginName} does not have a store module. Action ${action} could not be called.` + ) + return + } + pluginStore[action](payload) + } +} + +function mapSingleClick(event: MapBrowserEvent) { + if (event.originalEvent === lastClickEvent?.originalEvent) { + event.stopPropagation() + } +} From 21c7ebbf05f569af9089ba946a32c95d27f38796 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Mon, 18 Aug 2025 15:31:18 +0200 Subject: [PATCH 234/697] core(refactor): Move window listener to main store --- examples/snowbox/index.js | 2 +- src/core/components/PolarContainer.ce.vue | 42 +++++++++++------------ src/core/stores/main.ts | 29 +++++++++++----- 3 files changed, 41 insertions(+), 32 deletions(-) diff --git a/examples/snowbox/index.js b/examples/snowbox/index.js index 74d7da7a3..2dcf60e8f 100644 --- a/examples/snowbox/index.js +++ b/examples/snowbox/index.js @@ -1,7 +1,7 @@ import { changeLanguage } from 'i18next' +import styleJsonUrl from './style.json?url' import pluginFullscreen from '@polar/polar/plugins/fullscreen' import { addPlugin, createMap, removePlugin, subscribe } from '@polar/polar' -import styleJsonUrl from './style.json?url' const basemapId = '23420' const basemapGreyId = '23421' diff --git a/src/core/components/PolarContainer.ce.vue b/src/core/components/PolarContainer.ce.vue index 4ce773ece..870fb5a05 100644 --- a/src/core/components/PolarContainer.ce.vue +++ b/src/core/components/PolarContainer.ce.vue @@ -23,35 +23,32 @@ defineOptions({ inheritAttrs: false, }) -const coreStore = useMainStore() - -const { language } = storeToRefs(coreStore) +const mainStore = useMainStore() +const { language } = storeToRefs(mainStore) const polarWrapper = useTemplateRef('polar-wrapper') let resizeObserver: ResizeObserver | null = null function updateClientDimensions() { - coreStore.clientHeight = (polarWrapper.value as Element).clientHeight - coreStore.clientWidth = (polarWrapper.value as Element).clientWidth -} - -function setup() { - resizeObserver = new ResizeObserver(updateClientDimensions) - resizeObserver.observe(polarWrapper.value as Element) - updateClientDimensions() - addEventListener('resize', coreStore.updateHasSmallDisplay) - coreStore.updateHasSmallDisplay() + mainStore.clientHeight = (polarWrapper.value as Element).clientHeight + mainStore.clientWidth = (polarWrapper.value as Element).clientWidth } onMounted(() => { - coreStore.lightElement = useHost() - coreStore.shadowRoot = useShadowRoot() + mainStore.lightElement = useHost() + mainStore.shadowRoot = useShadowRoot() + loadKern( - coreStore.shadowRoot as ShadowRoot, - coreStore.configuration.theme?.kern || {} + mainStore.shadowRoot as ShadowRoot, + mainStore.configuration.theme?.kern || {} ) - setup() + + mainStore.setup() + + resizeObserver = new ResizeObserver(updateClientDimensions) + resizeObserver.observe(polarWrapper.value as Element) + updateClientDimensions() }) onBeforeUnmount(() => { @@ -59,15 +56,16 @@ onBeforeUnmount(() => { resizeObserver.unobserve(polarWrapper.value as Element) resizeObserver = null } - removeEventListener('resize', coreStore.updateHasSmallDisplay) + + mainStore.teardown() }) diff --git a/src/core/stores/main.ts b/src/core/stores/main.ts index 273fc4978..0b388261d 100644 --- a/src/core/stores/main.ts +++ b/src/core/stores/main.ts @@ -8,24 +8,21 @@ import { SMALL_DISPLAY_HEIGHT, SMALL_DISPLAY_WIDTH } from '../utils/constants' import { addInterceptor } from '../utils/addInterceptor' export const useMainStore = defineStore('main', () => { - const center = ref([0, 0]) - const clientHeight = ref(0) - const clientWidth = ref(0) const configuration = ref({ layers: [], startCenter: [0, 0], }) - const hasSmallDisplay = ref(false) const language = ref('') const lightElement = ref(null) const mapHasDimensions = ref(false) - const oidcToken = ref('') const plugins = ref([]) const serviceRegister = ref[]>('') const shadowRoot = ref(null) const zoom = ref(0) // TODO(dopenguin): Both will possibly be updated with different breakpoints -> Breakpoints are e.g. not valid on newer devices + const clientHeight = ref(0) + const clientWidth = ref(0) const hasSmallHeight = computed( () => clientHeight.value <= SMALL_DISPLAY_HEIGHT ) @@ -39,6 +36,14 @@ export const useMainStore = defineStore('main', () => { () => hasSmallHeight.value && hasWindowSize.value ) + const hasSmallDisplay = ref(false) + function updateHasSmallDisplay() { + hasSmallDisplay.value = + window.innerHeight <= SMALL_DISPLAY_HEIGHT || + window.innerWidth <= SMALL_DISPLAY_WIDTH + } + + const oidcToken = ref('') watch( () => configuration.value.secureServiceUrlRegex, (urlRegex) => { @@ -51,14 +56,18 @@ export const useMainStore = defineStore('main', () => { } ) + const center = ref([0, 0]) function centerOnFeature(feature: Feature) { center.value = (feature.getGeometry() as Point).getCoordinates() } - function updateHasSmallDisplay() { - hasSmallDisplay.value = - window.innerHeight <= SMALL_DISPLAY_HEIGHT || - window.innerWidth <= SMALL_DISPLAY_WIDTH + function setup() { + addEventListener('resize', updateHasSmallDisplay) + updateHasSmallDisplay() + } + + function teardown() { + removeEventListener('resize', updateHasSmallDisplay) } return { @@ -84,5 +93,7 @@ export const useMainStore = defineStore('main', () => { // Actions centerOnFeature, updateHasSmallDisplay, + setup, + teardown, } }) From 64f2ef1c6aee07212bc6d76f55e16c13befd2c9e Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Tue, 19 Aug 2025 16:39:26 +0200 Subject: [PATCH 235/697] deps: Bump dependencies --- package-lock.json | 2203 +++++++++++++--------------- package.json | 6 +- src/core/utils/map/setupMarkers.ts | 4 +- 3 files changed, 1008 insertions(+), 1205 deletions(-) diff --git a/package-lock.json b/package-lock.json index 985571b27..de92f7fc7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,13 +14,13 @@ "@dataport/eslint-config-geodev": "^0.3.3", "@kern-ux/native": "^2.3.0", "@masterportal/masterportalapi": "2.48.0", - "@material-symbols/svg-400": "^0.33.0", + "@material-symbols/svg-400": "^0.34.1", "@pinia/testing": "^1.0.2", "@repositoryname/noop": "^1.0.6", "@types/node": "^24.2.0", "@vitejs/plugin-vue": "^6.0.0", "@vue/test-utils": "^2.4.6", - "@vue/tsconfig": "^0.7.0", + "@vue/tsconfig": "^0.8.1", "buffer": "^6.0.3", "cesium": "^1.131.0", "concurrently": "^9.2.0", @@ -45,7 +45,7 @@ "tsarch": "^5.4.1", "typedoc": "^0.28.8", "typedoc-plugin-vue": "^1.5.0", - "typescript": "~5.8.3", + "typescript": "~5.9.2", "util": "^0.12.5", "vite": "^7.0.6", "vite-plugin-checker": "^0.10.2", @@ -115,22 +115,22 @@ } }, "node_modules/@babel/core": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz", - "integrity": "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.3.tgz", + "integrity": "sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.0", + "@babel/generator": "^7.28.3", "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-module-transforms": "^7.27.3", - "@babel/helpers": "^7.27.6", - "@babel/parser": "^7.28.0", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.3", + "@babel/parser": "^7.28.3", "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.0", - "@babel/types": "^7.28.0", + "@babel/traverse": "^7.28.3", + "@babel/types": "^7.28.2", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -156,14 +156,14 @@ } }, "node_modules/@babel/generator": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz", - "integrity": "sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", + "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.28.0", - "@babel/types": "^7.28.0", + "@babel/parser": "^7.28.3", + "@babel/types": "^7.28.2", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" @@ -222,26 +222,19 @@ "semver": "bin/semver.js" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true, - "license": "ISC" - }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.1.tgz", - "integrity": "sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.3.tgz", + "integrity": "sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-member-expression-to-functions": "^7.27.1", "@babel/helper-optimise-call-expression": "^7.27.1", "@babel/helper-replace-supers": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", - "@babel/traverse": "^7.27.1", + "@babel/traverse": "^7.28.3", "semver": "^6.3.1" }, "engines": { @@ -300,15 +293,15 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", - "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.27.3" + "@babel/traverse": "^7.28.3" }, "engines": { "node": ">=6.9.0" @@ -403,9 +396,9 @@ } }, "node_modules/@babel/helpers": { - "version": "7.28.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.2.tgz", - "integrity": "sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.3.tgz", + "integrity": "sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==", "dev": true, "license": "MIT", "dependencies": { @@ -417,13 +410,13 @@ } }, "node_modules/@babel/parser": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz", - "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz", + "integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.28.0" + "@babel/types": "^7.28.2" }, "bin": { "parser": "bin/babel-parser.js" @@ -548,9 +541,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.28.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.2.tgz", - "integrity": "sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.3.tgz", + "integrity": "sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA==", "dev": true, "license": "MIT", "engines": { @@ -573,18 +566,18 @@ } }, "node_modules/@babel/traverse": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz", - "integrity": "sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.3.tgz", + "integrity": "sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==", "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.0", + "@babel/generator": "^7.28.3", "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.0", + "@babel/parser": "^7.28.3", "@babel/template": "^7.27.2", - "@babel/types": "^7.28.0", + "@babel/types": "^7.28.2", "debug": "^4.3.1" }, "engines": { @@ -644,13 +637,13 @@ "license": "Apache-2.0" }, "node_modules/@cesium/widgets": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@cesium/widgets/-/widgets-12.3.0.tgz", - "integrity": "sha512-5Aa54lCrdywogY1ypOwRmRrb72LVrPvrOzOrcYeQ50DDZSs5hCxVXWecYYsq3qoeK0buA9wP/5TBWE7RlsV7OA==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@cesium/widgets/-/widgets-13.0.0.tgz", + "integrity": "sha512-Gc/ffnu4anzn6wDjLviYYOydb0OrGWY6ie5pKV+cNWbL48tfLRUZL6D3MJVS+qhSB3NhyA050v82NvPzYbqnuQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@cesium/engine": "^18.3.0", + "@cesium/engine": "^19.0.0", "nosleep.js": "^0.12.0" }, "engines": { @@ -658,16 +651,16 @@ } }, "node_modules/@cesium/widgets/node_modules/@cesium/engine": { - "version": "18.3.0", - "resolved": "https://registry.npmjs.org/@cesium/engine/-/engine-18.3.0.tgz", - "integrity": "sha512-ILNA1a+RX2gNsQGyF2zq27Ucaj5UMj19paYoJbKxX/U0QtxLuFUhJ2yg6wr2eBtC3X3kd475o7kAx0LpfCZxpg==", + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/@cesium/engine/-/engine-19.0.0.tgz", + "integrity": "sha512-ymBxCUEV2HfQLmAp3qou0AlKkChIaMNkKQa/bCLLScfoCj0EBVtQH6Zgk8hP8MWreuR+vzmGOjdPsWLMkKgnrQ==", "dev": true, "license": "Apache-2.0", "dependencies": { "@cesium/wasm-splats": "^0.1.0-alpha.2", - "@spz-loader/core": "0.1.0", + "@spz-loader/core": "0.3.0", "@tweenjs/tween.js": "^25.0.0", - "@zip.js/zip.js": "^2.7.34", + "@zip.js/zip.js": "^2.7.70", "autolinker": "^4.0.0", "bitmap-sdf": "^1.0.3", "dompurify": "^3.0.2", @@ -887,9 +880,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.8.tgz", - "integrity": "sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.9.tgz", + "integrity": "sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==", "cpu": [ "ppc64" ], @@ -904,9 +897,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.8.tgz", - "integrity": "sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.9.tgz", + "integrity": "sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==", "cpu": [ "arm" ], @@ -921,9 +914,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.8.tgz", - "integrity": "sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.9.tgz", + "integrity": "sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==", "cpu": [ "arm64" ], @@ -938,9 +931,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.8.tgz", - "integrity": "sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.9.tgz", + "integrity": "sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==", "cpu": [ "x64" ], @@ -955,9 +948,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.8.tgz", - "integrity": "sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.9.tgz", + "integrity": "sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==", "cpu": [ "arm64" ], @@ -972,9 +965,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.8.tgz", - "integrity": "sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.9.tgz", + "integrity": "sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==", "cpu": [ "x64" ], @@ -989,9 +982,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.8.tgz", - "integrity": "sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.9.tgz", + "integrity": "sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==", "cpu": [ "arm64" ], @@ -1006,9 +999,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.8.tgz", - "integrity": "sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.9.tgz", + "integrity": "sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==", "cpu": [ "x64" ], @@ -1023,9 +1016,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.8.tgz", - "integrity": "sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.9.tgz", + "integrity": "sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==", "cpu": [ "arm" ], @@ -1040,9 +1033,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.8.tgz", - "integrity": "sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.9.tgz", + "integrity": "sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==", "cpu": [ "arm64" ], @@ -1057,9 +1050,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.8.tgz", - "integrity": "sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.9.tgz", + "integrity": "sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==", "cpu": [ "ia32" ], @@ -1074,9 +1067,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.8.tgz", - "integrity": "sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.9.tgz", + "integrity": "sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==", "cpu": [ "loong64" ], @@ -1091,9 +1084,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.8.tgz", - "integrity": "sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.9.tgz", + "integrity": "sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==", "cpu": [ "mips64el" ], @@ -1108,9 +1101,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.8.tgz", - "integrity": "sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.9.tgz", + "integrity": "sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==", "cpu": [ "ppc64" ], @@ -1125,9 +1118,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.8.tgz", - "integrity": "sha512-rAqDYFv3yzMrq7GIcen3XP7TUEG/4LK86LUPMIz6RT8A6pRIDn0sDcvjudVZBiiTcZCY9y2SgYX2lgK3AF+1eg==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.9.tgz", + "integrity": "sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==", "cpu": [ "riscv64" ], @@ -1142,9 +1135,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.8.tgz", - "integrity": "sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.9.tgz", + "integrity": "sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==", "cpu": [ "s390x" ], @@ -1159,9 +1152,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.8.tgz", - "integrity": "sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.9.tgz", + "integrity": "sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==", "cpu": [ "x64" ], @@ -1176,9 +1169,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.8.tgz", - "integrity": "sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.9.tgz", + "integrity": "sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==", "cpu": [ "arm64" ], @@ -1193,9 +1186,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.8.tgz", - "integrity": "sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.9.tgz", + "integrity": "sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==", "cpu": [ "x64" ], @@ -1210,9 +1203,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.8.tgz", - "integrity": "sha512-j8HgrDuSJFAujkivSMSfPQSAa5Fxbvk4rgNAS5i3K+r8s1X0p1uOO2Hl2xNsGFppOeHOLAVgYwDVlmxhq5h+SQ==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.9.tgz", + "integrity": "sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==", "cpu": [ "arm64" ], @@ -1227,9 +1220,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.8.tgz", - "integrity": "sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.9.tgz", + "integrity": "sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==", "cpu": [ "x64" ], @@ -1244,9 +1237,9 @@ } }, "node_modules/@esbuild/openharmony-arm64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.8.tgz", - "integrity": "sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.9.tgz", + "integrity": "sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==", "cpu": [ "arm64" ], @@ -1261,9 +1254,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.8.tgz", - "integrity": "sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.9.tgz", + "integrity": "sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==", "cpu": [ "x64" ], @@ -1278,9 +1271,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.8.tgz", - "integrity": "sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.9.tgz", + "integrity": "sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==", "cpu": [ "arm64" ], @@ -1295,9 +1288,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.8.tgz", - "integrity": "sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.9.tgz", + "integrity": "sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==", "cpu": [ "ia32" ], @@ -1312,9 +1305,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.8.tgz", - "integrity": "sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.9.tgz", + "integrity": "sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==", "cpu": [ "x64" ], @@ -1410,9 +1403,9 @@ } }, "node_modules/@eslint/config-helpers": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.0.tgz", - "integrity": "sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.1.tgz", + "integrity": "sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -1420,9 +1413,9 @@ } }, "node_modules/@eslint/core": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.1.tgz", - "integrity": "sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==", + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.2.tgz", + "integrity": "sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -1494,9 +1487,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.32.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.32.0.tgz", - "integrity": "sha512-BBpRFZK3eX6uMLKz8WxFOBIFFcGFJ/g8XuwjTHCqHROSIsopI+ddn/d5Cfh36+7+e5edVS8dbSHnBNhrLEX0zg==", + "version": "9.33.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.33.0.tgz", + "integrity": "sha512-5K1/mKhWaMfreBGJTwval43JJmkip0RmM+3+IuqupeSKNC/Th2Kc7ucaq5ovTSra/OOKB9c58CGSz3QMVbWt0A==", "dev": true, "license": "MIT", "engines": { @@ -1556,13 +1549,13 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.4.tgz", - "integrity": "sha512-Ul5l+lHEcw3L5+k8POx6r74mxEYKG5kOb6Xpy2gCRW6zweT6TEhAf8vhxGgjhqrd/VO/Dirhsb+1hNpD1ue9hw==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.5.tgz", + "integrity": "sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.15.1", + "@eslint/core": "^0.15.2", "levn": "^0.4.1" }, "engines": { @@ -1570,16 +1563,16 @@ } }, "node_modules/@gerrit0/mini-shiki": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/@gerrit0/mini-shiki/-/mini-shiki-3.9.1.tgz", - "integrity": "sha512-quvtbDhNf528BkMHQQd8xGJMpmA5taDZuex/JDF8ETEjS2iypXzr1hnEUVh+lTUyffFJ0JCxysUsiuUoEGIz/Q==", + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@gerrit0/mini-shiki/-/mini-shiki-3.9.2.tgz", + "integrity": "sha512-Tvsj+AOO4Z8xLRJK900WkyfxHsZQu+Zm1//oT1w443PO6RiYMoq/4NGOhaNuZoUMYsjKIAPVQ6eOFMddj6yphQ==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/engine-oniguruma": "^3.9.1", - "@shikijs/langs": "^3.9.1", - "@shikijs/themes": "^3.9.1", - "@shikijs/types": "^3.9.1", + "@shikijs/engine-oniguruma": "^3.9.2", + "@shikijs/langs": "^3.9.2", + "@shikijs/themes": "^3.9.2", + "@shikijs/types": "^3.9.2", "@shikijs/vscode-textmate": "^10.0.2" } }, @@ -1711,95 +1704,10 @@ "node": ">=12" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.12", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz", - "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==", + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "dev": true, "license": "MIT", "dependencies": { @@ -1818,16 +1726,16 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz", - "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==", + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.29", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz", - "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==", + "version": "0.3.30", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.30.tgz", + "integrity": "sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==", "dev": true, "license": "MIT", "dependencies": { @@ -1912,9 +1820,9 @@ } }, "node_modules/@material-symbols/svg-400": { - "version": "0.33.0", - "resolved": "https://registry.npmjs.org/@material-symbols/svg-400/-/svg-400-0.33.0.tgz", - "integrity": "sha512-aYwXGrWArKm7p3Jn6Qhf3BTjc62+dvQFj5eMNr+zzjk4yDCpQtR+3pF4sjnsTQm58PqFF1mQwgMFO36noEAaZQ==", + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@material-symbols/svg-400/-/svg-400-0.34.1.tgz", + "integrity": "sha512-bg7NonzPzTpFpq1yBW0T6/mFKxlR2oRoNwQgYfDdO1EGxV8HhX3+nVL9mFoYWOkFcpvEyI5s83frBS7shin4ew==", "dev": true, "license": "Apache-2.0" }, @@ -2014,6 +1922,13 @@ "node": ">=14.17" } }, + "node_modules/@microsoft/api-extractor/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, "node_modules/@microsoft/tsdoc": { "version": "0.15.1", "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.15.1.tgz", @@ -2092,364 +2007,40 @@ "dev": true, "license": "MIT", "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nolyfill/is-core-module": { - "version": "1.0.39", - "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", - "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.4.0" - } - }, - "node_modules/@one-ini/wasm": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@one-ini/wasm/-/wasm-0.1.1.tgz", - "integrity": "sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@parcel/watcher": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", - "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "detect-libc": "^1.0.3", - "is-glob": "^4.0.3", - "micromatch": "^4.0.5", - "node-addon-api": "^7.0.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "@parcel/watcher-android-arm64": "2.5.1", - "@parcel/watcher-darwin-arm64": "2.5.1", - "@parcel/watcher-darwin-x64": "2.5.1", - "@parcel/watcher-freebsd-x64": "2.5.1", - "@parcel/watcher-linux-arm-glibc": "2.5.1", - "@parcel/watcher-linux-arm-musl": "2.5.1", - "@parcel/watcher-linux-arm64-glibc": "2.5.1", - "@parcel/watcher-linux-arm64-musl": "2.5.1", - "@parcel/watcher-linux-x64-glibc": "2.5.1", - "@parcel/watcher-linux-x64-musl": "2.5.1", - "@parcel/watcher-win32-arm64": "2.5.1", - "@parcel/watcher-win32-ia32": "2.5.1", - "@parcel/watcher-win32-x64": "2.5.1" - } - }, - "node_modules/@parcel/watcher-android-arm64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz", - "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "peer": true, - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-darwin-arm64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz", - "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-darwin-x64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz", - "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-freebsd-x64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz", - "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "peer": true, - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm-glibc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz", - "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm-musl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz", - "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm64-glibc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz", - "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm64-musl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz", - "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-x64-glibc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz", - "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-x64-musl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz", - "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-arm64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz", - "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "node": ">= 8" } }, - "node_modules/@parcel/watcher-win32-ia32": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz", - "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==", - "cpu": [ - "ia32" - ], + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">= 10.0.0" + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "engines": { + "node": ">= 8" } }, - "node_modules/@parcel/watcher-win32-x64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz", - "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==", - "cpu": [ - "x64" - ], + "node_modules/@nolyfill/is-core-module": { + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", + "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "peer": true, "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "node": ">=12.4.0" } }, + "node_modules/@one-ini/wasm": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@one-ini/wasm/-/wasm-0.1.1.tgz", + "integrity": "sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==", + "dev": true, + "license": "MIT" + }, "node_modules/@petamoriken/float16": { "version": "3.9.2", "resolved": "https://registry.npmjs.org/@petamoriken/float16/-/float16-3.9.2.tgz", @@ -2626,9 +2217,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.46.2.tgz", - "integrity": "sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.46.3.tgz", + "integrity": "sha512-UmTdvXnLlqQNOCJnyksjPs1G4GqXNGW1LrzCe8+8QoaLhhDeTXYBgJ3k6x61WIhlHX2U+VzEJ55TtIjR/HTySA==", "cpu": [ "arm" ], @@ -2640,9 +2231,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.46.2.tgz", - "integrity": "sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.46.3.tgz", + "integrity": "sha512-8NoxqLpXm7VyeI0ocidh335D6OKT0UJ6fHdnIxf3+6oOerZZc+O7r+UhvROji6OspyPm+rrIdb1gTXtVIqn+Sg==", "cpu": [ "arm64" ], @@ -2654,9 +2245,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.46.2.tgz", - "integrity": "sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.46.3.tgz", + "integrity": "sha512-csnNavqZVs1+7/hUKtgjMECsNG2cdB8F7XBHP6FfQjqhjF8rzMzb3SLyy/1BG7YSfQ+bG75Ph7DyedbUqwq1rA==", "cpu": [ "arm64" ], @@ -2668,9 +2259,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.46.2.tgz", - "integrity": "sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.46.3.tgz", + "integrity": "sha512-r2MXNjbuYabSIX5yQqnT8SGSQ26XQc8fmp6UhlYJd95PZJkQD1u82fWP7HqvGUf33IsOC6qsiV+vcuD4SDP6iw==", "cpu": [ "x64" ], @@ -2682,9 +2273,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.46.2.tgz", - "integrity": "sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.46.3.tgz", + "integrity": "sha512-uluObTmgPJDuJh9xqxyr7MV61Imq+0IvVsAlWyvxAaBSNzCcmZlhfYcRhCdMaCsy46ccZa7vtDDripgs9Jkqsw==", "cpu": [ "arm64" ], @@ -2696,9 +2287,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.46.2.tgz", - "integrity": "sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.46.3.tgz", + "integrity": "sha512-AVJXEq9RVHQnejdbFvh1eWEoobohUYN3nqJIPI4mNTMpsyYN01VvcAClxflyk2HIxvLpRcRggpX1m9hkXkpC/A==", "cpu": [ "x64" ], @@ -2710,9 +2301,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.46.2.tgz", - "integrity": "sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.46.3.tgz", + "integrity": "sha512-byyflM+huiwHlKi7VHLAYTKr67X199+V+mt1iRgJenAI594vcmGGddWlu6eHujmcdl6TqSNnvqaXJqZdnEWRGA==", "cpu": [ "arm" ], @@ -2724,9 +2315,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.46.2.tgz", - "integrity": "sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.46.3.tgz", + "integrity": "sha512-aLm3NMIjr4Y9LklrH5cu7yybBqoVCdr4Nvnm8WB7PKCn34fMCGypVNpGK0JQWdPAzR/FnoEoFtlRqZbBBLhVoQ==", "cpu": [ "arm" ], @@ -2738,9 +2329,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.46.2.tgz", - "integrity": "sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.46.3.tgz", + "integrity": "sha512-VtilE6eznJRDIoFOzaagQodUksTEfLIsvXymS+UdJiSXrPW7Ai+WG4uapAc3F7Hgs791TwdGh4xyOzbuzIZrnw==", "cpu": [ "arm64" ], @@ -2752,9 +2343,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.46.2.tgz", - "integrity": "sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.46.3.tgz", + "integrity": "sha512-dG3JuS6+cRAL0GQ925Vppafi0qwZnkHdPeuZIxIPXqkCLP02l7ka+OCyBoDEv8S+nKHxfjvjW4OZ7hTdHkx8/w==", "cpu": [ "arm64" ], @@ -2766,9 +2357,9 @@ ] }, "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.46.2.tgz", - "integrity": "sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.46.3.tgz", + "integrity": "sha512-iU8DxnxEKJptf8Vcx4XvAUdpkZfaz0KWfRrnIRrOndL0SvzEte+MTM7nDH4A2Now4FvTZ01yFAgj6TX/mZl8hQ==", "cpu": [ "loong64" ], @@ -2780,9 +2371,9 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.46.2.tgz", - "integrity": "sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.46.3.tgz", + "integrity": "sha512-VrQZp9tkk0yozJoQvQcqlWiqaPnLM6uY1qPYXvukKePb0fqaiQtOdMJSxNFUZFsGw5oA5vvVokjHrx8a9Qsz2A==", "cpu": [ "ppc64" ], @@ -2794,9 +2385,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.46.2.tgz", - "integrity": "sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.46.3.tgz", + "integrity": "sha512-uf2eucWSUb+M7b0poZ/08LsbcRgaDYL8NCGjUeFMwCWFwOuFcZ8D9ayPl25P3pl+D2FH45EbHdfyUesQ2Lt9wA==", "cpu": [ "riscv64" ], @@ -2808,9 +2399,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.46.2.tgz", - "integrity": "sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.46.3.tgz", + "integrity": "sha512-7tnUcDvN8DHm/9ra+/nF7lLzYHDeODKKKrh6JmZejbh1FnCNZS8zMkZY5J4sEipy2OW1d1Ncc4gNHUd0DLqkSg==", "cpu": [ "riscv64" ], @@ -2822,9 +2413,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.46.2.tgz", - "integrity": "sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.46.3.tgz", + "integrity": "sha512-MUpAOallJim8CsJK+4Lc9tQzlfPbHxWDrGXZm2z6biaadNpvh3a5ewcdat478W+tXDoUiHwErX/dOql7ETcLqg==", "cpu": [ "s390x" ], @@ -2836,9 +2427,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.46.2.tgz", - "integrity": "sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.46.3.tgz", + "integrity": "sha512-F42IgZI4JicE2vM2PWCe0N5mR5vR0gIdORPqhGQ32/u1S1v3kLtbZ0C/mi9FFk7C5T0PgdeyWEPajPjaUpyoKg==", "cpu": [ "x64" ], @@ -2850,9 +2441,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.46.2.tgz", - "integrity": "sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.46.3.tgz", + "integrity": "sha512-oLc+JrwwvbimJUInzx56Q3ujL3Kkhxehg7O1gWAYzm8hImCd5ld1F2Gry5YDjR21MNb5WCKhC9hXgU7rRlyegQ==", "cpu": [ "x64" ], @@ -2864,9 +2455,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.46.2.tgz", - "integrity": "sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.46.3.tgz", + "integrity": "sha512-lOrQ+BVRstruD1fkWg9yjmumhowR0oLAAzavB7yFSaGltY8klttmZtCLvOXCmGE9mLIn8IBV/IFrQOWz5xbFPg==", "cpu": [ "arm64" ], @@ -2878,9 +2469,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.46.2.tgz", - "integrity": "sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.46.3.tgz", + "integrity": "sha512-vvrVKPRS4GduGR7VMH8EylCBqsDcw6U+/0nPDuIjXQRbHJc6xOBj+frx8ksfZAh6+Fptw5wHrN7etlMmQnPQVg==", "cpu": [ "ia32" ], @@ -2892,9 +2483,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.46.2.tgz", - "integrity": "sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.46.3.tgz", + "integrity": "sha512-fi3cPxCnu3ZeM3EwKZPgXbWoGzm2XHgB/WShKI81uj8wG0+laobmqy5wbgEwzstlbLu4MyO8C19FyhhWseYKNQ==", "cpu": [ "x64" ], @@ -2963,9 +2554,9 @@ } }, "node_modules/@rushstack/node-core-library/node_modules/fs-extra": { - "version": "11.3.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", - "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.1.tgz", + "integrity": "sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==", "dev": true, "license": "MIT", "dependencies": { @@ -3013,6 +2604,13 @@ "node": ">=10" } }, + "node_modules/@rushstack/node-core-library/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, "node_modules/@rushstack/rig-package": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.5.3.tgz", @@ -3043,22 +2641,6 @@ } } }, - "node_modules/@rushstack/terminal/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, "node_modules/@rushstack/ts-command-line": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-5.0.2.tgz", @@ -3082,13 +2664,6 @@ "sprintf-js": "~1.0.2" } }, - "node_modules/@rushstack/ts-command-line/node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true, - "license": "BSD-3-Clause" - }, "node_modules/@sec-ant/readable-stream": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", @@ -3097,40 +2672,40 @@ "license": "MIT" }, "node_modules/@shikijs/engine-oniguruma": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.9.2.tgz", - "integrity": "sha512-Vn/w5oyQ6TUgTVDIC/BrpXwIlfK6V6kGWDVVz2eRkF2v13YoENUvaNwxMsQU/t6oCuZKzqp9vqtEtEzKl9VegA==", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.10.0.tgz", + "integrity": "sha512-O7ofyEUm4uDBlfd+2YPc7GHA72Kr3eUw5wSgZzgK6GUniD52106diH9Fo7+7l+lhBiyWntYcvzGK8QMciwf+Xw==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/types": "3.9.2", + "@shikijs/types": "3.10.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "node_modules/@shikijs/langs": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.9.2.tgz", - "integrity": "sha512-X1Q6wRRQXY7HqAuX3I8WjMscjeGjqXCg/Sve7J2GWFORXkSrXud23UECqTBIdCSNKJioFtmUGJQNKtlMMZMn0w==", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.10.0.tgz", + "integrity": "sha512-uE9ojRozrm1PmUw2aM8EbHpT/XdWzSdv/sWRN5MCMdXMW1eOl4bMxWAlY5yhZj0GghYfMbBzMlcDKqrIjOue/Q==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/types": "3.9.2" + "@shikijs/types": "3.10.0" } }, "node_modules/@shikijs/themes": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.9.2.tgz", - "integrity": "sha512-6z5lBPBMRfLyyEsgf6uJDHPa6NAGVzFJqH4EAZ+03+7sedYir2yJBRu2uPZOKmj43GyhVHWHvyduLDAwJQfDjA==", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.10.0.tgz", + "integrity": "sha512-JDnZKjYs4nhBniOmVILfEFZCA9JxxLnxG4PRQQQudn8DREhoWQelw7fhv+3Up8phzkoZWQ9TW2jp9k+6DjJS5A==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/types": "3.9.2" + "@shikijs/types": "3.10.0" } }, "node_modules/@shikijs/types": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.9.2.tgz", - "integrity": "sha512-/M5L0Uc2ljyn2jKvj4Yiah7ow/W+DJSglVafvWAJ/b8AZDeeRAdMu3c2riDzB7N42VD+jSnWxeP9AKtd4TfYVw==", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.10.0.tgz", + "integrity": "sha512-PAeyajDDhdzefMiSZn7ENCwVaACMnO53+p5pSrJpIQOJTSX+4Qn28Y5e7I6v9wkJNyepRFfbZmzmbbnzjxBMEA==", "dev": true, "license": "MIT", "dependencies": { @@ -3159,9 +2734,9 @@ } }, "node_modules/@spz-loader/core": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@spz-loader/core/-/core-0.1.0.tgz", - "integrity": "sha512-atqn/DLy0xNkqRgz3l/5CD12y1M44JdjTmAFQYDKvzf0pIyj+NlJ/PeCRlSJQfXmZ2JndNOCpcGOFVldANf/EA==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@spz-loader/core/-/core-0.3.0.tgz", + "integrity": "sha512-sbStwMHb/MIE29st7rRuMYWqhX1UmLSFzdpyGtUZUXLkFNIuYKblzjQdtiet8bau8sUf21uL1DQ451zuySGmcA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -3303,9 +2878,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "24.2.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.2.0.tgz", - "integrity": "sha512-3xyG3pMCq3oYCNg7/ZP+E1ooTaGB4cG8JWRsqqOYQdbWNY4zbaV0Ennrd7stjiJEFZCaybcIgpTjJWHRfBSIDw==", + "version": "24.3.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.3.0.tgz", + "integrity": "sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow==", "dev": true, "license": "MIT", "dependencies": { @@ -3335,17 +2910,17 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.38.0.tgz", - "integrity": "sha512-CPoznzpuAnIOl4nhj4tRr4gIPj5AfKgkiJmGQDaq+fQnRJTYlcBjbX3wbciGmpoPf8DREufuPRe1tNMZnGdanA==", + "version": "8.40.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.40.0.tgz", + "integrity": "sha512-w/EboPlBwnmOBtRbiOvzjD+wdiZdgFeo17lkltrtn7X37vagKKWJABvyfsJXTlHe6XBzugmYgd4A4nW+k8Mixw==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.38.0", - "@typescript-eslint/type-utils": "8.38.0", - "@typescript-eslint/utils": "8.38.0", - "@typescript-eslint/visitor-keys": "8.38.0", + "@typescript-eslint/scope-manager": "8.40.0", + "@typescript-eslint/type-utils": "8.40.0", + "@typescript-eslint/utils": "8.40.0", + "@typescript-eslint/visitor-keys": "8.40.0", "graphemer": "^1.4.0", "ignore": "^7.0.0", "natural-compare": "^1.4.0", @@ -3359,9 +2934,9 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.38.0", + "@typescript-eslint/parser": "^8.40.0", "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { @@ -3375,16 +2950,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.38.0.tgz", - "integrity": "sha512-Zhy8HCvBUEfBECzIl1PKqF4p11+d0aUJS1GeUiuqK9WmOug8YCmC4h4bjyBvMyAMI9sbRczmrYL5lKg/YMbrcQ==", + "version": "8.40.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.40.0.tgz", + "integrity": "sha512-jCNyAuXx8dr5KJMkecGmZ8KI61KBUhkCob+SD+C+I5+Y1FWI2Y3QmY4/cxMCC5WAsZqoEtEETVhUiUMIGCf6Bw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.38.0", - "@typescript-eslint/types": "8.38.0", - "@typescript-eslint/typescript-estree": "8.38.0", - "@typescript-eslint/visitor-keys": "8.38.0", + "@typescript-eslint/scope-manager": "8.40.0", + "@typescript-eslint/types": "8.40.0", + "@typescript-eslint/typescript-estree": "8.40.0", + "@typescript-eslint/visitor-keys": "8.40.0", "debug": "^4.3.4" }, "engines": { @@ -3396,18 +2971,18 @@ }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.38.0.tgz", - "integrity": "sha512-dbK7Jvqcb8c9QfH01YB6pORpqX1mn5gDZc9n63Ak/+jD67oWXn3Gs0M6vddAN+eDXBCS5EmNWzbSxsn9SzFWWg==", + "version": "8.40.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.40.0.tgz", + "integrity": "sha512-/A89vz7Wf5DEXsGVvcGdYKbVM9F7DyFXj52lNYUDS1L9yJfqjW/fIp5PgMuEJL/KeqVTe2QSbXAGUZljDUpArw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.38.0", - "@typescript-eslint/types": "^8.38.0", + "@typescript-eslint/tsconfig-utils": "^8.40.0", + "@typescript-eslint/types": "^8.40.0", "debug": "^4.3.4" }, "engines": { @@ -3418,18 +2993,18 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=4.8.4 <5.9.0" + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.38.0.tgz", - "integrity": "sha512-WJw3AVlFFcdT9Ri1xs/lg8LwDqgekWXWhH3iAF+1ZM+QPd7oxQ6jvtW/JPwzAScxitILUIFs0/AnQ/UWHzbATQ==", + "version": "8.40.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.40.0.tgz", + "integrity": "sha512-y9ObStCcdCiZKzwqsE8CcpyuVMwRouJbbSrNuThDpv16dFAj429IkM6LNb1dZ2m7hK5fHyzNcErZf7CEeKXR4w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.38.0", - "@typescript-eslint/visitor-keys": "8.38.0" + "@typescript-eslint/types": "8.40.0", + "@typescript-eslint/visitor-keys": "8.40.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3440,9 +3015,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.38.0.tgz", - "integrity": "sha512-Lum9RtSE3EroKk/bYns+sPOodqb2Fv50XOl/gMviMKNvanETUuUcC9ObRbzrJ4VSd2JalPqgSAavwrPiPvnAiQ==", + "version": "8.40.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.40.0.tgz", + "integrity": "sha512-jtMytmUaG9d/9kqSl/W3E3xaWESo4hFDxAIHGVW/WKKtQhesnRIJSAJO6XckluuJ6KDB5woD1EiqknriCtAmcw==", "dev": true, "license": "MIT", "engines": { @@ -3453,19 +3028,19 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=4.8.4 <5.9.0" + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.38.0.tgz", - "integrity": "sha512-c7jAvGEZVf0ao2z+nnz8BUaHZD09Agbh+DY7qvBQqLiz8uJzRgVPj5YvOh8I8uEiH8oIUGIfHzMwUcGVco/SJg==", + "version": "8.40.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.40.0.tgz", + "integrity": "sha512-eE60cK4KzAc6ZrzlJnflXdrMqOBaugeukWICO2rB0KNvwdIMaEaYiywwHMzA1qFpTxrLhN9Lp4E/00EgWcD3Ow==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.38.0", - "@typescript-eslint/typescript-estree": "8.38.0", - "@typescript-eslint/utils": "8.38.0", + "@typescript-eslint/types": "8.40.0", + "@typescript-eslint/typescript-estree": "8.40.0", + "@typescript-eslint/utils": "8.40.0", "debug": "^4.3.4", "ts-api-utils": "^2.1.0" }, @@ -3478,13 +3053,13 @@ }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/types": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.38.0.tgz", - "integrity": "sha512-wzkUfX3plUqij4YwWaJyqhiPE5UCRVlFpKn1oCRn2O1bJ592XxWJj8ROQ3JD5MYXLORW84063z3tZTb/cs4Tyw==", + "version": "8.40.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.40.0.tgz", + "integrity": "sha512-ETdbFlgbAmXHyFPwqUIYrfc12ArvpBhEVgGAxVYSwli26dn8Ko+lIo4Su9vI9ykTZdJn+vJprs/0eZU0YMAEQg==", "dev": true, "license": "MIT", "engines": { @@ -3496,16 +3071,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.38.0.tgz", - "integrity": "sha512-fooELKcAKzxux6fA6pxOflpNS0jc+nOQEEOipXFNjSlBS6fqrJOVY/whSn70SScHrcJ2LDsxWrneFoWYSVfqhQ==", + "version": "8.40.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.40.0.tgz", + "integrity": "sha512-k1z9+GJReVVOkc1WfVKs1vBrR5MIKKbdAjDTPvIK3L8De6KbFfPFt6BKpdkdk7rZS2GtC/m6yI5MYX+UsuvVYQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.38.0", - "@typescript-eslint/tsconfig-utils": "8.38.0", - "@typescript-eslint/types": "8.38.0", - "@typescript-eslint/visitor-keys": "8.38.0", + "@typescript-eslint/project-service": "8.40.0", + "@typescript-eslint/tsconfig-utils": "8.40.0", + "@typescript-eslint/types": "8.40.0", + "@typescript-eslint/visitor-keys": "8.40.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -3521,20 +3096,20 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=4.8.4 <5.9.0" + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/utils": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.38.0.tgz", - "integrity": "sha512-hHcMA86Hgt+ijJlrD8fX0j1j8w4C92zue/8LOPAFioIno+W0+L7KqE8QZKCcPGc/92Vs9x36w/4MPTJhqXdyvg==", + "version": "8.40.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.40.0.tgz", + "integrity": "sha512-Cgzi2MXSZyAUOY+BFwGs17s7ad/7L+gKt6Y8rAVVWS+7o6wrjeFN4nVfTpbE25MNcxyJ+iYUXflbs2xR9h4UBg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.38.0", - "@typescript-eslint/types": "8.38.0", - "@typescript-eslint/typescript-estree": "8.38.0" + "@typescript-eslint/scope-manager": "8.40.0", + "@typescript-eslint/types": "8.40.0", + "@typescript-eslint/typescript-estree": "8.40.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3545,17 +3120,17 @@ }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.38.0.tgz", - "integrity": "sha512-pWrTcoFNWuwHlA9CvlfSsGWs14JxfN1TH25zM5L7o0pRLhsoZkDnTsXfQRJBEWJoV5DL0jf+Z+sxiud+K0mq1g==", + "version": "8.40.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.40.0.tgz", + "integrity": "sha512-8CZ47QwalyRjsypfwnbI3hKy5gJDPmrkLjkgMxhi0+DZZ2QNx2naS6/hWoVYUHU7LU2zleF68V9miaVZvhFfTA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/types": "8.40.0", "eslint-visitor-keys": "^4.2.1" }, "engines": { @@ -3978,57 +3553,57 @@ } }, "node_modules/@volar/language-core": { - "version": "2.4.22", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.22.tgz", - "integrity": "sha512-gp4M7Di5KgNyIyO903wTClYBavRt6UyFNpc5LWfyZr1lBsTUY+QrVZfmbNF2aCyfklBOVk9YC4p+zkwoyT7ECg==", + "version": "2.4.23", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.23.tgz", + "integrity": "sha512-hEEd5ET/oSmBC6pi1j6NaNYRWoAiDhINbT8rmwtINugR39loROSlufGdYMF9TaKGfz+ViGs1Idi3mAhnuPcoGQ==", "dev": true, "license": "MIT", "dependencies": { - "@volar/source-map": "2.4.22" + "@volar/source-map": "2.4.23" } }, "node_modules/@volar/source-map": { - "version": "2.4.22", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.22.tgz", - "integrity": "sha512-L2nVr/1vei0xKRgO2tYVXtJYd09HTRjaZi418e85Q+QdbbqA8h7bBjfNyPPSsjnrOO4l4kaAo78c8SQUAdHvgA==", + "version": "2.4.23", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.23.tgz", + "integrity": "sha512-Z1Uc8IB57Lm6k7q6KIDu/p+JWtf3xsXJqAX/5r18hYOTpJyBn0KXUR8oTJ4WFYOcDzWC9n3IflGgHowx6U6z9Q==", "dev": true, "license": "MIT" }, "node_modules/@volar/typescript": { - "version": "2.4.22", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.22.tgz", - "integrity": "sha512-6ZczlJW1/GWTrNnkmZxJp4qyBt/SGVlcTuCWpI5zLrdPdCZsj66Aff9ZsfFaT3TyjG8zVYgBMYPuCm/eRkpcpQ==", + "version": "2.4.23", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.23.tgz", + "integrity": "sha512-lAB5zJghWxVPqfcStmAP1ZqQacMpe90UrP5RJ3arDyrhy4aCUQqmxPPLB2PWDKugvylmO41ljK7vZ+t6INMTag==", "dev": true, "license": "MIT", "dependencies": { - "@volar/language-core": "2.4.22", + "@volar/language-core": "2.4.23", "path-browserify": "^1.0.1", "vscode-uri": "^3.0.8" } }, "node_modules/@vue/babel-helper-vue-transform-on": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.4.0.tgz", - "integrity": "sha512-mCokbouEQ/ocRce/FpKCRItGo+013tHg7tixg3DUNS+6bmIchPt66012kBMm476vyEIJPafrvOf4E5OYj3shSw==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.5.0.tgz", + "integrity": "sha512-0dAYkerNhhHutHZ34JtTl2czVQHUNWv6xEbkdF5W+Yrv5pCWsqjeORdOgbtW2I9gWlt+wBmVn+ttqN9ZxR5tzA==", "dev": true, "license": "MIT" }, "node_modules/@vue/babel-plugin-jsx": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.4.0.tgz", - "integrity": "sha512-9zAHmwgMWlaN6qRKdrg1uKsBKHvnUU+Py+MOCTuYZBoZsopa90Di10QRjB+YPnVss0BZbG/H5XFwJY1fTxJWhA==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.5.0.tgz", + "integrity": "sha512-mneBhw1oOqCd2247O0Yw/mRwC9jIGACAJUlawkmMBiNmL4dGA2eMzuNZVNqOUfYTa6vqmND4CtOPzmEEEqLKFw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.26.5", - "@babel/plugin-syntax-jsx": "^7.25.9", - "@babel/template": "^7.26.9", - "@babel/traverse": "^7.26.9", - "@babel/types": "^7.26.9", - "@vue/babel-helper-vue-transform-on": "1.4.0", - "@vue/babel-plugin-resolve-type": "1.4.0", - "@vue/shared": "^3.5.13" + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.0", + "@babel/types": "^7.28.2", + "@vue/babel-helper-vue-transform-on": "1.5.0", + "@vue/babel-plugin-resolve-type": "1.5.0", + "@vue/shared": "^3.5.18" }, "peerDependencies": { "@babel/core": "^7.0.0-0" @@ -4040,17 +3615,17 @@ } }, "node_modules/@vue/babel-plugin-resolve-type": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.4.0.tgz", - "integrity": "sha512-4xqDRRbQQEWHQyjlYSgZsWj44KfiF6D+ktCuXyZ8EnVDYV3pztmXJDf1HveAjUAXxAnR8daCQT51RneWWxtTyQ==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.5.0.tgz", + "integrity": "sha512-Wm/60o+53JwJODm4Knz47dxJnLDJ9FnKnGZJbUUf8nQRAtt6P+undLUAVU3Ha33LxOJe6IPoifRQ6F/0RrU31w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.26.5", - "@babel/parser": "^7.26.9", - "@vue/compiler-sfc": "^3.5.13" + "@babel/code-frame": "^7.27.1", + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/parser": "^7.28.0", + "@vue/compiler-sfc": "^3.5.18" }, "funding": { "url": "https://github.com/sponsors/sxzz" @@ -4073,6 +3648,19 @@ "source-map-js": "^1.2.1" } }, + "node_modules/@vue/compiler-core/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/@vue/compiler-dom": { "version": "3.5.18", "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.18.tgz", @@ -4315,9 +3903,9 @@ } }, "node_modules/@vue/tsconfig": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.7.0.tgz", - "integrity": "sha512-ku2uNz5MaZ9IerPPUyOHzyjhXoX2kVJaVf7hL315DC17vS6IiZRmmCPfggNbU16QTvM80+uYYy3eYJB59WCtvg==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.8.1.tgz", + "integrity": "sha512-aK7feIWPXFSUhsCP9PFqPyFOcz4ENkb8hZ2pneL6m2UjCkccvaOhC/5KCKluuBufvp2KzkbdA2W2pk20vLzu3g==", "dev": true, "license": "MIT", "peerDependencies": { @@ -4354,9 +3942,9 @@ } }, "node_modules/@zip.js/zip.js": { - "version": "2.7.70", - "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.7.70.tgz", - "integrity": "sha512-GkUtNfhrfR90xurdCUtFI6yDqlTI70dMolOZuyDAVNxvgn0uv8qvoGzbyYWcfkfTYBKNR4NJs6poQE/cr1pW3A==", + "version": "2.7.72", + "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.7.72.tgz", + "integrity": "sha512-3/A4JwrgkvGBlCxtItjxs8HrNbuTAAl/zlGkV6tC5Fb5k5nk4x2Dqxwl/YnUys5Ch+QB01eJ8Q5K/J2uXfy9Vw==", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -4475,13 +4063,16 @@ "license": "MIT" }, "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.0.tgz", + "integrity": "sha512-TKY5pyBkHyADOPYlRT9Lx6F544mPl0vS5Ew7BJ45hA08Q+t3GjbueLliBWN3sMICk6+y7HdyxSzC4bWS8baBdg==", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, "node_modules/ansi-styles": { @@ -4797,9 +4388,9 @@ } }, "node_modules/browserslist": { - "version": "4.25.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz", - "integrity": "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==", + "version": "4.25.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.3.tgz", + "integrity": "sha512-cDGv1kkDI4/0e5yON9yM5G/0A5u8sf5TnmdX5C9qHzI9PPu++sQ9zjm1k9NiOrf3riY4OkK0zSGqfvJyJsgCBQ==", "dev": true, "funding": [ { @@ -4817,8 +4408,8 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001726", - "electron-to-chromium": "^1.5.173", + "caniuse-lite": "^1.0.30001735", + "electron-to-chromium": "^1.5.204", "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.3" }, @@ -4951,9 +4542,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001731", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001731.tgz", - "integrity": "sha512-lDdp2/wrOmTRWuoB5DpfNkC0rJDU8DqRa6nYL6HK6sytw70QMopt/NIc/9SM7ylItlBWfACXk0tEn37UWM/+mg==", + "version": "1.0.30001735", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001735.tgz", + "integrity": "sha512-EV/laoX7Wq2J9TQlyIXRxTJqIw4sxfXS4OYgudGxBYRuTv0q7AM6yMEpU/Vo1I94thg9U6EZ2NfZx9GJq83u7w==", "dev": true, "funding": [ { @@ -4983,9 +4574,9 @@ } }, "node_modules/cesium": { - "version": "1.131.0", - "resolved": "https://registry.npmjs.org/cesium/-/cesium-1.131.0.tgz", - "integrity": "sha512-4OVlpds2TR6elsHLfVAp5FOqxjNbvKA7Ff5n3yuwDBFKgYgc6JErbpBSjY31pBI2ZJSWhKLknCNjrTR8FlVTFg==", + "version": "1.132.0", + "resolved": "https://registry.npmjs.org/cesium/-/cesium-1.132.0.tgz", + "integrity": "sha512-FOurvzkUhnbXn/gqruBMkHqVpen7URNd5xemEhD76VzoYpRvOwWJWNaFeuBuB5AEJpFfGs5hVicGKFMzX/sUlw==", "dev": true, "license": "Apache-2.0", "workspaces": [ @@ -4993,24 +4584,24 @@ "packages/widgets" ], "dependencies": { - "@cesium/engine": "^18.3.0", - "@cesium/widgets": "^12.3.0" + "@cesium/engine": "^19.0.0", + "@cesium/widgets": "^13.0.0" }, "engines": { "node": ">=20.19.0" } }, "node_modules/cesium/node_modules/@cesium/engine": { - "version": "18.3.0", - "resolved": "https://registry.npmjs.org/@cesium/engine/-/engine-18.3.0.tgz", - "integrity": "sha512-ILNA1a+RX2gNsQGyF2zq27Ucaj5UMj19paYoJbKxX/U0QtxLuFUhJ2yg6wr2eBtC3X3kd475o7kAx0LpfCZxpg==", + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/@cesium/engine/-/engine-19.0.0.tgz", + "integrity": "sha512-ymBxCUEV2HfQLmAp3qou0AlKkChIaMNkKQa/bCLLScfoCj0EBVtQH6Zgk8hP8MWreuR+vzmGOjdPsWLMkKgnrQ==", "dev": true, "license": "Apache-2.0", "dependencies": { "@cesium/wasm-splats": "^0.1.0-alpha.2", - "@spz-loader/core": "0.1.0", + "@spz-loader/core": "0.3.0", "@tweenjs/tween.js": "^25.0.0", - "@zip.js/zip.js": "^2.7.34", + "@zip.js/zip.js": "^2.7.70", "autolinker": "^4.0.0", "bitmap-sdf": "^1.0.3", "dompurify": "^3.0.2", @@ -5058,9 +4649,9 @@ } }, "node_modules/chai": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-5.2.1.tgz", - "integrity": "sha512-5nFxhUrX0PqtyogoYOA8IPswy5sZFTOsBFl/9bNsmDLgsxYTzSZQJDPppDnZPTQbzSEm0hqGjWPzRemQCYbD6A==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.1.tgz", + "integrity": "sha512-48af6xm9gQK8rhIcOxWwdGzIervm8BVTin+yRp9HEvU20BtVZ2lBywlIJBzwaDtvo0FvjeL7QdCADoUoqIbV3A==", "dev": true, "license": "MIT", "dependencies": { @@ -5091,6 +4682,19 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/character-entities": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", @@ -5169,6 +4773,69 @@ "node": ">=12" } }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -5228,11 +4895,14 @@ "license": "Unlicense" }, "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=14" + } }, "node_modules/comment-parser": { "version": "1.4.1", @@ -5284,22 +4954,6 @@ "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" } }, - "node_modules/concurrently/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, "node_modules/confbox": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.2.tgz", @@ -5342,9 +4996,9 @@ } }, "node_modules/core-js": { - "version": "3.44.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.44.0.tgz", - "integrity": "sha512-aFCtd4l6GvAXwVEh3XbbVqJGHDJt0OZRa+5ePGx3LLwi12WfexqQxcsohb2wgsa/92xtl19Hd66G/L+TaAxDMw==", + "version": "3.45.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.45.0.tgz", + "integrity": "sha512-c2KZL9lP4DjkN3hk/an4pWn5b5ZefhRJnAc42n6LJ19kSnbeRbdQZE5dSeE2LBol1OwJD3X1BQvFTAsa8ReeDA==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -5653,21 +5307,6 @@ "node": ">=6" } }, - "node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", - "dev": true, - "license": "Apache-2.0", - "optional": true, - "peer": true, - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/devlop": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", @@ -5810,16 +5449,6 @@ "node": ">=14" } }, - "node_modules/editorconfig/node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - } - }, "node_modules/editorconfig/node_modules/minimatch": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", @@ -5837,23 +5466,23 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.194", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.194.tgz", - "integrity": "sha512-SdnWJwSUot04UR51I2oPD8kuP2VI37/CADR1OHsFOUzZIvfWJBO6q11k5P/uKNyTT3cdOsnyjkrZ+DDShqYqJA==", + "version": "1.5.207", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.207.tgz", + "integrity": "sha512-mryFrrL/GXDTmAtIVMVf+eIXM09BBPlO5IQ7lUyKmK8d+A4VpRGG+M3ofoVef6qyF8s60rJei8ymlJxjUA8Faw==", "dev": true, "license": "ISC" }, "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true, "license": "MIT" }, "node_modules/enhanced-resolve": { - "version": "5.18.2", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.2.tgz", - "integrity": "sha512-6Jw4sE1maoRJo3q8MsSIn2onJFbLTOjY9hlx4DZXmOKvLRd1Ok2kXmAGXaafL2+ijsJZ1ClYbl/pmqr9+k4iUQ==", + "version": "5.18.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", + "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==", "dev": true, "license": "MIT", "dependencies": { @@ -5870,11 +5499,11 @@ "integrity": "sha512-VWU0/zXzVbeJNXvME/5EmLuEj2TauvoaTz6aFYK1Z92JCBlDlZ3Gu0tuGR42kpW1754ywTs+QB0g5TP0oj9Zaw==", "dev": true, "license": "ISC" - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + }, + "node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -6079,9 +5708,9 @@ } }, "node_modules/es-toolkit": { - "version": "1.39.8", - "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.39.8.tgz", - "integrity": "sha512-A8QO9TfF+rltS8BXpdu8OS+rpGgEdnRhqIVxO/ZmNvnXBYgOdSsxukT55ELyP94gZIntWJ+Li9QRrT2u1Kitpg==", + "version": "1.39.10", + "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.39.10.tgz", + "integrity": "sha512-E0iGnTtbDhkeczB0T+mxmoVlT4YNweEKBLq7oaU4p11mecdsZpNWOglI4895Vh4usbQ+LsJiuLuI2L0Vdmfm2w==", "dev": true, "license": "MIT", "workspaces": [ @@ -6090,9 +5719,9 @@ ] }, "node_modules/esbuild": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.8.tgz", - "integrity": "sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.9.tgz", + "integrity": "sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -6103,32 +5732,32 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.8", - "@esbuild/android-arm": "0.25.8", - "@esbuild/android-arm64": "0.25.8", - "@esbuild/android-x64": "0.25.8", - "@esbuild/darwin-arm64": "0.25.8", - "@esbuild/darwin-x64": "0.25.8", - "@esbuild/freebsd-arm64": "0.25.8", - "@esbuild/freebsd-x64": "0.25.8", - "@esbuild/linux-arm": "0.25.8", - "@esbuild/linux-arm64": "0.25.8", - "@esbuild/linux-ia32": "0.25.8", - "@esbuild/linux-loong64": "0.25.8", - "@esbuild/linux-mips64el": "0.25.8", - "@esbuild/linux-ppc64": "0.25.8", - "@esbuild/linux-riscv64": "0.25.8", - "@esbuild/linux-s390x": "0.25.8", - "@esbuild/linux-x64": "0.25.8", - "@esbuild/netbsd-arm64": "0.25.8", - "@esbuild/netbsd-x64": "0.25.8", - "@esbuild/openbsd-arm64": "0.25.8", - "@esbuild/openbsd-x64": "0.25.8", - "@esbuild/openharmony-arm64": "0.25.8", - "@esbuild/sunos-x64": "0.25.8", - "@esbuild/win32-arm64": "0.25.8", - "@esbuild/win32-ia32": "0.25.8", - "@esbuild/win32-x64": "0.25.8" + "@esbuild/aix-ppc64": "0.25.9", + "@esbuild/android-arm": "0.25.9", + "@esbuild/android-arm64": "0.25.9", + "@esbuild/android-x64": "0.25.9", + "@esbuild/darwin-arm64": "0.25.9", + "@esbuild/darwin-x64": "0.25.9", + "@esbuild/freebsd-arm64": "0.25.9", + "@esbuild/freebsd-x64": "0.25.9", + "@esbuild/linux-arm": "0.25.9", + "@esbuild/linux-arm64": "0.25.9", + "@esbuild/linux-ia32": "0.25.9", + "@esbuild/linux-loong64": "0.25.9", + "@esbuild/linux-mips64el": "0.25.9", + "@esbuild/linux-ppc64": "0.25.9", + "@esbuild/linux-riscv64": "0.25.9", + "@esbuild/linux-s390x": "0.25.9", + "@esbuild/linux-x64": "0.25.9", + "@esbuild/netbsd-arm64": "0.25.9", + "@esbuild/netbsd-x64": "0.25.9", + "@esbuild/openbsd-arm64": "0.25.9", + "@esbuild/openbsd-x64": "0.25.9", + "@esbuild/openharmony-arm64": "0.25.9", + "@esbuild/sunos-x64": "0.25.9", + "@esbuild/win32-arm64": "0.25.9", + "@esbuild/win32-ia32": "0.25.9", + "@esbuild/win32-x64": "0.25.9" } }, "node_modules/escalade": { @@ -6155,20 +5784,20 @@ } }, "node_modules/eslint": { - "version": "9.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.32.0.tgz", - "integrity": "sha512-LSehfdpgMeWcTZkWZVIJl+tkZ2nuSkyyB9C27MZqFWXuph7DvaowgcTvKqxvpLW1JZIk8PN7hFY3Rj9LQ7m7lg==", + "version": "9.33.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.33.0.tgz", + "integrity": "sha512-TS9bTNIryDzStCpJN93aC5VRSW3uTx9sClUn4B87pwiCaJh220otoI0X8mJKr+VcPtniMdN8GKjlwgWGUv5ZKA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.21.0", - "@eslint/config-helpers": "^0.3.0", - "@eslint/core": "^0.15.0", + "@eslint/config-helpers": "^0.3.1", + "@eslint/core": "^0.15.2", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.32.0", - "@eslint/plugin-kit": "^0.3.4", + "@eslint/js": "9.33.0", + "@eslint/plugin-kit": "^0.3.5", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", @@ -6407,9 +6036,9 @@ } }, "node_modules/eslint-plugin-prettier": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.3.tgz", - "integrity": "sha512-NAdMYww51ehKfDyDhv59/eIItUVzU0Io9H2E8nHNGKEeeqlnci+1gCvrHib6EmZdf6GxF+LCV5K7UC65Ezvw7w==", + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.4.tgz", + "integrity": "sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg==", "dev": true, "license": "MIT", "dependencies": { @@ -6755,23 +6384,6 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/execa/node_modules/get-stream": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", - "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@sec-ant/readable-stream": "^0.4.1", - "is-stream": "^4.0.1" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/expect-type": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.2.tgz", @@ -7205,6 +6817,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/get-stream": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", + "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sec-ant/readable-stream": "^0.4.1", + "is-stream": "^4.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-symbol-description": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", @@ -7244,22 +6873,21 @@ "license": "ISC" }, "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, "license": "ISC", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, - "engines": { - "node": "*" + "bin": { + "glob": "dist/esm/bin.mjs" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -7278,30 +6906,6 @@ "node": ">=10.13.0" } }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/globals": { "version": "16.3.0", "resolved": "https://registry.npmjs.org/globals/-/globals-16.3.0.tgz", @@ -7562,9 +7166,9 @@ } }, "node_modules/i18next": { - "version": "25.3.2", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-25.3.2.tgz", - "integrity": "sha512-JSnbZDxRVbphc5jiptxr3o2zocy5dEqpVm9qCGdJwRNO+9saUJS0/u4LnM/13C23fUEWxAylPqKU/NpMV/IjqA==", + "version": "25.3.6", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-25.3.6.tgz", + "integrity": "sha512-dThZ0CTCM3sUG/qS0ZtQYZQcUI6DtBN8yBHK+SKEqihPcEYmjVWh/YJ4luic73Iq6Uxhp6q7LJJntRK5+1t7jQ==", "dev": true, "funding": [ { @@ -7658,15 +7262,6 @@ "node": ">= 4" } }, - "node_modules/immutable": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.3.tgz", - "integrity": "sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, "node_modules/import-fresh": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", @@ -8397,27 +7992,6 @@ "node": ">=14" } }, - "node_modules/js-beautify/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/js-cookie": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz", @@ -8672,9 +8246,9 @@ } }, "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", "dev": true, "license": "MIT", "dependencies": { @@ -8745,9 +8319,9 @@ "license": "MIT" }, "node_modules/ktx-parse": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ktx-parse/-/ktx-parse-1.0.1.tgz", - "integrity": "sha512-djwUWv/82Xc8LOVinJU4EBrVqYkO8OsUDSPEtY/OOVY8BSe3DMU7D7PlIAZ0pI7ZZtErj7mqpJcgffUTABvgaA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ktx-parse/-/ktx-parse-1.1.0.tgz", + "integrity": "sha512-mKp3y+FaYgR7mXWAbyyzpa/r1zDWeaunH+INJO4fou3hb45XuNSwar+7llrRyvpMWafxSIi99RNFJ05MHedaJQ==", "dev": true, "license": "MIT" }, @@ -8925,6 +8499,19 @@ "markdown-it": "bin/markdown-it.mjs" } }, + "node_modules/markdown-it/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/markdown-table": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", @@ -10008,9 +9595,9 @@ } }, "node_modules/napi-postinstall": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.2.tgz", - "integrity": "sha512-tWVJxJHmBWLy69PvO96TZMZDrzmw5KeiZBz3RHmiM2XZ9grBJ2WgMAFVVg25nqp3ZjTFUs2Ftw1JhscL3Teliw==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.3.tgz", + "integrity": "sha512-uTp172LLXSxuSYHv/kou+f6KW3SMppU9ivthaVTXian9sOt3XM/zHYHpRZiLgQoxeWfYUnslNWQHF1+G71xcow==", "dev": true, "license": "MIT", "bin": { @@ -10072,15 +9659,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/node-addon-api": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", - "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, "node_modules/node-releases": { "version": "2.0.19", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", @@ -10570,19 +10148,6 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/parse5/node_modules/entities": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", - "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, "node_modules/patch-package": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-8.0.0.tgz", @@ -10832,6 +10397,16 @@ "plantuml-parser": "dist/bin/cli.js" } }, + "node_modules/plantuml-parser/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/plantuml-parser/node_modules/cliui": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", @@ -10844,6 +10419,13 @@ "wrap-ansi": "^6.2.0" } }, + "node_modules/plantuml-parser/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, "node_modules/plantuml-parser/node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", @@ -10900,6 +10482,34 @@ "node": ">=8" } }, + "node_modules/plantuml-parser/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/plantuml-parser/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/plantuml-parser/node_modules/wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -11118,9 +10728,9 @@ "license": "ISC" }, "node_modules/protobufjs": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.3.tgz", - "integrity": "sha512-sildjKwVqOI2kmFDiXQ6aEB0fjYTafpEvIBs8tOR8qI4spuL9OPROLVu2qZqi/xgCfsHIwVqlaF8JBjWFHnKbw==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.4.tgz", + "integrity": "sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==", "dev": true, "hasInstallScript": true, "license": "BSD-3-Clause", @@ -11189,9 +10799,9 @@ } }, "node_modules/quansync": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.10.tgz", - "integrity": "sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==", + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.11.tgz", + "integrity": "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==", "dev": true, "funding": [ { @@ -11467,10 +11077,56 @@ "rimraf": "bin.js" } }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/rollup": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.46.2.tgz", - "integrity": "sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==", + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.46.3.tgz", + "integrity": "sha512-RZn2XTjXb8t5g13f5YclGoilU/kwT696DIkY3sywjdZidNSi3+vseaQov7D7BZXVJCPv3pDWUN69C78GGbXsKw==", "dev": true, "license": "MIT", "dependencies": { @@ -11484,26 +11140,26 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.46.2", - "@rollup/rollup-android-arm64": "4.46.2", - "@rollup/rollup-darwin-arm64": "4.46.2", - "@rollup/rollup-darwin-x64": "4.46.2", - "@rollup/rollup-freebsd-arm64": "4.46.2", - "@rollup/rollup-freebsd-x64": "4.46.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.46.2", - "@rollup/rollup-linux-arm-musleabihf": "4.46.2", - "@rollup/rollup-linux-arm64-gnu": "4.46.2", - "@rollup/rollup-linux-arm64-musl": "4.46.2", - "@rollup/rollup-linux-loongarch64-gnu": "4.46.2", - "@rollup/rollup-linux-ppc64-gnu": "4.46.2", - "@rollup/rollup-linux-riscv64-gnu": "4.46.2", - "@rollup/rollup-linux-riscv64-musl": "4.46.2", - "@rollup/rollup-linux-s390x-gnu": "4.46.2", - "@rollup/rollup-linux-x64-gnu": "4.46.2", - "@rollup/rollup-linux-x64-musl": "4.46.2", - "@rollup/rollup-win32-arm64-msvc": "4.46.2", - "@rollup/rollup-win32-ia32-msvc": "4.46.2", - "@rollup/rollup-win32-x64-msvc": "4.46.2", + "@rollup/rollup-android-arm-eabi": "4.46.3", + "@rollup/rollup-android-arm64": "4.46.3", + "@rollup/rollup-darwin-arm64": "4.46.3", + "@rollup/rollup-darwin-x64": "4.46.3", + "@rollup/rollup-freebsd-arm64": "4.46.3", + "@rollup/rollup-freebsd-x64": "4.46.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.46.3", + "@rollup/rollup-linux-arm-musleabihf": "4.46.3", + "@rollup/rollup-linux-arm64-gnu": "4.46.3", + "@rollup/rollup-linux-arm64-musl": "4.46.3", + "@rollup/rollup-linux-loongarch64-gnu": "4.46.3", + "@rollup/rollup-linux-ppc64-gnu": "4.46.3", + "@rollup/rollup-linux-riscv64-gnu": "4.46.3", + "@rollup/rollup-linux-riscv64-musl": "4.46.3", + "@rollup/rollup-linux-s390x-gnu": "4.46.3", + "@rollup/rollup-linux-x64-gnu": "4.46.3", + "@rollup/rollup-linux-x64-musl": "4.46.3", + "@rollup/rollup-win32-arm64-msvc": "4.46.3", + "@rollup/rollup-win32-ia32-msvc": "4.46.3", + "@rollup/rollup-win32-x64-msvc": "4.46.3", "fsevents": "~2.3.2" } }, @@ -11651,29 +11307,6 @@ "dev": true, "license": "MIT" }, - "node_modules/sass": { - "version": "1.89.2", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.89.2.tgz", - "integrity": "sha512-xCmtksBKd/jdJ9Bt9p7nPKiuqrlBMBuuGkQlkhZjjQk3Ty48lv93k5Dq6OPkKt4XwxDJ7tvlfrTa1MPA9bf+QA==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "chokidar": "^4.0.0", - "immutable": "^5.0.2", - "source-map-js": ">=0.6.2 <2.0.0" - }, - "bin": { - "sass": "sass.js" - }, - "engines": { - "node": ">=14.0.0" - }, - "optionalDependencies": { - "@parcel/watcher": "^2.4.1" - } - }, "node_modules/sax": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", @@ -12014,6 +11647,13 @@ "through2": "^2.0.2" } }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, "node_modules/stable-hash": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", @@ -12138,10 +11778,29 @@ "dev": true, "license": "MIT", "engines": { - "node": ">=0.6.19" + "node": ">=0.6.19" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/string-width": { + "node_modules/string-width-cjs": { + "name": "string-width", "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", @@ -12156,17 +11815,31 @@ "node": ">=8" } }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" @@ -12271,16 +11944,19 @@ } }, "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" + "ansi-regex": "^6.0.1" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, "node_modules/strip-ansi-cjs": { @@ -12297,6 +11973,16 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/strip-final-newline": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", @@ -12357,16 +12043,19 @@ } }, "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, "node_modules/supports-preserve-symlinks-flag": { @@ -12518,11 +12207,14 @@ } }, "node_modules/tinyglobby/node_modules/fdir": { - "version": "6.4.6", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", - "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, "peerDependencies": { "picomatch": "^3 || ^4" }, @@ -12636,6 +12328,13 @@ "topoquantize": "bin/topoquantize" } }, + "node_modules/topojson-client/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT" + }, "node_modules/totalist": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", @@ -12875,9 +12574,9 @@ } }, "node_modules/typedoc": { - "version": "0.28.9", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.28.9.tgz", - "integrity": "sha512-aw45vwtwOl3QkUAmWCnLV9QW1xY+FSX2zzlit4MAfE99wX+Jij4ycnpbAWgBXsRrxmfs9LaYktg/eX5Bpthd3g==", + "version": "0.28.10", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.28.10.tgz", + "integrity": "sha512-zYvpjS2bNJ30SoNYfHSRaFpBMZAsL7uwKbWwqoCNFWjcPnI3e/mPLh2SneH9mX7SJxtDpvDgvd9/iZxGbo7daw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -12909,9 +12608,9 @@ } }, "node_modules/typescript": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", - "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", + "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", "dev": true, "license": "Apache-2.0", "bin": { @@ -12923,16 +12622,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.38.0.tgz", - "integrity": "sha512-FsZlrYK6bPDGoLeZRuvx2v6qrM03I0U0SnfCLPs/XCCPCFD80xU9Pg09H/K+XFa68uJuZo7l/Xhs+eDRg2l3hg==", + "version": "8.40.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.40.0.tgz", + "integrity": "sha512-Xvd2l+ZmFDPEt4oj1QEXzA4A2uUK6opvKu3eGN9aGjB8au02lIVcLyi375w94hHyejTOmzIU77L8ol2sRg9n7Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.38.0", - "@typescript-eslint/parser": "8.38.0", - "@typescript-eslint/typescript-estree": "8.38.0", - "@typescript-eslint/utils": "8.38.0" + "@typescript-eslint/eslint-plugin": "8.40.0", + "@typescript-eslint/parser": "8.40.0", + "@typescript-eslint/typescript-estree": "8.40.0", + "@typescript-eslint/utils": "8.40.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -12943,7 +12642,7 @@ }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/uc.micro": { @@ -13069,14 +12768,14 @@ } }, "node_modules/unplugin-utils": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/unplugin-utils/-/unplugin-utils-0.2.4.tgz", - "integrity": "sha512-8U/MtpkPkkk3Atewj1+RcKIjb5WBimZ/WSLhhR3w6SsIj8XJuKTacSP8g+2JhfSGw0Cb125Y+2zA/IzJZDVbhA==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/unplugin-utils/-/unplugin-utils-0.2.5.tgz", + "integrity": "sha512-gwXJnPRewT4rT7sBi/IvxKTjsms7jX7QIDLOClApuZwR49SXbrB1z2NLUZ+vDHyqCj/n58OzRRqaW+B8OZi8vg==", "dev": true, "license": "MIT", "dependencies": { - "pathe": "^2.0.2", - "picomatch": "^4.0.2" + "pathe": "^2.0.3", + "picomatch": "^4.0.3" }, "engines": { "node": ">=18.12.0" @@ -13203,17 +12902,17 @@ "license": "MIT" }, "node_modules/vite": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.6.tgz", - "integrity": "sha512-MHFiOENNBd+Bd9uvc8GEsIzdkn1JxMmEeYX35tI3fv0sJBUTfW5tQsoaOwuY4KhBI09A3dUJ/DXf2yxPVPUceg==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.3.tgz", + "integrity": "sha512-OOUi5zjkDxYrKhTV3V7iKsoS37VUM7v40+HuwEmcrsf11Cdx9y3DIr2Px6liIcZFwt3XSRpQvFpL3WVy7ApkGw==", "dev": true, "license": "MIT", "dependencies": { "esbuild": "^0.25.0", - "fdir": "^6.4.6", + "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", - "rollup": "^4.40.0", + "rollup": "^4.43.0", "tinyglobby": "^0.2.14" }, "bin": { @@ -13392,19 +13091,6 @@ } } }, - "node_modules/vite-plugin-checker/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, "node_modules/vite-plugin-checker/node_modules/picomatch": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", @@ -13418,22 +13104,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/vite-plugin-checker/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, "node_modules/vite-plugin-commonjs": { "version": "0.10.4", "resolved": "https://registry.npmjs.org/vite-plugin-commonjs/-/vite-plugin-commonjs-0.10.4.tgz", @@ -13607,11 +13277,14 @@ } }, "node_modules/vite/node_modules/fdir": { - "version": "6.4.6", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", - "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, "peerDependencies": { "picomatch": "^3 || ^4" }, @@ -13810,6 +13483,35 @@ "typescript": ">=5.0.0" } }, + "node_modules/vue-tsc/node_modules/@volar/language-core": { + "version": "2.4.22", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.22.tgz", + "integrity": "sha512-gp4M7Di5KgNyIyO903wTClYBavRt6UyFNpc5LWfyZr1lBsTUY+QrVZfmbNF2aCyfklBOVk9YC4p+zkwoyT7ECg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/source-map": "2.4.22" + } + }, + "node_modules/vue-tsc/node_modules/@volar/source-map": { + "version": "2.4.22", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.22.tgz", + "integrity": "sha512-L2nVr/1vei0xKRgO2tYVXtJYd09HTRjaZi418e85Q+QdbbqA8h7bBjfNyPPSsjnrOO4l4kaAo78c8SQUAdHvgA==", + "dev": true, + "license": "MIT" + }, + "node_modules/vue-tsc/node_modules/@volar/typescript": { + "version": "2.4.22", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.22.tgz", + "integrity": "sha512-6ZczlJW1/GWTrNnkmZxJp4qyBt/SGVlcTuCWpI5zLrdPdCZsj66Aff9ZsfFaT3TyjG8zVYgBMYPuCm/eRkpcpQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.22", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" + } + }, "node_modules/vue-tsc/node_modules/@vue/language-core": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.5.tgz", @@ -13836,9 +13538,9 @@ } }, "node_modules/vue-tsc/node_modules/alien-signals": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-2.0.6.tgz", - "integrity": "sha512-P3TxJSe31bUHBiblg59oU1PpaWPtmxF9GhJ/cB7OkgJ0qN/ifFSKUI25/v8ZhsT+lIG6ac8DpTOplXxORX6F3Q==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-2.0.7.tgz", + "integrity": "sha512-wE7y3jmYeb0+h6mr5BOovuqhFv22O/MV9j5p0ndJsa7z1zJNPGQ4ph5pQk/kTTCWRC3xsA4SmtwmkzQO+7NCNg==", "dev": true, "license": "MIT" }, @@ -14119,18 +13821,18 @@ } }, "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" @@ -14155,6 +13857,64 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -14285,16 +14045,16 @@ } }, "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true, "license": "ISC" }, "node_modules/yaml": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.0.tgz", - "integrity": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", + "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", "dev": true, "license": "ISC", "bin": { @@ -14333,6 +14093,51 @@ "node": ">=12" } }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/package.json b/package.json index 94d645328..8af374d9b 100644 --- a/package.json +++ b/package.json @@ -72,13 +72,13 @@ "@dataport/eslint-config-geodev": "^0.3.3", "@kern-ux/native": "^2.3.0", "@masterportal/masterportalapi": "2.48.0", - "@material-symbols/svg-400": "^0.33.0", + "@material-symbols/svg-400": "^0.34.1", "@pinia/testing": "^1.0.2", "@repositoryname/noop": "^1.0.6", "@types/node": "^24.2.0", "@vitejs/plugin-vue": "^6.0.0", "@vue/test-utils": "^2.4.6", - "@vue/tsconfig": "^0.7.0", + "@vue/tsconfig": "^0.8.1", "buffer": "^6.0.3", "cesium": "^1.131.0", "concurrently": "^9.2.0", @@ -103,7 +103,7 @@ "tsarch": "^5.4.1", "typedoc": "^0.28.8", "typedoc-plugin-vue": "^1.5.0", - "typescript": "~5.8.3", + "typescript": "~5.9.2", "util": "^0.12.5", "vite": "^7.0.6", "vite-plugin-checker": "^0.10.2", diff --git a/src/core/utils/map/setupMarkers.ts b/src/core/utils/map/setupMarkers.ts index 3df5c2654..9cd6f5538 100644 --- a/src/core/utils/map/setupMarkers.ts +++ b/src/core/utils/map/setupMarkers.ts @@ -139,7 +139,7 @@ function setLayerId(map: Map, feature: Feature) { return true } } - return Boolean(step.hasFeature(feature)) + return step.hasFeature(feature) } return false }) @@ -264,7 +264,6 @@ function mapPointerMove({ map, pixel }: MapBrowserEvent) { } // NOTE: Not all pixels include features. - // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition if (!feature) { return } @@ -292,7 +291,6 @@ function mapClick(event: MapBrowserEvent) { if ( // NOTE: Not all pixels include features. - // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition !feature || feature instanceof RenderFeature ) { From 2a1e96d3b2cf59724bcade09db189435a9a89bd8 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Wed, 20 Aug 2025 13:17:18 +0200 Subject: [PATCH 236/697] Remove unnecessary comments after TypeScript upgrade --- src/core/utils/map/setupMarkers.ts | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/core/utils/map/setupMarkers.ts b/src/core/utils/map/setupMarkers.ts index 9cd6f5538..1c274cf82 100644 --- a/src/core/utils/map/setupMarkers.ts +++ b/src/core/utils/map/setupMarkers.ts @@ -263,7 +263,6 @@ function mapPointerMove({ map, pixel }: MapBrowserEvent) { store.hovered = null } - // NOTE: Not all pixels include features. if (!feature) { return } @@ -289,11 +288,7 @@ function mapClick(event: MapBrowserEvent) { } const feature = map.getFeaturesAtPixel(event.pixel, { layerFilter })[0] - if ( - // NOTE: Not all pixels include features. - !feature || - feature instanceof RenderFeature - ) { + if (!feature || feature instanceof RenderFeature) { return } setLayerId(map, feature) From 81ae86fa817f38adfa7262d862650ccbd90f94b8 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Wed, 20 Aug 2025 14:30:10 +0200 Subject: [PATCH 237/697] Fix linter import order --- examples/snowbox/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/snowbox/index.js b/examples/snowbox/index.js index 2dcf60e8f..74d7da7a3 100644 --- a/examples/snowbox/index.js +++ b/examples/snowbox/index.js @@ -1,7 +1,7 @@ import { changeLanguage } from 'i18next' -import styleJsonUrl from './style.json?url' import pluginFullscreen from '@polar/polar/plugins/fullscreen' import { addPlugin, createMap, removePlugin, subscribe } from '@polar/polar' +import styleJsonUrl from './style.json?url' const basemapId = '23420' const basemapGreyId = '23421' From 40d9bcb7c50a70f3020d9fa04bb5499f241a080c Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Wed, 20 Aug 2025 14:47:45 +0200 Subject: [PATCH 238/697] Update CODEOWNERS path --- .github/CODEOWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index a5d78339b..05b9a503d 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1 +1 @@ -/packages @warm-coolguy @dopenguin @oeninghe-dataport +* @warm-coolguy @dopenguin @oeninghe-dataport From 5f351f40aee194c1bdcd899b14d06a2ad2d3816e Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Wed, 20 Aug 2025 14:48:11 +0200 Subject: [PATCH 239/697] Pass Readme and security policy to built package --- package.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 8af374d9b..f67b3b960 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,9 @@ }, "files": [ "dist/**/*", - "CHANGELOG.md" + "README.md", + "CHANGELOG.md", + "security.md" ], "devDependencies": { "@cesium/engine": "^15.0.0", From 18076575aca643ef0a605256d28a6ff2d5085aea Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Wed, 20 Aug 2025 14:48:30 +0200 Subject: [PATCH 240/697] Create Readme stub --- README.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 000000000..67597db47 --- /dev/null +++ b/README.md @@ -0,0 +1,4 @@ +![Public Money, Public Value](https://img.shields.io/badge/Public%20Money-Public%20Value-red) +[![License: EUPL v1.2](https://img.shields.io/badge/License-EUPL%20v1.2-blue)](https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12) + +# POLAR \ No newline at end of file From 7c7f1cb01c06405587ee0c9dd6de6064362009d9 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Wed, 20 Aug 2025 14:48:38 +0200 Subject: [PATCH 241/697] Add GitHub "run tests" workflow --- .editorconfig | 6 +++ .github/workflows/run-tests.yaml | 37 +++++++++++++++++ vue2/.github/workflows/run-tests.yml | 60 ---------------------------- 3 files changed, 43 insertions(+), 60 deletions(-) create mode 100644 .github/workflows/run-tests.yaml delete mode 100644 vue2/.github/workflows/run-tests.yml diff --git a/.editorconfig b/.editorconfig index 705cd7093..7cac9019d 100644 --- a/.editorconfig +++ b/.editorconfig @@ -3,6 +3,12 @@ indent_style = tab trim_trailing_whitespace = true insert_final_newline = true +[*.yaml] +indent_style = space +indent_size = 2 +trim_trailing_whitespace = true +insert_final_newline = true + [vue2/*.{js,ts,vue,json}] indent_style = space indent_size = 2 diff --git a/.github/workflows/run-tests.yaml b/.github/workflows/run-tests.yaml new file mode 100644 index 000000000..fcc7fcd62 --- /dev/null +++ b/.github/workflows/run-tests.yaml @@ -0,0 +1,37 @@ +name: Run automated tests +on: push + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 22.18.0 + registry-url: https://registry.npmjs.org/ + - run: | + npm ci + npm run lint:ci + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 22.18.0 + registry-url: https://registry.npmjs.org/ + - run: | + npm ci + npm run test:ci + type-check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 22.18.0 + registry-url: https://registry.npmjs.org/ + - run: | + npm ci + npm run tsc:ci diff --git a/vue2/.github/workflows/run-tests.yml b/vue2/.github/workflows/run-tests.yml deleted file mode 100644 index 5b82f7bd7..000000000 --- a/vue2/.github/workflows/run-tests.yml +++ /dev/null @@ -1,60 +0,0 @@ -name: Run linter, tests and type check - -on: push - -jobs: - lint: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: 20.16.0 - registry-url: https://registry.npmjs.org/ - - run: | - npm ci - npm run lint:ci - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v3 - with: - node-version: 20.16.0 - registry-url: https://registry.npmjs.org/ - - run: | - npm ci - npm run test - teste2e: - timeout-minutes: 60 - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: 20.16.0 - - name: Install dependencies - run: npm ci - - name: Build snowbox (started by playwright by itself) - run: npm run snowbox:build - - name: Install Playwright Browsers - run: npx playwright install --with-deps - - name: Run Playwright tests (common) - run: npm run test:e2e - - uses: actions/upload-artifact@v4 - if: ${{ !cancelled() }} - with: - name: playwright-report - path: playwright-report/ - retention-days: 30 - type-check: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v3 - with: - node-version: 20.16.0 - registry-url: https://registry.npmjs.org/ - - run: | - npm ci - npm run tsc:ci From 281720848a5ef88114c1854df99175b80aca6eef Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Wed, 20 Aug 2025 14:56:26 +0200 Subject: [PATCH 242/697] core: Add map to main store for plugin use --- src/core/components/PolarMap.ce.vue | 3 ++- src/core/stores/export.ts | 17 ++++++++++++++--- src/core/stores/main.ts | 4 +++- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/core/components/PolarMap.ce.vue b/src/core/components/PolarMap.ce.vue index 147319c6e..968da68ba 100644 --- a/src/core/components/PolarMap.ce.vue +++ b/src/core/components/PolarMap.ce.vue @@ -16,7 +16,7 @@ import { rawLayerList } from '@masterportal/masterportalapi' import Hammer from 'hammerjs' import { defaults } from 'ol/interaction' import { storeToRefs } from 'pinia' -import { computed, onMounted, useTemplateRef, watch } from 'vue' +import { computed, markRaw, onMounted, useTemplateRef, watch } from 'vue' import type { Map } from 'ol' import { easeOut } from 'ol/easing' import { useMainStore } from '../stores/main' @@ -80,6 +80,7 @@ function createMap() { }) updateListeners() + mainStore.map = markRaw(map) } // NOTE: Updates can happen if a user resizes the window or the fullscreen plugin is used. diff --git a/src/core/stores/export.ts b/src/core/stores/export.ts index c76e70590..6876812ef 100644 --- a/src/core/stores/export.ts +++ b/src/core/stores/export.ts @@ -5,6 +5,7 @@ /* eslint-enable tsdoc/syntax */ import { defineStore } from 'pinia' +import { computed } from 'vue' import { useMainStore } from './main' /* eslint-disable tsdoc/syntax */ @@ -23,7 +24,7 @@ export const useCoreStore = defineStore('core', () => { * * @readonly */ - configuration: mainStore.configuration, + configuration: computed(() => mainStore.configuration), /** * Allows reading or setting the OIDC token used for service accesses. @@ -33,15 +34,25 @@ export const useCoreStore = defineStore('core', () => { /** * Allows accessing the POLAR DOM element (``). * + * @readonly + * @alpha + */ + lightElement: computed(() => mainStore.lightElement), + + /** + * Allows accessing the OpenLayers Map element. + * + * @readonly * @alpha */ - lightElement: mainStore.lightElement, + map: computed(() => mainStore.map), /** * Allows accessing the Shadow DOM root of POLAR. * + * @readonly * @alpha */ - shadowRoot: mainStore.shadowRoot, + shadowRoot: computed(() => mainStore.shadowRoot), } }) diff --git a/src/core/stores/main.ts b/src/core/stores/main.ts index 0b388261d..b42461f06 100644 --- a/src/core/stores/main.ts +++ b/src/core/stores/main.ts @@ -1,4 +1,4 @@ -import type { Feature } from 'ol' +import { Map, type Feature } from 'ol' import type { Coordinate } from 'ol/coordinate' import type { Point } from 'ol/geom' import { defineStore } from 'pinia' @@ -14,6 +14,7 @@ export const useMainStore = defineStore('main', () => { }) const language = ref('') const lightElement = ref(null) + const map = ref(null) const mapHasDimensions = ref(false) const plugins = ref([]) const serviceRegister = ref[]>('') @@ -78,6 +79,7 @@ export const useMainStore = defineStore('main', () => { hasSmallDisplay, language, lightElement, + map, mapHasDimensions, oidcToken, plugins, From f0a182f146b8c99f9619cd6d50cc6d5b0441f7b5 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Wed, 20 Aug 2025 18:07:00 +0200 Subject: [PATCH 243/697] Update imports --- src/core/stores/main.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/stores/main.ts b/src/core/stores/main.ts index b42461f06..a4b6f1af4 100644 --- a/src/core/stores/main.ts +++ b/src/core/stores/main.ts @@ -1,4 +1,4 @@ -import { Map, type Feature } from 'ol' +import type { Feature, Map } from 'ol' import type { Coordinate } from 'ol/coordinate' import type { Point } from 'ol/geom' import { defineStore } from 'pinia' From 5070967cf75b9e6b82db7cc4196df73acfbfce04 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Thu, 21 Aug 2025 13:38:25 +0200 Subject: [PATCH 244/697] Allow additional actions to be exported from a setup store --- src/core/types.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/core/types.ts b/src/core/types.ts index a74dd6b0e..688215b61 100644 --- a/src/core/types.ts +++ b/src/core/types.ts @@ -35,6 +35,8 @@ export type PolarPluginStore = SetupStoreDefinition< { setupPlugin: () => void teardownPlugin: () => void + // Allow additional actions to be exported + [key: string]: (...args: unknown[]) => unknown } > From ea8a2d54869b19cdba48a5eb07a57033135c47df Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Thu, 21 Aug 2025 13:59:47 +0200 Subject: [PATCH 245/697] Add and update tsconfig in examples --- examples/iceberg/tsconfig.json | 6 +++++- examples/snowbox/tsconfig.json | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 examples/snowbox/tsconfig.json diff --git a/examples/iceberg/tsconfig.json b/examples/iceberg/tsconfig.json index 4043cdc87..9111c50de 100644 --- a/examples/iceberg/tsconfig.json +++ b/examples/iceberg/tsconfig.json @@ -9,6 +9,10 @@ "ESNext", "DOM", "DOM.Iterable" - ] + ], + "paths": { + "@polar/polar": ["../../src/core/index.js"], + "@polar/polar/plugins/*": ["../../src/plugins/*/index.js"] + } } } diff --git a/examples/snowbox/tsconfig.json b/examples/snowbox/tsconfig.json new file mode 100644 index 000000000..9111c50de --- /dev/null +++ b/examples/snowbox/tsconfig.json @@ -0,0 +1,18 @@ +{ + "extends": [ + "@vue/tsconfig/tsconfig.dom.json", + "@vue/tsconfig/tsconfig.lib.json", + "../../tsconfig.settings.json" + ], + "compilerOptions": { + "lib": [ + "ESNext", + "DOM", + "DOM.Iterable" + ], + "paths": { + "@polar/polar": ["../../src/core/index.js"], + "@polar/polar/plugins/*": ["../../src/plugins/*/index.js"] + } + } +} From f7fa7c6b4e5bacb42281ed6498f77022086bf24c Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Thu, 21 Aug 2025 14:01:18 +0200 Subject: [PATCH 246/697] Reference ts-file in tsconfig of examples --- examples/iceberg/tsconfig.json | 4 ++-- examples/snowbox/tsconfig.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/iceberg/tsconfig.json b/examples/iceberg/tsconfig.json index 9111c50de..292f08213 100644 --- a/examples/iceberg/tsconfig.json +++ b/examples/iceberg/tsconfig.json @@ -11,8 +11,8 @@ "DOM.Iterable" ], "paths": { - "@polar/polar": ["../../src/core/index.js"], - "@polar/polar/plugins/*": ["../../src/plugins/*/index.js"] + "@polar/polar": ["../../src/core/index.ts"], + "@polar/polar/plugins/*": ["../../src/plugins/*/index.ts"] } } } diff --git a/examples/snowbox/tsconfig.json b/examples/snowbox/tsconfig.json index 9111c50de..292f08213 100644 --- a/examples/snowbox/tsconfig.json +++ b/examples/snowbox/tsconfig.json @@ -11,8 +11,8 @@ "DOM.Iterable" ], "paths": { - "@polar/polar": ["../../src/core/index.js"], - "@polar/polar/plugins/*": ["../../src/plugins/*/index.js"] + "@polar/polar": ["../../src/core/index.ts"], + "@polar/polar/plugins/*": ["../../src/plugins/*/index.ts"] } } } From 77dac0a63452bdd30650ab526db5135f01b93c5c Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Thu, 21 Aug 2025 14:18:03 +0200 Subject: [PATCH 247/697] chore: Replace kern vite plugin with upstream --- package-lock.json | 84 ++++++++-------------------------- package.json | 3 ++ vite.config.ts | 4 +- vitePlugins/kernExtraIcons.ts | 85 ----------------------------------- 4 files changed, 24 insertions(+), 152 deletions(-) delete mode 100644 vitePlugins/kernExtraIcons.ts diff --git a/package-lock.json b/package-lock.json index de92f7fc7..7518bb3e6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,9 @@ "version": "0.1.0", "hasInstallScript": true, "license": "EUPL-1.2", + "dependencies": { + "vite-plugin-kern-extra-icons": "^0.1.0" + }, "devDependencies": { "@cesium/engine": "^15.0.0", "@dataport/eslint-config-geodev": "^0.3.3", @@ -886,7 +889,6 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -903,7 +905,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -920,7 +921,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -937,7 +937,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -954,7 +953,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -971,7 +969,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -988,7 +985,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1005,7 +1001,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1022,7 +1017,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1039,7 +1033,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1056,7 +1049,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1073,7 +1065,6 @@ "cpu": [ "loong64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1090,7 +1081,6 @@ "cpu": [ "mips64el" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1107,7 +1097,6 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1124,7 +1113,6 @@ "cpu": [ "riscv64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1141,7 +1129,6 @@ "cpu": [ "s390x" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1158,7 +1145,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1175,7 +1161,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1192,7 +1177,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1209,7 +1193,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1226,7 +1209,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1243,7 +1225,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1260,7 +1241,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1277,7 +1257,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1294,7 +1273,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1311,7 +1289,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1823,7 +1800,6 @@ "version": "0.34.1", "resolved": "https://registry.npmjs.org/@material-symbols/svg-400/-/svg-400-0.34.1.tgz", "integrity": "sha512-bg7NonzPzTpFpq1yBW0T6/mFKxlR2oRoNwQgYfDdO1EGxV8HhX3+nVL9mFoYWOkFcpvEyI5s83frBS7shin4ew==", - "dev": true, "license": "Apache-2.0" }, "node_modules/@microsoft/api-extractor": { @@ -2223,7 +2199,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2237,7 +2212,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2251,7 +2225,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2265,7 +2238,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2279,7 +2251,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2293,7 +2264,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2307,7 +2277,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2321,7 +2290,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2335,7 +2303,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2349,7 +2316,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2363,7 +2329,6 @@ "cpu": [ "loong64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2377,7 +2342,6 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2391,7 +2355,6 @@ "cpu": [ "riscv64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2405,7 +2368,6 @@ "cpu": [ "riscv64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2419,7 +2381,6 @@ "cpu": [ "s390x" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2433,7 +2394,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2447,7 +2407,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2461,7 +2420,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2475,7 +2433,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2489,7 +2446,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2833,7 +2789,6 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", - "dev": true, "license": "MIT" }, "node_modules/@types/hast": { @@ -2881,7 +2836,7 @@ "version": "24.3.0", "resolved": "https://registry.npmjs.org/@types/node/-/node-24.3.0.tgz", "integrity": "sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "undici-types": "~7.10.0" @@ -5722,7 +5677,6 @@ "version": "0.25.9", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.9.tgz", "integrity": "sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==", - "dev": true, "hasInstallScript": true, "license": "MIT", "bin": { @@ -6666,7 +6620,6 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, @@ -7153,7 +7106,6 @@ "version": "9.1.7", "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz", "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==", - "dev": true, "license": "MIT", "bin": { "husky": "bin.js" @@ -9579,7 +9531,6 @@ "version": "3.3.11", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "dev": true, "funding": [ { "type": "github", @@ -10326,7 +10277,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true, "license": "ISC" }, "node_modules/picomatch": { @@ -10583,7 +10533,6 @@ "version": "8.5.6", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", - "dev": true, "funding": [ { "type": "opencollective", @@ -11127,7 +11076,6 @@ "version": "4.46.3", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.46.3.tgz", "integrity": "sha512-RZn2XTjXb8t5g13f5YclGoilU/kwT696DIkY3sywjdZidNSi3+vseaQov7D7BZXVJCPv3pDWUN69C78GGbXsKw==", - "dev": true, "license": "MIT", "dependencies": { "@types/estree": "1.0.8" @@ -11621,7 +11569,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -12193,7 +12140,6 @@ "version": "0.2.14", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", - "dev": true, "license": "MIT", "dependencies": { "fdir": "^6.4.4", @@ -12210,7 +12156,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "dev": true, "license": "MIT", "engines": { "node": ">=12.0.0" @@ -12228,7 +12173,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -12682,7 +12626,7 @@ "version": "7.10.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.10.0.tgz", "integrity": "sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/unicorn-magic": { @@ -12905,7 +12849,6 @@ "version": "7.1.3", "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.3.tgz", "integrity": "sha512-OOUi5zjkDxYrKhTV3V7iKsoS37VUM7v40+HuwEmcrsf11Cdx9y3DIr2Px6liIcZFwt3XSRpQvFpL3WVy7ApkGw==", - "dev": true, "license": "MIT", "dependencies": { "esbuild": "^0.25.0", @@ -13207,6 +13150,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/vite-plugin-kern-extra-icons": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/vite-plugin-kern-extra-icons/-/vite-plugin-kern-extra-icons-0.1.0.tgz", + "integrity": "sha512-POyD2LEPQLr8249Wtb1ySToA73iY+kvn0BRR4MFWoLt7bhYMb2xopoKWe8+It13lVMOlKbCKYBQltboVNkWcHQ==", + "license": "EUPL-1.2", + "dependencies": { + "@material-symbols/svg-400": "^0.34.1", + "husky": "^9.1.7" + }, + "peerDependencies": { + "vite": "^7.1.3" + } + }, "node_modules/vite-plugin-vue-devtools": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/vite-plugin-vue-devtools/-/vite-plugin-vue-devtools-8.0.0.tgz", @@ -13280,7 +13236,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "dev": true, "license": "MIT", "engines": { "node": ">=12.0.0" @@ -13298,7 +13253,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -14055,7 +14009,7 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", - "dev": true, + "devOptional": true, "license": "ISC", "bin": { "yaml": "bin.mjs" diff --git a/package.json b/package.json index f67b3b960..8faa322c8 100644 --- a/package.json +++ b/package.json @@ -115,5 +115,8 @@ "vitest": "^3.2.4", "vue": "^3.5.18", "vue-tsc": "^3.0.4" + }, + "dependencies": { + "vite-plugin-kern-extra-icons": "^0.1.0" } } diff --git a/vite.config.ts b/vite.config.ts index c29b91cb5..f1bbc4e5c 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -9,8 +9,8 @@ import vue from '@vitejs/plugin-vue' import vueDevTools from 'vite-plugin-vue-devtools' import dts from 'vite-plugin-dts' import checker from 'vite-plugin-checker' +import kernExtraIcons from 'vite-plugin-kern-extra-icons' import enrichedConsole from './vitePlugins/enrichedConsole.js' -import kernExtraIcons from './vitePlugins/kernExtraIcons.js' const require = createRequire(import.meta.url) @@ -47,8 +47,8 @@ export default defineConfig(({ mode }) => ({ }), ] : []), - enrichedConsole(), kernExtraIcons(), + enrichedConsole(), ], build: { lib: { diff --git a/vitePlugins/kernExtraIcons.ts b/vitePlugins/kernExtraIcons.ts deleted file mode 100644 index ba1bb46d3..000000000 --- a/vitePlugins/kernExtraIcons.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { glob, readFile } from 'node:fs/promises' -import { fileURLToPath } from 'node:url' -import { HmrContext } from 'vite' - -const kernIconRegex = /kern-icon--([a-zA-Z0-9-]+)/g - -let currentKernIcons: string[] = [] - -function getUsedKernIconsByString(content: string): string[] { - const iconMatches = content.matchAll(kernIconRegex) - return [...new Set([...iconMatches].map((match) => match[1]))] -} - -async function getUsedKernIcons() { - const icons: Set = new Set() - for await (const file of glob('src/**/*.{ts,js,vue}')) { - const content = await readFile(file) - getUsedKernIconsByString(content.toString()).forEach((icon) => - icons.add(icon) - ) - } - return [...icons] -} - -async function loadKernIconCss(icon: string) { - const iconBuffer = await readFile( - fileURLToPath( - import.meta.resolve( - `@material-symbols/svg-400/rounded/${icon.replaceAll('-', '_')}.svg` - ) - ) - ) - const iconSvg = iconBuffer - .toString() - .replaceAll('width="48"', 'width=""') - .replaceAll('height="48"', 'height=""') - const iconUrl = 'data:image/svg+xml;base64,' + btoa(iconSvg) - return ` - .kern-icon--${icon} { - mask: url("${iconUrl}"); - background-color: var(--kern-color-layout-text-default, #171a2b); - } - ` -} - -export default function kernExtraIcons() { - const virtualId = 'virtual:kern-extra-icons' - const resolvedVirtualId = '\0' + virtualId - - return { - name: 'kern-extra-icons', - resolveId(id: string) { - if (id === virtualId) { - return resolvedVirtualId - } - }, - async load(id: string) { - if (id === resolvedVirtualId) { - currentKernIcons = await getUsedKernIcons() - const cssRules: string[] = await Promise.all( - currentKernIcons.map(async (icon) => await loadKernIconCss(icon)) - ) - return ` - const sheet = new CSSStyleSheet() - sheet.replaceSync(${JSON.stringify(cssRules.join('\n'))}) - export default sheet - ` - } - }, - async handleHotUpdate({ server, read }: HmrContext) { - const icons = await Promise.all( - getUsedKernIconsByString(await read()) - .filter((icon) => !currentKernIcons.includes(icon)) - .map(async (icon) => await loadKernIconCss(icon)) - ) - server.ws.send({ - type: 'custom', - event: 'kern-extra-icons', - data: { - icons, - }, - }) - }, - } -} From dd2c8fa062e95fa5dc173b49bd0d3b6e85b12911 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Thu, 21 Aug 2025 14:50:36 +0200 Subject: [PATCH 248/697] feat: simplify plugin IDs The plugin IDs are adopted to match the old names. This removes the need for rewriting in the configuration. The configuration types now provide type-safety for plugin configuration passed to `createMap`. The cost is to loosen the architectural checks for the type definitions (core <-> plugins). --- examples/snowbox/index.js | 2 +- src/architecture.spec.ts | 18 +++++++++--------- src/core/types.ts | 6 ++++++ src/core/vuePlugins/i18next.ts | 9 +-------- src/plugins/fullscreen/types.ts | 2 +- src/plugins/iconMenu/types.ts | 2 +- 6 files changed, 19 insertions(+), 20 deletions(-) diff --git a/examples/snowbox/index.js b/examples/snowbox/index.js index 74d7da7a3..ad65b9900 100644 --- a/examples/snowbox/index.js +++ b/examples/snowbox/index.js @@ -117,7 +117,7 @@ await createMap( { type: 'de', resources: { - 'plugins/fullscreen': { + fullscreen: { button: { label_on: 'Mach groß', label_off: 'Mach klein', diff --git a/src/architecture.spec.ts b/src/architecture.spec.ts index d324f5fad..9762b38a7 100644 --- a/src/architecture.spec.ts +++ b/src/architecture.spec.ts @@ -9,31 +9,31 @@ describe('Architectural checks', () => { files = filesOfProject(resolve(__dirname, 'tsconfig.json')) }) - test('POLAR should be cycle-free', async () => { + test('POLAR should be cycle-free (except for types)', async () => { const violations = await files - .matchingPattern('.*') + .matchingPattern('^(?!.*/types\\.ts$).*') .should() .beFreeOfCycles() .check() expect(violations).toEqual([]) }) - test('Core should not depend on plugins', async () => { + test('Core should not depend on plugins (except for types)', async () => { const violations = await files - .matchingPattern('core/.*') + .matchingPattern('^core/(?!types\\.ts$).*$') .shouldNot() .dependOnFiles() - .matchingPattern('plugins/.*') + .matchingPattern('^plugins/.*$') .check() expect(violations).toEqual([]) }) test('Plugin file structure', async () => { const violations = await files - .matchingPattern('plugins/.*') + .matchingPattern('^plugins/.*$') .should() .matchPattern( - 'plugins/[^/]+/((index|locales|store|types)\\.ts|utils/.*\\.ts|components/.*\\.spec\\.ts)' + '^plugins/[^/]+/((index|locales|store|types)\\.ts|utils/.*\\.ts|components/.*\\.spec\\.ts)$' ) .check() expect(violations).toEqual([]) @@ -41,10 +41,10 @@ describe('Architectural checks', () => { test('Plugins should only depend on public core API', async () => { const violations = await files - .matchingPattern('plugins/.*') + .matchingPattern('^plugins/.*$') .shouldNot() .dependOnFiles() - .matchingPattern('core/(?!(index|stores/export)\\.ts$).*') + .matchingPattern('^core/(?!(index|stores/export)\\.ts$).*$') .check() expect(violations).toEqual([]) }) diff --git a/src/core/types.ts b/src/core/types.ts index 688215b61..d4c8212bb 100644 --- a/src/core/types.ts +++ b/src/core/types.ts @@ -3,6 +3,7 @@ import type { Feature } from 'ol' import type { SetupStoreDefinition } from 'pinia' import type { Component, VueElement } from 'vue' import type { NineLayoutTag } from '@/core/utils/NineLayoutTag.ts' +import type { FullscreenPluginOptions } from '@/plugins/fullscreen' /** * Copied from https://stackoverflow.com/a/54178819.# @@ -595,4 +596,9 @@ export interface MapConfiguration extends MasterportalApiConfiguration { * The default is to use KERN's standard theme. */ theme?: PolarTheme + + /** + * Configuration for fullscreen plugin. + */ + fullscreen?: FullscreenPluginOptions } diff --git a/src/core/vuePlugins/i18next.ts b/src/core/vuePlugins/i18next.ts index b89ad2697..4c041efb6 100644 --- a/src/core/vuePlugins/i18next.ts +++ b/src/core/vuePlugins/i18next.ts @@ -18,14 +18,7 @@ export const I18Next: Plugin = { const configuredLocales = Array.isArray(localeOptions) ? locales.map((locale) => { const localeOption = localeOptions.find((l) => l.type === locale.type) - const overrideResources = Object.fromEntries( - Object.entries(localeOption?.resources || {}).map( - ([key, value]) => [ - key.match(/plugins\/.+/) ? `@polar/polar/${key}` : key, - value, - ] - ) - ) + const overrideResources = localeOption?.resources || {} return { type: locale.type, resources: toMerged(locale.resources, overrideResources), diff --git a/src/plugins/fullscreen/types.ts b/src/plugins/fullscreen/types.ts index 9b4138427..aa1e5c386 100644 --- a/src/plugins/fullscreen/types.ts +++ b/src/plugins/fullscreen/types.ts @@ -3,7 +3,7 @@ import type { PluginOptions } from '@/core' /** * Plugin identifier. */ -export const PluginId = '@polar/polar/plugins/fullscreen' +export const PluginId = 'fullscreen' /** * Plugin options for fullscreen plugin. diff --git a/src/plugins/iconMenu/types.ts b/src/plugins/iconMenu/types.ts index 653d3aec4..679c1afe7 100644 --- a/src/plugins/iconMenu/types.ts +++ b/src/plugins/iconMenu/types.ts @@ -5,7 +5,7 @@ import type { NineLayoutTag } from '@/core/utils/NineLayoutTag.ts' /** * Plugin identifier. */ -export const PluginId = '@polar/polar/plugins/iconMenu' +export const PluginId = 'iconMenu' export interface Menu { /** From 0c2d5c3114e1af1e6c26e49a2985a676fae85a57 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Fri, 22 Aug 2025 09:40:36 +0200 Subject: [PATCH 249/697] fix: use correct type for Locales.resources --- src/core/types.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/types.ts b/src/core/types.ts index d4c8212bb..1d696885c 100644 --- a/src/core/types.ts +++ b/src/core/types.ts @@ -1,4 +1,4 @@ -import type { Resource } from 'i18next' +import type { ResourceKey } from 'i18next' import type { Feature } from 'ol' import type { SetupStoreDefinition } from 'pinia' import type { Component, VueElement } from 'vue' @@ -15,7 +15,7 @@ import type { FullscreenPluginOptions } from '@/plugins/fullscreen' export type PartialBy = Omit & Partial> export interface Locale { - resources: Resource + resources: ResourceKey /** Language key as described in the i18next documentation */ type: string } From 63fdf1b154e3e64f9e874f75006bfb5161ee6980 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Fri, 22 Aug 2025 10:22:44 +0200 Subject: [PATCH 250/697] fix: PolarPluginStore type works now again The previous state breaks the core, as setupPlugin and teardownPlugin are swallowed by `[key: string]`. This definition with `as PolarPluginStore` provides actual type-safety, as this works iff `setupPlugin` and `teardownPlugin` are provided as typed. --- src/core/types.ts | 2 -- src/plugins/fullscreen/index.ts | 4 ++-- src/plugins/iconMenu/index.ts | 4 ++-- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/core/types.ts b/src/core/types.ts index 1d696885c..30449e6ca 100644 --- a/src/core/types.ts +++ b/src/core/types.ts @@ -36,8 +36,6 @@ export type PolarPluginStore = SetupStoreDefinition< { setupPlugin: () => void teardownPlugin: () => void - // Allow additional actions to be exported - [key: string]: (...args: unknown[]) => unknown } > diff --git a/src/plugins/fullscreen/index.ts b/src/plugins/fullscreen/index.ts index 879c874ce..8ee4eaf36 100644 --- a/src/plugins/fullscreen/index.ts +++ b/src/plugins/fullscreen/index.ts @@ -8,7 +8,7 @@ import component from './components/FullscreenUI.ce.vue' import locales from './locales' import { useFullscreenStore } from './store' import { PluginId, type FullscreenPluginOptions } from './types' -import type { PluginContainer } from '@/core' +import type { PluginContainer, PolarPluginStore } from '@/core' /** * Creates a plugin which provides a fullscreen mode with a fullscreen toggle button. @@ -22,7 +22,7 @@ export default function pluginFullscreen( id: PluginId, component, locales, - storeModule: useFullscreenStore, + storeModule: useFullscreenStore as PolarPluginStore, options: { displayComponent: true, ...options, diff --git a/src/plugins/iconMenu/index.ts b/src/plugins/iconMenu/index.ts index bf1da8031..01051dc2c 100644 --- a/src/plugins/iconMenu/index.ts +++ b/src/plugins/iconMenu/index.ts @@ -8,7 +8,7 @@ import component from './components/IconMenu.ce.vue' import locales from './locales' import { useIconMenuStore } from './store' import { PluginId, type IconMenuPluginOptions } from './types' -import type { PluginContainer } from '@/core' +import type { PluginContainer, PolarPluginStore } from '@/core' /** * Creates a plugin which adds the possibility to open various functionality as @@ -27,7 +27,7 @@ export default function pluginIconMenu( id: PluginId, component, locales, - storeModule: useIconMenuStore, + storeModule: useIconMenuStore as PolarPluginStore, options: { displayComponent: true, ...options, From 9f7aa054af99560a9814665380024c90378abdad Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Fri, 22 Aug 2025 10:54:07 +0200 Subject: [PATCH 251/697] chore: update dependencies --- package-lock.json | 445 ++++++++++++++++++++++------------------------ 1 file changed, 208 insertions(+), 237 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7518bb3e6..f562dd3fc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1540,16 +1540,16 @@ } }, "node_modules/@gerrit0/mini-shiki": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/@gerrit0/mini-shiki/-/mini-shiki-3.9.2.tgz", - "integrity": "sha512-Tvsj+AOO4Z8xLRJK900WkyfxHsZQu+Zm1//oT1w443PO6RiYMoq/4NGOhaNuZoUMYsjKIAPVQ6eOFMddj6yphQ==", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@gerrit0/mini-shiki/-/mini-shiki-3.11.0.tgz", + "integrity": "sha512-ooCDMAOKv71O7MszbXjSQGcI6K5T6NKlemQZOBHLq7Sv/oXCRfYbZ7UgbzFdl20lSXju6Juds4I3y30R6rHA4Q==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/engine-oniguruma": "^3.9.2", - "@shikijs/langs": "^3.9.2", - "@shikijs/themes": "^3.9.2", - "@shikijs/types": "^3.9.2", + "@shikijs/engine-oniguruma": "^3.11.0", + "@shikijs/langs": "^3.11.0", + "@shikijs/themes": "^3.11.0", + "@shikijs/types": "^3.11.0", "@shikijs/vscode-textmate": "^10.0.2" } }, @@ -1803,9 +1803,9 @@ "license": "Apache-2.0" }, "node_modules/@microsoft/api-extractor": { - "version": "7.52.10", - "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.52.10.tgz", - "integrity": "sha512-LhKytJM5ZJkbHQVfW/3o747rZUNs/MGg6j/wt/9qwwqEOfvUDTYXXxIBuMgrRXhJ528p41iyz4zjBVHZU74Odg==", + "version": "7.52.11", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.52.11.tgz", + "integrity": "sha512-IKQ7bHg6f/Io3dQds6r9QPYk4q0OlR9A4nFDtNhUt3UUIhyitbxAqRN1CLjUVtk6IBk3xzyCMOdwwtIXQ7AlGg==", "dev": true, "license": "MIT", "dependencies": { @@ -2193,9 +2193,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.46.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.46.3.tgz", - "integrity": "sha512-UmTdvXnLlqQNOCJnyksjPs1G4GqXNGW1LrzCe8+8QoaLhhDeTXYBgJ3k6x61WIhlHX2U+VzEJ55TtIjR/HTySA==", + "version": "4.47.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.47.1.tgz", + "integrity": "sha512-lTahKRJip0knffA/GTNFJMrToD+CM+JJ+Qt5kjzBK/sFQ0EWqfKW3AYQSlZXN98tX0lx66083U9JYIMioMMK7g==", "cpu": [ "arm" ], @@ -2206,9 +2206,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.46.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.46.3.tgz", - "integrity": "sha512-8NoxqLpXm7VyeI0ocidh335D6OKT0UJ6fHdnIxf3+6oOerZZc+O7r+UhvROji6OspyPm+rrIdb1gTXtVIqn+Sg==", + "version": "4.47.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.47.1.tgz", + "integrity": "sha512-uqxkb3RJLzlBbh/bbNQ4r7YpSZnjgMgyoEOY7Fy6GCbelkDSAzeiogxMG9TfLsBbqmGsdDObo3mzGqa8hps4MA==", "cpu": [ "arm64" ], @@ -2219,9 +2219,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.46.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.46.3.tgz", - "integrity": "sha512-csnNavqZVs1+7/hUKtgjMECsNG2cdB8F7XBHP6FfQjqhjF8rzMzb3SLyy/1BG7YSfQ+bG75Ph7DyedbUqwq1rA==", + "version": "4.47.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.47.1.tgz", + "integrity": "sha512-tV6reObmxBDS4DDyLzTDIpymthNlxrLBGAoQx6m2a7eifSNEZdkXQl1PE4ZjCkEDPVgNXSzND/k9AQ3mC4IOEQ==", "cpu": [ "arm64" ], @@ -2232,9 +2232,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.46.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.46.3.tgz", - "integrity": "sha512-r2MXNjbuYabSIX5yQqnT8SGSQ26XQc8fmp6UhlYJd95PZJkQD1u82fWP7HqvGUf33IsOC6qsiV+vcuD4SDP6iw==", + "version": "4.47.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.47.1.tgz", + "integrity": "sha512-XuJRPTnMk1lwsSnS3vYyVMu4x/+WIw1MMSiqj5C4j3QOWsMzbJEK90zG+SWV1h0B1ABGCQ0UZUjti+TQK35uHQ==", "cpu": [ "x64" ], @@ -2245,9 +2245,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.46.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.46.3.tgz", - "integrity": "sha512-uluObTmgPJDuJh9xqxyr7MV61Imq+0IvVsAlWyvxAaBSNzCcmZlhfYcRhCdMaCsy46ccZa7vtDDripgs9Jkqsw==", + "version": "4.47.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.47.1.tgz", + "integrity": "sha512-79BAm8Ag/tmJ5asCqgOXsb3WY28Rdd5Lxj8ONiQzWzy9LvWORd5qVuOnjlqiWWZJw+dWewEktZb5yiM1DLLaHw==", "cpu": [ "arm64" ], @@ -2258,9 +2258,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.46.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.46.3.tgz", - "integrity": "sha512-AVJXEq9RVHQnejdbFvh1eWEoobohUYN3nqJIPI4mNTMpsyYN01VvcAClxflyk2HIxvLpRcRggpX1m9hkXkpC/A==", + "version": "4.47.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.47.1.tgz", + "integrity": "sha512-OQ2/ZDGzdOOlyfqBiip0ZX/jVFekzYrGtUsqAfLDbWy0jh1PUU18+jYp8UMpqhly5ltEqotc2miLngf9FPSWIA==", "cpu": [ "x64" ], @@ -2271,9 +2271,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.46.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.46.3.tgz", - "integrity": "sha512-byyflM+huiwHlKi7VHLAYTKr67X199+V+mt1iRgJenAI594vcmGGddWlu6eHujmcdl6TqSNnvqaXJqZdnEWRGA==", + "version": "4.47.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.47.1.tgz", + "integrity": "sha512-HZZBXJL1udxlCVvoVadstgiU26seKkHbbAMLg7680gAcMnRNP9SAwTMVet02ANA94kXEI2VhBnXs4e5nf7KG2A==", "cpu": [ "arm" ], @@ -2284,9 +2284,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.46.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.46.3.tgz", - "integrity": "sha512-aLm3NMIjr4Y9LklrH5cu7yybBqoVCdr4Nvnm8WB7PKCn34fMCGypVNpGK0JQWdPAzR/FnoEoFtlRqZbBBLhVoQ==", + "version": "4.47.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.47.1.tgz", + "integrity": "sha512-sZ5p2I9UA7T950JmuZ3pgdKA6+RTBr+0FpK427ExW0t7n+QwYOcmDTK/aRlzoBrWyTpJNlS3kacgSlSTUg6P/Q==", "cpu": [ "arm" ], @@ -2297,9 +2297,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.46.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.46.3.tgz", - "integrity": "sha512-VtilE6eznJRDIoFOzaagQodUksTEfLIsvXymS+UdJiSXrPW7Ai+WG4uapAc3F7Hgs791TwdGh4xyOzbuzIZrnw==", + "version": "4.47.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.47.1.tgz", + "integrity": "sha512-3hBFoqPyU89Dyf1mQRXCdpc6qC6At3LV6jbbIOZd72jcx7xNk3aAp+EjzAtN6sDlmHFzsDJN5yeUySvorWeRXA==", "cpu": [ "arm64" ], @@ -2310,9 +2310,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.46.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.46.3.tgz", - "integrity": "sha512-dG3JuS6+cRAL0GQ925Vppafi0qwZnkHdPeuZIxIPXqkCLP02l7ka+OCyBoDEv8S+nKHxfjvjW4OZ7hTdHkx8/w==", + "version": "4.47.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.47.1.tgz", + "integrity": "sha512-49J4FnMHfGodJWPw73Ve+/hsPjZgcXQGkmqBGZFvltzBKRS+cvMiWNLadOMXKGnYRhs1ToTGM0sItKISoSGUNA==", "cpu": [ "arm64" ], @@ -2323,9 +2323,9 @@ ] }, "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.46.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.46.3.tgz", - "integrity": "sha512-iU8DxnxEKJptf8Vcx4XvAUdpkZfaz0KWfRrnIRrOndL0SvzEte+MTM7nDH4A2Now4FvTZ01yFAgj6TX/mZl8hQ==", + "version": "4.47.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.47.1.tgz", + "integrity": "sha512-4yYU8p7AneEpQkRX03pbpLmE21z5JNys16F1BZBZg5fP9rIlb0TkeQjn5du5w4agConCCEoYIG57sNxjryHEGg==", "cpu": [ "loong64" ], @@ -2336,9 +2336,9 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.46.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.46.3.tgz", - "integrity": "sha512-VrQZp9tkk0yozJoQvQcqlWiqaPnLM6uY1qPYXvukKePb0fqaiQtOdMJSxNFUZFsGw5oA5vvVokjHrx8a9Qsz2A==", + "version": "4.47.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.47.1.tgz", + "integrity": "sha512-fAiq+J28l2YMWgC39jz/zPi2jqc0y3GSRo1yyxlBHt6UN0yYgnegHSRPa3pnHS5amT/efXQrm0ug5+aNEu9UuQ==", "cpu": [ "ppc64" ], @@ -2349,9 +2349,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.46.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.46.3.tgz", - "integrity": "sha512-uf2eucWSUb+M7b0poZ/08LsbcRgaDYL8NCGjUeFMwCWFwOuFcZ8D9ayPl25P3pl+D2FH45EbHdfyUesQ2Lt9wA==", + "version": "4.47.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.47.1.tgz", + "integrity": "sha512-daoT0PMENNdjVYYU9xec30Y2prb1AbEIbb64sqkcQcSaR0zYuKkoPuhIztfxuqN82KYCKKrj+tQe4Gi7OSm1ow==", "cpu": [ "riscv64" ], @@ -2362,9 +2362,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.46.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.46.3.tgz", - "integrity": "sha512-7tnUcDvN8DHm/9ra+/nF7lLzYHDeODKKKrh6JmZejbh1FnCNZS8zMkZY5J4sEipy2OW1d1Ncc4gNHUd0DLqkSg==", + "version": "4.47.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.47.1.tgz", + "integrity": "sha512-JNyXaAhWtdzfXu5pUcHAuNwGQKevR+6z/poYQKVW+pLaYOj9G1meYc57/1Xv2u4uTxfu9qEWmNTjv/H/EpAisw==", "cpu": [ "riscv64" ], @@ -2375,9 +2375,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.46.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.46.3.tgz", - "integrity": "sha512-MUpAOallJim8CsJK+4Lc9tQzlfPbHxWDrGXZm2z6biaadNpvh3a5ewcdat478W+tXDoUiHwErX/dOql7ETcLqg==", + "version": "4.47.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.47.1.tgz", + "integrity": "sha512-U/CHbqKSwEQyZXjCpY43/GLYcTVKEXeRHw0rMBJP7fP3x6WpYG4LTJWR3ic6TeYKX6ZK7mrhltP4ppolyVhLVQ==", "cpu": [ "s390x" ], @@ -2388,9 +2388,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.46.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.46.3.tgz", - "integrity": "sha512-F42IgZI4JicE2vM2PWCe0N5mR5vR0gIdORPqhGQ32/u1S1v3kLtbZ0C/mi9FFk7C5T0PgdeyWEPajPjaUpyoKg==", + "version": "4.47.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.47.1.tgz", + "integrity": "sha512-uTLEakjxOTElfeZIGWkC34u2auLHB1AYS6wBjPGI00bWdxdLcCzK5awjs25YXpqB9lS8S0vbO0t9ZcBeNibA7g==", "cpu": [ "x64" ], @@ -2401,9 +2401,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.46.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.46.3.tgz", - "integrity": "sha512-oLc+JrwwvbimJUInzx56Q3ujL3Kkhxehg7O1gWAYzm8hImCd5ld1F2Gry5YDjR21MNb5WCKhC9hXgU7rRlyegQ==", + "version": "4.47.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.47.1.tgz", + "integrity": "sha512-Ft+d/9DXs30BK7CHCTX11FtQGHUdpNDLJW0HHLign4lgMgBcPFN3NkdIXhC5r9iwsMwYreBBc4Rho5ieOmKNVQ==", "cpu": [ "x64" ], @@ -2414,9 +2414,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.46.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.46.3.tgz", - "integrity": "sha512-lOrQ+BVRstruD1fkWg9yjmumhowR0oLAAzavB7yFSaGltY8klttmZtCLvOXCmGE9mLIn8IBV/IFrQOWz5xbFPg==", + "version": "4.47.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.47.1.tgz", + "integrity": "sha512-N9X5WqGYzZnjGAFsKSfYFtAShYjwOmFJoWbLg3dYixZOZqU7hdMq+/xyS14zKLhFhZDhP9VfkzQnsdk0ZDS9IA==", "cpu": [ "arm64" ], @@ -2427,9 +2427,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.46.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.46.3.tgz", - "integrity": "sha512-vvrVKPRS4GduGR7VMH8EylCBqsDcw6U+/0nPDuIjXQRbHJc6xOBj+frx8ksfZAh6+Fptw5wHrN7etlMmQnPQVg==", + "version": "4.47.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.47.1.tgz", + "integrity": "sha512-O+KcfeCORZADEY8oQJk4HK8wtEOCRE4MdOkb8qGZQNun3jzmj2nmhV/B/ZaaZOkPmJyvm/gW9n0gsB4eRa1eiQ==", "cpu": [ "ia32" ], @@ -2440,9 +2440,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.46.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.46.3.tgz", - "integrity": "sha512-fi3cPxCnu3ZeM3EwKZPgXbWoGzm2XHgB/WShKI81uj8wG0+laobmqy5wbgEwzstlbLu4MyO8C19FyhhWseYKNQ==", + "version": "4.47.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.47.1.tgz", + "integrity": "sha512-CpKnYa8eHthJa3c+C38v/E+/KZyF1Jdh2Cz3DyKZqEWYgrM1IHFArXNWvBLPQCKUEsAqqKX27tTqVEFbDNUcOA==", "cpu": [ "x64" ], @@ -2628,40 +2628,40 @@ "license": "MIT" }, "node_modules/@shikijs/engine-oniguruma": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.10.0.tgz", - "integrity": "sha512-O7ofyEUm4uDBlfd+2YPc7GHA72Kr3eUw5wSgZzgK6GUniD52106diH9Fo7+7l+lhBiyWntYcvzGK8QMciwf+Xw==", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.11.0.tgz", + "integrity": "sha512-4DwIjIgETK04VneKbfOE4WNm4Q7WC1wo95wv82PoHKdqX4/9qLRUwrfKlmhf0gAuvT6GHy0uc7t9cailk6Tbhw==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/types": "3.10.0", + "@shikijs/types": "3.11.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "node_modules/@shikijs/langs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.10.0.tgz", - "integrity": "sha512-uE9ojRozrm1PmUw2aM8EbHpT/XdWzSdv/sWRN5MCMdXMW1eOl4bMxWAlY5yhZj0GghYfMbBzMlcDKqrIjOue/Q==", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.11.0.tgz", + "integrity": "sha512-Njg/nFL4HDcf/ObxcK2VeyidIq61EeLmocrwTHGGpOQx0BzrPWM1j55XtKQ1LvvDWH15cjQy7rg96aJ1/l63uw==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/types": "3.10.0" + "@shikijs/types": "3.11.0" } }, "node_modules/@shikijs/themes": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.10.0.tgz", - "integrity": "sha512-JDnZKjYs4nhBniOmVILfEFZCA9JxxLnxG4PRQQQudn8DREhoWQelw7fhv+3Up8phzkoZWQ9TW2jp9k+6DjJS5A==", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.11.0.tgz", + "integrity": "sha512-BhhWRzCTEk2CtWt4S4bgsOqPJRkapvxdsifAwqP+6mk5uxboAQchc0etiJ0iIasxnMsb764qGD24DK9albcU9Q==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/types": "3.10.0" + "@shikijs/types": "3.11.0" } }, "node_modules/@shikijs/types": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.10.0.tgz", - "integrity": "sha512-PAeyajDDhdzefMiSZn7ENCwVaACMnO53+p5pSrJpIQOJTSX+4Qn28Y5e7I6v9wkJNyepRFfbZmzmbbnzjxBMEA==", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.11.0.tgz", + "integrity": "sha512-RB7IMo2E7NZHyfkqAuaf4CofyY8bPzjWPjJRzn6SEak3b46fIQyG6Vx5fG/obqkfppQ+g8vEsiD7Uc6lqQt32Q==", "dev": true, "license": "MIT", "dependencies": { @@ -3590,14 +3590,14 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.18.tgz", - "integrity": "sha512-3slwjQrrV1TO8MoXgy3aynDQ7lslj5UqDxuHnrzHtpON5CBinhWjJETciPngpin/T3OuW3tXUf86tEurusnztw==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.19.tgz", + "integrity": "sha512-/afpyvlkrSNYbPo94Qu8GtIOWS+g5TRdOvs6XZNw6pWQQmj5pBgSZvEPOIZlqWq0YvoUhDDQaQ2TnzuJdOV4hA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.28.0", - "@vue/shared": "3.5.18", + "@babel/parser": "^7.28.3", + "@vue/shared": "3.5.19", "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.1" @@ -3617,28 +3617,28 @@ } }, "node_modules/@vue/compiler-dom": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.18.tgz", - "integrity": "sha512-RMbU6NTU70++B1JyVJbNbeFkK+A+Q7y9XKE2EM4NLGm2WFR8x9MbAtWxPPLdm0wUkuZv9trpwfSlL6tjdIa1+A==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.19.tgz", + "integrity": "sha512-Drs6rPHQZx/pN9S6ml3Z3K/TWCIRPvzG2B/o5kFK9X0MNHt8/E+38tiRfojufrYBfA6FQUFB2qBBRXlcSXWtOA==", "dev": true, "license": "MIT", "dependencies": { - "@vue/compiler-core": "3.5.18", - "@vue/shared": "3.5.18" + "@vue/compiler-core": "3.5.19", + "@vue/shared": "3.5.19" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.18.tgz", - "integrity": "sha512-5aBjvGqsWs+MoxswZPoTB9nSDb3dhd1x30xrrltKujlCxo48j8HGDNj3QPhF4VIS0VQDUrA1xUfp2hEa+FNyXA==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.19.tgz", + "integrity": "sha512-YWCm1CYaJ+2RvNmhCwI7t3I3nU+hOrWGWMsn+Z/kmm1jy5iinnVtlmkiZwbLlbV1SRizX7vHsc0/bG5dj0zRTg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.28.0", - "@vue/compiler-core": "3.5.18", - "@vue/compiler-dom": "3.5.18", - "@vue/compiler-ssr": "3.5.18", - "@vue/shared": "3.5.18", + "@babel/parser": "^7.28.3", + "@vue/compiler-core": "3.5.19", + "@vue/compiler-dom": "3.5.19", + "@vue/compiler-ssr": "3.5.19", + "@vue/shared": "3.5.19", "estree-walker": "^2.0.2", "magic-string": "^0.30.17", "postcss": "^8.5.6", @@ -3646,14 +3646,14 @@ } }, "node_modules/@vue/compiler-ssr": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.18.tgz", - "integrity": "sha512-xM16Ak7rSWHkM3m22NlmcdIM+K4BMyFARAfV9hYFl+SFuRzrZ3uGMNW05kA5pmeMa0X9X963Kgou7ufdbpOP9g==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.19.tgz", + "integrity": "sha512-/wx0VZtkWOPdiQLWPeQeqpHWR/LuNC7bHfSX7OayBTtUy8wur6vT6EQIX6Et86aED6J+y8tTw43qo2uoqGg5sw==", "dev": true, "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.5.18", - "@vue/shared": "3.5.18" + "@vue/compiler-dom": "3.5.19", + "@vue/shared": "3.5.19" } }, "node_modules/@vue/compiler-vue2": { @@ -3792,57 +3792,57 @@ } }, "node_modules/@vue/reactivity": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.18.tgz", - "integrity": "sha512-x0vPO5Imw+3sChLM5Y+B6G1zPjwdOri9e8V21NnTnlEvkxatHEH5B5KEAJcjuzQ7BsjGrKtfzuQ5eQwXh8HXBg==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.19.tgz", + "integrity": "sha512-4bueZg2qs5MSsK2dQk3sssV0cfvxb/QZntTC8v7J448GLgmfPkQ+27aDjlt40+XFqOwUq5yRxK5uQh14Fc9eVA==", "dev": true, "license": "MIT", "dependencies": { - "@vue/shared": "3.5.18" + "@vue/shared": "3.5.19" } }, "node_modules/@vue/runtime-core": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.18.tgz", - "integrity": "sha512-DUpHa1HpeOQEt6+3nheUfqVXRog2kivkXHUhoqJiKR33SO4x+a5uNOMkV487WPerQkL0vUuRvq/7JhRgLW3S+w==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.19.tgz", + "integrity": "sha512-TaooCr8Hge1sWjLSyhdubnuofs3shhzZGfyD11gFolZrny76drPwBVQj28/z/4+msSFb18tOIg6VVVgf9/IbIA==", "dev": true, "license": "MIT", "dependencies": { - "@vue/reactivity": "3.5.18", - "@vue/shared": "3.5.18" + "@vue/reactivity": "3.5.19", + "@vue/shared": "3.5.19" } }, "node_modules/@vue/runtime-dom": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.18.tgz", - "integrity": "sha512-YwDj71iV05j4RnzZnZtGaXwPoUWeRsqinblgVJwR8XTXYZ9D5PbahHQgsbmzUvCWNF6x7siQ89HgnX5eWkr3mw==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.19.tgz", + "integrity": "sha512-qmahqeok6ztuUTmV8lqd7N9ymbBzctNF885n8gL3xdCC1u2RnM/coX16Via0AiONQXUoYpxPojL3U1IsDgSWUQ==", "dev": true, "license": "MIT", "dependencies": { - "@vue/reactivity": "3.5.18", - "@vue/runtime-core": "3.5.18", - "@vue/shared": "3.5.18", + "@vue/reactivity": "3.5.19", + "@vue/runtime-core": "3.5.19", + "@vue/shared": "3.5.19", "csstype": "^3.1.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.18.tgz", - "integrity": "sha512-PvIHLUoWgSbDG7zLHqSqaCoZvHi6NNmfVFOqO+OnwvqMz/tqQr3FuGWS8ufluNddk7ZLBJYMrjcw1c6XzR12mA==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.19.tgz", + "integrity": "sha512-ZJ/zV9SQuaIO+BEEVq/2a6fipyrSYfjKMU3267bPUk+oTx/hZq3RzV7VCh0Unlppt39Bvh6+NzxeopIFv4HJNg==", "dev": true, "license": "MIT", "dependencies": { - "@vue/compiler-ssr": "3.5.18", - "@vue/shared": "3.5.18" + "@vue/compiler-ssr": "3.5.19", + "@vue/shared": "3.5.19" }, "peerDependencies": { - "vue": "3.5.18" + "vue": "3.5.19" } }, "node_modules/@vue/shared": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.18.tgz", - "integrity": "sha512-cZy8Dq+uuIXbxCZpuLd2GJdeSO/lIzIspC2WtkqIpje5QyFbvLaI5wZtdUjLHjGZrlVX6GilejatWwVYYRc8tA==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.19.tgz", + "integrity": "sha512-IhXCOn08wgKrLQxRFKKlSacWg4Goi1BolrdEeLYn6tgHjJNXVrWJ5nzoxZqNwl5p88aLlQ8LOaoMa3AYvaKJ/Q==", "dev": true, "license": "MIT" }, @@ -4497,9 +4497,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001735", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001735.tgz", - "integrity": "sha512-EV/laoX7Wq2J9TQlyIXRxTJqIw4sxfXS4OYgudGxBYRuTv0q7AM6yMEpU/Vo1I94thg9U6EZ2NfZx9GJq83u7w==", + "version": "1.0.30001737", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001737.tgz", + "integrity": "sha512-BiloLiXtQNrY5UyF0+1nSJLXUENuhka2pzy2Fx5pGxqavdrxSCW4U6Pn/PoG3Efspi2frRbHpBV2XsrPE6EDlw==", "dev": true, "funding": [ { @@ -4604,9 +4604,9 @@ } }, "node_modules/chai": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.1.tgz", - "integrity": "sha512-48af6xm9gQK8rhIcOxWwdGzIervm8BVTin+yRp9HEvU20BtVZ2lBywlIJBzwaDtvo0FvjeL7QdCADoUoqIbV3A==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.2.tgz", + "integrity": "sha512-kx7GHSOBiiIQ+DDgMP6YMtYkb/3Usm2nUYblNEM9P+/OfkuP7OjfoDlq/DCe1OU0GsREUa0rNAxZmzxgO6+jWg==", "dev": true, "license": "MIT", "dependencies": { @@ -4951,9 +4951,9 @@ } }, "node_modules/core-js": { - "version": "3.45.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.45.0.tgz", - "integrity": "sha512-c2KZL9lP4DjkN3hk/an4pWn5b5ZefhRJnAc42n6LJ19kSnbeRbdQZE5dSeE2LBol1OwJD3X1BQvFTAsa8ReeDA==", + "version": "3.45.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.45.1.tgz", + "integrity": "sha512-L4NPsJlCfZsPeXukyzHFlg/i7IIVwHSItR0wg0FLNqYClJ4MQYTYLbC7EkjKYRLZF2iof2MUgN0EGy7MdQFChg==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -5421,9 +5421,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.207", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.207.tgz", - "integrity": "sha512-mryFrrL/GXDTmAtIVMVf+eIXM09BBPlO5IQ7lUyKmK8d+A4VpRGG+M3ofoVef6qyF8s60rJei8ymlJxjUA8Faw==", + "version": "1.5.208", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.208.tgz", + "integrity": "sha512-ozZyibehoe7tOhNaf16lKmljVf+3npZcJIEbJRVftVsmAg5TeA1mGS9dVCZzOwr2xT7xK15V0p7+GZqSPgkuPg==", "dev": true, "license": "ISC" }, @@ -6164,9 +6164,9 @@ } }, "node_modules/eslint-plugin-vue-pug": { - "version": "1.0.0-alpha.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue-pug/-/eslint-plugin-vue-pug-1.0.0-alpha.3.tgz", - "integrity": "sha512-PHHCfa/QM0YJgGxdsrO8lThsgrO6ZMq6AxpOIsZr5chWImFRMxC6K/773Jq0GumQljrSp3hGPW7E/upRiBP07w==", + "version": "1.0.0-alpha.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue-pug/-/eslint-plugin-vue-pug-1.0.0-alpha.4.tgz", + "integrity": "sha512-3KJ6jun1BE82O2fvRJI1DubMuk0AJFLQrG37uGXeWAR2n2m+x6hcwcxrGrzCC7U8JYip2pQ+LAh1CgXG9DutMg==", "dev": true, "license": "MIT", "dependencies": { @@ -7118,9 +7118,9 @@ } }, "node_modules/i18next": { - "version": "25.3.6", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-25.3.6.tgz", - "integrity": "sha512-dThZ0CTCM3sUG/qS0ZtQYZQcUI6DtBN8yBHK+SKEqihPcEYmjVWh/YJ4luic73Iq6Uxhp6q7LJJntRK5+1t7jQ==", + "version": "25.4.0", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-25.4.0.tgz", + "integrity": "sha512-UH5aiamXsO3cfrZFurCHiB6YSs3C+s+XY9UaJllMMSbmaoXILxFgqDEZu4NbfzJFjmUo3BNMa++Rjkr3ofjfLw==", "dev": true, "funding": [ { @@ -8309,15 +8309,15 @@ } }, "node_modules/local-pkg": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.1.1.tgz", - "integrity": "sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.1.2.tgz", + "integrity": "sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==", "dev": true, "license": "MIT", "dependencies": { "mlly": "^1.7.4", - "pkg-types": "^2.0.1", - "quansync": "^0.2.8" + "pkg-types": "^2.3.0", + "quansync": "^0.2.11" }, "engines": { "node": ">=14" @@ -8396,9 +8396,9 @@ } }, "node_modules/loupe": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.0.tgz", - "integrity": "sha512-2NCfZcT5VGVNX9mSZIxLRkEAegDGBpuQZBy13desuHeVORmBDyAET4TkJr4SjqQy3A8JDofMN6LpkK8Xcm/dlw==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz", + "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==", "dev": true, "license": "MIT" }, @@ -8417,13 +8417,13 @@ "license": "MIT" }, "node_modules/magic-string": { - "version": "0.30.17", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", - "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "version": "0.30.18", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.18.tgz", + "integrity": "sha512-yi8swmWbO17qHhwIBNeeZxTceJMeBvWJaId6dyvTSOwTipqeHhMhOrz6513r1sOKnpvQ7zkhlG8tPrpilwTxHQ==", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0" + "@jridgewell/sourcemap-codec": "^1.5.5" } }, "node_modules/mapbox-to-css-font": { @@ -10315,9 +10315,9 @@ } }, "node_modules/pkg-types": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.2.0.tgz", - "integrity": "sha512-2SM/GZGAEkPp3KWORxQZns4M+WSeXbC2HEvmOIJe3Cmiv6ieAJvdVhDldtHqM5J1Y7MrR1XhkBT/rMlhh9FdqQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.0.tgz", + "integrity": "sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==", "dev": true, "license": "MIT", "dependencies": { @@ -11073,9 +11073,9 @@ } }, "node_modules/rollup": { - "version": "4.46.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.46.3.tgz", - "integrity": "sha512-RZn2XTjXb8t5g13f5YclGoilU/kwT696DIkY3sywjdZidNSi3+vseaQov7D7BZXVJCPv3pDWUN69C78GGbXsKw==", + "version": "4.47.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.47.1.tgz", + "integrity": "sha512-iasGAQoZ5dWDzULEUX3jiW0oB1qyFOepSyDyoU6S/OhVlDIwj5knI5QBa5RRQ0sK7OE0v+8VIi2JuV+G+3tfNg==", "license": "MIT", "dependencies": { "@types/estree": "1.0.8" @@ -11088,26 +11088,26 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.46.3", - "@rollup/rollup-android-arm64": "4.46.3", - "@rollup/rollup-darwin-arm64": "4.46.3", - "@rollup/rollup-darwin-x64": "4.46.3", - "@rollup/rollup-freebsd-arm64": "4.46.3", - "@rollup/rollup-freebsd-x64": "4.46.3", - "@rollup/rollup-linux-arm-gnueabihf": "4.46.3", - "@rollup/rollup-linux-arm-musleabihf": "4.46.3", - "@rollup/rollup-linux-arm64-gnu": "4.46.3", - "@rollup/rollup-linux-arm64-musl": "4.46.3", - "@rollup/rollup-linux-loongarch64-gnu": "4.46.3", - "@rollup/rollup-linux-ppc64-gnu": "4.46.3", - "@rollup/rollup-linux-riscv64-gnu": "4.46.3", - "@rollup/rollup-linux-riscv64-musl": "4.46.3", - "@rollup/rollup-linux-s390x-gnu": "4.46.3", - "@rollup/rollup-linux-x64-gnu": "4.46.3", - "@rollup/rollup-linux-x64-musl": "4.46.3", - "@rollup/rollup-win32-arm64-msvc": "4.46.3", - "@rollup/rollup-win32-ia32-msvc": "4.46.3", - "@rollup/rollup-win32-x64-msvc": "4.46.3", + "@rollup/rollup-android-arm-eabi": "4.47.1", + "@rollup/rollup-android-arm64": "4.47.1", + "@rollup/rollup-darwin-arm64": "4.47.1", + "@rollup/rollup-darwin-x64": "4.47.1", + "@rollup/rollup-freebsd-arm64": "4.47.1", + "@rollup/rollup-freebsd-x64": "4.47.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.47.1", + "@rollup/rollup-linux-arm-musleabihf": "4.47.1", + "@rollup/rollup-linux-arm64-gnu": "4.47.1", + "@rollup/rollup-linux-arm64-musl": "4.47.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.47.1", + "@rollup/rollup-linux-ppc64-gnu": "4.47.1", + "@rollup/rollup-linux-riscv64-gnu": "4.47.1", + "@rollup/rollup-linux-riscv64-musl": "4.47.1", + "@rollup/rollup-linux-s390x-gnu": "4.47.1", + "@rollup/rollup-linux-x64-gnu": "4.47.1", + "@rollup/rollup-linux-x64-musl": "4.47.1", + "@rollup/rollup-win32-arm64-msvc": "4.47.1", + "@rollup/rollup-win32-ia32-msvc": "4.47.1", + "@rollup/rollup-win32-x64-msvc": "4.47.1", "fsevents": "~2.3.2" } }, @@ -13355,17 +13355,17 @@ "license": "MIT" }, "node_modules/vue": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.18.tgz", - "integrity": "sha512-7W4Y4ZbMiQ3SEo+m9lnoNpV9xG7QVMLa+/0RFwwiAVkeYoyGXqWE85jabU4pllJNUzqfLShJ5YLptewhCWUgNA==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.19.tgz", + "integrity": "sha512-ZRh0HTmw6KChRYWgN8Ox/wi7VhpuGlvMPrHjIsdRbzKNgECFLzy+dKL5z9yGaBSjCpmcfJCbh3I1tNSRmBz2tg==", "dev": true, "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.5.18", - "@vue/compiler-sfc": "3.5.18", - "@vue/runtime-dom": "3.5.18", - "@vue/server-renderer": "3.5.18", - "@vue/shared": "3.5.18" + "@vue/compiler-dom": "3.5.19", + "@vue/compiler-sfc": "3.5.19", + "@vue/runtime-dom": "3.5.19", + "@vue/server-renderer": "3.5.19", + "@vue/shared": "3.5.19" }, "peerDependencies": { "typescript": "*" @@ -13421,14 +13421,14 @@ } }, "node_modules/vue-tsc": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.5.tgz", - "integrity": "sha512-PsTFN9lo1HJCrZw9NoqjYcAbYDXY0cOKyuW2E7naX5jcaVyWpqEsZOHN9Dws5890E8e5SDAD4L4Zam3dxG3/Cw==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.6.tgz", + "integrity": "sha512-Tbs8Whd43R2e2nxez4WXPvvdjGbW24rOSgRhLOHXzWiT4pcP4G7KeWh0YCn18rF4bVwv7tggLLZ6MJnO6jXPBg==", "dev": true, "license": "MIT", "dependencies": { - "@volar/typescript": "2.4.22", - "@vue/language-core": "3.0.5" + "@volar/typescript": "2.4.23", + "@vue/language-core": "3.0.6" }, "bin": { "vue-tsc": "bin/vue-tsc.js" @@ -13437,43 +13437,14 @@ "typescript": ">=5.0.0" } }, - "node_modules/vue-tsc/node_modules/@volar/language-core": { - "version": "2.4.22", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.22.tgz", - "integrity": "sha512-gp4M7Di5KgNyIyO903wTClYBavRt6UyFNpc5LWfyZr1lBsTUY+QrVZfmbNF2aCyfklBOVk9YC4p+zkwoyT7ECg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@volar/source-map": "2.4.22" - } - }, - "node_modules/vue-tsc/node_modules/@volar/source-map": { - "version": "2.4.22", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.22.tgz", - "integrity": "sha512-L2nVr/1vei0xKRgO2tYVXtJYd09HTRjaZi418e85Q+QdbbqA8h7bBjfNyPPSsjnrOO4l4kaAo78c8SQUAdHvgA==", - "dev": true, - "license": "MIT" - }, - "node_modules/vue-tsc/node_modules/@volar/typescript": { - "version": "2.4.22", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.22.tgz", - "integrity": "sha512-6ZczlJW1/GWTrNnkmZxJp4qyBt/SGVlcTuCWpI5zLrdPdCZsj66Aff9ZsfFaT3TyjG8zVYgBMYPuCm/eRkpcpQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@volar/language-core": "2.4.22", - "path-browserify": "^1.0.1", - "vscode-uri": "^3.0.8" - } - }, "node_modules/vue-tsc/node_modules/@vue/language-core": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.5.tgz", - "integrity": "sha512-gCEjn9Ik7I/seHVNIEipOm8W+f3/kg60e8s1IgIkMYma2wu9ZGUTMv3mSL2bX+Md2L8fslceJ4SU8j1fgSRoiw==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.6.tgz", + "integrity": "sha512-e2RRzYWm+qGm8apUHW1wA5RQxzNhkqbbKdbKhiDUcmMrNAZGyM8aTiL3UrTqkaFI5s7wJRGGrp4u3jgusuBp2A==", "dev": true, "license": "MIT", "dependencies": { - "@volar/language-core": "2.4.22", + "@volar/language-core": "2.4.23", "@vue/compiler-dom": "^3.5.0", "@vue/compiler-vue2": "^2.7.16", "@vue/shared": "^3.5.0", @@ -14106,9 +14077,9 @@ } }, "node_modules/yoctocolors": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.1.tgz", - "integrity": "sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.2.tgz", + "integrity": "sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==", "dev": true, "license": "MIT", "engines": { From 21bb5adba1cbde8422f243b4bc2034bac9e3e29e Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Fri, 22 Aug 2025 10:55:06 +0200 Subject: [PATCH 252/697] chore(core): improve TSDoc in types --- src/core/types.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/types.ts b/src/core/types.ts index 30449e6ca..cdf77b682 100644 --- a/src/core/types.ts +++ b/src/core/types.ts @@ -10,7 +10,7 @@ import type { FullscreenPluginOptions } from '@/plugins/fullscreen' * * Makes the properties defined by type `K` optional in type `T`. * - * Example: PartialBy\ + * @example `PartialBy` */ export type PartialBy = Omit & Partial> From c8f8c251baf336df33bdd803a973cb8333cdfdf0 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Fri, 22 Aug 2025 10:59:25 +0200 Subject: [PATCH 253/697] chore: fix dependency type of vite-plugin-kern-extra-icons --- package-lock.json | 73 +++++++++++++++++++++++++++++++++++++++++++---- package.json | 4 +-- 2 files changed, 68 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index f562dd3fc..913e66534 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,9 +9,6 @@ "version": "0.1.0", "hasInstallScript": true, "license": "EUPL-1.2", - "dependencies": { - "vite-plugin-kern-extra-icons": "^0.1.0" - }, "devDependencies": { "@cesium/engine": "^15.0.0", "@dataport/eslint-config-geodev": "^0.3.3", @@ -54,6 +51,7 @@ "vite-plugin-checker": "^0.10.2", "vite-plugin-commonjs": "^0.10.4", "vite-plugin-dts": "^4.5.4", + "vite-plugin-kern-extra-icons": "^0.1.0", "vite-plugin-vue-devtools": "^8.0.0", "vitest": "^3.2.4", "vue": "^3.5.18", @@ -889,6 +887,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -905,6 +904,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -921,6 +921,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -937,6 +938,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -953,6 +955,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -969,6 +972,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -985,6 +989,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1001,6 +1006,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1017,6 +1023,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1033,6 +1040,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1049,6 +1057,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1065,6 +1074,7 @@ "cpu": [ "loong64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1081,6 +1091,7 @@ "cpu": [ "mips64el" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1097,6 +1108,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1113,6 +1125,7 @@ "cpu": [ "riscv64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1129,6 +1142,7 @@ "cpu": [ "s390x" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1145,6 +1159,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1161,6 +1176,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1177,6 +1193,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1193,6 +1210,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1209,6 +1227,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1225,6 +1244,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1241,6 +1261,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1257,6 +1278,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1273,6 +1295,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1289,6 +1312,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1800,6 +1824,7 @@ "version": "0.34.1", "resolved": "https://registry.npmjs.org/@material-symbols/svg-400/-/svg-400-0.34.1.tgz", "integrity": "sha512-bg7NonzPzTpFpq1yBW0T6/mFKxlR2oRoNwQgYfDdO1EGxV8HhX3+nVL9mFoYWOkFcpvEyI5s83frBS7shin4ew==", + "dev": true, "license": "Apache-2.0" }, "node_modules/@microsoft/api-extractor": { @@ -2199,6 +2224,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2212,6 +2238,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2225,6 +2252,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2238,6 +2266,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2251,6 +2280,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2264,6 +2294,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2277,6 +2308,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2290,6 +2322,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2303,6 +2336,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2316,6 +2350,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2329,6 +2364,7 @@ "cpu": [ "loong64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2342,6 +2378,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2355,6 +2392,7 @@ "cpu": [ "riscv64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2368,6 +2406,7 @@ "cpu": [ "riscv64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2381,6 +2420,7 @@ "cpu": [ "s390x" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2394,6 +2434,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2407,6 +2448,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2420,6 +2462,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2433,6 +2476,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2446,6 +2490,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2789,6 +2834,7 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, "license": "MIT" }, "node_modules/@types/hast": { @@ -2836,7 +2882,7 @@ "version": "24.3.0", "resolved": "https://registry.npmjs.org/@types/node/-/node-24.3.0.tgz", "integrity": "sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "undici-types": "~7.10.0" @@ -5677,6 +5723,7 @@ "version": "0.25.9", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.9.tgz", "integrity": "sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==", + "dev": true, "hasInstallScript": true, "license": "MIT", "bin": { @@ -6620,6 +6667,7 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, @@ -7106,6 +7154,7 @@ "version": "9.1.7", "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz", "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==", + "dev": true, "license": "MIT", "bin": { "husky": "bin.js" @@ -9531,6 +9580,7 @@ "version": "3.3.11", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, "funding": [ { "type": "github", @@ -10277,6 +10327,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, "license": "ISC" }, "node_modules/picomatch": { @@ -10533,6 +10584,7 @@ "version": "8.5.6", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, "funding": [ { "type": "opencollective", @@ -11076,6 +11128,7 @@ "version": "4.47.1", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.47.1.tgz", "integrity": "sha512-iasGAQoZ5dWDzULEUX3jiW0oB1qyFOepSyDyoU6S/OhVlDIwj5knI5QBa5RRQ0sK7OE0v+8VIi2JuV+G+3tfNg==", + "dev": true, "license": "MIT", "dependencies": { "@types/estree": "1.0.8" @@ -11569,6 +11622,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -12140,6 +12194,7 @@ "version": "0.2.14", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", + "dev": true, "license": "MIT", "dependencies": { "fdir": "^6.4.4", @@ -12156,6 +12211,7 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, "license": "MIT", "engines": { "node": ">=12.0.0" @@ -12173,6 +12229,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -12626,7 +12683,7 @@ "version": "7.10.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.10.0.tgz", "integrity": "sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==", - "devOptional": true, + "dev": true, "license": "MIT" }, "node_modules/unicorn-magic": { @@ -12849,6 +12906,7 @@ "version": "7.1.3", "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.3.tgz", "integrity": "sha512-OOUi5zjkDxYrKhTV3V7iKsoS37VUM7v40+HuwEmcrsf11Cdx9y3DIr2Px6liIcZFwt3XSRpQvFpL3WVy7ApkGw==", + "dev": true, "license": "MIT", "dependencies": { "esbuild": "^0.25.0", @@ -13154,6 +13212,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/vite-plugin-kern-extra-icons/-/vite-plugin-kern-extra-icons-0.1.0.tgz", "integrity": "sha512-POyD2LEPQLr8249Wtb1ySToA73iY+kvn0BRR4MFWoLt7bhYMb2xopoKWe8+It13lVMOlKbCKYBQltboVNkWcHQ==", + "dev": true, "license": "EUPL-1.2", "dependencies": { "@material-symbols/svg-400": "^0.34.1", @@ -13236,6 +13295,7 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, "license": "MIT", "engines": { "node": ">=12.0.0" @@ -13253,6 +13313,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -13980,7 +14041,7 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", - "devOptional": true, + "dev": true, "license": "ISC", "bin": { "yaml": "bin.mjs" diff --git a/package.json b/package.json index 8faa322c8..33fd5afbc 100644 --- a/package.json +++ b/package.json @@ -111,12 +111,10 @@ "vite-plugin-checker": "^0.10.2", "vite-plugin-commonjs": "^0.10.4", "vite-plugin-dts": "^4.5.4", + "vite-plugin-kern-extra-icons": "^0.1.0", "vite-plugin-vue-devtools": "^8.0.0", "vitest": "^3.2.4", "vue": "^3.5.18", "vue-tsc": "^3.0.4" - }, - "dependencies": { - "vite-plugin-kern-extra-icons": "^0.1.0" } } From 9fcdc529d1885257de3d01673894351120305a43 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Fri, 22 Aug 2025 11:01:34 +0200 Subject: [PATCH 254/697] fix(core): change Locale.resources type The old type allows `resources` to be a string. While this is perfectly fine with i18next, we do not want to allow this behaviour in POLAR. It makes merging locales with overrides more difficult while yielding no clear benefit. Therefore, we require the top-level to be a Record. --- src/core/types.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/types.ts b/src/core/types.ts index cdf77b682..28fd1bbcb 100644 --- a/src/core/types.ts +++ b/src/core/types.ts @@ -15,7 +15,7 @@ import type { FullscreenPluginOptions } from '@/plugins/fullscreen' export type PartialBy = Omit & Partial> export interface Locale { - resources: ResourceKey + resources: Record /** Language key as described in the i18next documentation */ type: string } From b2b50b548741f33dbc707d72c4a8e0ff6301fef7 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Fri, 22 Aug 2025 12:50:08 +0200 Subject: [PATCH 255/697] chore: install v8 coverage support --- package-lock.json | 201 ++++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + 2 files changed, 202 insertions(+) diff --git a/package-lock.json b/package-lock.json index 913e66534..9dcb22c1c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,6 +19,7 @@ "@repositoryname/noop": "^1.0.6", "@types/node": "^24.2.0", "@vitejs/plugin-vue": "^6.0.0", + "@vitest/coverage-v8": "^3.2.4", "@vue/test-utils": "^2.4.6", "@vue/tsconfig": "^0.8.1", "buffer": "^6.0.3", @@ -599,6 +600,16 @@ "node": ">=6.9.0" } }, + "node_modules/@bcoe/v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-1.0.2.tgz", + "integrity": "sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/@cesium/engine": { "version": "15.0.0", "resolved": "https://registry.npmjs.org/@cesium/engine/-/engine-15.0.0.tgz", @@ -1705,6 +1716,16 @@ "node": ">=12" } }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", @@ -3428,6 +3449,40 @@ "vue": "^3.2.25" } }, + "node_modules/@vitest/coverage-v8": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.2.4.tgz", + "integrity": "sha512-EyF9SXU6kS5Ku/U82E259WSnvg6c8KTjppUncuNdm5QHpe17mwREHnjDzozC8x9MZ0xfBUFSaLkRv4TMA75ALQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.3.0", + "@bcoe/v8-coverage": "^1.0.2", + "ast-v8-to-istanbul": "^0.3.3", + "debug": "^4.4.1", + "istanbul-lib-coverage": "^3.2.2", + "istanbul-lib-report": "^3.0.1", + "istanbul-lib-source-maps": "^5.0.6", + "istanbul-reports": "^3.1.7", + "magic-string": "^0.30.17", + "magicast": "^0.3.5", + "std-env": "^3.9.0", + "test-exclude": "^7.0.1", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@vitest/browser": "3.2.4", + "vitest": "3.2.4" + }, + "peerDependenciesMeta": { + "@vitest/browser": { + "optional": true + } + } + }, "node_modules/@vitest/expect": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz", @@ -4257,6 +4312,35 @@ "node": ">=12" } }, + "node_modules/ast-v8-to-istanbul": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-0.3.4.tgz", + "integrity": "sha512-cxrAnZNLBnQwBPByK4CeDaw5sWZtMilJE/Q3iDA0aamgaIVNDF9T6K2/8DfYDZEejZ2jNnDrG9m8MY72HFd0KA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.29", + "estree-walker": "^3.0.3", + "js-tokens": "^9.0.1" + } + }, + "node_modules/ast-v8-to-istanbul/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/ast-v8-to-istanbul/node_modules/js-tokens": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", + "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", + "dev": true, + "license": "MIT" + }, "node_modules/async": { "version": "3.2.6", "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", @@ -7112,6 +7196,13 @@ "node": ">=18" } }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "license": "MIT" + }, "node_modules/http-proxy-agent": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", @@ -7930,6 +8021,73 @@ "dev": true, "license": "ISC" }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz", + "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.23", + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/iterator.prototype": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", @@ -8475,6 +8633,34 @@ "@jridgewell/sourcemap-codec": "^1.5.5" } }, + "node_modules/magicast": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.5.tgz", + "integrity": "sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.4", + "@babel/types": "^7.25.4", + "source-map-js": "^1.2.0" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/mapbox-to-css-font": { "version": "2.4.5", "resolved": "https://registry.npmjs.org/mapbox-to-css-font/-/mapbox-to-css-font-2.4.5.tgz", @@ -12105,6 +12291,21 @@ "node": ">=6" } }, + "node_modules/test-exclude": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.1.tgz", + "integrity": "sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^10.4.1", + "minimatch": "^9.0.4" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", diff --git a/package.json b/package.json index 33fd5afbc..55b3229e7 100644 --- a/package.json +++ b/package.json @@ -79,6 +79,7 @@ "@repositoryname/noop": "^1.0.6", "@types/node": "^24.2.0", "@vitejs/plugin-vue": "^6.0.0", + "@vitest/coverage-v8": "^3.2.4", "@vue/test-utils": "^2.4.6", "@vue/tsconfig": "^0.8.1", "buffer": "^6.0.3", From c35353368fda28b6295d9c65d117e461a5441fcf Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Fri, 22 Aug 2025 15:05:07 +0200 Subject: [PATCH 256/697] test(arch): check lib utils dependencies --- src/architecture.spec.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/architecture.spec.ts b/src/architecture.spec.ts index 9762b38a7..f7e03bc46 100644 --- a/src/architecture.spec.ts +++ b/src/architecture.spec.ts @@ -48,4 +48,14 @@ describe('Architectural checks', () => { .check() expect(violations).toEqual([]) }) + + test('Lib utils should only depend on public core API', async () => { + const violations = await files + .matchingPattern('^lib/.*$') + .shouldNot() + .dependOnFiles() + .matchingPattern('^core/(?!(index|stores/export)\\.ts$).*$') + .check() + expect(violations).toEqual([]) + }) }) From 7eff3a230ede6619de58c34099e62f0436c3d189 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Thu, 21 Aug 2025 16:46:11 +0200 Subject: [PATCH 257/697] feat(plugins/toast): migrate plugin --- examples/snowbox/index.js | 26 +- src/architecture.spec.ts | 8 +- src/core/index.ts | 10 +- src/core/stores/export.ts | 27 + src/core/types.ts | 607 +----------------- src/core/types/layer.ts | 98 +++ src/core/types/main.ts | 275 ++++++++ src/core/types/marker.ts | 153 +++++ src/core/types/plugin.ts | 100 +++ src/core/types/theme.ts | 54 ++ src/core/utils/checkServiceAvailability.ts | 21 +- src/lib/getCssColor.ts | 17 + src/lib/notifyUser.ts | 14 + .../toast/components/ToastContainer.ce.vue | 23 + src/plugins/toast/components/ToastUI.ce.vue | 73 +++ src/plugins/toast/components/ToastUI.spec.ts | 57 ++ src/plugins/toast/index.ts | 33 + src/plugins/toast/locales.ts | 51 ++ src/plugins/toast/store.ts | 217 +++++++ src/plugins/toast/types.ts | 38 ++ vue2/packages/plugins/Toast/CHANGELOG.md | 21 - vue2/packages/plugins/Toast/LICENSE | 287 --------- vue2/packages/plugins/Toast/README.md | 87 --- vue2/packages/plugins/Toast/package.json | 39 -- .../packages/plugins/Toast/readme_example.png | Bin 3526 -> 0 bytes .../plugins/Toast/src/components/Toast.vue | 48 -- .../plugins/Toast/src/components/index.ts | 1 - vue2/packages/plugins/Toast/src/index.ts | 14 - vue2/packages/plugins/Toast/src/locales.ts | 29 - .../packages/plugins/Toast/src/store/index.ts | 81 --- vue2/packages/plugins/Toast/src/types.ts | 15 - .../plugins/Toast/tests/store.spec.ts | 116 ---- .../plugins/Toast/tests/toast.spec.ts | 37 -- vue2/packages/plugins/Toast/vite.config.js | 3 - 34 files changed, 1267 insertions(+), 1413 deletions(-) create mode 100644 src/core/types/layer.ts create mode 100644 src/core/types/main.ts create mode 100644 src/core/types/marker.ts create mode 100644 src/core/types/plugin.ts create mode 100644 src/core/types/theme.ts create mode 100644 src/lib/getCssColor.ts create mode 100644 src/lib/notifyUser.ts create mode 100644 src/plugins/toast/components/ToastContainer.ce.vue create mode 100644 src/plugins/toast/components/ToastUI.ce.vue create mode 100644 src/plugins/toast/components/ToastUI.spec.ts create mode 100644 src/plugins/toast/index.ts create mode 100644 src/plugins/toast/locales.ts create mode 100644 src/plugins/toast/store.ts create mode 100644 src/plugins/toast/types.ts delete mode 100644 vue2/packages/plugins/Toast/CHANGELOG.md delete mode 100644 vue2/packages/plugins/Toast/LICENSE delete mode 100644 vue2/packages/plugins/Toast/README.md delete mode 100644 vue2/packages/plugins/Toast/package.json delete mode 100644 vue2/packages/plugins/Toast/readme_example.png delete mode 100644 vue2/packages/plugins/Toast/src/components/Toast.vue delete mode 100644 vue2/packages/plugins/Toast/src/components/index.ts delete mode 100644 vue2/packages/plugins/Toast/src/index.ts delete mode 100644 vue2/packages/plugins/Toast/src/locales.ts delete mode 100644 vue2/packages/plugins/Toast/src/store/index.ts delete mode 100644 vue2/packages/plugins/Toast/src/types.ts delete mode 100644 vue2/packages/plugins/Toast/tests/store.spec.ts delete mode 100644 vue2/packages/plugins/Toast/tests/toast.spec.ts delete mode 100644 vue2/packages/plugins/Toast/vite.config.js diff --git a/examples/snowbox/index.js b/examples/snowbox/index.js index ad65b9900..259187607 100644 --- a/examples/snowbox/index.js +++ b/examples/snowbox/index.js @@ -1,6 +1,8 @@ import { changeLanguage } from 'i18next' +import pluginToast from '@polar/polar/plugins/toast' +import { useToastStore } from '@polar/polar/plugins/toast/store' import pluginFullscreen from '@polar/polar/plugins/fullscreen' -import { addPlugin, createMap, removePlugin, subscribe } from '@polar/polar' +import { addPlugin, createMap, subscribe } from '@polar/polar' import styleJsonUrl from './style.json?url' const basemapId = '23420' @@ -160,17 +162,21 @@ addPlugin( }) ) -// TODO: Update with proper plugins -setTimeout( - () => - addPlugin({ - id: 'TEST', - options: { displayComponent: true, layoutTag: 'MIDDLE_MIDDLE' }, - }), - 5000 +addPlugin( + pluginToast({ + layoutTag: 'BOTTOM_MIDDLE', + }) ) -setTimeout(() => removePlugin('TEST'), 10000) +const toastStore = useToastStore() +toastStore.addToast({ + text: 'Hallo Welt', + severity: 'info', +}) +toastStore.addToast({ + text: 'Achtung! Dies ist ein Toast!', + severity: 'error', +}) subscribe( 'markers', diff --git a/src/architecture.spec.ts b/src/architecture.spec.ts index f7e03bc46..b2cface75 100644 --- a/src/architecture.spec.ts +++ b/src/architecture.spec.ts @@ -9,18 +9,18 @@ describe('Architectural checks', () => { files = filesOfProject(resolve(__dirname, 'tsconfig.json')) }) - test('POLAR should be cycle-free (except for types)', async () => { + test('POLAR should be cycle-free', async () => { const violations = await files - .matchingPattern('^(?!.*/types\\.ts$).*') + .matchingPattern('.*') .should() .beFreeOfCycles() .check() expect(violations).toEqual([]) }) - test('Core should not depend on plugins (except for types)', async () => { + test('Core should not depend on plugins (except for plugin types)', async () => { const violations = await files - .matchingPattern('^core/(?!types\\.ts$).*$') + .matchingPattern('^core/(?!types/.*\\.ts$).*$') .shouldNot() .dependOnFiles() .matchingPattern('^plugins/.*$') diff --git a/src/core/index.ts b/src/core/index.ts index 9b690f8f8..903bddbc7 100644 --- a/src/core/index.ts +++ b/src/core/index.ts @@ -104,7 +104,7 @@ export function addPlugin(plugin: PluginContainer) { export function removePlugin(pluginId: string) { const coreStore = useMainStore() - const plugin = coreStore.plugins.find((p) => p.id === pluginId) + const plugin = coreStore.plugins.find(({ id }) => id === pluginId) if (!plugin) { console.error(`Plugin "${pluginId}" not found.`) @@ -112,12 +112,12 @@ export function removePlugin(pluginId: string) { } const store = plugin.storeModule?.() if (store) { - store.teardownPlugin() + if (typeof store.teardownPlugin === 'function') { + store.teardownPlugin() + } store.$reset() } - coreStore.plugins = coreStore.plugins.filter( - (plugin) => plugin.id !== pluginId - ) + coreStore.plugins = coreStore.plugins.filter(({ id }) => id !== pluginId) } /** diff --git a/src/core/stores/export.ts b/src/core/stores/export.ts index 6876812ef..843c791ac 100644 --- a/src/core/stores/export.ts +++ b/src/core/stores/export.ts @@ -6,6 +6,12 @@ import { defineStore } from 'pinia' import { computed } from 'vue' +import type { + PluginId, + BundledPluginId, + BundledPluginStores, + PolarPluginStore, +} from '../types' import { useMainStore } from './main' /* eslint-disable tsdoc/syntax */ @@ -18,6 +24,18 @@ import { useMainStore } from './main' export const useCoreStore = defineStore('core', () => { const mainStore = useMainStore() + function getPluginStore( + id: T + ): ReturnType< + T extends BundledPluginId + ? BundledPluginStores + : PolarPluginStore + > | null { + const plugin = mainStore.plugins.find((plugin) => plugin.id === id) + // @ts-expect-error | We trust that our internal IDs work. + return plugin?.storeModule?.() || null + } + return { /** * Returns the current runtime configuration. @@ -26,6 +44,15 @@ export const useCoreStore = defineStore('core', () => { */ configuration: computed(() => mainStore.configuration), + /** + * Returns a plugin's store by its ID. + * + * For bundled plugins, the return value is typed. + * + * If no plugin with the specified ID is loaded, `null` is returned instead. + */ + getPluginStore, + /** * Allows reading or setting the OIDC token used for service accesses. */ diff --git a/src/core/types.ts b/src/core/types.ts index 28fd1bbcb..626c92ddc 100644 --- a/src/core/types.ts +++ b/src/core/types.ts @@ -1,602 +1,5 @@ -import type { ResourceKey } from 'i18next' -import type { Feature } from 'ol' -import type { SetupStoreDefinition } from 'pinia' -import type { Component, VueElement } from 'vue' -import type { NineLayoutTag } from '@/core/utils/NineLayoutTag.ts' -import type { FullscreenPluginOptions } from '@/plugins/fullscreen' - -/** - * Copied from https://stackoverflow.com/a/54178819.# - * - * Makes the properties defined by type `K` optional in type `T`. - * - * @example `PartialBy` - */ -export type PartialBy = Omit & Partial> - -export interface Locale { - resources: Record - /** Language key as described in the i18next documentation */ - type: string -} - -export interface ServiceAvailabilityCheck { - ping: Promise - serviceId: string - serviceName: string -} - -export interface PluginOptions { - displayComponent?: boolean - layoutTag?: keyof typeof NineLayoutTag -} - -export type PolarPluginStore = SetupStoreDefinition< - string, - { - setupPlugin: () => void - teardownPlugin: () => void - } -> - -export interface PluginContainer { - /** - * Unique technical identifier. - * - * The recommended strategy for ensuring uniqueness is using the package name (including scope, if scoped) as a prefix. - * - * @example `@polar/polar/plugins/fullscreen` - */ - id: string - - /** A Vue component if required. */ - component?: Component - - /** Locales used in the plugin. */ - locales?: Locale[] - - /** - * Configuration options. Please also note that all configuration added via plugin constructors can be overridden in - * the {@link createMap | `createMap`'s parameter `mapConfiguration`} . - * - * You may use either object (or a mix of them) to create the configuration, e.g. use the constructors for a base - * configuration and the `mapConfiguration` object to override it for various use cases. - * - * How exactly you do this is up to you and influences the minimum API call requirements your client has. - */ - options?: PluginOptions - - /** - * Pinia store module if required. If the storeModule features a `setupPlugin` action, it will be executed - * automatically after initialization. - */ - storeModule?: PolarPluginStore -} - -/** - * - * Map-Config - * - */ - -export type InitialLanguage = 'de' | 'en' - -export type MarkersIsSelectableFunction = (feature: Feature) => boolean - -/** - * A full documentation of the parameters is available at the Masterportal's https://www.masterportal.org/mkdocs/doc/Latest/User/Global-Config/style.json/. - * For more details, visual examples, and expert features, see there. - */ -export interface PolygonFillHatch { - pattern?: - | 'diagonal' - | 'diagonal-right' - | 'zig-line' - | 'zig-line-horizontal' - | 'circle' - | 'rectangle' - | 'triangle' - | 'diamond' - | object - size?: number - lineWidth?: number - backgroundColor?: [number, number, number, number] - patternColor?: [number, number, number, number] -} - -export interface MarkerStyle { - /** - * `width` and `height` of the ``-cluster-marker. - * - * @defaultValue `[40, 36]` - */ - clusterSize: [number, number] - - /** - * Fill color (or hatch pattern) for map marker. - */ - fill: string | PolygonFillHatch - - /** - * `width` and `height` of the ``-marker. - * - * @defaultValue `[26, 36]` - */ - size: [number, number] - - /** - * Color of marker stroke (outer line). - * - * @defaultValue `'#FFFFFF'` - */ - stroke: string - - /** - * Width of marker stroke (outer line). - * - * @defaultValue `'2'` - */ - strokeWidth: string | number -} - -export interface CallOnMapSelect { - action: string - payload: unknown - pluginName?: string -} - -export interface MarkerLayer { - id: string - defaultStyle: MarkerStyle - hoverStyle: MarkerStyle - selectionStyle: MarkerStyle - unselectableStyle: MarkerStyle - isSelectable: MarkersIsSelectableFunction -} - -export interface MarkerLayerConfiguration { - /** Unique identifier of a layer configured in {@link MapConfiguration.layers | `mapConfiguration.layers`}. */ - id: string - - /** - * Used as the default marker style. - * The default fill color for these markers is `'#005CA9'`. - */ - defaultStyle?: Partial - - /** - * Used as map marker style for hovered features. - * The default fill color for these markers is `'#7B1045'`. - */ - hoverStyle?: Partial - - /** - * Used as map marker style for selected features. - * The default fill color for these markers is `'#679100'`. - */ - selectionStyle?: Partial - - /** - * Used as a map marker style for unselectable features. - * Features are unselectable if a given {@link MarkerLayerConfiguration.isSelectable | `isSelectable`} method returns - * falsy for a feature. - * The default fill color for these markers is `'#333333'`. - */ - unselectableStyle?: Partial - - /** - * If undefined, all features are selectable. - * If defined, this can be used to sort out features to be unselectable, - * and such features will be styled differently and won't react on click. - * - * @example - * ``` - * isSelectable: (feature: Feature) => feature.get('indicator') - * ``` - */ - isSelectable?: MarkersIsSelectableFunction -} - -export interface MarkerConfiguration { - /** - * List of layers including optional style information and under which - * condition a feature is selectable. - */ - layers: MarkerLayerConfiguration[] - - /** - * If set, the given `action` will be called with the given `payload`. If the - * `pluginName` is set, the action will be called in the respective plugin, - * otherwise the core store is used. - * - * @example - * ``` - * callOnMapSelect: { - * action: 'openMenuById', - * payload: 'gfi', - * pluginName: 'iconMenu' - * } - * ``` - * - * @remarks - * The example open the gfi window in the iconMenu, if the IconMenu exists - * with the gfi plugin registered under the id `gfi`. - */ - callOnMapSelect?: CallOnMapSelect - - /** - * If `true`, clicking a cluster feature will zoom into the clustered features' - * bounding box (with padding) so that the cluster is "resolved". This happens - * until the maximum zoom level is reached, at which no further zooming can - * take place. Defaults to `false`. - */ - clusterClickZoom?: boolean -} - -export interface LayerConfigurationOptionLayers { - /** - * Legend image to be used for sub-layer. If false, no image is displayed. - * If true, it is assumed an image exists in the layer's GetCapabilities, and - * that will be used. If Record, it maps the layer name to a linked image. - */ - legend?: boolean | Record - - /** - * Comma-separated re-ordering of service layer's 'layer' specification. - * Layer's not specified in service definition, but in order, are initially - * invisible. Layers not specified in order, but in service definition, are - * always visible. Layers specified in both are initially visible. Layers - * specified in neither are always invisible. - */ - order?: string - - /** - * Title to be displayed for sub-layer. If false, layer name itself will - * be used as given in service description 'layers' field. If true, it is - * assumed a name exists in the layer's GetCapabilities, and that will be - * used. If Record, it maps the layer name to an arbitrary display name given - * by the configuration. - */ - title?: boolean | Record -} - -export type LayerType = 'background' | 'mask' - -export interface LayerConfigurationOptions { - /** - * Named matching OGC-specification of a WMS layer's layers. - */ - layers?: LayerConfigurationOptionLayers - // NOT IMPLEMENTED - // transparency: boolean -} - -export interface LayerConfiguration { - /** - * Unique id to identify the layer. - */ - id: string - - /** - * Human-readable identifier and value to be display in the UI. - */ - name: string - - /** - * Whether the layer is a background layer or a feature layer with specific information. - */ - type: LayerType - - /** - * layers may have their own gfiMode. - */ - gfiMode?: 'bboxDot' | 'intersects' - - /** - * Whether the mask-layer should be hidden from the LayerChooser selection menu. - */ - hideInMenu?: boolean - - /** - * The minimum zoom level the layer will be rendered in. - * - * @defaultValue 0 - */ - minZoom?: number - - /** - * The maximum zoom level the layer will be rendered in. - * - * @defaultValue Number.MAX_SAFE_INTEGER - */ - maxZoom?: number - - /** - * Enables a configuration feature for the layer in its selection. - */ - options?: LayerConfigurationOptions - - /** - * ID of the used style. If the layer is also configured in {@link MapConfiguration.markers | `mapConfiguration.markers`}, - * that configuration takes precedence over the configured `styleId`. Only applicable for vector-type layers. - * For more information and an example see {@link MapConfiguration.featureStyles | `mapConfiguration.featureStyles`}. - * Defaults and fallbacks to OpenLayers default styling. - */ - styleId?: string - - /** - * Whether the layer should be rendered - * - * @defaultValue false - */ - visibility?: boolean -} - -export interface PolarMapOptions { - /** - * Size of 1 pixel on the screen converted to map units (e.g. meters) depending on the used projection - * ({@link MasterportalApiConfiguration.epsg} | `epsg`). - */ - resolution: number - - /** - * Scale in meters. - */ - scale: number - - /** - * Zoom level. - */ - zoomLevel: number -} - -export interface OklchColor { - l: string - c: string - h: string -} - -export interface KernThemeTree { - [key: string]: string | KernThemeTree -} - -/** - * Describes the theming options of KERN. - * The exhaustive list of parameters is documented in `@kern-ux/native`. - */ -export interface KernTheme { - color: KernThemeTree - metric: KernThemeTree -} - -/** - * A theme for the POLAR map client. - */ -export interface PolarTheme { - /** - * This color will be defined as `--brand-color-{l,c,h}` CSS variable inside POLAR's shadow DOM. - * It can especially be used to define the KERN theme via {@link https://developer.mozilla.org/de/docs/Web/CSS/color_value/oklch | oklch}. - */ - brandColor?: OklchColor - - /** - * Theme for KERN UX library. - */ - kern?: KernTheme -} - -/** - * The `<...masterportalapi.fields>` means that any \@masterportal/masterportalapi field may also be used here _directly_ - * in the {@link MapConfiguration | `mapConfiguration`}. The fields described here are fields that are interesting for - * the usage of POLAR. - * Fields that are not set as required have default values. - */ -export interface MasterportalApiConfiguration { - /** - * Initial center coordinate. - * Coordinate needs to be defined in the chosen leading coordinate system configured by - * {@link MasterportalApiConfiguration.epsg | `mapConfiguration.epsg`}. - * - * @example - * ``` - * startCenter: [553655.72, 6004479.25] - * ``` - */ - startCenter: [number, number] - /** - * Leading coordinate system. The coordinate system has to be defined in - * {@link MasterportalApiConfiguration.namedProjections | `mapConfiguration.namedProjections`} as well. - * Changing this value should also lead to changes in - * {@link MasterportalApiConfiguration.startCenter | `mapConfiguration.startCenter`}, - * {@link MasterportalApiConfiguration.extent | `mapConfiguration.extent`}, - * {@link MasterportalApiConfiguration.options | `mapConfiguration.options`} and - * {@link MasterportalApiConfiguration.startResolution | `mapConfiguration.startResolution`} as they are described in - * or are related to the leading coordinate system. - * - * @defaultValue `'EPSG:25832'` - * - * @example - * ``` - * epsg: 'EPSG:4326' - * ``` - */ - epsg?: `EPSG:${string}` - /** - * Map movement will be restricted to the rectangle described by the given coordinates. Unrestricted by default. - * Coordinates need to be defined in the chosen leading coordinate system configured by - * {@link MasterportalApiConfiguration.epsg | `mapConfiguration.epsg`}. - * - * @example - * ``` - * extent: [426205.6233, 5913461.9593, 650128.6567, 6101486.8776] - * ``` - */ - extent?: [number, number, number, number] - /** - * Array of usable coordinated systems mapped to a projection as a proj4 string. Defines `'EPSG:25832'`, `'EPSG:3857'`, - * `'EPSG:4326'`, `'EPSG:31467'` and `'EPSG:4647'` by default. If you set a value, please mind that all pre-configured - * projections are overridden, and requiring e.g. `'EPSG:4326'` will only work if it is also defined in your override. - * - * @example - * ``` - * namedProjections: [ - * [ - * 'EPSG:25832', - * '+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs', - * ], - * ] - * ``` - */ - namedProjections?: Array<[string, string]> - /** - * Defines all available zoom levels mapped to the respective resolution and related scale. - * The resolution is dependent on the chosen leading coordinate system configured by - * {@link MasterportalApiConfiguration.epsg | `mapConfiguration.epsg`}. - * Defines 10 zoomLevels for `'EPSG:25832'` by default. - * - * @example - * ``` - * options: [ - * { resolution: 66.14579761460263, scale: 250000, zoomLevel: 0 }, - * { resolution: 26.458319045841044, scale: 100000, zoomLevel: 1 }, - * { resolution: 15.874991427504629, scale: 60000, zoomLevel: 2 }, - * { resolution: 10.583327618336419, scale: 40000, zoomLevel: 3 }, - * { resolution: 5.2916638091682096, scale: 20000, zoomLevel: 4 }, - * { resolution: 2.6458319045841048, scale: 10000, zoomLevel: 5 }, - * { resolution: 1.3229159522920524, scale: 5000, zoomLevel: 6 }, - * { resolution: 0.6614579761460262, scale: 2500, zoomLevel: 7 }, - * { resolution: 0.2645831904584105, scale: 1000, zoomLevel: 8 }, - * { resolution: 0.1322915952292052, scale: 500, zoomLevel: 9 }, - * ] - * ``` - */ - options?: PolarMapOptions[] - /** - * Initial resolution; must be described in {@link MasterportalApiConfiguration.options | `mapConfiguration.options`}. - * Defaults to `15.874991427504629` which is a zoom level defined in the default configuration of - * {@link MasterportalApiConfiguration.options | `mapConfiguration.options`}. - * - * @defaultValue `15.874991427504629` - * @example - * ``` - * startResolution: 264.583190458 - * ``` - */ - startResolution?: number -} - -/** The mapConfiguration allows controlling many client instance details. */ -export interface MapConfiguration extends MasterportalApiConfiguration { - /** - * Configuration of layers that are supposed to be used in the respective client. All layers defined here have to have - * an entry in the {@link createMap | `serviceRegister` parameter of `createMap`}. If `@polar/plugin-layer-chooser` is - * installed and configured, all these layers will be displayed in that menu. - * - * @example - * ``` - * layers: [ - * { - * id: 'basemap', - * name: 'Basemap Grayscale', - * }, - * { - * id: 'my-wfs', - * name: 'My WFS service', - * }, - * ] - * ``` - */ - layers: LayerConfiguration[] - /** If set to `true`, all services' availability will be checked with head requests. */ - checkServiceAvailability?: boolean - /** - * Optional path to define styles for vector features. The parameter may be a url or a path on the local file system. - * See `mapConfiguration.featureStyles` for more information. - */ - featureStyles?: string - - /** - * The initial language the client should be using. - * - * @defaultValue `'de'` (German) - */ - language?: InitialLanguage - - /** - * Choose between the standard sidebar layout with fixed positioning, the oldschool nine region layout with full - * configurability regarding positioning or add a custom layout as Vue component. - */ - layout?: 'standard' | 'nineRegions' | VueElement - /** - * All locales in POLAR and its plugins can be overridden to fit your needs. - * Take a look at the respective documentation for all values that can be overridden. - * - * A language option is an object consisting of a type (its language key) and the i18next resource definition. - * You may e.g. decide that the texts offered in the LayerChooser do not fit the style of your client, or that they - * could be more precise in your situation since you're only using *very specific* overlays. - * - * @example - * ``` - * locales: [ - * { - * type: 'de', - * resources: { - * plugins: { - * layerChooser: { - * maskTitle: 'Bahnstrecken', - * }, - * }, - * }, - * }, - * { - * type: 'en', - * resources: { - * plugins: { - * layerChooser: { - * maskTitle: 'Railway lines', - * }, - * }, - * }, - * }, - * ], - * ``` - * - * @remarks - * When reading the locale tables, please mind that the dot notation (`a.b.c | value`) has to be written as separate - * keys in nested objects as seen in the example above (`{a: {b: {c: "value"}}}`). - */ - locales?: Locale[] - /** - * If set, all configured visible vector layers' features can be hovered and selected by mouseover and click respectively. - * They are available as features in the store. Layers with `clusterDistance` will be clustered to a multi-marker - * that supports the same features. Please mind that only point marker vector layers are supported. - * For all other layers, take a look at the configuration of - * {@link MapConfiguration.featureStyles | `mapConfiguration.featureStyles`}. - * Note, that this configuration parameter takes precedence over the configuration of - * {@link MapConfiguration.featureStyles | `mapConfiguration.featureStyles`}. - */ - markers?: MarkerConfiguration - /** - * If a secured layer is supposed to be visible on start, the token also has to be provided via this configuration parameter. - * Updates to the token have to be done by updating the store parameter `oidcToken`. - */ - oidcToken?: string - /** - * Regular expression defining URLs that belong to secured services. All requests sent to URLs that fit the regular - * expression will send the JSON Web Token (JWT) found in the store parameter `oidcToken` as a Bearer token in the - * Authorization header of the request. Requests already including an Authorization header will keep the already present one. - */ - secureServiceUrlRegex?: RegExp - - /** - * Custom theme for POLAR. - * - * The default is to use KERN's standard theme. - */ - theme?: PolarTheme - - /** - * Configuration for fullscreen plugin. - */ - fullscreen?: FullscreenPluginOptions -} +export * from './types/marker' +export * from './types/plugin' +export * from './types/layer' +export * from './types/theme' +export * from './types/main' diff --git a/src/core/types/layer.ts b/src/core/types/layer.ts new file mode 100644 index 000000000..959fb7ad7 --- /dev/null +++ b/src/core/types/layer.ts @@ -0,0 +1,98 @@ +export interface LayerConfigurationOptionLayers { + /** + * Legend image to be used for sub-layer. If false, no image is displayed. + * If true, it is assumed an image exists in the layer's GetCapabilities, and + * that will be used. If Record, it maps the layer name to a linked image. + */ + legend?: boolean | Record + + /** + * Comma-separated re-ordering of service layer's 'layer' specification. + * Layer's not specified in service definition, but in order, are initially + * invisible. Layers not specified in order, but in service definition, are + * always visible. Layers specified in both are initially visible. Layers + * specified in neither are always invisible. + */ + order?: string + + /** + * Title to be displayed for sub-layer. If false, layer name itself will + * be used as given in service description 'layers' field. If true, it is + * assumed a name exists in the layer's GetCapabilities, and that will be + * used. If Record, it maps the layer name to an arbitrary display name given + * by the configuration. + */ + title?: boolean | Record +} + +export type LayerType = 'background' | 'mask' + +export interface LayerConfigurationOptions { + /** + * Named matching OGC-specification of a WMS layer's layers. + */ + layers?: LayerConfigurationOptionLayers + // NOT IMPLEMENTED + // transparency: boolean +} + +export interface LayerConfiguration { + /** + * Unique id to identify the layer. + */ + id: string + + /** + * Human-readable identifier and value to be display in the UI. + */ + name: string + + /** + * Whether the layer is a background layer or a feature layer with specific information. + */ + type: LayerType + + /** + * layers may have their own gfiMode. + */ + gfiMode?: 'bboxDot' | 'intersects' + + /** + * Whether the mask-layer should be hidden from the LayerChooser selection menu. + */ + hideInMenu?: boolean + + /** + * The minimum zoom level the layer will be rendered in. + * + * @defaultValue 0 + */ + minZoom?: number + + /** + * The maximum zoom level the layer will be rendered in. + * + * @defaultValue Number.MAX_SAFE_INTEGER + */ + maxZoom?: number + + /** + * Enables a configuration feature for the layer in its selection. + */ + options?: LayerConfigurationOptions + + /** + * ID of the used style. If the layer is also configured in {@link MapConfiguration.markers | `mapConfiguration.markers`}, + * that configuration takes precedence over the configured `styleId`. Only applicable for vector-type layers. + * For more information and an example see {@link MapConfiguration.featureStyles | `mapConfiguration.featureStyles`}. + * Defaults and fallbacks to OpenLayers default styling. + */ + styleId?: string + + /** + * Whether the layer should be rendered + * + * @defaultValue false + */ + visibility?: boolean +} diff --git a/src/core/types/main.ts b/src/core/types/main.ts new file mode 100644 index 000000000..f280e9d57 --- /dev/null +++ b/src/core/types/main.ts @@ -0,0 +1,275 @@ +import type { ResourceKey } from 'i18next' +import type { VueElement } from 'vue' +import type { MarkerConfiguration } from './marker' +import type { LayerConfiguration } from './layer' +import type { PolarTheme } from './theme' +import type { FullscreenPluginOptions } from '@/plugins/fullscreen' +import type { ToastPluginOptions } from '@/plugins/toast' + +/** + * Copied from https://stackoverflow.com/a/54178819.# + * + * Makes the properties defined by type `K` optional in type `T`. + * + * @example `PartialBy` + */ +export type PartialBy = Omit & Partial> + +export interface Locale { + resources: Record + /** Language key as described in the i18next documentation */ + type: string +} + +export interface ServiceAvailabilityCheck { + ping: Promise + serviceId: string + serviceName: string +} + +/** + * + * Map-Config + * + */ + +export type InitialLanguage = 'de' | 'en' + +export interface PolarMapOptions { + /** + * Size of 1 pixel on the screen converted to map units (e.g. meters) depending on the used projection + * ({@link MasterportalApiConfiguration.epsg} | `epsg`). + */ + resolution: number + + /** + * Scale in meters. + */ + scale: number + + /** + * Zoom level. + */ + zoomLevel: number +} + +/** + * The `<...masterportalapi.fields>` means that any \@masterportal/masterportalapi field may also be used here _directly_ + * in the {@link MapConfiguration | `mapConfiguration`}. The fields described here are fields that are interesting for + * the usage of POLAR. + * Fields that are not set as required have default values. + */ +export interface MasterportalApiConfiguration { + /** + * Initial center coordinate. + * Coordinate needs to be defined in the chosen leading coordinate system configured by + * {@link MasterportalApiConfiguration.epsg | `mapConfiguration.epsg`}. + * + * @example + * ``` + * startCenter: [553655.72, 6004479.25] + * ``` + */ + startCenter: [number, number] + /** + * Leading coordinate system. The coordinate system has to be defined in + * {@link MasterportalApiConfiguration.namedProjections | `mapConfiguration.namedProjections`} as well. + * Changing this value should also lead to changes in + * {@link MasterportalApiConfiguration.startCenter | `mapConfiguration.startCenter`}, + * {@link MasterportalApiConfiguration.extent | `mapConfiguration.extent`}, + * {@link MasterportalApiConfiguration.options | `mapConfiguration.options`} and + * {@link MasterportalApiConfiguration.startResolution | `mapConfiguration.startResolution`} as they are described in + * or are related to the leading coordinate system. + * + * @defaultValue `'EPSG:25832'` + * + * @example + * ``` + * epsg: 'EPSG:4326' + * ``` + */ + epsg?: `EPSG:${string}` + /** + * Map movement will be restricted to the rectangle described by the given coordinates. Unrestricted by default. + * Coordinates need to be defined in the chosen leading coordinate system configured by + * {@link MasterportalApiConfiguration.epsg | `mapConfiguration.epsg`}. + * + * @example + * ``` + * extent: [426205.6233, 5913461.9593, 650128.6567, 6101486.8776] + * ``` + */ + extent?: [number, number, number, number] + /** + * Array of usable coordinated systems mapped to a projection as a proj4 string. Defines `'EPSG:25832'`, `'EPSG:3857'`, + * `'EPSG:4326'`, `'EPSG:31467'` and `'EPSG:4647'` by default. If you set a value, please mind that all pre-configured + * projections are overridden, and requiring e.g. `'EPSG:4326'` will only work if it is also defined in your override. + * + * @example + * ``` + * namedProjections: [ + * [ + * 'EPSG:25832', + * '+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs', + * ], + * ] + * ``` + */ + namedProjections?: Array<[string, string]> + /** + * Defines all available zoom levels mapped to the respective resolution and related scale. + * The resolution is dependent on the chosen leading coordinate system configured by + * {@link MasterportalApiConfiguration.epsg | `mapConfiguration.epsg`}. + * Defines 10 zoomLevels for `'EPSG:25832'` by default. + * + * @example + * ``` + * options: [ + * { resolution: 66.14579761460263, scale: 250000, zoomLevel: 0 }, + * { resolution: 26.458319045841044, scale: 100000, zoomLevel: 1 }, + * { resolution: 15.874991427504629, scale: 60000, zoomLevel: 2 }, + * { resolution: 10.583327618336419, scale: 40000, zoomLevel: 3 }, + * { resolution: 5.2916638091682096, scale: 20000, zoomLevel: 4 }, + * { resolution: 2.6458319045841048, scale: 10000, zoomLevel: 5 }, + * { resolution: 1.3229159522920524, scale: 5000, zoomLevel: 6 }, + * { resolution: 0.6614579761460262, scale: 2500, zoomLevel: 7 }, + * { resolution: 0.2645831904584105, scale: 1000, zoomLevel: 8 }, + * { resolution: 0.1322915952292052, scale: 500, zoomLevel: 9 }, + * ] + * ``` + */ + options?: PolarMapOptions[] + /** + * Initial resolution; must be described in {@link MasterportalApiConfiguration.options | `mapConfiguration.options`}. + * Defaults to `15.874991427504629` which is a zoom level defined in the default configuration of + * {@link MasterportalApiConfiguration.options | `mapConfiguration.options`}. + * + * @defaultValue `15.874991427504629` + * @example + * ``` + * startResolution: 264.583190458 + * ``` + */ + startResolution?: number +} + +/** The mapConfiguration allows controlling many client instance details. */ +export interface MapConfiguration extends MasterportalApiConfiguration { + /** + * Configuration of layers that are supposed to be used in the respective client. All layers defined here have to have + * an entry in the {@link createMap | `serviceRegister` parameter of `createMap`}. If `@polar/plugin-layer-chooser` is + * installed and configured, all these layers will be displayed in that menu. + * + * @example + * ``` + * layers: [ + * { + * id: 'basemap', + * name: 'Basemap Grayscale', + * }, + * { + * id: 'my-wfs', + * name: 'My WFS service', + * }, + * ] + * ``` + */ + layers: LayerConfiguration[] + /** If set to `true`, all services' availability will be checked with head requests. */ + checkServiceAvailability?: boolean + /** + * Optional path to define styles for vector features. The parameter may be a url or a path on the local file system. + * See `mapConfiguration.featureStyles` for more information. + */ + featureStyles?: string + + /** + * The initial language the client should be using. + * + * @defaultValue `'de'` (German) + */ + language?: InitialLanguage + + /** + * Choose between the standard sidebar layout with fixed positioning, the oldschool nine region layout with full + * configurability regarding positioning or add a custom layout as Vue component. + */ + layout?: 'standard' | 'nineRegions' | VueElement + /** + * All locales in POLAR and its plugins can be overridden to fit your needs. + * Take a look at the respective documentation for all values that can be overridden. + * + * A language option is an object consisting of a type (its language key) and the i18next resource definition. + * You may e.g. decide that the texts offered in the LayerChooser do not fit the style of your client, or that they + * could be more precise in your situation since you're only using *very specific* overlays. + * + * @example + * ``` + * locales: [ + * { + * type: 'de', + * resources: { + * plugins: { + * layerChooser: { + * maskTitle: 'Bahnstrecken', + * }, + * }, + * }, + * }, + * { + * type: 'en', + * resources: { + * plugins: { + * layerChooser: { + * maskTitle: 'Railway lines', + * }, + * }, + * }, + * }, + * ], + * ``` + * + * @remarks + * When reading the locale tables, please mind that the dot notation (`a.b.c | value`) has to be written as separate + * keys in nested objects as seen in the example above (`{a: {b: {c: "value"}}}`). + */ + locales?: Locale[] + /** + * If set, all configured visible vector layers' features can be hovered and selected by mouseover and click respectively. + * They are available as features in the store. Layers with `clusterDistance` will be clustered to a multi-marker + * that supports the same features. Please mind that only point marker vector layers are supported. + * For all other layers, take a look at the configuration of + * {@link MapConfiguration.featureStyles | `mapConfiguration.featureStyles`}. + * Note, that this configuration parameter takes precedence over the configuration of + * {@link MapConfiguration.featureStyles | `mapConfiguration.featureStyles`}. + */ + markers?: MarkerConfiguration + /** + * If a secured layer is supposed to be visible on start, the token also has to be provided via this configuration parameter. + * Updates to the token have to be done by updating the store parameter `oidcToken`. + */ + oidcToken?: string + /** + * Regular expression defining URLs that belong to secured services. All requests sent to URLs that fit the regular + * expression will send the JSON Web Token (JWT) found in the store parameter `oidcToken` as a Bearer token in the + * Authorization header of the request. Requests already including an Authorization header will keep the already present one. + */ + secureServiceUrlRegex?: RegExp + + /** + * Custom theme for POLAR. + * + * The default is to use KERN's standard theme. + */ + theme?: PolarTheme + + /** + * Configuration for fullscreen plugin. + */ + fullscreen?: FullscreenPluginOptions + + /** + * Configuration for toast plugin. + */ + toast?: ToastPluginOptions +} diff --git a/src/core/types/marker.ts b/src/core/types/marker.ts new file mode 100644 index 000000000..d9e8d3b7b --- /dev/null +++ b/src/core/types/marker.ts @@ -0,0 +1,153 @@ +import type { Feature } from 'ol' + +export type MarkersIsSelectableFunction = (feature: Feature) => boolean + +export interface CallOnMapSelect { + action: string + payload: unknown + pluginName?: string +} + +/** + * A full documentation of the parameters is available at the Masterportal's https://www.masterportal.org/mkdocs/doc/Latest/User/Global-Config/style.json/. + * For more details, visual examples, and expert features, see there. + */ +export interface PolygonFillHatch { + pattern?: + | 'diagonal' + | 'diagonal-right' + | 'zig-line' + | 'zig-line-horizontal' + | 'circle' + | 'rectangle' + | 'triangle' + | 'diamond' + | object + size?: number + lineWidth?: number + backgroundColor?: [number, number, number, number] + patternColor?: [number, number, number, number] +} + +export interface MarkerStyle { + /** + * `width` and `height` of the ``-cluster-marker. + * + * @defaultValue `[40, 36]` + */ + clusterSize: [number, number] + + /** + * Fill color (or hatch pattern) for map marker. + */ + fill: string | PolygonFillHatch + + /** + * `width` and `height` of the ``-marker. + * + * @defaultValue `[26, 36]` + */ + size: [number, number] + + /** + * Color of marker stroke (outer line). + * + * @defaultValue `'#FFFFFF'` + */ + stroke: string + + /** + * Width of marker stroke (outer line). + * + * @defaultValue `'2'` + */ + strokeWidth: string | number +} + +export interface MarkerLayer { + id: string + defaultStyle: MarkerStyle + hoverStyle: MarkerStyle + selectionStyle: MarkerStyle + unselectableStyle: MarkerStyle + isSelectable: MarkersIsSelectableFunction +} + +export interface MarkerLayerConfiguration { + /** Unique identifier of a layer configured in {@link MapConfiguration.layers | `mapConfiguration.layers`}. */ + id: string + + /** + * Used as the default marker style. + * The default fill color for these markers is `'#005CA9'`. + */ + defaultStyle?: Partial + + /** + * Used as map marker style for hovered features. + * The default fill color for these markers is `'#7B1045'`. + */ + hoverStyle?: Partial + + /** + * Used as map marker style for selected features. + * The default fill color for these markers is `'#679100'`. + */ + selectionStyle?: Partial + + /** + * Used as a map marker style for unselectable features. + * Features are unselectable if a given {@link MarkerLayerConfiguration.isSelectable | `isSelectable`} method returns + * falsy for a feature. + * The default fill color for these markers is `'#333333'`. + */ + unselectableStyle?: Partial + + /** + * If undefined, all features are selectable. + * If defined, this can be used to sort out features to be unselectable, + * and such features will be styled differently and won't react on click. + * + * @example + * ``` + * isSelectable: (feature: Feature) => feature.get('indicator') + * ``` + */ + isSelectable?: MarkersIsSelectableFunction +} + +export interface MarkerConfiguration { + /** + * List of layers including optional style information and under which + * condition a feature is selectable. + */ + layers: MarkerLayerConfiguration[] + + /** + * If set, the given `action` will be called with the given `payload`. If the + * `pluginName` is set, the action will be called in the respective plugin, + * otherwise the core store is used. + * + * @example + * ``` + * callOnMapSelect: { + * action: 'openMenuById', + * payload: 'gfi', + * pluginName: 'iconMenu' + * } + * ``` + * + * @remarks + * The example open the gfi window in the iconMenu, if the IconMenu exists + * with the gfi plugin registered under the id `gfi`. + */ + callOnMapSelect?: CallOnMapSelect + + /** + * If `true`, clicking a cluster feature will zoom into the clustered features' + * bounding box (with padding) so that the cluster is "resolved". This happens + * until the maximum zoom level is reached, at which no further zooming can + * take place. Defaults to `false`. + */ + clusterClickZoom?: boolean +} diff --git a/src/core/types/plugin.ts b/src/core/types/plugin.ts new file mode 100644 index 000000000..07fbd05d3 --- /dev/null +++ b/src/core/types/plugin.ts @@ -0,0 +1,100 @@ +import type { SetupStoreDefinition } from 'pinia' +import type { Component } from 'vue' +import type { NineLayoutTag } from '../utils/NineLayoutTag' +import type { Locale } from './main' + +import type { PluginId as FullscreenPluginId } from '@/plugins/fullscreen' +import type { useFullscreenStore as FullscreenStore } from '@/plugins/fullscreen/store' + +import type { PluginId as IconMenuPluginId } from '@/plugins/iconMenu' +import { useIconMenuStore as IconMenuStore } from '@/plugins/iconMenu/store' + +import { PluginId as ToastPluginId } from '@/plugins/toast' +import { useToastStore as ToastStore } from '@/plugins/toast/store' + +export interface PluginOptions { + displayComponent?: boolean + layoutTag?: keyof typeof NineLayoutTag +} + +export type PolarPluginStore = SetupStoreDefinition< + string, + { + setupPlugin?: () => void + teardownPlugin?: () => void + } +> + +/** @internal */ +export type BundledPluginId = + | typeof FullscreenPluginId + | typeof IconMenuPluginId + | typeof ToastPluginId + +type CheckPlugin< + T extends BundledPluginId, + I extends BundledPluginId, + S extends PolarPluginStore, +> = T extends I ? S : never + +export type BundledPluginStores = + | CheckPlugin + | CheckPlugin + | CheckPlugin + +/** @internal */ +export type ExternalPluginId = `external-${string}` + +/** @internal */ +export type PluginId = BundledPluginId | ExternalPluginId + +export interface PluginContainer { + /** + * Unique technical identifier. + * + * For bundled plugins, this is its name, e.g. `fullscreen`. + * + * For external plugins, use `external-` as a prefix and ensure uniqueness. + * For publicly published plugins, it is recommended to use + * `polar-plugin-X` as your package name and use `external-X` as ID. + * + * Please do not use `external-X` when `X` is a bundled plugin. + * + * @example `fullscreen` + */ + id: PluginId + + /** + * A Vue component if required. + * + * The component will be rendered by POLAR over the map. + * The position is either to be determined by the plugin if `layout === 'standard'` + * or will be determined by the layout. + */ + component?: Component + + /** + * Locales used in the plugin. + * + * The locales will be loaded to the namespace that equals the plugin's ID. + */ + locales?: Locale[] + + /** + * Configuration options. Please also note that all configuration added via plugin constructors can be overridden in + * the {@link createMap | `createMap`'s parameter `mapConfiguration`} . + * + * You may use either object (or a mix of them) to create the configuration, e.g. use the constructors for a base + * configuration and the `mapConfiguration` object to override it for various use cases. + * + * How exactly you do this is up to you and influences the minimum API call requirements your client has. + */ + options?: PluginOptions + + /** + * Pinia store module if required. + * If the storeModule features a `setupPlugin` action, it will be executed automatically after initialization. + * If the storeModule features a `teardownPlugin` action, it will be executed automatically before unloading. + */ + storeModule?: PolarPluginStore +} diff --git a/src/core/types/theme.ts b/src/core/types/theme.ts new file mode 100644 index 000000000..42b0cee8c --- /dev/null +++ b/src/core/types/theme.ts @@ -0,0 +1,54 @@ +export interface OklchColor { + l: string + c: string + h: string +} + +export interface KernThemeTree { + [key: string]: string | KernThemeTree +} + +/** + * Describes the theming options of KERN. + * The exhaustive list of parameters is documented in `@kern-ux/native`. + */ +export interface KernTheme { + color: KernThemeTree + metric: KernThemeTree +} + +/** + * Color expressed as RGB(A). + */ +export interface RgbaColor { + r: string + g: string + b: string + a?: string +} + +/** + * A color, provided in one of many possible ways CSS allows. + */ +export type Color = { oklch: OklchColor } | { rgba: RgbaColor } | string + +/** + * An icon. + */ +export type Icon = `kern-icon--${string}` + +/** + * A theme for the POLAR map client. + */ +export interface PolarTheme { + /** + * This color will be defined as `--brand-color-{l,c,h}` CSS variable inside POLAR's shadow DOM. + * It can especially be used to define the KERN theme via {@link https://developer.mozilla.org/de/docs/Web/CSS/color_value/oklch | oklch}. + */ + brandColor?: OklchColor + + /** + * Theme for KERN UX library. + */ + kern?: KernTheme +} diff --git a/src/core/utils/checkServiceAvailability.ts b/src/core/utils/checkServiceAvailability.ts index 42d74d6ec..236b4b5e9 100644 --- a/src/core/utils/checkServiceAvailability.ts +++ b/src/core/utils/checkServiceAvailability.ts @@ -1,5 +1,6 @@ import { ping } from '@masterportal/masterportalapi' import type { MapConfiguration, ServiceAvailabilityCheck } from '../types' +import { notifyUser } from '@/lib/notifyUser' export function checkServiceAvailability( configuration: MapConfiguration, @@ -30,23 +31,15 @@ export function checkServiceAvailability( serviceName: service.name as string, }) ) - .forEach(({ ping, serviceId /*, serviceName */ }) => { + .forEach(({ ping, serviceId, serviceName }) => { ping .then((statusCode) => { if (statusCode !== 200) { - // TODO: Uncomment when toast plugin is implemented - /* const toastStore = plugins.value.find( - ({ id }) => id === 'toast' - )?.storeModule - if (toastStore) { - toastStore().addToast({ - type: 'warning', - text: i18next.t('error.serviceUnavailable', { - serviceId, - serviceName, - }), - }) - } */ + notifyUser('warning', 'error.serviceUnavailable', { + serviceId, + serviceName, + }) + // always print status code for debugging purposes console.error(`Ping to "${serviceId}" returned "${statusCode}".`) } diff --git a/src/lib/getCssColor.ts b/src/lib/getCssColor.ts new file mode 100644 index 000000000..40731ec96 --- /dev/null +++ b/src/lib/getCssColor.ts @@ -0,0 +1,17 @@ +import type { Color } from '@/core' + +export function getCssColor(color: Color): string { + if (typeof color === 'string') { + return color + } + if ('oklch' in color) { + return `oklch(${color.oklch.l}, ${color.oklch.c}, ${color.oklch.h})` + } + if ('rgba' in color) { + if (color.rgba.a) { + return `rgba(${color.rgba.r}, ${color.rgba.g}, ${color.rgba.b}, ${color.rgba.a})` + } + return `rgb(${color.rgba.r}, ${color.rgba.g}, ${color.rgba.b})` + } + return color +} diff --git a/src/lib/notifyUser.ts b/src/lib/notifyUser.ts new file mode 100644 index 000000000..38177f5a4 --- /dev/null +++ b/src/lib/notifyUser.ts @@ -0,0 +1,14 @@ +import i18next, { type TOptions } from 'i18next' +import { useCoreStore } from '@/core/stores/export' + +export function notifyUser( + severity: 'error' | 'warning' | 'info' | 'success', + translationKey: string, + translationContext?: TOptions +) { + const coreStore = useCoreStore() + const toastStore = coreStore.getPluginStore('toast') + if (!toastStore) return + const text = i18next.t(translationKey, translationContext) + toastStore.addToast({ severity, text }) +} diff --git a/src/plugins/toast/components/ToastContainer.ce.vue b/src/plugins/toast/components/ToastContainer.ce.vue new file mode 100644 index 000000000..8a7262b49 --- /dev/null +++ b/src/plugins/toast/components/ToastContainer.ce.vue @@ -0,0 +1,23 @@ +

+ +
+ + + + + + diff --git a/src/plugins/toast/components/ToastUI.ce.vue b/src/plugins/toast/components/ToastUI.ce.vue new file mode 100644 index 000000000..cf1625311 --- /dev/null +++ b/src/plugins/toast/components/ToastUI.ce.vue @@ -0,0 +1,73 @@ + + + + + diff --git a/src/plugins/toast/components/ToastUI.spec.ts b/src/plugins/toast/components/ToastUI.spec.ts new file mode 100644 index 000000000..fc3d3163e --- /dev/null +++ b/src/plugins/toast/components/ToastUI.spec.ts @@ -0,0 +1,57 @@ +import { expect, test as _test, vi } from 'vitest' +import { mount, VueWrapper } from '@vue/test-utils' +import { createTestingPinia } from '@pinia/testing' +import { nextTick } from 'vue' +import { useToastStore } from '../store' +import ToastUI from './ToastUI.ce.vue' + +/* eslint-disable no-empty-pattern */ +const test = _test.extend<{ + wrapper: VueWrapper + store: ReturnType +}>({ + wrapper: async ({}, use) => { + const wrapper = mount(ToastUI, { + global: { + plugins: [createTestingPinia({ createSpy: vi.fn })], + mocks: { + $t: (key, { ns, context }) => `$t(${ns}:${key}_${context})`, + }, + }, + }) + await use(wrapper) + }, + store: async ({}, use) => { + const store = useToastStore() + await use(store) + }, +}) +/* eslint-enable no-empty-pattern */ + +test('Component shows multiple toasts', async ({ wrapper, store }) => { + // @ts-expect-error | toasts are readonly + store.toasts = [ + { text: 'ALPHA', severity: 'info' }, + { text: 'BETA', severity: 'error' }, + ] + await nextTick() + + expect( + wrapper.find('.kern-alert:nth-of-type(1) .kern-title').text() + ).toContain('ALPHA') + expect( + wrapper.find('.kern-alert:nth-of-type(2) .kern-title').text() + ).toContain('BETA') +}) + +test('Component removes toast on dismiss click', async ({ wrapper, store }) => { + // @ts-expect-error | toasts are readonly + store.toasts = [ + { text: 'ALPHA', severity: 'info' }, + { text: 'BETA', severity: 'error' }, + ] + await nextTick() + + await wrapper.find('.kern-alert:nth-of-type(2) button').trigger('click') + expect(store.removeToast).toHaveBeenCalledExactlyOnceWith(store.toasts[1]) +}) diff --git a/src/plugins/toast/index.ts b/src/plugins/toast/index.ts new file mode 100644 index 000000000..d3d178c7d --- /dev/null +++ b/src/plugins/toast/index.ts @@ -0,0 +1,33 @@ +/* eslint-disable tsdoc/syntax */ +/** + * @module \@polar/polar/plugins/toast + */ +/* eslint-enable tsdoc/syntax */ + +import component from './components/ToastContainer.ce.vue' +import locales from './locales' +import { useToastStore } from './store' +import { PluginId, type ToastPluginOptions } from './types' +import type { PluginContainer, PolarPluginStore } from '@/core' + +/** + * Creates a plugin which provides toast messages. + * + * @returns Plugin for use with {@link addPlugin} + */ +export default function pluginToast( + options: ToastPluginOptions +): PluginContainer { + return { + id: PluginId, + component, + locales, + storeModule: useToastStore as PolarPluginStore, + options: { + displayComponent: true, + ...options, + }, + } +} + +export * from './types' diff --git a/src/plugins/toast/locales.ts b/src/plugins/toast/locales.ts new file mode 100644 index 000000000..8a0c0acfe --- /dev/null +++ b/src/plugins/toast/locales.ts @@ -0,0 +1,51 @@ +/* eslint-disable tsdoc/syntax */ +/** + * This is the documentation for the locales keys in the toast plugin. + * These locales are *NOT* exported, but documented only. + * + * @module locales/plugins/toast + */ +/* eslint-enable tsdoc/syntax */ + +import type { Locale } from '@/core' + +/** + * German locales for toast plugin. + * For overwriting these values, use the plugin's ID as namespace. + */ +export const resourcesDe = { + dismissButton: { + label: 'Benachrichtigung ausblenden', + }, +} as const + +/** + * English locales for toast plugin. + * For overwriting these values, use the plugin's ID as namespace. + */ +export const resourcesEn = { + dismissButton: { + label: 'Hide notification', + }, +} as const + +/** + * Toast plugin locales. + * + * @privateRemarks + * The first entry will be used as fallback. + * + * @internal + */ +const locales: Locale[] = [ + { + type: 'de', + resources: resourcesDe, + }, + { + type: 'en', + resources: resourcesEn, + }, +] + +export default locales diff --git a/src/plugins/toast/store.ts b/src/plugins/toast/store.ts new file mode 100644 index 000000000..36a8071ad --- /dev/null +++ b/src/plugins/toast/store.ts @@ -0,0 +1,217 @@ +/* eslint-disable tsdoc/syntax */ +/** + * @module \@polar/polar/plugins/fullscreen/store + */ +/* eslint-enable tsdoc/syntax */ + +import { defineStore } from 'pinia' +import { computed, ref, toRaw, type Reactive } from 'vue' +import { toMerged } from 'es-toolkit' +import { + PluginId, + type Toast, + type ToastPluginOptions, + type ToastSeverity, + type ToastTheme, +} from './types' +import { useCoreStore } from '@/core/stores/export' + +interface ToastItem { + toast: Toast + timeout?: ReturnType +} + +/* eslint-disable tsdoc/syntax */ +/** + * @function + * + * Plugin store for fullscreen mode detection and enablement. + */ +/* eslint-enable tsdoc/syntax */ +export const useToastStore = defineStore('plugins/toast', () => { + const coreStore = useCoreStore() + + const configuration = computed( + () => coreStore.configuration[PluginId] as ToastPluginOptions + ) + + const toasts = ref([]) + + function addToast( + toast: Toast, + options?: { + timeout?: number | null + } + ) { + const optionsWithDefaults = toMerged( + { + timeout: toast.severity === 'error' ? null : 5000, + }, + options || {} + ) + toast.theme = toMerged( + configuration.value[toast.severity] || {}, + toast.theme || {} + ) + + const toastItem: ToastItem = { toast } + toasts.value.push(toastItem) + + if (typeof optionsWithDefaults.timeout === 'number') { + toastItem.timeout = setTimeout( + () => removeToast(toast), + optionsWithDefaults.timeout + ) + } + } + + function removeToast(toast: Toast): boolean { + const index = toasts.value.findIndex( + (item) => toRaw(item.toast) === toRaw(toast) + ) + if (index < 0) return false + const [toastItem] = toasts.value.splice(index, 1) + if (toastItem?.timeout) { + clearTimeout(toastItem.timeout) + } + return true + } + + return { + /** + * List of all toasts that are visible. + * + * @alpha + */ + toasts: computed(() => toasts.value.map(({ toast }) => toast)), + + /** + * Shows a toast. + * + * If no timeout is given, the toast disappears after five seconds. + * Error toasts have no timeout by default. + * To disable the timeout, pass `null` explicitly. + */ + addToast, + + /** + * Removes a toast. + * + * The exact object reference to the toast object passed to `addToast` is needed. + * A deep equal object will not work. + * + * If the toast was already removed, this method does nothing. + * If the toast has a connected timeout, it is canceled. + * + * @returns `true` if the toast could be found and removed, `false` otherwise + */ + removeToast, + } +}) + +if (import.meta.vitest) { + const { expect, test: _test, vi } = import.meta.vitest + const { createPinia, setActivePinia } = await import('pinia') + const { reactive } = await import('vue') + + const mockedUseCoreStore = vi.hoisted(() => vi.fn()) + vi.mock('@/core/stores/export', () => ({ + useCoreStore: mockedUseCoreStore, + })) + + /* eslint-disable no-empty-pattern */ + const test = _test.extend<{ + coreStore: Reactive> + store: ReturnType + timer: null + }>({ + coreStore: [ + async ({}, use) => { + const coreStore = reactive({ + configuration: { [PluginId]: {} }, + }) + mockedUseCoreStore.mockReturnValue(coreStore) + await use(coreStore) + }, + { auto: true }, + ], + store: async ({}, use) => { + setActivePinia(createPinia()) + const store = useToastStore() + await use(store) + }, + timer: [ + async ({}, use) => { + vi.useFakeTimers() + await use(null) + vi.resetAllMocks() + }, + { auto: true }, + ], + }) + /* eslint-enable no-empty-pattern */ + + test('Toast can be added and safely removed', ({ store }) => { + const toast: Toast = { + text: 'TOAST', + severity: 'error', + } + store.addToast(toast) + expect(store.toasts.length).toBe(1) + expect(toRaw(store.toasts[0])).toEqual(toast) + + expect(store.removeToast(toast)).toBe(true) + expect(store.toasts.length).toBe(0) + expect(store.removeToast(toast)).toBe(false) + }) + + test.for([ + { severity: 'error', timeout: null }, + { severity: 'warning', timeout: 5 }, + { severity: 'info', timeout: 5 }, + { severity: 'success', timeout: 5 }, + ])( + 'Toast with severity $severity is automatically removed after $timeout seconds (null = never)', + ({ severity, timeout }, { store }) => { + store.addToast({ + text: 'TOAST', + severity: severity as ToastSeverity, + }) + if (timeout) { + vi.advanceTimersByTime(timeout * 1000 - 1) + expect(store.toasts.length).toBe(1) + vi.advanceTimersByTime(1) + expect(store.toasts.length).toBe(0) + } else { + vi.runAllTimers() + expect(store.toasts.length).toBe(1) + } + } + ) + + test.for([ + { + config: { color: 'SC', icon: 'SI' }, + options: { icon: 'OI' }, + result: { color: 'SC', icon: 'OI' }, + }, + { + config: { icon: 'SI' }, + options: {}, + result: { icon: 'SI' }, + }, + ])( + 'Toast consideres theme settings in the right precedence', + ({ config, options, result }, { coreStore, store }) => { + // @ts-expect-error | This is a test + coreStore.configuration[PluginId].info = config + store.addToast({ + text: 'TEXT', + severity: 'info', + theme: options as ToastTheme, + }) + expect(store.toasts.length).toBe(1) + expect(store.toasts[0]?.theme).toEqual(result) + } + ) +} diff --git a/src/plugins/toast/types.ts b/src/plugins/toast/types.ts new file mode 100644 index 000000000..9d6cf13ee --- /dev/null +++ b/src/plugins/toast/types.ts @@ -0,0 +1,38 @@ +import type { Color, Icon, PluginOptions } from '@/core' + +/** + * Plugin identifier. + */ +export const PluginId = 'toast' + +/** + * Toast severity. + */ +export type ToastSeverity = 'error' | 'warning' | 'info' | 'success' + +/** + * Customized toast theme. + */ +export interface ToastTheme { + color?: Color + icon?: Icon +} + +/** + * Toast. + */ +export interface Toast { + text: string + severity: ToastSeverity + theme?: ToastTheme +} + +/** + * Plugin options for toast plugin. + */ +export interface ToastPluginOptions extends PluginOptions { + error?: ToastTheme + warning?: ToastTheme + info?: ToastTheme + success?: ToastTheme +} diff --git a/vue2/packages/plugins/Toast/CHANGELOG.md b/vue2/packages/plugins/Toast/CHANGELOG.md deleted file mode 100644 index e4fba60db..000000000 --- a/vue2/packages/plugins/Toast/CHANGELOG.md +++ /dev/null @@ -1,21 +0,0 @@ -# CHANGELOG - -## 1.1.2 - -- Chore: Update `@polar/lib-custom-types` to `v2.0.0`. - -## 1.1.1 - -- Fix: Adjust documentation to properly describe optionality of configuration parameters. - -## 1.1.0 - -- Feature: Improved implementation to make plugin SPA-ready. - -## 1.0.1 - -- Fix: Add missing repository information in package.json. - -## 1.0.0 - -Initial release. diff --git a/vue2/packages/plugins/Toast/LICENSE b/vue2/packages/plugins/Toast/LICENSE deleted file mode 100644 index c29ce2f83..000000000 --- a/vue2/packages/plugins/Toast/LICENSE +++ /dev/null @@ -1,287 +0,0 @@ - EUROPEAN UNION PUBLIC LICENCE v. 1.2 - EUPL © the European Union 2007, 2016 - -This European Union Public Licence (the ‘EUPL’) applies to the Work (as defined -below) which is provided under the terms of this Licence. Any use of the Work, -other than as authorised under this Licence is prohibited (to the extent such -use is covered by a right of the copyright holder of the Work). - -The Work is provided under the terms of this Licence when the Licensor (as -defined below) has placed the following notice immediately following the -copyright notice for the Work: - - Licensed under the EUPL - -or has expressed by any other means his willingness to license under the EUPL. - -1. Definitions - -In this Licence, the following terms have the following meaning: - -- ‘The Licence’: this Licence. - -- ‘The Original Work’: the work or software distributed or communicated by the - Licensor under this Licence, available as Source Code and also as Executable - Code as the case may be. - -- ‘Derivative Works’: the works or software that could be created by the - Licensee, based upon the Original Work or modifications thereof. This Licence - does not define the extent of modification or dependence on the Original Work - required in order to classify a work as a Derivative Work; this extent is - determined by copyright law applicable in the country mentioned in Article 15. - -- ‘The Work’: the Original Work or its Derivative Works. - -- ‘The Source Code’: the human-readable form of the Work which is the most - convenient for people to study and modify. - -- ‘The Executable Code’: any code which has generally been compiled and which is - meant to be interpreted by a computer as a program. - -- ‘The Licensor’: the natural or legal person that distributes or communicates - the Work under the Licence. - -- ‘Contributor(s)’: any natural or legal person who modifies the Work under the - Licence, or otherwise contributes to the creation of a Derivative Work. - -- ‘The Licensee’ or ‘You’: any natural or legal person who makes any usage of - the Work under the terms of the Licence. - -- ‘Distribution’ or ‘Communication’: any act of selling, giving, lending, - renting, distributing, communicating, transmitting, or otherwise making - available, online or offline, copies of the Work or providing access to its - essential functionalities at the disposal of any other natural or legal - person. - -2. Scope of the rights granted by the Licence - -The Licensor hereby grants You a worldwide, royalty-free, non-exclusive, -sublicensable licence to do the following, for the duration of copyright vested -in the Original Work: - -- use the Work in any circumstance and for all usage, -- reproduce the Work, -- modify the Work, and make Derivative Works based upon the Work, -- communicate to the public, including the right to make available or display - the Work or copies thereof to the public and perform publicly, as the case may - be, the Work, -- distribute the Work or copies thereof, -- lend and rent the Work or copies thereof, -- sublicense rights in the Work or copies thereof. - -Those rights can be exercised on any media, supports and formats, whether now -known or later invented, as far as the applicable law permits so. - -In the countries where moral rights apply, the Licensor waives his right to -exercise his moral right to the extent allowed by law in order to make effective -the licence of the economic rights here above listed. - -The Licensor grants to the Licensee royalty-free, non-exclusive usage rights to -any patents held by the Licensor, to the extent necessary to make use of the -rights granted on the Work under this Licence. - -3. Communication of the Source Code - -The Licensor may provide the Work either in its Source Code form, or as -Executable Code. If the Work is provided as Executable Code, the Licensor -provides in addition a machine-readable copy of the Source Code of the Work -along with each copy of the Work that the Licensor distributes or indicates, in -a notice following the copyright notice attached to the Work, a repository where -the Source Code is easily and freely accessible for as long as the Licensor -continues to distribute or communicate the Work. - -4. Limitations on copyright - -Nothing in this Licence is intended to deprive the Licensee of the benefits from -any exception or limitation to the exclusive rights of the rights owners in the -Work, of the exhaustion of those rights or of other applicable limitations -thereto. - -5. Obligations of the Licensee - -The grant of the rights mentioned above is subject to some restrictions and -obligations imposed on the Licensee. Those obligations are the following: - -Attribution right: The Licensee shall keep intact all copyright, patent or -trademarks notices and all notices that refer to the Licence and to the -disclaimer of warranties. The Licensee must include a copy of such notices and a -copy of the Licence with every copy of the Work he/she distributes or -communicates. The Licensee must cause any Derivative Work to carry prominent -notices stating that the Work has been modified and the date of modification. - -Copyleft clause: If the Licensee distributes or communicates copies of the -Original Works or Derivative Works, this Distribution or Communication will be -done under the terms of this Licence or of a later version of this Licence -unless the Original Work is expressly distributed only under this version of the -Licence — for example by communicating ‘EUPL v. 1.2 only’. The Licensee -(becoming Licensor) cannot offer or impose any additional terms or conditions on -the Work or Derivative Work that alter or restrict the terms of the Licence. - -Compatibility clause: If the Licensee Distributes or Communicates Derivative -Works or copies thereof based upon both the Work and another work licensed under -a Compatible Licence, this Distribution or Communication can be done under the -terms of this Compatible Licence. For the sake of this clause, ‘Compatible -Licence’ refers to the licences listed in the appendix attached to this Licence. -Should the Licensee's obligations under the Compatible Licence conflict with -his/her obligations under this Licence, the obligations of the Compatible -Licence shall prevail. - -Provision of Source Code: When distributing or communicating copies of the Work, -the Licensee will provide a machine-readable copy of the Source Code or indicate -a repository where this Source will be easily and freely available for as long -as the Licensee continues to distribute or communicate the Work. - -Legal Protection: This Licence does not grant permission to use the trade names, -trademarks, service marks, or names of the Licensor, except as required for -reasonable and customary use in describing the origin of the Work and -reproducing the content of the copyright notice. - -6. Chain of Authorship - -The original Licensor warrants that the copyright in the Original Work granted -hereunder is owned by him/her or licensed to him/her and that he/she has the -power and authority to grant the Licence. - -Each Contributor warrants that the copyright in the modifications he/she brings -to the Work are owned by him/her or licensed to him/her and that he/she has the -power and authority to grant the Licence. - -Each time You accept the Licence, the original Licensor and subsequent -Contributors grant You a licence to their contributions to the Work, under the -terms of this Licence. - -7. Disclaimer of Warranty - -The Work is a work in progress, which is continuously improved by numerous -Contributors. It is not a finished work and may therefore contain defects or -‘bugs’ inherent to this type of development. - -For the above reason, the Work is provided under the Licence on an ‘as is’ basis -and without warranties of any kind concerning the Work, including without -limitation merchantability, fitness for a particular purpose, absence of defects -or errors, accuracy, non-infringement of intellectual property rights other than -copyright as stated in Article 6 of this Licence. - -This disclaimer of warranty is an essential part of the Licence and a condition -for the grant of any rights to the Work. - -8. Disclaimer of Liability - -Except in the cases of wilful misconduct or damages directly caused to natural -persons, the Licensor will in no event be liable for any direct or indirect, -material or moral, damages of any kind, arising out of the Licence or of the use -of the Work, including without limitation, damages for loss of goodwill, work -stoppage, computer failure or malfunction, loss of data or any commercial -damage, even if the Licensor has been advised of the possibility of such damage. -However, the Licensor will be liable under statutory product liability laws as -far such laws apply to the Work. - -9. Additional agreements - -While distributing the Work, You may choose to conclude an additional agreement, -defining obligations or services consistent with this Licence. However, if -accepting obligations, You may act only on your own behalf and on your sole -responsibility, not on behalf of the original Licensor or any other Contributor, -and only if You agree to indemnify, defend, and hold each Contributor harmless -for any liability incurred by, or claims asserted against such Contributor by -the fact You have accepted any warranty or additional liability. - -10. Acceptance of the Licence - -The provisions of this Licence can be accepted by clicking on an icon ‘I agree’ -placed under the bottom of a window displaying the text of this Licence or by -affirming consent in any other similar way, in accordance with the rules of -applicable law. Clicking on that icon indicates your clear and irrevocable -acceptance of this Licence and all of its terms and conditions. - -Similarly, you irrevocably accept this Licence and all of its terms and -conditions by exercising any rights granted to You by Article 2 of this Licence, -such as the use of the Work, the creation by You of a Derivative Work or the -Distribution or Communication by You of the Work or copies thereof. - -11. Information to the public - -In case of any Distribution or Communication of the Work by means of electronic -communication by You (for example, by offering to download the Work from a -remote location) the distribution channel or media (for example, a website) must -at least provide to the public the information requested by the applicable law -regarding the Licensor, the Licence and the way it may be accessible, concluded, -stored and reproduced by the Licensee. - -12. Termination of the Licence - -The Licence and the rights granted hereunder will terminate automatically upon -any breach by the Licensee of the terms of the Licence. - -Such a termination will not terminate the licences of any person who has -received the Work from the Licensee under the Licence, provided such persons -remain in full compliance with the Licence. - -13. Miscellaneous - -Without prejudice of Article 9 above, the Licence represents the complete -agreement between the Parties as to the Work. - -If any provision of the Licence is invalid or unenforceable under applicable -law, this will not affect the validity or enforceability of the Licence as a -whole. Such provision will be construed or reformed so as necessary to make it -valid and enforceable. - -The European Commission may publish other linguistic versions or new versions of -this Licence or updated versions of the Appendix, so far this is required and -reasonable, without reducing the scope of the rights granted by the Licence. New -versions of the Licence will be published with a unique version number. - -All linguistic versions of this Licence, approved by the European Commission, -have identical value. Parties can take advantage of the linguistic version of -their choice. - -14. Jurisdiction - -Without prejudice to specific agreement between parties, - -- any litigation resulting from the interpretation of this License, arising - between the European Union institutions, bodies, offices or agencies, as a - Licensor, and any Licensee, will be subject to the jurisdiction of the Court - of Justice of the European Union, as laid down in article 272 of the Treaty on - the Functioning of the European Union, - -- any litigation arising between other parties and resulting from the - interpretation of this License, will be subject to the exclusive jurisdiction - of the competent court where the Licensor resides or conducts its primary - business. - -15. Applicable Law - -Without prejudice to specific agreement between parties, - -- this Licence shall be governed by the law of the European Union Member State - where the Licensor has his seat, resides or has his registered office, - -- this licence shall be governed by Belgian law if the Licensor has no seat, - residence or registered office inside a European Union Member State. - -Appendix - -‘Compatible Licences’ according to Article 5 EUPL are: - -- GNU General Public License (GPL) v. 2, v. 3 -- GNU Affero General Public License (AGPL) v. 3 -- Open Software License (OSL) v. 2.1, v. 3.0 -- Eclipse Public License (EPL) v. 1.0 -- CeCILL v. 2.0, v. 2.1 -- Mozilla Public Licence (MPL) v. 2 -- GNU Lesser General Public Licence (LGPL) v. 2.1, v. 3 -- Creative Commons Attribution-ShareAlike v. 3.0 Unported (CC BY-SA 3.0) for - works other than software -- European Union Public Licence (EUPL) v. 1.1, v. 1.2 -- Québec Free and Open-Source Licence — Reciprocity (LiLiQ-R) or Strong - Reciprocity (LiLiQ-R+). - -The European Commission may update this Appendix to later versions of the above -licences without producing a new version of the EUPL, as long as they provide -the rights granted in Article 2 of this Licence and protect the covered Source -Code from exclusive appropriation. - -All other changes or additions to this Appendix require the production of a new -EUPL version. \ No newline at end of file diff --git a/vue2/packages/plugins/Toast/README.md b/vue2/packages/plugins/Toast/README.md deleted file mode 100644 index 3452df90f..000000000 --- a/vue2/packages/plugins/Toast/README.md +++ /dev/null @@ -1,87 +0,0 @@ -# Toast - -## Scope - -The toast plugin offers global functionality to display text messages to the user. These are the classic success, warning, info, and error messages, helping to understand what's going on or why something happened. - -## Configuration - -Please check the vuetify documentation to override the success, warning, info, or errors colors in general. To affect only this plugin, the following configuration parameters can be added to either the plugin instantiation or the mapConfiguration: - -### toast - -| fieldName | type | description | -| - | - | - | -| error | toastStyle? | Design override for error messages. | -| info | toastStyle? | Design override for info messages. | -| success | toastStyle? | Design override for success messages. | -| warning | toastStyle? | Design override for warning messages. | - -For details on the `displayComponent` attribute, refer to the [Global Plugin Parameters](../../core/README.md#global-plugin-parameters) section of `@polar/core`. - -Example configuration: -```js -toast: { - info: { - toastStyle: { - color: '#0000FF' - icon: 'fas fa-file' - } - }, - error: { - toastStyle: { - color: '#FF0000' - icon: 'fas fa-cloud' - } - } -} -``` - -#### toast.toastStyle - -| fieldName | type | description | -| - | - | - | -| color | string? | Either a color code like '#FACADE' or a color string [vuetify understands](https://vuetifyjs.com/en/styles/colors/). | -| icon | string? | CSS icon class. | - -Example configuration: -```js -toastStyle: { - color: '#0000FF' - icon: 'fas fa-file' -} -``` - -## Store - -### Actions - -New entries are made via action. They are either dismissed after a timeout or by user interaction. - -```js -map.$store.dispatch('plugin/toast/addToast', payload) -``` - -#### Payload structure - -| fieldName | type | description | -| - | - | - | -| text | string | Textual user information. This may either be a user-readable string or a translation key. | -| timeout | number | Any positive non-null number will be used as ms until the toast is closed. 0 means no timeout. | -| type | enum['error', 'warning', 'info', 'success'] | Decides the default toast colouring and icon. | -| color | string? | See {toast.toastStyle}. Overrides setting for this toast only. | -| icon | string? | See {toast.toastStyle}. Overrides setting for this toast only. | - -#### Usage example - -```js -map.$store.dispatch('plugin/toast/addToast', { - type: 'warning', - text: 'Wrong hammer for screw.', - timeout: 5000, -}) -``` - -![Alert example](./readme_example.png) - -Due to its timeout, the message will automatically disappear after 5 seconds passed. diff --git a/vue2/packages/plugins/Toast/package.json b/vue2/packages/plugins/Toast/package.json deleted file mode 100644 index 5fdef60fb..000000000 --- a/vue2/packages/plugins/Toast/package.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "@polar/plugin-toast", - "version": "1.1.2", - "description": "Toast plugin for POLAR that adds toast elements (notification popups) to the client.", - "keywords": [ - "OpenLayers", - "ol", - "POLAR", - "plugin", - "toast", - "notification", - "popup" - ], - "license": "EUPL-1.2", - "type": "module", - "author": "Dataport AöR ", - "main": "src/index.ts", - "repository": { - "type": "git", - "url": "git+https://github.com/Dataport/polar.git", - "directory": "packages/plugins/Toast" - }, - "files": [ - "src/**/*", - "CHANGELOG.md" - ], - "dependencies": { - "lodash.merge": "^4.6.2" - }, - "peerDependencies": { - "@repositoryname/vuex-generators": "^1.1.2", - "vue": "^2.6.14", - "vuex": "^3.6.2" - }, - "devDependencies": { - "@polar/lib-custom-types": "^2.0.0", - "@polar/lib-test-mount-parameters": "^1.3.2" - } -} diff --git a/vue2/packages/plugins/Toast/readme_example.png b/vue2/packages/plugins/Toast/readme_example.png deleted file mode 100644 index be5f2d6c443f7a935fc10ccfb9fc4308aadbe839..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3526 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 -
- - {{ $t(toast.text) }} - -
- - - - - diff --git a/vue2/packages/plugins/Toast/src/components/index.ts b/vue2/packages/plugins/Toast/src/components/index.ts deleted file mode 100644 index 2ee019c7b..000000000 --- a/vue2/packages/plugins/Toast/src/components/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as Toast } from './Toast.vue' diff --git a/vue2/packages/plugins/Toast/src/index.ts b/vue2/packages/plugins/Toast/src/index.ts deleted file mode 100644 index 2fdd94d4a..000000000 --- a/vue2/packages/plugins/Toast/src/index.ts +++ /dev/null @@ -1,14 +0,0 @@ -import Vue from 'vue' -import { ToastConfiguration } from '@polar/lib-custom-types' -import { Toast } from './components' -import locales from './locales' -import { makeStoreModule } from './store' - -export default (options: ToastConfiguration) => (instance: Vue) => - instance.$store.dispatch('addComponent', { - name: 'toast', - plugin: Toast, - locales, - options, - storeModule: makeStoreModule(), - }) diff --git a/vue2/packages/plugins/Toast/src/locales.ts b/vue2/packages/plugins/Toast/src/locales.ts deleted file mode 100644 index f67b20f42..000000000 --- a/vue2/packages/plugins/Toast/src/locales.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { Locale } from '@polar/lib-custom-types' - -export const resourcesDe = { - plugins: { - toast: { - close: 'Benachrichtigung ausblenden', - }, - }, -} as const -export const resourcesEn = { - plugins: { - toast: { - close: 'Hide notification', - }, - }, -} as const - -const locales: Locale[] = [ - { - type: 'de', - resources: resourcesDe, - }, - { - type: 'en', - resources: resourcesEn, - }, -] - -export default locales diff --git a/vue2/packages/plugins/Toast/src/store/index.ts b/vue2/packages/plugins/Toast/src/store/index.ts deleted file mode 100644 index 7fe909435..000000000 --- a/vue2/packages/plugins/Toast/src/store/index.ts +++ /dev/null @@ -1,81 +0,0 @@ -import merge from 'lodash.merge' -import { generateSimpleGetters } from '@repositoryname/vuex-generators' -import { PolarModule } from '@polar/lib-custom-types' -import { Toast, ToastState } from '../types' - -export const getInitialState = (): ToastState => ({ - toasts: [], - types: { - success: { - color: undefined, - icon: undefined, - }, - warning: { - color: undefined, - icon: undefined, - }, - info: { - color: undefined, - icon: undefined, - }, - error: { - color: undefined, - icon: undefined, - }, - }, -}) - -export const makeStoreModule = () => { - const storeModule: PolarModule = { - namespaced: true, - state: getInitialState(), - actions: { - setupModule({ state, commit, rootGetters }) { - const pluginConfiguration = - rootGetters.configuration.toast || getInitialState().types - const mergedTypes = merge({}, state.types, { - error: pluginConfiguration.error || {}, - warning: pluginConfiguration.warning || {}, - info: pluginConfiguration.info || {}, - success: pluginConfiguration.success || {}, - }) - commit('setTypes', mergedTypes) - }, - addToast({ state, commit }, toast: Toast) { - // use potential overrides from config; always prefer toast-specifics - const smearedToast: Toast = { - ...(state.types[toast.type] || {}), - ...toast, - } - commit('addToast', smearedToast) - if (toast.timeout) { - if (toast.type !== 'error') { - setTimeout(() => { - commit('removeToast', smearedToast) - }, toast.timeout) - } else { - console.warn( - '@polar/plugin-toast: Timeouts for error messages are disabled, they can only be dismissed manually.' - ) - } - } - }, - }, - getters: { - ...generateSimpleGetters(getInitialState()), - }, - mutations: { - setTypes(state, types) { - state.types = types - }, - addToast(state, toast) { - state.toasts = [...state.toasts, toast] - }, - removeToast(state, toast) { - state.toasts = state.toasts.filter((t) => t !== toast) - }, - }, - } - - return storeModule -} diff --git a/vue2/packages/plugins/Toast/src/types.ts b/vue2/packages/plugins/Toast/src/types.ts deleted file mode 100644 index fe4047799..000000000 --- a/vue2/packages/plugins/Toast/src/types.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { ToastStyle, ToastType, ToastTypeStyles } from '@polar/lib-custom-types' - -/** an instance of a toast, optionally overriding type style */ -export interface Toast extends Partial { - /** style to use */ - type: ToastType - text: string - /** hide toast after $\{timeout\}ms; 0 means never, user has to click close button */ - timeout?: number -} - -export interface ToastState { - toasts: Toast[] - types: ToastTypeStyles -} diff --git a/vue2/packages/plugins/Toast/tests/store.spec.ts b/vue2/packages/plugins/Toast/tests/store.spec.ts deleted file mode 100644 index bc4f23df7..000000000 --- a/vue2/packages/plugins/Toast/tests/store.spec.ts +++ /dev/null @@ -1,116 +0,0 @@ -// NOTE: action tests currently not type-supported, but working -/* eslint-disable @typescript-eslint/ban-ts-comment */ -import { PolarActionHandler } from '@polar/lib-custom-types' -import { getInitialState, makeStoreModule } from '../src/store' -import { Toast, ToastState } from '../src/types' - -describe('plugin-toast', () => { - describe('store', () => { - describe('actions', () => { - describe('addToast', () => { - const ToastStore = makeStoreModule() - const addToast = ToastStore.actions?.addToast as PolarActionHandler< - ToastState, - ToastState - > - - if (typeof addToast === 'undefined') { - throw new Error( - 'Actions missing in ToastStore. Tests could not be run.' - ) - } - - let actionContext - - beforeEach(() => { - actionContext = { - state: getInitialState(), - commit: jest.fn(), - dispatch: jest.fn(), - getters: {}, - rootState: {}, - rootGetters: {}, - } - - jest.useFakeTimers() - jest.spyOn(global, 'setTimeout') - }) - - afterEach(() => { - jest.useRealTimers() - jest.clearAllMocks() - }) - - it('adds the toast element to the store', () => { - const toast: Toast = { - type: 'success', - text: 'Vectors have been triangulated.', - } - // @ts-ignore - addToast(actionContext, toast) - expect(actionContext.commit).toHaveBeenCalledTimes(1) - expect(actionContext.commit).toHaveBeenCalledWith('addToast', toast) - }) - - it('prefers toast style to configured style', () => { - actionContext.state.types.error.icon = 'print-slash' - actionContext.state.types.error.color = 'orange' - const toast: Toast = { - type: 'error', - text: 'You are out of cyan.', - color: 'cyan', - } - // @ts-ignore - addToast(actionContext, toast) - expect(actionContext.commit).toHaveBeenCalledTimes(1) - expect(actionContext.commit).toHaveBeenCalledWith('addToast', { - type: 'error', - text: 'You are out of cyan.', - color: 'cyan', - icon: 'print-slash', - }) - }) - - it('uses positive timeouts to remove the toast automatically', () => { - const toast: Toast = { - type: 'warning', - text: 'Fast reading required.', - timeout: 100, - } - - // @ts-ignore - addToast(actionContext, toast) - - expect(actionContext.commit).toHaveBeenCalledTimes(1) - expect(actionContext.commit).toHaveBeenCalledWith('addToast', toast) - - jest.runAllTimers() - - expect(actionContext.commit).toHaveBeenCalledTimes(2) - expect(actionContext.commit).toHaveBeenCalledWith( - 'removeToast', - toast - ) - }) - - it('does not set timeouts on timeout being 0', () => { - const toast: Toast = { - type: 'info', - text: "I'm not going anywhere.", - timeout: 0, - } - - // @ts-ignore - addToast(actionContext, toast) - - expect(actionContext.commit).toHaveBeenCalledTimes(1) - expect(actionContext.commit).toHaveBeenCalledWith('addToast', toast) - - jest.runAllTimers() - - expect(actionContext.commit).toHaveBeenCalledTimes(1) - }) - }) - }) - }) -}) diff --git a/vue2/packages/plugins/Toast/tests/toast.spec.ts b/vue2/packages/plugins/Toast/tests/toast.spec.ts deleted file mode 100644 index b0850b4e5..000000000 --- a/vue2/packages/plugins/Toast/tests/toast.spec.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { mount } from '@vue/test-utils' -import createTestMountParameters from '@polar/lib-test-mount-parameters' -import { makeStoreModule } from '../src/store' -import { Toast as ToastComponent } from '../src/components' -import { Toast, ToastState } from '../src/types' - -const toasts: Toast[] = [ - { type: 'success', text: 'Tiles have been glued.' }, - { type: 'info', text: "Tiles weren't supposed to be glued." }, - { type: 'warning', text: "Can't get the tiles off now." }, - { type: 'error', text: "It's possible that you may have a problem." }, -] - -describe('plugin-toast', () => { - describe('components', () => { - let testParameters - const ToastStore = makeStoreModule() - - beforeEach(() => { - testParameters = createTestMountParameters() - testParameters.store.registerModule(['plugin', 'toast'], ToastStore) - }) - - it('should render the toasts with text/type as specified', () => { - ;(ToastStore.state as ToastState).toasts = toasts - - const wrapper = mount(ToastComponent, { ...testParameters }) - const alerts = wrapper.findAllComponents({ name: 'v-alert' }) - - toasts.forEach((toast, index) => { - const alert = alerts.at(index) - expect(alert.text()).toBe(toast.text) - expect(alert.classes(toast.type)).toBe(true) - }) - }) - }) -}) diff --git a/vue2/packages/plugins/Toast/vite.config.js b/vue2/packages/plugins/Toast/vite.config.js deleted file mode 100644 index 0d2ec38a1..000000000 --- a/vue2/packages/plugins/Toast/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import { getCodeConfig } from '../../../viteConfigs' - -export default getCodeConfig() From 22b8d10d7e1458ef2d97dc0ae00fcb1b55278480 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Thu, 21 Aug 2025 19:22:40 +0200 Subject: [PATCH 258/697] Remove updateSizeOnReady and mapHasDimensions as it no longer is needed --- src/core/components/PolarMap.ce.vue | 17 +------------ src/core/stores/main.ts | 2 -- src/core/utils/map/updateSizeOnReady.ts | 32 ------------------------- 3 files changed, 1 insertion(+), 50 deletions(-) delete mode 100644 src/core/utils/map/updateSizeOnReady.ts diff --git a/src/core/components/PolarMap.ce.vue b/src/core/components/PolarMap.ce.vue index 968da68ba..7accbd184 100644 --- a/src/core/components/PolarMap.ce.vue +++ b/src/core/components/PolarMap.ce.vue @@ -22,7 +22,6 @@ import { easeOut } from 'ol/easing' import { useMainStore } from '../stores/main' import { updateDragAndZoomInteractions } from '../utils/map/updateDragAndZoomInteractions' -import { updateSizeOnReady } from '../utils/map/updateSizeOnReady' import { setupStyling } from '../utils/map/setupStyling' import { checkServiceAvailability } from '../utils/checkServiceAvailability' @@ -30,8 +29,7 @@ import { setupMarkers } from '../utils/map/setupMarkers' import PolarMapOverlay from './PolarMapOverlay.ce.vue' const mainStore = useMainStore() -const { hasWindowSize, hasSmallDisplay, center, zoom, mapHasDimensions } = - storeToRefs(mainStore) +const { hasWindowSize, hasSmallDisplay, center, zoom } = storeToRefs(mainStore) const polarMapContainer = useTemplateRef('polar-map-container') const overlay = useTemplateRef('polar-map-overlay') @@ -66,19 +64,6 @@ function createMap() { map.on('moveend', onMove) updateDragAndZoomInteractions(map, hasWindowSize.value, hasSmallDisplay.value) - updateSizeOnReady(map) - .then(() => { - // OL prints warnings – add this log to reduce confusion - // eslint-disable-next-line no-console - console.log(`The map now has dimensions and can be rendered.`) - mapHasDimensions.value = true - }) - .catch(() => { - console.error( - `The POLAR map client could not update its size. The map is probably invisible due to having 0 width or 0 height. This might be a CSS issue – please check the wrapper's size.` - ) - }) - updateListeners() mainStore.map = markRaw(map) } diff --git a/src/core/stores/main.ts b/src/core/stores/main.ts index a4b6f1af4..565555f34 100644 --- a/src/core/stores/main.ts +++ b/src/core/stores/main.ts @@ -15,7 +15,6 @@ export const useMainStore = defineStore('main', () => { const language = ref('') const lightElement = ref(null) const map = ref(null) - const mapHasDimensions = ref(false) const plugins = ref([]) const serviceRegister = ref[]>('') const shadowRoot = ref(null) @@ -80,7 +79,6 @@ export const useMainStore = defineStore('main', () => { language, lightElement, map, - mapHasDimensions, oidcToken, plugins, serviceRegister, diff --git a/src/core/utils/map/updateSizeOnReady.ts b/src/core/utils/map/updateSizeOnReady.ts deleted file mode 100644 index 09de10b06..000000000 --- a/src/core/utils/map/updateSizeOnReady.ts +++ /dev/null @@ -1,32 +0,0 @@ -import type { Map } from 'ol' - -/** - * Albeit the map will render without this in Firefox, it won't in Chromium- - * based browsers. The map reports "No map visible because the map - * container's width or height are 0.". However, if updating the map's size - * after letting all other tasks in callback queue execute, the DOM is - * prepared, and we're good to go. - * - * @privateRemarks - * TODO(dopenguin): Check if this is still required for the icon menu - * - * For some reason, we'll have to wait two callback queues sometimes. - * The waiting is arbitrarily limited to 100 queues before an error is shown. - */ -export async function updateSizeOnReady(map: Map) { - await new Promise((resolve, reject) => { - let attemptCounter = 0 - const intervalId = setInterval(() => { - const size = map.getSize() - if (attemptCounter++ < 100 && (!size || size[0] === 0 || size[1] === 0)) { - map.updateSize() - } else if (attemptCounter === 100) { - clearInterval(intervalId) - reject(new Error('Could not update POLAR map client size')) - } else { - clearInterval(intervalId) - resolve() - } - }, 0) - }) -} From f051fa86db673443ded1379ea7ea229e9b575c33 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Thu, 21 Aug 2025 19:41:17 +0200 Subject: [PATCH 259/697] Remove comment as it is already in use --- src/core/index.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/core/index.ts b/src/core/index.ts index 9b690f8f8..695f0f0b3 100644 --- a/src/core/index.ts +++ b/src/core/index.ts @@ -87,7 +87,6 @@ export function addPlugin(plugin: PluginContainer) { } if (locales) { - // NOTE: If somehow needed later, add the namespace to the Locale as well locales.forEach((lng) => { i18next.addResourceBundle(lng.type, id, lng.resources, true) }) From bb6f398663df457c231ce0052729220f74256017 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Thu, 21 Aug 2025 20:24:07 +0200 Subject: [PATCH 260/697] Add first implementation for IconMenu with NineLayout Some parts are still missing and need to be updated to work with KERN. --- examples/snowbox/AnotherEmptyComponent.vue | 5 + examples/snowbox/EmptyComponent.vue | 5 + examples/snowbox/index.js | 49 ++- src/core/components/layouts/NineLayout.ce.vue | 12 +- .../components/layouts/StandardLayout.ce.vue | 5 +- src/core/stores/export.ts | 40 ++- src/core/types.ts | 20 +- src/plugins/fullscreen/index.ts | 5 +- .../iconMenu/components/IconMenu.ce.vue | 16 +- .../iconMenu/components/IconMenuButton.ce.vue | 48 +++ .../components/NineRegionsMenu.ce.vue | 162 ++++++++++ .../iconMenu/components/StandardMenu.ce.vue | 7 + .../iconMenu/components/TopRightMenu.ce.vue | 7 + src/plugins/iconMenu/index.ts | 4 +- src/plugins/iconMenu/locales.ts | 22 +- src/plugins/iconMenu/store.ts | 74 ++++- src/plugins/iconMenu/types.ts | 15 +- vue2/packages/plugins/IconMenu/CHANGELOG.md | 40 --- vue2/packages/plugins/IconMenu/LICENSE | 287 ------------------ vue2/packages/plugins/IconMenu/package.json | 35 --- .../IconMenu/src/components/IconMenu.vue | 162 ---------- .../src/components/IconMenuButton.vue | 84 ++--- .../plugins/IconMenu/src/components/index.ts | 1 - vue2/packages/plugins/IconMenu/src/index.ts | 17 -- vue2/packages/plugins/IconMenu/src/locales.ts | 44 --- .../plugins/IconMenu/src/store/index.ts | 98 ------ vue2/packages/plugins/IconMenu/src/types.ts | 12 - vue2/packages/plugins/IconMenu/vite.config.js | 3 - 28 files changed, 460 insertions(+), 819 deletions(-) create mode 100644 examples/snowbox/AnotherEmptyComponent.vue create mode 100644 examples/snowbox/EmptyComponent.vue create mode 100644 src/plugins/iconMenu/components/IconMenuButton.ce.vue create mode 100644 src/plugins/iconMenu/components/NineRegionsMenu.ce.vue create mode 100644 src/plugins/iconMenu/components/StandardMenu.ce.vue create mode 100644 src/plugins/iconMenu/components/TopRightMenu.ce.vue delete mode 100644 vue2/packages/plugins/IconMenu/CHANGELOG.md delete mode 100644 vue2/packages/plugins/IconMenu/LICENSE delete mode 100644 vue2/packages/plugins/IconMenu/package.json delete mode 100644 vue2/packages/plugins/IconMenu/src/components/IconMenu.vue delete mode 100644 vue2/packages/plugins/IconMenu/src/components/index.ts delete mode 100644 vue2/packages/plugins/IconMenu/src/index.ts delete mode 100644 vue2/packages/plugins/IconMenu/src/locales.ts delete mode 100644 vue2/packages/plugins/IconMenu/src/store/index.ts delete mode 100644 vue2/packages/plugins/IconMenu/src/types.ts delete mode 100644 vue2/packages/plugins/IconMenu/vite.config.js diff --git a/examples/snowbox/AnotherEmptyComponent.vue b/examples/snowbox/AnotherEmptyComponent.vue new file mode 100644 index 000000000..9396a4431 --- /dev/null +++ b/examples/snowbox/AnotherEmptyComponent.vue @@ -0,0 +1,5 @@ + + + diff --git a/examples/snowbox/EmptyComponent.vue b/examples/snowbox/EmptyComponent.vue new file mode 100644 index 000000000..42a3b0c4f --- /dev/null +++ b/examples/snowbox/EmptyComponent.vue @@ -0,0 +1,5 @@ + + + diff --git a/examples/snowbox/index.js b/examples/snowbox/index.js index ad65b9900..679c65525 100644 --- a/examples/snowbox/index.js +++ b/examples/snowbox/index.js @@ -1,7 +1,10 @@ import { changeLanguage } from 'i18next' import pluginFullscreen from '@polar/polar/plugins/fullscreen' +import pluginIconMenu from '@polar/polar/plugins/iconMenu' import { addPlugin, createMap, removePlugin, subscribe } from '@polar/polar' +import EmptyComponent from './EmptyComponent.vue' import styleJsonUrl from './style.json?url' +import AnotherEmptyComponent from './AnotherEmptyComponent.vue' const basemapId = '23420' const basemapGreyId = '23421' @@ -112,7 +115,10 @@ await createMap( ], clusterClickZoom: true, }, - theme: dataportTheme, + // theme: dataportTheme, + /* + TODO(dopenguin): Surrounding application should be able give information about dark or light mode via update of a state parameter; light mode by default + */ locales: [ { type: 'de', @@ -155,23 +161,38 @@ document.getElementById('secondMapClean').addEventListener('click', () => { }) addPlugin( - pluginFullscreen({ + pluginIconMenu({ + displayComponent: true, layoutTag: 'TOP_RIGHT', + initiallyOpen: 'kewl', + menus: [ + { + plugin: pluginFullscreen(), + hint: 'Full of yourself', + }, + // TODO: Delete these two including the component once another plugin is implemented + { + plugin: { + component: EmptyComponent, + id: 'kewl', + locales: [], + }, + icon: 'kern-icon--layers', + hint: 'Something layered', + }, + { + plugin: { + component: AnotherEmptyComponent, + id: 'realKewl', + locales: [], + }, + icon: 'kern-icon--layers', + hint: 'Something kewl', + }, + ], }) ) -// TODO: Update with proper plugins -setTimeout( - () => - addPlugin({ - id: 'TEST', - options: { displayComponent: true, layoutTag: 'MIDDLE_MIDDLE' }, - }), - 5000 -) - -setTimeout(() => removePlugin('TEST'), 10000) - subscribe( 'markers', 'selectedCoordinates', diff --git a/src/core/components/layouts/NineLayout.ce.vue b/src/core/components/layouts/NineLayout.ce.vue index cd30e38e2..ae800b321 100644 --- a/src/core/components/layouts/NineLayout.ce.vue +++ b/src/core/components/layouts/NineLayout.ce.vue @@ -29,16 +29,20 @@ const regions = computed(() => (acc, [name]) => ({ ...acc, [name]: coreStore.plugins - .filter(({ id, options }) => { + .filter(({ id, independent, options }) => { if (options?.displayComponent && !options.layoutTag) { console.warn( `Component of plugin "${id}" was registered as visible ('displayComponent' had a truthy value), but no 'layoutTag' was associated. This may be an error in configuration and will lead to the component not being visible in the UI.` ) return false } - return typeof options?.displayComponent === 'boolean' - ? options.displayComponent - : false + const display = + typeof options?.displayComponent === 'boolean' + ? options.displayComponent + : false + return typeof independent === 'boolean' + ? display && independent + : display }) .filter(({ options }) => options?.layoutTag === name), }), diff --git a/src/core/components/layouts/StandardLayout.ce.vue b/src/core/components/layouts/StandardLayout.ce.vue index c0ed05f41..d111020cd 100644 --- a/src/core/components/layouts/StandardLayout.ce.vue +++ b/src/core/components/layouts/StandardLayout.ce.vue @@ -14,7 +14,10 @@ import { useMainStore } from '@/core/stores/main.ts' const coreStore = useMainStore() const uiPlugins = computed(() => - coreStore.plugins.filter((plugin) => plugin.component) + coreStore.plugins.filter( + ({ component, independent }) => + component && (typeof independent === 'boolean' ? independent : true) + ) ) diff --git a/src/core/stores/export.ts b/src/core/stores/export.ts index 6876812ef..4938d95c4 100644 --- a/src/core/stores/export.ts +++ b/src/core/stores/export.ts @@ -19,18 +19,52 @@ export const useCoreStore = defineStore('core', () => { const mainStore = useMainStore() return { + /** + * The current height of the map. + * + * @internal + * @readonly + */ + clientHeight: computed(() => mainStore.clientHeight), /** * Returns the current runtime configuration. * * @readonly */ configuration: computed(() => mainStore.configuration), - + /** + * Whether a mobile device is held horizontally. + * True if {@link hasSmallHeight} and {@link hasWindowSize} are true. + * + * @internal + * @readonly + */ + deviceIsHorizontal: computed(() => mainStore.deviceIsHorizontal), + /** + * Whether the height of the map is smaller than 480px. + * + * @internal + * @readonly + */ + hasSmallHeight: computed(() => mainStore.hasSmallHeight), + /** + * Whether the width of the map is smaller than 768px. + * + * @internal + * @readonly + */ + hasSmallWidth: computed(() => mainStore.hasSmallWidth), + /** + * Whether the size of the map equals the size of the browser window. + * + * @internal + * @readonly + */ + hasWindowSize: computed(() => mainStore.hasWindowSize), /** * Allows reading or setting the OIDC token used for service accesses. */ oidcToken: mainStore.oidcToken, - /** * Allows accessing the POLAR DOM element (``). * @@ -38,7 +72,6 @@ export const useCoreStore = defineStore('core', () => { * @alpha */ lightElement: computed(() => mainStore.lightElement), - /** * Allows accessing the OpenLayers Map element. * @@ -46,7 +79,6 @@ export const useCoreStore = defineStore('core', () => { * @alpha */ map: computed(() => mainStore.map), - /** * Allows accessing the Shadow DOM root of POLAR. * diff --git a/src/core/types.ts b/src/core/types.ts index 28fd1bbcb..37e5dce84 100644 --- a/src/core/types.ts +++ b/src/core/types.ts @@ -4,6 +4,7 @@ import type { SetupStoreDefinition } from 'pinia' import type { Component, VueElement } from 'vue' import type { NineLayoutTag } from '@/core/utils/NineLayoutTag.ts' import type { FullscreenPluginOptions } from '@/plugins/fullscreen' +import type { IconMenuPluginOptions } from '@/plugins/iconMenu' /** * Copied from https://stackoverflow.com/a/54178819.# @@ -48,13 +49,17 @@ export interface PluginContainer { * @example `@polar/polar/plugins/fullscreen` */ id: string - /** A Vue component if required. */ component?: Component - + /** + * Whether the plugin is independently rendered. + * + * @internal + * @defaultValue true + */ + independent?: boolean /** Locales used in the plugin. */ locales?: Locale[] - /** * Configuration options. Please also note that all configuration added via plugin constructors can be overridden in * the {@link createMap | `createMap`'s parameter `mapConfiguration`} . @@ -65,7 +70,6 @@ export interface PluginContainer { * How exactly you do this is up to you and influences the minimum API call requirements your client has. */ options?: PluginOptions - /** * Pinia store module if required. If the storeModule features a `setupPlugin` action, it will be executed * automatically after initialization. @@ -514,14 +518,12 @@ export interface MapConfiguration extends MasterportalApiConfiguration { * See `mapConfiguration.featureStyles` for more information. */ featureStyles?: string - /** * The initial language the client should be using. * * @defaultValue `'de'` (German) */ language?: InitialLanguage - /** * Choose between the standard sidebar layout with fixed positioning, the oldschool nine region layout with full * configurability regarding positioning or add a custom layout as Vue component. @@ -587,16 +589,18 @@ export interface MapConfiguration extends MasterportalApiConfiguration { * Authorization header of the request. Requests already including an Authorization header will keep the already present one. */ secureServiceUrlRegex?: RegExp - /** * Custom theme for POLAR. * * The default is to use KERN's standard theme. */ theme?: PolarTheme - /** * Configuration for fullscreen plugin. */ fullscreen?: FullscreenPluginOptions + /** + * IconMenu Plugin configuration. + */ + iconMenu?: IconMenuPluginOptions } diff --git a/src/plugins/fullscreen/index.ts b/src/plugins/fullscreen/index.ts index 8ee4eaf36..88a3018b7 100644 --- a/src/plugins/fullscreen/index.ts +++ b/src/plugins/fullscreen/index.ts @@ -23,10 +23,7 @@ export default function pluginFullscreen( component, locales, storeModule: useFullscreenStore as PolarPluginStore, - options: { - displayComponent: true, - ...options, - }, + options, } } diff --git a/src/plugins/iconMenu/components/IconMenu.ce.vue b/src/plugins/iconMenu/components/IconMenu.ce.vue index 53231c8e9..d6f337aed 100644 --- a/src/plugins/iconMenu/components/IconMenu.ce.vue +++ b/src/plugins/iconMenu/components/IconMenu.ce.vue @@ -1,7 +1,19 @@ - + diff --git a/src/plugins/iconMenu/components/IconMenuButton.ce.vue b/src/plugins/iconMenu/components/IconMenuButton.ce.vue new file mode 100644 index 000000000..7e9b83d73 --- /dev/null +++ b/src/plugins/iconMenu/components/IconMenuButton.ce.vue @@ -0,0 +1,48 @@ + + + + + diff --git a/src/plugins/iconMenu/components/NineRegionsMenu.ce.vue b/src/plugins/iconMenu/components/NineRegionsMenu.ce.vue new file mode 100644 index 000000000..95f5f9c1b --- /dev/null +++ b/src/plugins/iconMenu/components/NineRegionsMenu.ce.vue @@ -0,0 +1,162 @@ + + + + + + + diff --git a/src/plugins/iconMenu/components/StandardMenu.ce.vue b/src/plugins/iconMenu/components/StandardMenu.ce.vue new file mode 100644 index 000000000..5b2ae9508 --- /dev/null +++ b/src/plugins/iconMenu/components/StandardMenu.ce.vue @@ -0,0 +1,7 @@ + + + + + diff --git a/src/plugins/iconMenu/components/TopRightMenu.ce.vue b/src/plugins/iconMenu/components/TopRightMenu.ce.vue new file mode 100644 index 000000000..5b2ae9508 --- /dev/null +++ b/src/plugins/iconMenu/components/TopRightMenu.ce.vue @@ -0,0 +1,7 @@ + + + + + diff --git a/src/plugins/iconMenu/index.ts b/src/plugins/iconMenu/index.ts index 01051dc2c..974a2b12f 100644 --- a/src/plugins/iconMenu/index.ts +++ b/src/plugins/iconMenu/index.ts @@ -7,7 +7,7 @@ import component from './components/IconMenu.ce.vue' import locales from './locales' import { useIconMenuStore } from './store' -import { PluginId, type IconMenuPluginOptions } from './types' +import type { IconMenuPluginOptions } from './types' import type { PluginContainer, PolarPluginStore } from '@/core' /** @@ -24,7 +24,7 @@ export default function pluginIconMenu( options: IconMenuPluginOptions ): PluginContainer { return { - id: PluginId, + id: 'iconMenu', component, locales, storeModule: useIconMenuStore as PolarPluginStore, diff --git a/src/plugins/iconMenu/locales.ts b/src/plugins/iconMenu/locales.ts index 4f3c14f0d..854ffbf3b 100644 --- a/src/plugins/iconMenu/locales.ts +++ b/src/plugins/iconMenu/locales.ts @@ -1,8 +1,26 @@ import type { Locale } from '@/core' -export const resourcesDe = {} +export const resourcesDe = { + mobileCloseButton: '{{plugin}} schließen', + hints: { + attributions: 'Quellennachweis', + draw: 'Zeichenwerkzeuge', + filter: 'Filter', + layerChooser: 'Kartenauswahl', + gfi: 'Objektliste', + }, +} as const -export const resourcesEn = {} +export const resourcesEn = { + mobileCloseButton: 'Close {{plugin}}', + hints: { + attributions: 'Attributions', + draw: 'Draw tools', + filter: 'Filter', + layerChooser: 'Choose map', + gfi: 'Feature list', + }, +} as const // first type will be used as fallback language const locales: Locale[] = [ diff --git a/src/plugins/iconMenu/store.ts b/src/plugins/iconMenu/store.ts index 9912d94bc..289f8841e 100644 --- a/src/plugins/iconMenu/store.ts +++ b/src/plugins/iconMenu/store.ts @@ -4,7 +4,12 @@ */ /* eslint-enable tsdoc/syntax */ +import { toMerged } from 'es-toolkit' import { defineStore } from 'pinia' +import { type Component, computed, markRaw, ref } from 'vue' +import type { Menu } from './types.ts' +import { addPlugin } from '@/core' +import { useCoreStore } from '@/core/stores/export.ts' /* eslint-disable tsdoc/syntax */ /** @@ -14,11 +19,78 @@ import { defineStore } from 'pinia' */ /* eslint-enable tsdoc/syntax */ export const useIconMenuStore = defineStore('plugins/iconMenu', () => { - function setupPlugin() {} + const coreStore = useCoreStore() + const menus = ref([]) + const open = ref(-1) + + const buttonComponent = computed(() => + coreStore.configuration.iconMenu?.buttonComponent + ? markRaw(coreStore.configuration.iconMenu.buttonComponent) + : null + ) + + function setupPlugin() { + menus.value = (coreStore.configuration.iconMenu?.menus || []).filter( + ({ plugin: { id } }) => { + const display = coreStore.configuration[id]?.displayComponent + return typeof display === 'boolean' ? display : true + } + ) + menus.value.forEach(({ plugin }) => { + addPlugin(toMerged(plugin, { independent: false })) + }) + // Otherwise, the component itself is made reactive + menus.value.map((menuItem) => + toMerged(menuItem, { + plugin: { component: markRaw(menuItem.plugin.component as Component) }, + }) + ) + + const initiallyOpen = coreStore.configuration.iconMenu?.initiallyOpen + if ( + !coreStore.hasSmallHeight && + !coreStore.hasSmallWidth && + initiallyOpen + ) { + openMenuById(initiallyOpen) + } + } function teardownPlugin() {} + function openMenuById(openId: string) { + const index = menus.value.findIndex(({ plugin: { id } }) => id === openId) + + if (index !== -1) { + open.value = index + // openInMoveHandle(index) + } + } + // TODO(dopenguin): Implement once MoveHandle is implemented + /* function openInMoveHandle(index: number) { + const { hint, plugin } = menus.value[index] + commit( + 'setMoveHandle', + { + closeLabel: t('mobileCloseButton', { + ns: 'iconMenu', + plugin: hint || `plugins.iconMenu.hints.${plugin.id}`, + }), + closeFunction: () => { + open.value = -1 + }, + component: plugin, + plugin: 'iconMenu', + }, + { root: true } + ) + } */ + return { + menus, + open, + buttonComponent, + openMenuById, /** @internal */ setupPlugin, /** @internal */ diff --git a/src/plugins/iconMenu/types.ts b/src/plugins/iconMenu/types.ts index 679c1afe7..e02387df2 100644 --- a/src/plugins/iconMenu/types.ts +++ b/src/plugins/iconMenu/types.ts @@ -2,23 +2,14 @@ import type { Component } from 'vue' import type { PluginContainer, PluginOptions } from '@/core' import type { NineLayoutTag } from '@/core/utils/NineLayoutTag.ts' -/** - * Plugin identifier. - */ -export const PluginId = 'iconMenu' - export interface Menu { - /** - * Unique identifier of the plugin. Also used to resolve hint locale. - */ - id: string /** * The plugin that should be part of the icon menu. */ plugin: PluginContainer /** * Overrides the default hint displayed for the icon menu button. - * If not given, the locale in `plugins.iconMenu.hints.${id}` is used. + * If not given, the locale in `hints.${id}` is used. */ hint?: string /** @@ -65,9 +56,9 @@ export interface IconMenuPluginOptions extends PluginOptions { menus: Menu[] /** * If {@link MapConfiguration.layout | `mapConfiguration.layers`} is set to `'nineRegions'`, then this parameter - * allows overriding the IconMenuButton.vue component for custom design and functionality. Coding knowledge is required + * allows overriding the `IconMenuButton.vue` component for custom design and functionality. Coding knowledge is required * to use this feature, as any implementation will have to rely upon the Pinia store model and has to implement the - * same props as the default IconMenuButton.vue. Please refer to the implementation. + * same props as the default `IconMenuButton.vue`. Please refer to the implementation. */ buttonComponent?: Component /** diff --git a/vue2/packages/plugins/IconMenu/CHANGELOG.md b/vue2/packages/plugins/IconMenu/CHANGELOG.md deleted file mode 100644 index 6f4cda453..000000000 --- a/vue2/packages/plugins/IconMenu/CHANGELOG.md +++ /dev/null @@ -1,40 +0,0 @@ -# CHANGELOG - -## unpublished - -- Fix: Adjust behaviour of setting content to the MoveHandle for small devices so that an already opened plugin is still open on resize. - -## 1.4.0 - -- Feature: Add new configuration parameter `buttonComponent` to be able to interchange the UI component of the used (icon) buttons. -- Feature: Expose `IconMenuButton.vue` as a new export in order to use it in custom implementations. - -## 1.3.1 - -- Chore: Update `@polar/lib-custom-types` to `v2.0.0`. - -## 1.3.0 - -- Feature: Remove requirement of `isHorizontal` prop for plugins as the relevant logic is implemented in `@polar/core`. -- Fix: Resolve issue with `initiallyOpen` not working as expected. - -## 1.2.0 - -- Feature: Improved implementation to make plugin SPA-ready. - -## 1.1.0 - -- Feature: Add default locale for filter plugin as child. -- Feature: Add default locale for gfi plugin as child. -- Feature: Hide obstructive tooltip on small devices. -- Feature: Added action `openMenuById` that expects an id as payload and opens the matching icon menu entry. -- Feature: Render mobile content in `MoveHandle` of `@polar/core`. This also means, that `initiallyOpen` only works on large devices. -- Fix: Resolved internal error. (No effect on client behaviour.) - -## 1.0.1 - -- Fix: Plugin contents were rendered above map in certain circumstances. This has been resolved. - -## 1.0.0 - -Initial release. diff --git a/vue2/packages/plugins/IconMenu/LICENSE b/vue2/packages/plugins/IconMenu/LICENSE deleted file mode 100644 index c29ce2f83..000000000 --- a/vue2/packages/plugins/IconMenu/LICENSE +++ /dev/null @@ -1,287 +0,0 @@ - EUROPEAN UNION PUBLIC LICENCE v. 1.2 - EUPL © the European Union 2007, 2016 - -This European Union Public Licence (the ‘EUPL’) applies to the Work (as defined -below) which is provided under the terms of this Licence. Any use of the Work, -other than as authorised under this Licence is prohibited (to the extent such -use is covered by a right of the copyright holder of the Work). - -The Work is provided under the terms of this Licence when the Licensor (as -defined below) has placed the following notice immediately following the -copyright notice for the Work: - - Licensed under the EUPL - -or has expressed by any other means his willingness to license under the EUPL. - -1. Definitions - -In this Licence, the following terms have the following meaning: - -- ‘The Licence’: this Licence. - -- ‘The Original Work’: the work or software distributed or communicated by the - Licensor under this Licence, available as Source Code and also as Executable - Code as the case may be. - -- ‘Derivative Works’: the works or software that could be created by the - Licensee, based upon the Original Work or modifications thereof. This Licence - does not define the extent of modification or dependence on the Original Work - required in order to classify a work as a Derivative Work; this extent is - determined by copyright law applicable in the country mentioned in Article 15. - -- ‘The Work’: the Original Work or its Derivative Works. - -- ‘The Source Code’: the human-readable form of the Work which is the most - convenient for people to study and modify. - -- ‘The Executable Code’: any code which has generally been compiled and which is - meant to be interpreted by a computer as a program. - -- ‘The Licensor’: the natural or legal person that distributes or communicates - the Work under the Licence. - -- ‘Contributor(s)’: any natural or legal person who modifies the Work under the - Licence, or otherwise contributes to the creation of a Derivative Work. - -- ‘The Licensee’ or ‘You’: any natural or legal person who makes any usage of - the Work under the terms of the Licence. - -- ‘Distribution’ or ‘Communication’: any act of selling, giving, lending, - renting, distributing, communicating, transmitting, or otherwise making - available, online or offline, copies of the Work or providing access to its - essential functionalities at the disposal of any other natural or legal - person. - -2. Scope of the rights granted by the Licence - -The Licensor hereby grants You a worldwide, royalty-free, non-exclusive, -sublicensable licence to do the following, for the duration of copyright vested -in the Original Work: - -- use the Work in any circumstance and for all usage, -- reproduce the Work, -- modify the Work, and make Derivative Works based upon the Work, -- communicate to the public, including the right to make available or display - the Work or copies thereof to the public and perform publicly, as the case may - be, the Work, -- distribute the Work or copies thereof, -- lend and rent the Work or copies thereof, -- sublicense rights in the Work or copies thereof. - -Those rights can be exercised on any media, supports and formats, whether now -known or later invented, as far as the applicable law permits so. - -In the countries where moral rights apply, the Licensor waives his right to -exercise his moral right to the extent allowed by law in order to make effective -the licence of the economic rights here above listed. - -The Licensor grants to the Licensee royalty-free, non-exclusive usage rights to -any patents held by the Licensor, to the extent necessary to make use of the -rights granted on the Work under this Licence. - -3. Communication of the Source Code - -The Licensor may provide the Work either in its Source Code form, or as -Executable Code. If the Work is provided as Executable Code, the Licensor -provides in addition a machine-readable copy of the Source Code of the Work -along with each copy of the Work that the Licensor distributes or indicates, in -a notice following the copyright notice attached to the Work, a repository where -the Source Code is easily and freely accessible for as long as the Licensor -continues to distribute or communicate the Work. - -4. Limitations on copyright - -Nothing in this Licence is intended to deprive the Licensee of the benefits from -any exception or limitation to the exclusive rights of the rights owners in the -Work, of the exhaustion of those rights or of other applicable limitations -thereto. - -5. Obligations of the Licensee - -The grant of the rights mentioned above is subject to some restrictions and -obligations imposed on the Licensee. Those obligations are the following: - -Attribution right: The Licensee shall keep intact all copyright, patent or -trademarks notices and all notices that refer to the Licence and to the -disclaimer of warranties. The Licensee must include a copy of such notices and a -copy of the Licence with every copy of the Work he/she distributes or -communicates. The Licensee must cause any Derivative Work to carry prominent -notices stating that the Work has been modified and the date of modification. - -Copyleft clause: If the Licensee distributes or communicates copies of the -Original Works or Derivative Works, this Distribution or Communication will be -done under the terms of this Licence or of a later version of this Licence -unless the Original Work is expressly distributed only under this version of the -Licence — for example by communicating ‘EUPL v. 1.2 only’. The Licensee -(becoming Licensor) cannot offer or impose any additional terms or conditions on -the Work or Derivative Work that alter or restrict the terms of the Licence. - -Compatibility clause: If the Licensee Distributes or Communicates Derivative -Works or copies thereof based upon both the Work and another work licensed under -a Compatible Licence, this Distribution or Communication can be done under the -terms of this Compatible Licence. For the sake of this clause, ‘Compatible -Licence’ refers to the licences listed in the appendix attached to this Licence. -Should the Licensee's obligations under the Compatible Licence conflict with -his/her obligations under this Licence, the obligations of the Compatible -Licence shall prevail. - -Provision of Source Code: When distributing or communicating copies of the Work, -the Licensee will provide a machine-readable copy of the Source Code or indicate -a repository where this Source will be easily and freely available for as long -as the Licensee continues to distribute or communicate the Work. - -Legal Protection: This Licence does not grant permission to use the trade names, -trademarks, service marks, or names of the Licensor, except as required for -reasonable and customary use in describing the origin of the Work and -reproducing the content of the copyright notice. - -6. Chain of Authorship - -The original Licensor warrants that the copyright in the Original Work granted -hereunder is owned by him/her or licensed to him/her and that he/she has the -power and authority to grant the Licence. - -Each Contributor warrants that the copyright in the modifications he/she brings -to the Work are owned by him/her or licensed to him/her and that he/she has the -power and authority to grant the Licence. - -Each time You accept the Licence, the original Licensor and subsequent -Contributors grant You a licence to their contributions to the Work, under the -terms of this Licence. - -7. Disclaimer of Warranty - -The Work is a work in progress, which is continuously improved by numerous -Contributors. It is not a finished work and may therefore contain defects or -‘bugs’ inherent to this type of development. - -For the above reason, the Work is provided under the Licence on an ‘as is’ basis -and without warranties of any kind concerning the Work, including without -limitation merchantability, fitness for a particular purpose, absence of defects -or errors, accuracy, non-infringement of intellectual property rights other than -copyright as stated in Article 6 of this Licence. - -This disclaimer of warranty is an essential part of the Licence and a condition -for the grant of any rights to the Work. - -8. Disclaimer of Liability - -Except in the cases of wilful misconduct or damages directly caused to natural -persons, the Licensor will in no event be liable for any direct or indirect, -material or moral, damages of any kind, arising out of the Licence or of the use -of the Work, including without limitation, damages for loss of goodwill, work -stoppage, computer failure or malfunction, loss of data or any commercial -damage, even if the Licensor has been advised of the possibility of such damage. -However, the Licensor will be liable under statutory product liability laws as -far such laws apply to the Work. - -9. Additional agreements - -While distributing the Work, You may choose to conclude an additional agreement, -defining obligations or services consistent with this Licence. However, if -accepting obligations, You may act only on your own behalf and on your sole -responsibility, not on behalf of the original Licensor or any other Contributor, -and only if You agree to indemnify, defend, and hold each Contributor harmless -for any liability incurred by, or claims asserted against such Contributor by -the fact You have accepted any warranty or additional liability. - -10. Acceptance of the Licence - -The provisions of this Licence can be accepted by clicking on an icon ‘I agree’ -placed under the bottom of a window displaying the text of this Licence or by -affirming consent in any other similar way, in accordance with the rules of -applicable law. Clicking on that icon indicates your clear and irrevocable -acceptance of this Licence and all of its terms and conditions. - -Similarly, you irrevocably accept this Licence and all of its terms and -conditions by exercising any rights granted to You by Article 2 of this Licence, -such as the use of the Work, the creation by You of a Derivative Work or the -Distribution or Communication by You of the Work or copies thereof. - -11. Information to the public - -In case of any Distribution or Communication of the Work by means of electronic -communication by You (for example, by offering to download the Work from a -remote location) the distribution channel or media (for example, a website) must -at least provide to the public the information requested by the applicable law -regarding the Licensor, the Licence and the way it may be accessible, concluded, -stored and reproduced by the Licensee. - -12. Termination of the Licence - -The Licence and the rights granted hereunder will terminate automatically upon -any breach by the Licensee of the terms of the Licence. - -Such a termination will not terminate the licences of any person who has -received the Work from the Licensee under the Licence, provided such persons -remain in full compliance with the Licence. - -13. Miscellaneous - -Without prejudice of Article 9 above, the Licence represents the complete -agreement between the Parties as to the Work. - -If any provision of the Licence is invalid or unenforceable under applicable -law, this will not affect the validity or enforceability of the Licence as a -whole. Such provision will be construed or reformed so as necessary to make it -valid and enforceable. - -The European Commission may publish other linguistic versions or new versions of -this Licence or updated versions of the Appendix, so far this is required and -reasonable, without reducing the scope of the rights granted by the Licence. New -versions of the Licence will be published with a unique version number. - -All linguistic versions of this Licence, approved by the European Commission, -have identical value. Parties can take advantage of the linguistic version of -their choice. - -14. Jurisdiction - -Without prejudice to specific agreement between parties, - -- any litigation resulting from the interpretation of this License, arising - between the European Union institutions, bodies, offices or agencies, as a - Licensor, and any Licensee, will be subject to the jurisdiction of the Court - of Justice of the European Union, as laid down in article 272 of the Treaty on - the Functioning of the European Union, - -- any litigation arising between other parties and resulting from the - interpretation of this License, will be subject to the exclusive jurisdiction - of the competent court where the Licensor resides or conducts its primary - business. - -15. Applicable Law - -Without prejudice to specific agreement between parties, - -- this Licence shall be governed by the law of the European Union Member State - where the Licensor has his seat, resides or has his registered office, - -- this licence shall be governed by Belgian law if the Licensor has no seat, - residence or registered office inside a European Union Member State. - -Appendix - -‘Compatible Licences’ according to Article 5 EUPL are: - -- GNU General Public License (GPL) v. 2, v. 3 -- GNU Affero General Public License (AGPL) v. 3 -- Open Software License (OSL) v. 2.1, v. 3.0 -- Eclipse Public License (EPL) v. 1.0 -- CeCILL v. 2.0, v. 2.1 -- Mozilla Public Licence (MPL) v. 2 -- GNU Lesser General Public Licence (LGPL) v. 2.1, v. 3 -- Creative Commons Attribution-ShareAlike v. 3.0 Unported (CC BY-SA 3.0) for - works other than software -- European Union Public Licence (EUPL) v. 1.1, v. 1.2 -- Québec Free and Open-Source Licence — Reciprocity (LiLiQ-R) or Strong - Reciprocity (LiLiQ-R+). - -The European Commission may update this Appendix to later versions of the above -licences without producing a new version of the EUPL, as long as they provide -the rights granted in Article 2 of this Licence and protect the covered Source -Code from exclusive appropriation. - -All other changes or additions to this Appendix require the production of a new -EUPL version. \ No newline at end of file diff --git a/vue2/packages/plugins/IconMenu/package.json b/vue2/packages/plugins/IconMenu/package.json deleted file mode 100644 index 3d64cef47..000000000 --- a/vue2/packages/plugins/IconMenu/package.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "@polar/plugin-icon-menu", - "version": "1.4.0", - "description": "IconMenu plugin for POLAR that adds a menu that may provide various plugins' functionality as openable menu points.", - "keywords": [ - "OpenLayers", - "ol", - "POLAR", - "plugin", - "icon menu", - "menu" - ], - "license": "EUPL-1.2", - "type": "module", - "author": "Dataport AöR ", - "main": "src/index.ts", - "repository": { - "type": "git", - "url": "git+https://github.com/Dataport/polar.git", - "directory": "packages/plugins/IconMenu" - }, - "files": [ - "src/**/*", - "CHANGELOG.md" - ], - "peerDependencies": { - "@repositoryname/vuex-generators": "^1.1.2", - "vue": "^2.6.14", - "vuex": "^3.6.2" - }, - "devDependencies": { - "@polar/lib-custom-types": "^2.0.0", - "@polar/lib-test-mount-parameters": "^1.3.2" - } -} diff --git a/vue2/packages/plugins/IconMenu/src/components/IconMenu.vue b/vue2/packages/plugins/IconMenu/src/components/IconMenu.vue deleted file mode 100644 index 01c679b5a..000000000 --- a/vue2/packages/plugins/IconMenu/src/components/IconMenu.vue +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - diff --git a/vue2/packages/plugins/IconMenu/src/components/IconMenuButton.vue b/vue2/packages/plugins/IconMenu/src/components/IconMenuButton.vue index d1265c0e5..3f7580d75 100644 --- a/vue2/packages/plugins/IconMenu/src/components/IconMenuButton.vue +++ b/vue2/packages/plugins/IconMenu/src/components/IconMenuButton.vue @@ -1,68 +1,20 @@ - - - - diff --git a/vue2/packages/plugins/IconMenu/src/components/index.ts b/vue2/packages/plugins/IconMenu/src/components/index.ts deleted file mode 100644 index b8a0b7ae3..000000000 --- a/vue2/packages/plugins/IconMenu/src/components/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as IconMenu } from './IconMenu.vue' diff --git a/vue2/packages/plugins/IconMenu/src/index.ts b/vue2/packages/plugins/IconMenu/src/index.ts deleted file mode 100644 index e78afedaf..000000000 --- a/vue2/packages/plugins/IconMenu/src/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -import Vue from 'vue' -import { IconMenuConfiguration } from '@polar/lib-custom-types' -import { IconMenu } from './components' -import locales from './locales' -import { makeStoreModule } from './store' - -import IconMenuButton from './components/IconMenuButton.vue' -export { IconMenuButton } - -export default (options: IconMenuConfiguration) => (instance: Vue) => - instance.$store.dispatch('addComponent', { - name: 'iconMenu', - plugin: IconMenu, - locales, - storeModule: makeStoreModule(), - options, - }) diff --git a/vue2/packages/plugins/IconMenu/src/locales.ts b/vue2/packages/plugins/IconMenu/src/locales.ts deleted file mode 100644 index 4a3496a20..000000000 --- a/vue2/packages/plugins/IconMenu/src/locales.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { Locale } from '@polar/lib-custom-types' - -export const resourcesDe = { - plugins: { - iconMenu: { - mobileCloseButton: '{{plugin}} schließen', - hints: { - attributions: 'Quellennachweis', - draw: 'Zeichenwerkzeuge', - filter: 'Filter', - layerChooser: 'Kartenauswahl', - gfi: 'Objektliste', - }, - }, - }, -} as const - -export const resourcesEn = { - plugins: { - iconMenu: { - mobileCloseButton: 'Close {{plugin}}', - hints: { - attributions: 'Attributions', - draw: 'Draw tools', - filter: 'Filter', - layerChooser: 'Choose map', - gfi: 'Feature list', - }, - }, - }, -} as const - -const locales: Locale[] = [ - { - type: 'de', - resources: resourcesDe, - }, - { - type: 'en', - resources: resourcesEn, - }, -] - -export default locales diff --git a/vue2/packages/plugins/IconMenu/src/store/index.ts b/vue2/packages/plugins/IconMenu/src/store/index.ts deleted file mode 100644 index e790fbd39..000000000 --- a/vue2/packages/plugins/IconMenu/src/store/index.ts +++ /dev/null @@ -1,98 +0,0 @@ -import { t } from 'i18next' -import { - generateSimpleGetters, - generateSimpleMutations, -} from '@repositoryname/vuex-generators' -import { PolarModule } from '@polar/lib-custom-types' -import { IconMenuGetters, IconMenuState } from '../types' - -const getInitialState = (): IconMenuState => ({ - menus: [], - open: null, -}) - -export const makeStoreModule = () => { - const storeModule: PolarModule = { - namespaced: true, - state: getInitialState(), - actions: { - setupModule({ commit, dispatch, getters, rootGetters }): void { - const menus = rootGetters.configuration?.iconMenu?.menus || [] - const initializedMenus = menus - .filter(({ id }) => { - const display = rootGetters.configuration?.[id]?.displayComponent - return typeof display === 'boolean' ? display : true - }) - .map((menu) => { - let plugin - const fakeVm = { - $store: { - ...this, - dispatch: (name, payload) => { - this.dispatch(name, payload) - plugin = payload.plugin - }, - }, - } - // @ts-expect-error | Issue 'TS2349: This expression is not callable. Type '{}' has no call signatures.' Arises as noted in @polar/lib-custom-types - menu.plugin(fakeVm) - return { - ...menu, - plugin, - } - }) - - commit('setMenus', initializedMenus) - - // The map initially has a height of 0, so initially opening a menu only works after the height has changed - this.watch( - () => rootGetters.mapHasDimensions, - (value) => { - if ( - value && - !rootGetters.hasSmallHeight && - !rootGetters.hasSmallWidth - ) { - dispatch('openMenuById', getters.initiallyOpen) - } - } - ) - }, - openMenuById({ commit, dispatch, getters }, openId: string) { - const index = getters.menus.findIndex(({ id }) => id === openId) - - if (index !== -1) { - commit('setOpen', index) - dispatch('openInMoveHandle', index) - } - }, - openInMoveHandle({ commit, getters }, index: number) { - const { hint, id, plugin } = getters.menus[index] - commit( - 'setMoveHandle', - { - closeLabel: t('plugins.iconMenu.mobileCloseButton', { - plugin: hint || `plugins.iconMenu.hints.${id}`, - }), - closeFunction: () => commit('setOpen', null), - component: plugin, - plugin: 'iconMenu', - }, - { root: true } - ) - }, - }, - mutations: { - ...generateSimpleMutations(getInitialState()), - }, - getters: { - ...generateSimpleGetters(getInitialState()), - buttonComponent: (_, __, ___, rootGetters) => - rootGetters.configuration.iconMenu?.buttonComponent || null, - initiallyOpen: (_, __, ___, rootGetters) => - rootGetters.configuration.iconMenu?.initiallyOpen || '', - }, - } - - return storeModule -} diff --git a/vue2/packages/plugins/IconMenu/src/types.ts b/vue2/packages/plugins/IconMenu/src/types.ts deleted file mode 100644 index d37c4f571..000000000 --- a/vue2/packages/plugins/IconMenu/src/types.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Menu } from '@polar/lib-custom-types' -import { VueConstructor } from 'vue' - -export interface IconMenuState { - menus: Menu[] - open: number | null -} - -export interface IconMenuGetters extends IconMenuState { - buttonComponent: VueConstructor | null - initiallyOpen: string -} diff --git a/vue2/packages/plugins/IconMenu/vite.config.js b/vue2/packages/plugins/IconMenu/vite.config.js deleted file mode 100644 index 0d2ec38a1..000000000 --- a/vue2/packages/plugins/IconMenu/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import { getCodeConfig } from '../../../viteConfigs' - -export default getCodeConfig() From 1d901b2e4a5933bba19ea21fe422921db4d38dd8 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Mon, 25 Aug 2025 18:49:17 +0200 Subject: [PATCH 261/697] Rename IconMenuButton to NineRegionsButton --- .../{IconMenuButton.ce.vue => NineRegionsButton.ce.vue} | 0 src/plugins/iconMenu/components/NineRegionsMenu.ce.vue | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) rename src/plugins/iconMenu/components/{IconMenuButton.ce.vue => NineRegionsButton.ce.vue} (100%) diff --git a/src/plugins/iconMenu/components/IconMenuButton.ce.vue b/src/plugins/iconMenu/components/NineRegionsButton.ce.vue similarity index 100% rename from src/plugins/iconMenu/components/IconMenuButton.ce.vue rename to src/plugins/iconMenu/components/NineRegionsButton.ce.vue diff --git a/src/plugins/iconMenu/components/NineRegionsMenu.ce.vue b/src/plugins/iconMenu/components/NineRegionsMenu.ce.vue index 95f5f9c1b..f9f5a825a 100644 --- a/src/plugins/iconMenu/components/NineRegionsMenu.ce.vue +++ b/src/plugins/iconMenu/components/NineRegionsMenu.ce.vue @@ -20,7 +20,7 @@ :hint="hint" :index="index" /> - Date: Tue, 26 Aug 2025 13:30:38 +0200 Subject: [PATCH 262/697] chore: update dependencies --- package-lock.json | 675 +++++++++++++++++++++++----------------------- 1 file changed, 345 insertions(+), 330 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9dcb22c1c..2e3c9c883 100644 --- a/package-lock.json +++ b/package-lock.json @@ -106,6 +106,13 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/code-frame/node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, "node_modules/@babel/compat-data": { "version": "7.28.0", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz", @@ -720,9 +727,9 @@ } }, "node_modules/@csstools/color-helpers": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.0.2.tgz", - "integrity": "sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz", + "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==", "dev": true, "funding": [ { @@ -764,9 +771,9 @@ } }, "node_modules/@csstools/css-color-parser": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.10.tgz", - "integrity": "sha512-TiJ5Ajr6WRd1r8HSiwJvZBiJOqtH86aHpUjq5aEKWHiII2Qfjqd/HCWKPOW8EP4vcspXbHnXrwIDlu5savQipg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz", + "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==", "dev": true, "funding": [ { @@ -780,7 +787,7 @@ ], "license": "MIT", "dependencies": { - "@csstools/color-helpers": "^5.0.2", + "@csstools/color-helpers": "^5.1.0", "@csstools/css-calc": "^2.1.4" }, "engines": { @@ -1499,9 +1506,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.33.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.33.0.tgz", - "integrity": "sha512-5K1/mKhWaMfreBGJTwval43JJmkip0RmM+3+IuqupeSKNC/Th2Kc7ucaq5ovTSra/OOKB9c58CGSz3QMVbWt0A==", + "version": "9.34.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.34.0.tgz", + "integrity": "sha512-EoyvqQnBNsV1CWaEJ559rxXL4c8V92gxirbawSmVUOWXlsRxxQXl6LmCpdUblgxgSkDIqKnhzba2SjRTI/A5Rw==", "dev": true, "license": "MIT", "engines": { @@ -1528,23 +1535,24 @@ } }, "node_modules/@eslint/markdown": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@eslint/markdown/-/markdown-7.1.0.tgz", - "integrity": "sha512-Y+X1B1j+/zupKDVJfkKc8uYMjQkGzfnd8lt7vK3y8x9Br6H5dBuhAfFrQ6ff7HAMm/1BwgecyEiRFkYCWPRxmA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@eslint/markdown/-/markdown-7.2.0.tgz", + "integrity": "sha512-cmDloByulvKzofM0tIkSGWwxMcrKOLsXZC+EM0FLkRIrxKzW+2RkZAt9TAh37EtQRmx1M4vjBEmlC6R0wiGkog==", "dev": true, "license": "MIT", "workspaces": [ "examples/*" ], "dependencies": { - "@eslint/core": "^0.15.1", - "@eslint/plugin-kit": "^0.3.4", + "@eslint/core": "^0.15.2", + "@eslint/plugin-kit": "^0.3.5", "github-slugger": "^2.0.0", "mdast-util-from-markdown": "^2.0.2", "mdast-util-frontmatter": "^2.0.1", "mdast-util-gfm": "^3.1.0", "micromark-extension-frontmatter": "^2.0.0", - "micromark-extension-gfm": "^3.0.0" + "micromark-extension-gfm": "^3.0.0", + "micromark-util-normalize-identifier": "^2.0.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2225,6 +2233,13 @@ } } }, + "node_modules/@rollup/pluginutils/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" + }, "node_modules/@rollup/pluginutils/node_modules/picomatch": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", @@ -2239,9 +2254,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.47.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.47.1.tgz", - "integrity": "sha512-lTahKRJip0knffA/GTNFJMrToD+CM+JJ+Qt5kjzBK/sFQ0EWqfKW3AYQSlZXN98tX0lx66083U9JYIMioMMK7g==", + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.48.1.tgz", + "integrity": "sha512-rGmb8qoG/zdmKoYELCBwu7vt+9HxZ7Koos3pD0+sH5fR3u3Wb/jGcpnqxcnWsPEKDUyzeLSqksN8LJtgXjqBYw==", "cpu": [ "arm" ], @@ -2253,9 +2268,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.47.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.47.1.tgz", - "integrity": "sha512-uqxkb3RJLzlBbh/bbNQ4r7YpSZnjgMgyoEOY7Fy6GCbelkDSAzeiogxMG9TfLsBbqmGsdDObo3mzGqa8hps4MA==", + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.48.1.tgz", + "integrity": "sha512-4e9WtTxrk3gu1DFE+imNJr4WsL13nWbD/Y6wQcyku5qadlKHY3OQ3LJ/INrrjngv2BJIHnIzbqMk1GTAC2P8yQ==", "cpu": [ "arm64" ], @@ -2267,9 +2282,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.47.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.47.1.tgz", - "integrity": "sha512-tV6reObmxBDS4DDyLzTDIpymthNlxrLBGAoQx6m2a7eifSNEZdkXQl1PE4ZjCkEDPVgNXSzND/k9AQ3mC4IOEQ==", + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.48.1.tgz", + "integrity": "sha512-+XjmyChHfc4TSs6WUQGmVf7Hkg8ferMAE2aNYYWjiLzAS/T62uOsdfnqv+GHRjq7rKRnYh4mwWb4Hz7h/alp8A==", "cpu": [ "arm64" ], @@ -2281,9 +2296,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.47.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.47.1.tgz", - "integrity": "sha512-XuJRPTnMk1lwsSnS3vYyVMu4x/+WIw1MMSiqj5C4j3QOWsMzbJEK90zG+SWV1h0B1ABGCQ0UZUjti+TQK35uHQ==", + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.48.1.tgz", + "integrity": "sha512-upGEY7Ftw8M6BAJyGwnwMw91rSqXTcOKZnnveKrVWsMTF8/k5mleKSuh7D4v4IV1pLxKAk3Tbs0Lo9qYmii5mQ==", "cpu": [ "x64" ], @@ -2295,9 +2310,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.47.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.47.1.tgz", - "integrity": "sha512-79BAm8Ag/tmJ5asCqgOXsb3WY28Rdd5Lxj8ONiQzWzy9LvWORd5qVuOnjlqiWWZJw+dWewEktZb5yiM1DLLaHw==", + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.48.1.tgz", + "integrity": "sha512-P9ViWakdoynYFUOZhqq97vBrhuvRLAbN/p2tAVJvhLb8SvN7rbBnJQcBu8e/rQts42pXGLVhfsAP0k9KXWa3nQ==", "cpu": [ "arm64" ], @@ -2309,9 +2324,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.47.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.47.1.tgz", - "integrity": "sha512-OQ2/ZDGzdOOlyfqBiip0ZX/jVFekzYrGtUsqAfLDbWy0jh1PUU18+jYp8UMpqhly5ltEqotc2miLngf9FPSWIA==", + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.48.1.tgz", + "integrity": "sha512-VLKIwIpnBya5/saccM8JshpbxfyJt0Dsli0PjXozHwbSVaHTvWXJH1bbCwPXxnMzU4zVEfgD1HpW3VQHomi2AQ==", "cpu": [ "x64" ], @@ -2323,9 +2338,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.47.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.47.1.tgz", - "integrity": "sha512-HZZBXJL1udxlCVvoVadstgiU26seKkHbbAMLg7680gAcMnRNP9SAwTMVet02ANA94kXEI2VhBnXs4e5nf7KG2A==", + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.48.1.tgz", + "integrity": "sha512-3zEuZsXfKaw8n/yF7t8N6NNdhyFw3s8xJTqjbTDXlipwrEHo4GtIKcMJr5Ed29leLpB9AugtAQpAHW0jvtKKaQ==", "cpu": [ "arm" ], @@ -2337,9 +2352,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.47.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.47.1.tgz", - "integrity": "sha512-sZ5p2I9UA7T950JmuZ3pgdKA6+RTBr+0FpK427ExW0t7n+QwYOcmDTK/aRlzoBrWyTpJNlS3kacgSlSTUg6P/Q==", + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.48.1.tgz", + "integrity": "sha512-leo9tOIlKrcBmmEypzunV/2w946JeLbTdDlwEZ7OnnsUyelZ72NMnT4B2vsikSgwQifjnJUbdXzuW4ToN1wV+Q==", "cpu": [ "arm" ], @@ -2351,9 +2366,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.47.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.47.1.tgz", - "integrity": "sha512-3hBFoqPyU89Dyf1mQRXCdpc6qC6At3LV6jbbIOZd72jcx7xNk3aAp+EjzAtN6sDlmHFzsDJN5yeUySvorWeRXA==", + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.48.1.tgz", + "integrity": "sha512-Vy/WS4z4jEyvnJm+CnPfExIv5sSKqZrUr98h03hpAMbE2aI0aD2wvK6GiSe8Gx2wGp3eD81cYDpLLBqNb2ydwQ==", "cpu": [ "arm64" ], @@ -2365,9 +2380,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.47.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.47.1.tgz", - "integrity": "sha512-49J4FnMHfGodJWPw73Ve+/hsPjZgcXQGkmqBGZFvltzBKRS+cvMiWNLadOMXKGnYRhs1ToTGM0sItKISoSGUNA==", + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.48.1.tgz", + "integrity": "sha512-x5Kzn7XTwIssU9UYqWDB9VpLpfHYuXw5c6bJr4Mzv9kIv242vmJHbI5PJJEnmBYitUIfoMCODDhR7KoZLot2VQ==", "cpu": [ "arm64" ], @@ -2379,9 +2394,9 @@ ] }, "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.47.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.47.1.tgz", - "integrity": "sha512-4yYU8p7AneEpQkRX03pbpLmE21z5JNys16F1BZBZg5fP9rIlb0TkeQjn5du5w4agConCCEoYIG57sNxjryHEGg==", + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.48.1.tgz", + "integrity": "sha512-yzCaBbwkkWt/EcgJOKDUdUpMHjhiZT/eDktOPWvSRpqrVE04p0Nd6EGV4/g7MARXXeOqstflqsKuXVM3H9wOIQ==", "cpu": [ "loong64" ], @@ -2393,9 +2408,9 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.47.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.47.1.tgz", - "integrity": "sha512-fAiq+J28l2YMWgC39jz/zPi2jqc0y3GSRo1yyxlBHt6UN0yYgnegHSRPa3pnHS5amT/efXQrm0ug5+aNEu9UuQ==", + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.48.1.tgz", + "integrity": "sha512-UK0WzWUjMAJccHIeOpPhPcKBqax7QFg47hwZTp6kiMhQHeOYJeaMwzeRZe1q5IiTKsaLnHu9s6toSYVUlZ2QtQ==", "cpu": [ "ppc64" ], @@ -2407,9 +2422,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.47.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.47.1.tgz", - "integrity": "sha512-daoT0PMENNdjVYYU9xec30Y2prb1AbEIbb64sqkcQcSaR0zYuKkoPuhIztfxuqN82KYCKKrj+tQe4Gi7OSm1ow==", + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.48.1.tgz", + "integrity": "sha512-3NADEIlt+aCdCbWVZ7D3tBjBX1lHpXxcvrLt/kdXTiBrOds8APTdtk2yRL2GgmnSVeX4YS1JIf0imFujg78vpw==", "cpu": [ "riscv64" ], @@ -2421,9 +2436,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.47.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.47.1.tgz", - "integrity": "sha512-JNyXaAhWtdzfXu5pUcHAuNwGQKevR+6z/poYQKVW+pLaYOj9G1meYc57/1Xv2u4uTxfu9qEWmNTjv/H/EpAisw==", + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.48.1.tgz", + "integrity": "sha512-euuwm/QTXAMOcyiFCcrx0/S2jGvFlKJ2Iro8rsmYL53dlblp3LkUQVFzEidHhvIPPvcIsxDhl2wkBE+I6YVGzA==", "cpu": [ "riscv64" ], @@ -2435,9 +2450,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.47.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.47.1.tgz", - "integrity": "sha512-U/CHbqKSwEQyZXjCpY43/GLYcTVKEXeRHw0rMBJP7fP3x6WpYG4LTJWR3ic6TeYKX6ZK7mrhltP4ppolyVhLVQ==", + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.48.1.tgz", + "integrity": "sha512-w8mULUjmPdWLJgmTYJx/W6Qhln1a+yqvgwmGXcQl2vFBkWsKGUBRbtLRuKJUln8Uaimf07zgJNxOhHOvjSQmBQ==", "cpu": [ "s390x" ], @@ -2449,9 +2464,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.47.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.47.1.tgz", - "integrity": "sha512-uTLEakjxOTElfeZIGWkC34u2auLHB1AYS6wBjPGI00bWdxdLcCzK5awjs25YXpqB9lS8S0vbO0t9ZcBeNibA7g==", + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.48.1.tgz", + "integrity": "sha512-90taWXCWxTbClWuMZD0DKYohY1EovA+W5iytpE89oUPmT5O1HFdf8cuuVIylE6vCbrGdIGv85lVRzTcpTRZ+kA==", "cpu": [ "x64" ], @@ -2463,9 +2478,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.47.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.47.1.tgz", - "integrity": "sha512-Ft+d/9DXs30BK7CHCTX11FtQGHUdpNDLJW0HHLign4lgMgBcPFN3NkdIXhC5r9iwsMwYreBBc4Rho5ieOmKNVQ==", + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.48.1.tgz", + "integrity": "sha512-2Gu29SkFh1FfTRuN1GR1afMuND2GKzlORQUP3mNMJbqdndOg7gNsa81JnORctazHRokiDzQ5+MLE5XYmZW5VWg==", "cpu": [ "x64" ], @@ -2477,9 +2492,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.47.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.47.1.tgz", - "integrity": "sha512-N9X5WqGYzZnjGAFsKSfYFtAShYjwOmFJoWbLg3dYixZOZqU7hdMq+/xyS14zKLhFhZDhP9VfkzQnsdk0ZDS9IA==", + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.48.1.tgz", + "integrity": "sha512-6kQFR1WuAO50bxkIlAVeIYsz3RUx+xymwhTo9j94dJ+kmHe9ly7muH23sdfWduD0BA8pD9/yhonUvAjxGh34jQ==", "cpu": [ "arm64" ], @@ -2491,9 +2506,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.47.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.47.1.tgz", - "integrity": "sha512-O+KcfeCORZADEY8oQJk4HK8wtEOCRE4MdOkb8qGZQNun3jzmj2nmhV/B/ZaaZOkPmJyvm/gW9n0gsB4eRa1eiQ==", + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.48.1.tgz", + "integrity": "sha512-RUyZZ/mga88lMI3RlXFs4WQ7n3VyU07sPXmMG7/C1NOi8qisUg57Y7LRarqoGoAiopmGmChUhSwfpvQ3H5iGSQ==", "cpu": [ "ia32" ], @@ -2505,9 +2520,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.47.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.47.1.tgz", - "integrity": "sha512-CpKnYa8eHthJa3c+C38v/E+/KZyF1Jdh2Cz3DyKZqEWYgrM1IHFArXNWvBLPQCKUEsAqqKX27tTqVEFbDNUcOA==", + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.48.1.tgz", + "integrity": "sha512-8a/caCUN4vkTChxkaIJcMtwIVcBhi4X2PQRoT+yCK3qRYaZ7cURrmJFL5Ux9H9RaMIXj9RuihckdmkBX3zZsgg==", "cpu": [ "x64" ], @@ -2932,17 +2947,17 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.40.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.40.0.tgz", - "integrity": "sha512-w/EboPlBwnmOBtRbiOvzjD+wdiZdgFeo17lkltrtn7X37vagKKWJABvyfsJXTlHe6XBzugmYgd4A4nW+k8Mixw==", + "version": "8.41.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.41.0.tgz", + "integrity": "sha512-8fz6oa6wEKZrhXWro/S3n2eRJqlRcIa6SlDh59FXJ5Wp5XRZ8B9ixpJDcjadHq47hMx0u+HW6SNa6LjJQ6NLtw==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.40.0", - "@typescript-eslint/type-utils": "8.40.0", - "@typescript-eslint/utils": "8.40.0", - "@typescript-eslint/visitor-keys": "8.40.0", + "@typescript-eslint/scope-manager": "8.41.0", + "@typescript-eslint/type-utils": "8.41.0", + "@typescript-eslint/utils": "8.41.0", + "@typescript-eslint/visitor-keys": "8.41.0", "graphemer": "^1.4.0", "ignore": "^7.0.0", "natural-compare": "^1.4.0", @@ -2956,7 +2971,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.40.0", + "@typescript-eslint/parser": "^8.41.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } @@ -2972,16 +2987,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.40.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.40.0.tgz", - "integrity": "sha512-jCNyAuXx8dr5KJMkecGmZ8KI61KBUhkCob+SD+C+I5+Y1FWI2Y3QmY4/cxMCC5WAsZqoEtEETVhUiUMIGCf6Bw==", + "version": "8.41.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.41.0.tgz", + "integrity": "sha512-gTtSdWX9xiMPA/7MV9STjJOOYtWwIJIYxkQxnSV1U3xcE+mnJSH3f6zI0RYP+ew66WSlZ5ed+h0VCxsvdC1jJg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.40.0", - "@typescript-eslint/types": "8.40.0", - "@typescript-eslint/typescript-estree": "8.40.0", - "@typescript-eslint/visitor-keys": "8.40.0", + "@typescript-eslint/scope-manager": "8.41.0", + "@typescript-eslint/types": "8.41.0", + "@typescript-eslint/typescript-estree": "8.41.0", + "@typescript-eslint/visitor-keys": "8.41.0", "debug": "^4.3.4" }, "engines": { @@ -2997,14 +3012,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.40.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.40.0.tgz", - "integrity": "sha512-/A89vz7Wf5DEXsGVvcGdYKbVM9F7DyFXj52lNYUDS1L9yJfqjW/fIp5PgMuEJL/KeqVTe2QSbXAGUZljDUpArw==", + "version": "8.41.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.41.0.tgz", + "integrity": "sha512-b8V9SdGBQzQdjJ/IO3eDifGpDBJfvrNTp2QD9P2BeqWTGrRibgfgIlBSw6z3b6R7dPzg752tOs4u/7yCLxksSQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.40.0", - "@typescript-eslint/types": "^8.40.0", + "@typescript-eslint/tsconfig-utils": "^8.41.0", + "@typescript-eslint/types": "^8.41.0", "debug": "^4.3.4" }, "engines": { @@ -3019,14 +3034,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.40.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.40.0.tgz", - "integrity": "sha512-y9ObStCcdCiZKzwqsE8CcpyuVMwRouJbbSrNuThDpv16dFAj429IkM6LNb1dZ2m7hK5fHyzNcErZf7CEeKXR4w==", + "version": "8.41.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.41.0.tgz", + "integrity": "sha512-n6m05bXn/Cd6DZDGyrpXrELCPVaTnLdPToyhBoFkLIMznRUQUEQdSp96s/pcWSQdqOhrgR1mzJ+yItK7T+WPMQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.40.0", - "@typescript-eslint/visitor-keys": "8.40.0" + "@typescript-eslint/types": "8.41.0", + "@typescript-eslint/visitor-keys": "8.41.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3037,9 +3052,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.40.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.40.0.tgz", - "integrity": "sha512-jtMytmUaG9d/9kqSl/W3E3xaWESo4hFDxAIHGVW/WKKtQhesnRIJSAJO6XckluuJ6KDB5woD1EiqknriCtAmcw==", + "version": "8.41.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.41.0.tgz", + "integrity": "sha512-TDhxYFPUYRFxFhuU5hTIJk+auzM/wKvWgoNYOPcOf6i4ReYlOoYN8q1dV5kOTjNQNJgzWN3TUUQMtlLOcUgdUw==", "dev": true, "license": "MIT", "engines": { @@ -3054,15 +3069,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.40.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.40.0.tgz", - "integrity": "sha512-eE60cK4KzAc6ZrzlJnflXdrMqOBaugeukWICO2rB0KNvwdIMaEaYiywwHMzA1qFpTxrLhN9Lp4E/00EgWcD3Ow==", + "version": "8.41.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.41.0.tgz", + "integrity": "sha512-63qt1h91vg3KsjVVonFJWjgSK7pZHSQFKH6uwqxAH9bBrsyRhO6ONoKyXxyVBzG1lJnFAJcKAcxLS54N1ee1OQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.40.0", - "@typescript-eslint/typescript-estree": "8.40.0", - "@typescript-eslint/utils": "8.40.0", + "@typescript-eslint/types": "8.41.0", + "@typescript-eslint/typescript-estree": "8.41.0", + "@typescript-eslint/utils": "8.41.0", "debug": "^4.3.4", "ts-api-utils": "^2.1.0" }, @@ -3079,9 +3094,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.40.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.40.0.tgz", - "integrity": "sha512-ETdbFlgbAmXHyFPwqUIYrfc12ArvpBhEVgGAxVYSwli26dn8Ko+lIo4Su9vI9ykTZdJn+vJprs/0eZU0YMAEQg==", + "version": "8.41.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.41.0.tgz", + "integrity": "sha512-9EwxsWdVqh42afLbHP90n2VdHaWU/oWgbH2P0CfcNfdKL7CuKpwMQGjwev56vWu9cSKU7FWSu6r9zck6CVfnag==", "dev": true, "license": "MIT", "engines": { @@ -3093,16 +3108,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.40.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.40.0.tgz", - "integrity": "sha512-k1z9+GJReVVOkc1WfVKs1vBrR5MIKKbdAjDTPvIK3L8De6KbFfPFt6BKpdkdk7rZS2GtC/m6yI5MYX+UsuvVYQ==", + "version": "8.41.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.41.0.tgz", + "integrity": "sha512-D43UwUYJmGhuwHfY7MtNKRZMmfd8+p/eNSfFe6tH5mbVDto+VQCayeAt35rOx3Cs6wxD16DQtIKw/YXxt5E0UQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.40.0", - "@typescript-eslint/tsconfig-utils": "8.40.0", - "@typescript-eslint/types": "8.40.0", - "@typescript-eslint/visitor-keys": "8.40.0", + "@typescript-eslint/project-service": "8.41.0", + "@typescript-eslint/tsconfig-utils": "8.41.0", + "@typescript-eslint/types": "8.41.0", + "@typescript-eslint/visitor-keys": "8.41.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -3122,16 +3137,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.40.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.40.0.tgz", - "integrity": "sha512-Cgzi2MXSZyAUOY+BFwGs17s7ad/7L+gKt6Y8rAVVWS+7o6wrjeFN4nVfTpbE25MNcxyJ+iYUXflbs2xR9h4UBg==", + "version": "8.41.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.41.0.tgz", + "integrity": "sha512-udbCVstxZ5jiPIXrdH+BZWnPatjlYwJuJkDA4Tbo3WyYLh8NvB+h/bKeSZHDOFKfphsZYJQqaFtLeXEqurQn1A==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.40.0", - "@typescript-eslint/types": "8.40.0", - "@typescript-eslint/typescript-estree": "8.40.0" + "@typescript-eslint/scope-manager": "8.41.0", + "@typescript-eslint/types": "8.41.0", + "@typescript-eslint/typescript-estree": "8.41.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3146,13 +3161,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.40.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.40.0.tgz", - "integrity": "sha512-8CZ47QwalyRjsypfwnbI3hKy5gJDPmrkLjkgMxhi0+DZZ2QNx2naS6/hWoVYUHU7LU2zleF68V9miaVZvhFfTA==", + "version": "8.41.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.41.0.tgz", + "integrity": "sha512-+GeGMebMCy0elMNg67LRNoVnUFPIm37iu5CmHESVx56/9Jsfdpsvbv605DQ81Pi/x11IdKUsS5nzgTYbCQU9fg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.40.0", + "@typescript-eslint/types": "8.41.0", "eslint-visitor-keys": "^4.2.1" }, "engines": { @@ -3527,16 +3542,6 @@ } } }, - "node_modules/@vitest/mocker/node_modules/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - } - }, "node_modules/@vitest/pretty-format": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz", @@ -3691,14 +3696,14 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.19.tgz", - "integrity": "sha512-/afpyvlkrSNYbPo94Qu8GtIOWS+g5TRdOvs6XZNw6pWQQmj5pBgSZvEPOIZlqWq0YvoUhDDQaQ2TnzuJdOV4hA==", + "version": "3.5.20", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.20.tgz", + "integrity": "sha512-8TWXUyiqFd3GmP4JTX9hbiTFRwYHgVL/vr3cqhr4YQ258+9FADwvj7golk2sWNGHR67QgmCZ8gz80nQcMokhwg==", "dev": true, "license": "MIT", "dependencies": { "@babel/parser": "^7.28.3", - "@vue/shared": "3.5.19", + "@vue/shared": "3.5.20", "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.1" @@ -3717,44 +3722,58 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/@vue/compiler-core/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" + }, "node_modules/@vue/compiler-dom": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.19.tgz", - "integrity": "sha512-Drs6rPHQZx/pN9S6ml3Z3K/TWCIRPvzG2B/o5kFK9X0MNHt8/E+38tiRfojufrYBfA6FQUFB2qBBRXlcSXWtOA==", + "version": "3.5.20", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.20.tgz", + "integrity": "sha512-whB44M59XKjqUEYOMPYU0ijUV0G+4fdrHVKDe32abNdX/kJe1NUEMqsi4cwzXa9kyM9w5S8WqFsrfo1ogtBZGQ==", "dev": true, "license": "MIT", "dependencies": { - "@vue/compiler-core": "3.5.19", - "@vue/shared": "3.5.19" + "@vue/compiler-core": "3.5.20", + "@vue/shared": "3.5.20" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.19.tgz", - "integrity": "sha512-YWCm1CYaJ+2RvNmhCwI7t3I3nU+hOrWGWMsn+Z/kmm1jy5iinnVtlmkiZwbLlbV1SRizX7vHsc0/bG5dj0zRTg==", + "version": "3.5.20", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.20.tgz", + "integrity": "sha512-SFcxapQc0/feWiSBfkGsa1v4DOrnMAQSYuvDMpEaxbpH5dKbnEM5KobSNSgU+1MbHCl+9ftm7oQWxvwDB6iBfw==", "dev": true, "license": "MIT", "dependencies": { "@babel/parser": "^7.28.3", - "@vue/compiler-core": "3.5.19", - "@vue/compiler-dom": "3.5.19", - "@vue/compiler-ssr": "3.5.19", - "@vue/shared": "3.5.19", + "@vue/compiler-core": "3.5.20", + "@vue/compiler-dom": "3.5.20", + "@vue/compiler-ssr": "3.5.20", + "@vue/shared": "3.5.20", "estree-walker": "^2.0.2", "magic-string": "^0.30.17", "postcss": "^8.5.6", "source-map-js": "^1.2.1" } }, + "node_modules/@vue/compiler-sfc/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" + }, "node_modules/@vue/compiler-ssr": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.19.tgz", - "integrity": "sha512-/wx0VZtkWOPdiQLWPeQeqpHWR/LuNC7bHfSX7OayBTtUy8wur6vT6EQIX6Et86aED6J+y8tTw43qo2uoqGg5sw==", + "version": "3.5.20", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.20.tgz", + "integrity": "sha512-RSl5XAMc5YFUXpDQi+UQDdVjH9FnEpLDHIALg5J0ITHxkEzJ8uQLlo7CIbjPYqmZtt6w0TsIPbo1izYXwDG7JA==", "dev": true, "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.5.19", - "@vue/shared": "3.5.19" + "@vue/compiler-dom": "3.5.20", + "@vue/shared": "3.5.20" } }, "node_modules/@vue/compiler-vue2": { @@ -3779,14 +3798,14 @@ } }, "node_modules/@vue/devtools-core": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@vue/devtools-core/-/devtools-core-8.0.0.tgz", - "integrity": "sha512-5bPtF0jAFnaGs4C/4+3vGRR5U+cf6Y8UWK0nJflutEDGepHxl5L9JRaPdHQYCUgrzUaf4cY4waNBEEGXrfcs3A==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@vue/devtools-core/-/devtools-core-8.0.1.tgz", + "integrity": "sha512-Lf/+ambV3utWJ18r5TnpePbJ60IcIcqeZSQYLyNcFw2sFel0tGMnMyCdDtR1JNIdVZGAVaksTLhGh0FlrNu+sw==", "dev": true, "license": "MIT", "dependencies": { - "@vue/devtools-kit": "^8.0.0", - "@vue/devtools-shared": "^8.0.0", + "@vue/devtools-kit": "^8.0.1", + "@vue/devtools-shared": "^8.0.1", "mitt": "^3.0.1", "nanoid": "^5.1.5", "pathe": "^2.0.3", @@ -3797,13 +3816,13 @@ } }, "node_modules/@vue/devtools-core/node_modules/@vue/devtools-kit": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-8.0.0.tgz", - "integrity": "sha512-b11OeQODkE0bctdT0RhL684pEV2DPXJ80bjpywVCbFn1PxuL3bmMPDoJKjbMnnoWbrnUYXYzFfmMWBZAMhORkQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-8.0.1.tgz", + "integrity": "sha512-7kiPhgTKNtNeXltEHnJJjIDlndlJP4P+UJvCw54uVHNDlI6JzwrSiRmW4cxKTug2wDbc/dkGaMnlZghcwV+aWA==", "dev": true, "license": "MIT", "dependencies": { - "@vue/devtools-shared": "^8.0.0", + "@vue/devtools-shared": "^8.0.1", "birpc": "^2.5.0", "hookable": "^5.5.3", "mitt": "^3.0.1", @@ -3813,9 +3832,9 @@ } }, "node_modules/@vue/devtools-core/node_modules/@vue/devtools-shared": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-8.0.0.tgz", - "integrity": "sha512-jrKnbjshQCiOAJanoeJjTU7WaCg0Dz2BUal6SaR6VM/P3hiFdX5Q6Pxl73ZMnrhCxNK9nAg5hvvRGqs+6dtU1g==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-8.0.1.tgz", + "integrity": "sha512-PqtWqPPRpMwZ9FjTzyugb5KeV9kmg2C3hjxZHwjl0lijT4QIJDd0z6AWcnbM9w2nayjDymyTt0+sbdTv3pVeNg==", "dev": true, "license": "MIT", "dependencies": { @@ -3893,57 +3912,57 @@ } }, "node_modules/@vue/reactivity": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.19.tgz", - "integrity": "sha512-4bueZg2qs5MSsK2dQk3sssV0cfvxb/QZntTC8v7J448GLgmfPkQ+27aDjlt40+XFqOwUq5yRxK5uQh14Fc9eVA==", + "version": "3.5.20", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.20.tgz", + "integrity": "sha512-hS8l8x4cl1fmZpSQX/NXlqWKARqEsNmfkwOIYqtR2F616NGfsLUm0G6FQBK6uDKUCVyi1YOL8Xmt/RkZcd/jYQ==", "dev": true, "license": "MIT", "dependencies": { - "@vue/shared": "3.5.19" + "@vue/shared": "3.5.20" } }, "node_modules/@vue/runtime-core": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.19.tgz", - "integrity": "sha512-TaooCr8Hge1sWjLSyhdubnuofs3shhzZGfyD11gFolZrny76drPwBVQj28/z/4+msSFb18tOIg6VVVgf9/IbIA==", + "version": "3.5.20", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.20.tgz", + "integrity": "sha512-vyQRiH5uSZlOa+4I/t4Qw/SsD/gbth0SW2J7oMeVlMFMAmsG1rwDD6ok0VMmjXY3eI0iHNSSOBilEDW98PLRKw==", "dev": true, "license": "MIT", "dependencies": { - "@vue/reactivity": "3.5.19", - "@vue/shared": "3.5.19" + "@vue/reactivity": "3.5.20", + "@vue/shared": "3.5.20" } }, "node_modules/@vue/runtime-dom": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.19.tgz", - "integrity": "sha512-qmahqeok6ztuUTmV8lqd7N9ymbBzctNF885n8gL3xdCC1u2RnM/coX16Via0AiONQXUoYpxPojL3U1IsDgSWUQ==", + "version": "3.5.20", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.20.tgz", + "integrity": "sha512-KBHzPld/Djw3im0CQ7tGCpgRedryIn4CcAl047EhFTCCPT2xFf4e8j6WeKLgEEoqPSl9TYqShc3Q6tpWpz/Xgw==", "dev": true, "license": "MIT", "dependencies": { - "@vue/reactivity": "3.5.19", - "@vue/runtime-core": "3.5.19", - "@vue/shared": "3.5.19", + "@vue/reactivity": "3.5.20", + "@vue/runtime-core": "3.5.20", + "@vue/shared": "3.5.20", "csstype": "^3.1.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.19.tgz", - "integrity": "sha512-ZJ/zV9SQuaIO+BEEVq/2a6fipyrSYfjKMU3267bPUk+oTx/hZq3RzV7VCh0Unlppt39Bvh6+NzxeopIFv4HJNg==", + "version": "3.5.20", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.20.tgz", + "integrity": "sha512-HthAS0lZJDH21HFJBVNTtx+ULcIbJQRpjSVomVjfyPkFSpCwvsPTA+jIzOaUm3Hrqx36ozBHePztQFg6pj5aKg==", "dev": true, "license": "MIT", "dependencies": { - "@vue/compiler-ssr": "3.5.19", - "@vue/shared": "3.5.19" + "@vue/compiler-ssr": "3.5.20", + "@vue/shared": "3.5.20" }, "peerDependencies": { - "vue": "3.5.19" + "vue": "3.5.20" } }, "node_modules/@vue/shared": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.19.tgz", - "integrity": "sha512-IhXCOn08wgKrLQxRFKKlSacWg4Goi1BolrdEeLYn6tgHjJNXVrWJ5nzoxZqNwl5p88aLlQ8LOaoMa3AYvaKJ/Q==", + "version": "3.5.20", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.20.tgz", + "integrity": "sha512-SoRGP596KU/ig6TfgkCMbXkr4YJ91n/QSdMuqeP5r3hVIYA3CPHUBCc7Skak0EAKV+5lL4KyIh61VA/pK1CIAA==", "dev": true, "license": "MIT" }, @@ -4324,23 +4343,6 @@ "js-tokens": "^9.0.1" } }, - "node_modules/ast-v8-to-istanbul/node_modules/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - } - }, - "node_modules/ast-v8-to-istanbul/node_modules/js-tokens": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", - "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", - "dev": true, - "license": "MIT" - }, "node_modules/async": { "version": "3.2.6", "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", @@ -4734,9 +4736,9 @@ } }, "node_modules/chai": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.2.tgz", - "integrity": "sha512-kx7GHSOBiiIQ+DDgMP6YMtYkb/3Usm2nUYblNEM9P+/OfkuP7OjfoDlq/DCe1OU0GsREUa0rNAxZmzxgO6+jWg==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", + "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", "dev": true, "license": "MIT", "dependencies": { @@ -5014,19 +5016,18 @@ "license": "MIT" }, "node_modules/concurrently": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-9.2.0.tgz", - "integrity": "sha512-IsB/fiXTupmagMW4MNp2lx2cdSN2FfZq78vF90LBB+zZHArbIQZjQtzXCiXnvTxCZSvXanTqFLWBjw2UkLx1SQ==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-9.2.1.tgz", + "integrity": "sha512-fsfrO0MxV64Znoy8/l1vVIjjHa29SZyyqPgQBwhiDcaW8wJc2W3XWVOGx4M3oJBnv/zdUZIIp1gDeS98GzP8Ng==", "dev": true, "license": "MIT", "dependencies": { - "chalk": "^4.1.2", - "lodash": "^4.17.21", - "rxjs": "^7.8.1", - "shell-quote": "^1.8.1", - "supports-color": "^8.1.1", - "tree-kill": "^1.2.2", - "yargs": "^17.7.2" + "chalk": "4.1.2", + "rxjs": "7.8.2", + "shell-quote": "1.8.3", + "supports-color": "8.1.1", + "tree-kill": "1.2.2", + "yargs": "17.7.2" }, "bin": { "conc": "dist/bin/concurrently.js", @@ -5551,9 +5552,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.208", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.208.tgz", - "integrity": "sha512-ozZyibehoe7tOhNaf16lKmljVf+3npZcJIEbJRVftVsmAg5TeA1mGS9dVCZzOwr2xT7xK15V0p7+GZqSPgkuPg==", + "version": "1.5.209", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.209.tgz", + "integrity": "sha512-Xoz0uMrim9ZETCQt8UgM5FxQF9+imA7PBpokoGcZloA1uw2LeHzTlip5cb5KOAsXZLjh/moN2vReN3ZjJmjI9A==", "dev": true, "license": "ISC" }, @@ -5869,9 +5870,9 @@ } }, "node_modules/eslint": { - "version": "9.33.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.33.0.tgz", - "integrity": "sha512-TS9bTNIryDzStCpJN93aC5VRSW3uTx9sClUn4B87pwiCaJh220otoI0X8mJKr+VcPtniMdN8GKjlwgWGUv5ZKA==", + "version": "9.34.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.34.0.tgz", + "integrity": "sha512-RNCHRX5EwdrESy3Jc9o8ie8Bog+PeYvvSR8sDGoZxNFTvZ4dlxUB3WzQ3bQMztFrSRODGrLLj8g6OFuGY/aiQg==", "dev": true, "license": "MIT", "dependencies": { @@ -5881,7 +5882,7 @@ "@eslint/config-helpers": "^0.3.1", "@eslint/core": "^0.15.2", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.33.0", + "@eslint/js": "9.34.0", "@eslint/plugin-kit": "^0.3.5", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", @@ -6416,11 +6417,14 @@ } }, "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } }, "node_modules/esutils": { "version": "2.0.3", @@ -6545,9 +6549,9 @@ "license": "MIT" }, "node_modules/fast-uri": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", - "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", "dev": true, "funding": [ { @@ -7258,9 +7262,9 @@ } }, "node_modules/i18next": { - "version": "25.4.0", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-25.4.0.tgz", - "integrity": "sha512-UH5aiamXsO3cfrZFurCHiB6YSs3C+s+XY9UaJllMMSbmaoXILxFgqDEZu4NbfzJFjmUo3BNMa++Rjkr3ofjfLw==", + "version": "25.4.2", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-25.4.2.tgz", + "integrity": "sha512-gD4T25a6ovNXsfXY1TwHXXXLnD/K2t99jyYMCSimSCBnBRJVQr5j+VAaU83RJCPzrTGhVQ6dqIga66xO2rtd5g==", "dev": true, "funding": [ { @@ -8162,9 +8166,9 @@ } }, "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", + "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", "dev": true, "license": "MIT" }, @@ -8602,6 +8606,13 @@ "loose-envify": "cli.js" } }, + "node_modules/loose-envify/node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, "node_modules/loupe": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz", @@ -9707,16 +9718,16 @@ "license": "MIT" }, "node_modules/mlly": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz", - "integrity": "sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.0.tgz", + "integrity": "sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==", "dev": true, "license": "MIT", "dependencies": { - "acorn": "^8.14.0", - "pathe": "^2.0.1", - "pkg-types": "^1.3.0", - "ufo": "^1.5.4" + "acorn": "^8.15.0", + "pathe": "^2.0.3", + "pkg-types": "^1.3.1", + "ufo": "^1.6.1" } }, "node_modules/mlly/node_modules/confbox": { @@ -11311,9 +11322,9 @@ } }, "node_modules/rollup": { - "version": "4.47.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.47.1.tgz", - "integrity": "sha512-iasGAQoZ5dWDzULEUX3jiW0oB1qyFOepSyDyoU6S/OhVlDIwj5knI5QBa5RRQ0sK7OE0v+8VIi2JuV+G+3tfNg==", + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.48.1.tgz", + "integrity": "sha512-jVG20NvbhTYDkGAty2/Yh7HK6/q3DGSRH4o8ALKGArmMuaauM9kLfoMZ+WliPwA5+JHr2lTn3g557FxBV87ifg==", "dev": true, "license": "MIT", "dependencies": { @@ -11327,26 +11338,26 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.47.1", - "@rollup/rollup-android-arm64": "4.47.1", - "@rollup/rollup-darwin-arm64": "4.47.1", - "@rollup/rollup-darwin-x64": "4.47.1", - "@rollup/rollup-freebsd-arm64": "4.47.1", - "@rollup/rollup-freebsd-x64": "4.47.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.47.1", - "@rollup/rollup-linux-arm-musleabihf": "4.47.1", - "@rollup/rollup-linux-arm64-gnu": "4.47.1", - "@rollup/rollup-linux-arm64-musl": "4.47.1", - "@rollup/rollup-linux-loongarch64-gnu": "4.47.1", - "@rollup/rollup-linux-ppc64-gnu": "4.47.1", - "@rollup/rollup-linux-riscv64-gnu": "4.47.1", - "@rollup/rollup-linux-riscv64-musl": "4.47.1", - "@rollup/rollup-linux-s390x-gnu": "4.47.1", - "@rollup/rollup-linux-x64-gnu": "4.47.1", - "@rollup/rollup-linux-x64-musl": "4.47.1", - "@rollup/rollup-win32-arm64-msvc": "4.47.1", - "@rollup/rollup-win32-ia32-msvc": "4.47.1", - "@rollup/rollup-win32-x64-msvc": "4.47.1", + "@rollup/rollup-android-arm-eabi": "4.48.1", + "@rollup/rollup-android-arm64": "4.48.1", + "@rollup/rollup-darwin-arm64": "4.48.1", + "@rollup/rollup-darwin-x64": "4.48.1", + "@rollup/rollup-freebsd-arm64": "4.48.1", + "@rollup/rollup-freebsd-x64": "4.48.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.48.1", + "@rollup/rollup-linux-arm-musleabihf": "4.48.1", + "@rollup/rollup-linux-arm64-gnu": "4.48.1", + "@rollup/rollup-linux-arm64-musl": "4.48.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.48.1", + "@rollup/rollup-linux-ppc64-gnu": "4.48.1", + "@rollup/rollup-linux-riscv64-gnu": "4.48.1", + "@rollup/rollup-linux-riscv64-musl": "4.48.1", + "@rollup/rollup-linux-s390x-gnu": "4.48.1", + "@rollup/rollup-linux-x64-gnu": "4.48.1", + "@rollup/rollup-linux-x64-musl": "4.48.1", + "@rollup/rollup-win32-arm64-msvc": "4.48.1", + "@rollup/rollup-win32-ia32-msvc": "4.48.1", + "@rollup/rollup-win32-x64-msvc": "4.48.1", "fsevents": "~2.3.2" } }, @@ -12209,13 +12220,6 @@ "url": "https://github.com/sponsors/antfu" } }, - "node_modules/strip-literal/node_modules/js-tokens": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", - "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", - "dev": true, - "license": "MIT" - }, "node_modules/superjson": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/superjson/-/superjson-2.2.2.tgz", @@ -12282,13 +12286,17 @@ } }, "node_modules/tapable": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz", - "integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.3.tgz", + "integrity": "sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg==", "dev": true, "license": "MIT", "engines": { "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, "node_modules/test-exclude": { @@ -12776,9 +12784,9 @@ } }, "node_modules/typedoc": { - "version": "0.28.10", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.28.10.tgz", - "integrity": "sha512-zYvpjS2bNJ30SoNYfHSRaFpBMZAsL7uwKbWwqoCNFWjcPnI3e/mPLh2SneH9mX7SJxtDpvDgvd9/iZxGbo7daw==", + "version": "0.28.11", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.28.11.tgz", + "integrity": "sha512-1FqgrrUYGNuE3kImAiEDgAVVVacxdO4ZVTKbiOVDGkoeSB4sNwQaDpa8mta+Lw5TEzBFmGXzsg0I1NLRIoaSFw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -12824,16 +12832,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.40.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.40.0.tgz", - "integrity": "sha512-Xvd2l+ZmFDPEt4oj1QEXzA4A2uUK6opvKu3eGN9aGjB8au02lIVcLyi375w94hHyejTOmzIU77L8ol2sRg9n7Q==", + "version": "8.41.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.41.0.tgz", + "integrity": "sha512-n66rzs5OBXW3SFSnZHr2T685q1i4ODm2nulFJhMZBotaTavsS8TrI3d7bDlRSs9yWo7HmyWrN9qDu14Qv7Y0Dw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.40.0", - "@typescript-eslint/parser": "8.40.0", - "@typescript-eslint/typescript-estree": "8.40.0", - "@typescript-eslint/utils": "8.40.0" + "@typescript-eslint/eslint-plugin": "8.41.0", + "@typescript-eslint/parser": "8.41.0", + "@typescript-eslint/typescript-estree": "8.41.0", + "@typescript-eslint/utils": "8.41.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -12970,9 +12978,9 @@ } }, "node_modules/unplugin-utils": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/unplugin-utils/-/unplugin-utils-0.2.5.tgz", - "integrity": "sha512-gwXJnPRewT4rT7sBi/IvxKTjsms7jX7QIDLOClApuZwR49SXbrB1z2NLUZ+vDHyqCj/n58OzRRqaW+B8OZi8vg==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/unplugin-utils/-/unplugin-utils-0.3.0.tgz", + "integrity": "sha512-JLoggz+PvLVMJo+jZt97hdIIIZ2yTzGgft9e9q8iMrC4ewufl62ekeW7mixBghonn2gVb/ICjyvlmOCUBnJLQg==", "dev": true, "license": "MIT", "dependencies": { @@ -12980,7 +12988,7 @@ "picomatch": "^4.0.3" }, "engines": { - "node": ">=18.12.0" + "node": ">=20.19.0" }, "funding": { "url": "https://github.com/sponsors/sxzz" @@ -13232,9 +13240,9 @@ } }, "node_modules/vite-plugin-checker": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.10.2.tgz", - "integrity": "sha512-FX9U8TnIS6AGOlqmC6O2YmkJzcZJRrjA03UF7FOhcUJ7it3HmCoxcIPMcoHliBP6EFOuNzle9K4c0JL4suRPow==", + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.10.3.tgz", + "integrity": "sha512-f4sekUcDPF+T+GdbbE8idb1i2YplBAoH+SfRS0e/WRBWb2rYb1Jf5Pimll0Rj+3JgIYWwG2K5LtBPCXxoibkLg==", "dev": true, "license": "MIT", "dependencies": { @@ -13359,9 +13367,9 @@ } }, "node_modules/vite-plugin-inspect": { - "version": "11.3.2", - "resolved": "https://registry.npmjs.org/vite-plugin-inspect/-/vite-plugin-inspect-11.3.2.tgz", - "integrity": "sha512-nzwvyFQg58XSMAmKVLr2uekAxNYvAbz1lyPmCAFVIBncCgN9S/HPM+2UM9Q9cvc4JEbC5ZBgwLAdaE2onmQuKg==", + "version": "11.3.3", + "resolved": "https://registry.npmjs.org/vite-plugin-inspect/-/vite-plugin-inspect-11.3.3.tgz", + "integrity": "sha512-u2eV5La99oHoYPHE6UvbwgEqKKOQGz86wMg40CCosP6q8BkB6e5xPneZfYagK4ojPJSj5anHCrnvC20DpwVdRA==", "dev": true, "license": "MIT", "dependencies": { @@ -13370,9 +13378,9 @@ "error-stack-parser-es": "^1.0.5", "ohash": "^2.0.11", "open": "^10.2.0", - "perfect-debounce": "^1.0.0", + "perfect-debounce": "^2.0.0", "sirv": "^3.0.1", - "unplugin-utils": "^0.2.4", + "unplugin-utils": "^0.3.0", "vite-dev-rpc": "^1.1.0" }, "engines": { @@ -13409,6 +13417,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/vite-plugin-inspect/node_modules/perfect-debounce": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-2.0.0.tgz", + "integrity": "sha512-fkEH/OBiKrqqI/yIgjR92lMfs2K8105zt/VT6+7eTjNwisrsh47CeIED9z58zI7DfKdH3uHAn25ziRZn3kgAow==", + "dev": true, + "license": "MIT" + }, "node_modules/vite-plugin-kern-extra-icons": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/vite-plugin-kern-extra-icons/-/vite-plugin-kern-extra-icons-0.1.0.tgz", @@ -13424,15 +13439,15 @@ } }, "node_modules/vite-plugin-vue-devtools": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/vite-plugin-vue-devtools/-/vite-plugin-vue-devtools-8.0.0.tgz", - "integrity": "sha512-9bWQig8UMu3nPbxX86NJv56aelpFYoBHxB5+pxuQz3pa3Tajc1ezRidj/0dnADA4/UHuVIfwIVYHOvMXYcPshg==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/vite-plugin-vue-devtools/-/vite-plugin-vue-devtools-8.0.1.tgz", + "integrity": "sha512-ecm/Xvtg5xsFPfY7SJ38Zb6NfmVrHxBhLMk/3nm5ZDAd7n8Dk2BV8JBuq1L5wRMVfvCth01vtzJViZC9TAC6qg==", "dev": true, "license": "MIT", "dependencies": { - "@vue/devtools-core": "^8.0.0", - "@vue/devtools-kit": "^8.0.0", - "@vue/devtools-shared": "^8.0.0", + "@vue/devtools-core": "^8.0.1", + "@vue/devtools-kit": "^8.0.1", + "@vue/devtools-shared": "^8.0.1", "execa": "^9.6.0", "sirv": "^3.0.1", "vite-plugin-inspect": "^11.3.0", @@ -13446,13 +13461,13 @@ } }, "node_modules/vite-plugin-vue-devtools/node_modules/@vue/devtools-kit": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-8.0.0.tgz", - "integrity": "sha512-b11OeQODkE0bctdT0RhL684pEV2DPXJ80bjpywVCbFn1PxuL3bmMPDoJKjbMnnoWbrnUYXYzFfmMWBZAMhORkQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-8.0.1.tgz", + "integrity": "sha512-7kiPhgTKNtNeXltEHnJJjIDlndlJP4P+UJvCw54uVHNDlI6JzwrSiRmW4cxKTug2wDbc/dkGaMnlZghcwV+aWA==", "dev": true, "license": "MIT", "dependencies": { - "@vue/devtools-shared": "^8.0.0", + "@vue/devtools-shared": "^8.0.1", "birpc": "^2.5.0", "hookable": "^5.5.3", "mitt": "^3.0.1", @@ -13462,9 +13477,9 @@ } }, "node_modules/vite-plugin-vue-devtools/node_modules/@vue/devtools-shared": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-8.0.0.tgz", - "integrity": "sha512-jrKnbjshQCiOAJanoeJjTU7WaCg0Dz2BUal6SaR6VM/P3hiFdX5Q6Pxl73ZMnrhCxNK9nAg5hvvRGqs+6dtU1g==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-8.0.1.tgz", + "integrity": "sha512-PqtWqPPRpMwZ9FjTzyugb5KeV9kmg2C3hjxZHwjl0lijT4QIJDd0z6AWcnbM9w2nayjDymyTt0+sbdTv3pVeNg==", "dev": true, "license": "MIT", "dependencies": { @@ -13617,17 +13632,17 @@ "license": "MIT" }, "node_modules/vue": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.19.tgz", - "integrity": "sha512-ZRh0HTmw6KChRYWgN8Ox/wi7VhpuGlvMPrHjIsdRbzKNgECFLzy+dKL5z9yGaBSjCpmcfJCbh3I1tNSRmBz2tg==", + "version": "3.5.20", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.20.tgz", + "integrity": "sha512-2sBz0x/wis5TkF1XZ2vH25zWq3G1bFEPOfkBcx2ikowmphoQsPH6X0V3mmPCXA2K1N/XGTnifVyDQP4GfDDeQw==", "dev": true, "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.5.19", - "@vue/compiler-sfc": "3.5.19", - "@vue/runtime-dom": "3.5.19", - "@vue/server-renderer": "3.5.19", - "@vue/shared": "3.5.19" + "@vue/compiler-dom": "3.5.20", + "@vue/compiler-sfc": "3.5.20", + "@vue/runtime-dom": "3.5.20", + "@vue/server-renderer": "3.5.20", + "@vue/shared": "3.5.20" }, "peerDependencies": { "typescript": "*" From dc856457cd2af6ea10b57844ef10005937b5d3a5 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Tue, 26 Aug 2025 14:17:55 +0200 Subject: [PATCH 263/697] refactor(core): enable TypeScript support for i18n --- src/@types/i18next.d.ts | 15 ++++++ src/core/components/PolarMap.ce.vue | 18 +++++-- src/core/components/PolarMapOverlay.ce.vue | 2 +- src/core/locales.ts | 51 +++++++++---------- src/core/types/plugin.ts | 30 ++++++++--- src/core/utils/checkServiceAvailability.ts | 13 +++-- src/core/vuePlugins/i18next.ts | 5 +- src/lib/notifyUser.ts | 5 +- .../fullscreen/components/FullscreenUI.ce.vue | 2 +- .../components/FullscreenUI.spec.ts | 3 +- src/plugins/toast/components/ToastUI.ce.vue | 4 +- src/plugins/toast/components/ToastUI.spec.ts | 3 +- src/test/utils/mockI18n.ts | 25 +++++++++ 13 files changed, 119 insertions(+), 57 deletions(-) create mode 100644 src/@types/i18next.d.ts create mode 100644 src/test/utils/mockI18n.ts diff --git a/src/@types/i18next.d.ts b/src/@types/i18next.d.ts new file mode 100644 index 000000000..aa57f6d47 --- /dev/null +++ b/src/@types/i18next.d.ts @@ -0,0 +1,15 @@ +import 'i18next' +import type { resourcesEn as core } from '@/core/locales' +import type { BundledPluginId, BundledPluginLocaleResources } from '@/core' +type CoreId = 'core' + +declare module 'i18next' { + interface CustomTypeOptions { + enableSelector: true + resources: { + [T in CoreId | BundledPluginId]: T extends CoreId + ? typeof core + : BundledPluginLocaleResources + } + } +} diff --git a/src/core/components/PolarMap.ce.vue b/src/core/components/PolarMap.ce.vue index 968da68ba..6acad4049 100644 --- a/src/core/components/PolarMap.ce.vue +++ b/src/core/components/PolarMap.ce.vue @@ -5,7 +5,7 @@ class="polar-map" tabindex="0" role="region" - :aria-label="$t('canvas.label')" + :aria-label="$t(($) => $.canvas.label, { ns: 'core' })" @wheel="wheelEffect" /> @@ -19,6 +19,7 @@ import { storeToRefs } from 'pinia' import { computed, markRaw, onMounted, useTemplateRef, watch } from 'vue' import type { Map } from 'ol' import { easeOut } from 'ol/easing' +import { t } from 'i18next' import { useMainStore } from '../stores/main' import { updateDragAndZoomInteractions } from '../utils/map/updateDragAndZoomInteractions' @@ -101,12 +102,18 @@ watch(center, (center) => { const isMacOS = navigator.userAgent.indexOf('Mac') !== -1 function wheelEffect(event: WheelEvent) { - if (hasWindowSize.value) return + if (hasWindowSize.value || !overlay.value) return const condition = computed(() => !hasWindowSize.value) if (isMacOS && !event.metaKey) { - overlay.value?.show('overlay.noCommandOnZoom', condition) + overlay.value.show( + t(($) => $.overlay.noCommandOnZoom, { ns: 'core' }), + condition + ) } else if (!isMacOS && !event.ctrlKey) { - overlay.value?.show('overlay.noControlOnZoom', condition) + overlay.value.show( + t(($) => $.overlay.noControlOnZoom, { ns: 'core' }), + condition + ) } } @@ -138,6 +145,7 @@ function updateListeners() { ) { new Hammer(polarMapContainer.value).on('pan', (e) => { if ( + overlay.value && e.maxPointers === 1 && map && map @@ -145,7 +153,7 @@ function updateListeners() { .getArray() .some((interaction) => interaction.get('_isPolarDragLikeInteraction')) ) { - overlay.value?.show('overlay.oneFingerPan') + overlay.value.show(t(($) => $.overlay.oneFingerPan, { ns: 'core' })) } }) } diff --git a/src/core/components/PolarMapOverlay.ce.vue b/src/core/components/PolarMapOverlay.ce.vue index 0d89794dc..b0f78b0d6 100644 --- a/src/core/components/PolarMapOverlay.ce.vue +++ b/src/core/components/PolarMapOverlay.ce.vue @@ -1,7 +1,7 @@ diff --git a/src/core/locales.ts b/src/core/locales.ts index 877152084..4855188f7 100644 --- a/src/core/locales.ts +++ b/src/core/locales.ts @@ -14,21 +14,18 @@ import type { Locale } from './types' * For overwriting these values, pass a partial object of this in `locales`. */ export const resourcesDe = { - core: { - canvas: { - label: 'Kartenanwendung', - }, - error: { - serviceUnavailable: - 'Der Kartendienst "{{serviceName}}" (ID: {{serviceId}}) ist derzeit nicht verfügbar. Dies kann die Funktionalität der Karte einschränken.', - }, - overlay: { - noControlOnZoom: 'Verwenden Sie Strg+Scrollen zum Zoomen der Karte', - noCommandOnZoom: - 'Verwenden Sie Command ⌘ + Scrollen zum Zoomen der Karte', - oneFingerPan: - 'Verwenden Sie mindestens zwei Finger zum Verschieben der Karte', - }, + canvas: { + label: 'Kartenanwendung', + }, + error: { + serviceUnavailable: + 'Der Kartendienst "{{serviceName}}" (ID: {{serviceId}}) ist derzeit nicht verfügbar. Dies kann die Funktionalität der Karte einschränken.', + }, + overlay: { + noControlOnZoom: 'Verwenden Sie Strg+Scrollen zum Zoomen der Karte', + noCommandOnZoom: 'Verwenden Sie Command ⌘ + Scrollen zum Zoomen der Karte', + oneFingerPan: + 'Verwenden Sie mindestens zwei Finger zum Verschieben der Karte', }, } as const @@ -37,19 +34,17 @@ export const resourcesDe = { * For overwriting these values, pass a partial object of this in `locales`. */ export const resourcesEn = { - core: { - canvas: { - label: 'Map application', - }, - error: { - serviceUnavailable: - 'Service "{{serviceName}}" (ID: {{serviceId}}) is unavailable. This may limit the map\'s functionality.', - }, - overlay: { - noControlOnZoom: 'Use Ctrl+Mousewheel to zoom into the map', - noCommandOnZoom: 'Use Command ⌘ + Mousewheel to zoom into the map', - oneFingerPan: 'Use at least two fingers to pan the map', - }, + canvas: { + label: 'Map application', + }, + error: { + serviceUnavailable: + 'Service "{{serviceName}}" (ID: {{serviceId}}) is unavailable. This may limit the map\'s functionality.', + }, + overlay: { + noControlOnZoom: 'Use Ctrl+Mousewheel to zoom into the map', + noCommandOnZoom: 'Use Command ⌘ + Mousewheel to zoom into the map', + oneFingerPan: 'Use at least two fingers to pan the map', }, } as const diff --git a/src/core/types/plugin.ts b/src/core/types/plugin.ts index 07fbd05d3..c9b81e8ad 100644 --- a/src/core/types/plugin.ts +++ b/src/core/types/plugin.ts @@ -5,12 +5,15 @@ import type { Locale } from './main' import type { PluginId as FullscreenPluginId } from '@/plugins/fullscreen' import type { useFullscreenStore as FullscreenStore } from '@/plugins/fullscreen/store' +import type { resourcesEn as FullscreenResources } from '@/plugins/fullscreen/locales' import type { PluginId as IconMenuPluginId } from '@/plugins/iconMenu' -import { useIconMenuStore as IconMenuStore } from '@/plugins/iconMenu/store' +import type { useIconMenuStore as IconMenuStore } from '@/plugins/iconMenu/store' +import type { resourcesEn as IconMenuResources } from '@/plugins/iconMenu/locales' -import { PluginId as ToastPluginId } from '@/plugins/toast' -import { useToastStore as ToastStore } from '@/plugins/toast/store' +import type { PluginId as ToastPluginId } from '@/plugins/toast' +import type { useToastStore as ToastStore } from '@/plugins/toast/store' +import type { resourcesEn as ToastResources } from '@/plugins/toast/locales' export interface PluginOptions { displayComponent?: boolean @@ -31,16 +34,29 @@ export type BundledPluginId = | typeof IconMenuPluginId | typeof ToastPluginId -type CheckPlugin< +type GetPluginStore< T extends BundledPluginId, I extends BundledPluginId, S extends PolarPluginStore, > = T extends I ? S : never +/** @internal */ export type BundledPluginStores = - | CheckPlugin - | CheckPlugin - | CheckPlugin + | GetPluginStore + | GetPluginStore + | GetPluginStore + +type GetPluginResources< + T extends BundledPluginId, + I extends BundledPluginId, + S extends Locale['resources'], +> = T extends I ? S : never + +/** @internal */ +export type BundledPluginLocaleResources = + | GetPluginResources + | GetPluginResources + | GetPluginResources /** @internal */ export type ExternalPluginId = `external-${string}` diff --git a/src/core/utils/checkServiceAvailability.ts b/src/core/utils/checkServiceAvailability.ts index 236b4b5e9..77a2e8c31 100644 --- a/src/core/utils/checkServiceAvailability.ts +++ b/src/core/utils/checkServiceAvailability.ts @@ -1,4 +1,5 @@ import { ping } from '@masterportal/masterportalapi' +import { t } from 'i18next' import type { MapConfiguration, ServiceAvailabilityCheck } from '../types' import { notifyUser } from '@/lib/notifyUser' @@ -35,10 +36,14 @@ export function checkServiceAvailability( ping .then((statusCode) => { if (statusCode !== 200) { - notifyUser('warning', 'error.serviceUnavailable', { - serviceId, - serviceName, - }) + notifyUser( + 'warning', + t(($) => $.error.serviceUnavailable, { + ns: 'core', + serviceId, + serviceName, + }) + ) // always print status code for debugging purposes console.error(`Ping to "${serviceId}" returned "${statusCode}".`) diff --git a/src/core/vuePlugins/i18next.ts b/src/core/vuePlugins/i18next.ts index 4c041efb6..d737f407e 100644 --- a/src/core/vuePlugins/i18next.ts +++ b/src/core/vuePlugins/i18next.ts @@ -21,7 +21,9 @@ export const I18Next: Plugin = { const overrideResources = localeOption?.resources || {} return { type: locale.type, - resources: toMerged(locale.resources, overrideResources), + resources: { + core: toMerged(locale.resources, overrideResources), + }, } }) : locales @@ -43,7 +45,6 @@ export const I18Next: Plugin = { }, load: 'languageOnly', fallbackLng: supportedLngs[0], - fallbackNS: 'core', ns: ['core'], supportedLngs, ...(options?.initialLanguage ? { lng: options.initialLanguage } : {}), diff --git a/src/lib/notifyUser.ts b/src/lib/notifyUser.ts index 38177f5a4..a92e901b0 100644 --- a/src/lib/notifyUser.ts +++ b/src/lib/notifyUser.ts @@ -1,14 +1,11 @@ -import i18next, { type TOptions } from 'i18next' import { useCoreStore } from '@/core/stores/export' export function notifyUser( severity: 'error' | 'warning' | 'info' | 'success', - translationKey: string, - translationContext?: TOptions + text: string ) { const coreStore = useCoreStore() const toastStore = coreStore.getPluginStore('toast') if (!toastStore) return - const text = i18next.t(translationKey, translationContext) toastStore.addToast({ severity, text }) } diff --git a/src/plugins/fullscreen/components/FullscreenUI.ce.vue b/src/plugins/fullscreen/components/FullscreenUI.ce.vue index 416fc3fa8..a7b449ba1 100644 --- a/src/plugins/fullscreen/components/FullscreenUI.ce.vue +++ b/src/plugins/fullscreen/components/FullscreenUI.ce.vue @@ -13,7 +13,7 @@ aria-hidden="true" /> {{ - $t('button.label', { + $t(($) => $.button.label, { ns: PluginId, context: fullscreenEnabled ? 'off' : 'on', }) diff --git a/src/plugins/fullscreen/components/FullscreenUI.spec.ts b/src/plugins/fullscreen/components/FullscreenUI.spec.ts index c0e6d2f8b..7803925d0 100644 --- a/src/plugins/fullscreen/components/FullscreenUI.spec.ts +++ b/src/plugins/fullscreen/components/FullscreenUI.spec.ts @@ -5,6 +5,7 @@ import { nextTick } from 'vue' import { useFullscreenStore } from '../store' import { PluginId } from '../types' import FullscreenUI from './FullscreenUI.ce.vue' +import { mockedT } from '@/test/utils/mockI18n' /* eslint-disable no-empty-pattern */ const test = _test.extend<{ @@ -16,7 +17,7 @@ const test = _test.extend<{ global: { plugins: [createTestingPinia({ createSpy: vi.fn })], mocks: { - $t: (key, { ns, context }) => `$t(${ns}:${key}_${context})`, + $t: mockedT, }, }, }) diff --git a/src/plugins/toast/components/ToastUI.ce.vue b/src/plugins/toast/components/ToastUI.ce.vue index cf1625311..dcfe2c999 100644 --- a/src/plugins/toast/components/ToastUI.ce.vue +++ b/src/plugins/toast/components/ToastUI.ce.vue @@ -18,9 +18,7 @@ diff --git a/src/plugins/toast/components/ToastUI.spec.ts b/src/plugins/toast/components/ToastUI.spec.ts index fc3d3163e..0da67f6c1 100644 --- a/src/plugins/toast/components/ToastUI.spec.ts +++ b/src/plugins/toast/components/ToastUI.spec.ts @@ -4,6 +4,7 @@ import { createTestingPinia } from '@pinia/testing' import { nextTick } from 'vue' import { useToastStore } from '../store' import ToastUI from './ToastUI.ce.vue' +import { mockedT } from '@/test/utils/mockI18n' /* eslint-disable no-empty-pattern */ const test = _test.extend<{ @@ -15,7 +16,7 @@ const test = _test.extend<{ global: { plugins: [createTestingPinia({ createSpy: vi.fn })], mocks: { - $t: (key, { ns, context }) => `$t(${ns}:${key}_${context})`, + $t: mockedT, }, }, }) diff --git a/src/test/utils/mockI18n.ts b/src/test/utils/mockI18n.ts new file mode 100644 index 000000000..5b6f5150b --- /dev/null +++ b/src/test/utils/mockI18n.ts @@ -0,0 +1,25 @@ +import type { ResourceKey } from 'i18next' + +type MockedSelectorFn = ($: Record) => string + +export function mockedT( + keyFn: MockedSelectorFn, + options: { + ns: string + context?: string + } +) { + const target = { + keys: [] as string[], + } + const proxy = new Proxy(target, { + get(target, prop) { + if (prop === Symbol.toPrimitive) { + return () => target.keys.join('.') + } + target.keys.push(prop.toString()) + return proxy + }, + }) + return `$t(${options.ns}:${keyFn(proxy)}${options.context ? `_${options.context}` : ''})` +} From 0c5d11b4773a7b4389f7b45eb172eec23230906f Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Tue, 26 Aug 2025 15:24:21 +0200 Subject: [PATCH 264/697] refactor(core): configuration-agnostic i18n plugin --- src/@types/i18next.d.ts | 6 +-- src/core/components/PolarContainer.ce.vue | 20 ++++++++ src/core/index.ts | 5 +- src/core/vuePlugins/i18next.ts | 61 ++++++----------------- 4 files changed, 39 insertions(+), 53 deletions(-) diff --git a/src/@types/i18next.d.ts b/src/@types/i18next.d.ts index aa57f6d47..25a0a23c5 100644 --- a/src/@types/i18next.d.ts +++ b/src/@types/i18next.d.ts @@ -1,13 +1,13 @@ import 'i18next' -import type { resourcesEn as core } from '@/core/locales' import type { BundledPluginId, BundledPluginLocaleResources } from '@/core' -type CoreId = 'core' +import type { resourcesEn as core } from '@/core/locales' +import type { CoreId } from '@/core/vuePlugins/i18next' declare module 'i18next' { interface CustomTypeOptions { enableSelector: true resources: { - [T in CoreId | BundledPluginId]: T extends CoreId + [T in typeof CoreId | BundledPluginId]: T extends typeof CoreId ? typeof core : BundledPluginLocaleResources } diff --git a/src/core/components/PolarContainer.ce.vue b/src/core/components/PolarContainer.ce.vue index 870fb5a05..96eadd2f2 100644 --- a/src/core/components/PolarContainer.ce.vue +++ b/src/core/components/PolarContainer.ce.vue @@ -14,6 +14,7 @@ import { useShadowRoot, useTemplateRef, } from 'vue' +import i18next from 'i18next' import { useMainStore } from '../stores/main' import { loadKern } from '../utils/loadKern' import PolarMap from './PolarMap.ce.vue' @@ -26,6 +27,25 @@ defineOptions({ const mainStore = useMainStore() const { language } = storeToRefs(mainStore) +if (mainStore.configuration.locales) { + mainStore.configuration.locales.forEach((locale) => { + Object.entries(locale.resources).forEach(([ns, resources]) => { + i18next.addResourceBundle(locale.type, ns, resources, true, true) + }) + }) +} +if (mainStore.configuration.language) { + i18next + .changeLanguage(mainStore.configuration.language) + .catch((error: unknown) => { + console.error('Failed to set initial language:', error) + }) +} +mainStore.language = i18next.language +i18next.on('languageChanged', (newLanguage) => { + mainStore.language = newLanguage +}) + const polarWrapper = useTemplateRef('polar-wrapper') let resizeObserver: ResizeObserver | null = null diff --git a/src/core/index.ts b/src/core/index.ts index 903bddbc7..23afaa74d 100644 --- a/src/core/index.ts +++ b/src/core/index.ts @@ -154,10 +154,7 @@ export function createMap( const PolarMap = defineCustomElement(PolarContainer, { configureApp(app) { app.use(Pinia) - app.use(I18Next, { - initialLanguage: mapConfiguration.language, - locales: mapConfiguration.locales, - }) + app.use(I18Next) const coreStore = useMainStore() diff --git a/src/core/vuePlugins/i18next.ts b/src/core/vuePlugins/i18next.ts index d737f407e..54bb1fcc2 100644 --- a/src/core/vuePlugins/i18next.ts +++ b/src/core/vuePlugins/i18next.ts @@ -1,66 +1,35 @@ -import { toMerged } from 'es-toolkit' import i18next from 'i18next' import LanguageDetector from 'i18next-browser-languagedetector' import I18NextVue from 'i18next-vue' import type { Plugin } from 'vue' import locales from '../locales' -import type { Locale } from '../types' -import { useMainStore } from '../stores/main' + +export const CoreId = 'core' export const I18Next: Plugin = { - async install( - app, - options?: { initialLanguage?: string; locales?: Locale[] } - ) { + async install(app) { app.use(I18NextVue, { i18next }) - const localeOptions = options?.locales - const configuredLocales = Array.isArray(localeOptions) - ? locales.map((locale) => { - const localeOption = localeOptions.find((l) => l.type === locale.type) - const overrideResources = localeOption?.resources || {} - return { - type: locale.type, - resources: { - core: toMerged(locale.resources, overrideResources), - }, - } - }) - : locales - const supportedLngs: string[] = configuredLocales.map(({ type }) => type) - i18next.use(LanguageDetector) - await i18next - .init({ - resources: configuredLocales.reduce( - (accumulator, { type, resources }) => { - accumulator[type] = resources - return accumulator - }, - {} + try { + await i18next.init({ + resources: Object.fromEntries( + locales.map(({ type, resources }) => [type, { core: resources }]) ), detection: { lookupQuerystring: 'lng', order: ['querystring', 'navigator', 'htmlTag'], }, load: 'languageOnly', - fallbackLng: supportedLngs[0], - ns: ['core'], - supportedLngs, - ...(options?.initialLanguage ? { lng: options.initialLanguage } : {}), - }) - .then(() => { - // eslint-disable-next-line no-console - console.info(`i18next: Successfully initialized.`) - }) - .catch((error: unknown) => { - console.error('i18next: Error while initializing.', error) + fallbackLng: locales[0]?.type, + ns: [CoreId], + supportedLngs: locales.map(({ type }) => type), }) - const mainStore = useMainStore() - mainStore.language = i18next.language - i18next.on('languageChanged', (newLanguage) => { - mainStore.language = newLanguage - }) + // eslint-disable-next-line no-console + console.info(`Successfully initialized i18next.`) + } catch (error: unknown) { + console.error('Error while initializing:', error) + } }, } From 55eec5b052663e69fc2e3d4e29e540d2c2d80d51 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Tue, 26 Aug 2025 15:40:04 +0200 Subject: [PATCH 265/697] refactor(core): use precise type for locale overrides --- src/@types/i18next.d.ts | 10 ++-------- src/core/types.ts | 2 ++ src/core/types/locales.ts | 36 ++++++++++++++++++++++++++++++++++++ src/core/types/main.ts | 37 ++++++------------------------------- src/core/types/utils.ts | 8 ++++++++ 5 files changed, 54 insertions(+), 39 deletions(-) create mode 100644 src/core/types/locales.ts create mode 100644 src/core/types/utils.ts diff --git a/src/@types/i18next.d.ts b/src/@types/i18next.d.ts index 25a0a23c5..b00895864 100644 --- a/src/@types/i18next.d.ts +++ b/src/@types/i18next.d.ts @@ -1,15 +1,9 @@ import 'i18next' -import type { BundledPluginId, BundledPluginLocaleResources } from '@/core' -import type { resourcesEn as core } from '@/core/locales' -import type { CoreId } from '@/core/vuePlugins/i18next' +import type { LocaleResources } from '@/core' declare module 'i18next' { interface CustomTypeOptions { enableSelector: true - resources: { - [T in typeof CoreId | BundledPluginId]: T extends typeof CoreId - ? typeof core - : BundledPluginLocaleResources - } + resources: LocaleResources } } diff --git a/src/core/types.ts b/src/core/types.ts index 626c92ddc..666f03e85 100644 --- a/src/core/types.ts +++ b/src/core/types.ts @@ -1,5 +1,7 @@ +export * from './types/utils' export * from './types/marker' export * from './types/plugin' export * from './types/layer' export * from './types/theme' +export * from './types/locales' export * from './types/main' diff --git a/src/core/types/locales.ts b/src/core/types/locales.ts new file mode 100644 index 000000000..e72db6642 --- /dev/null +++ b/src/core/types/locales.ts @@ -0,0 +1,36 @@ +import type { ResourceKey } from 'i18next' +import type { BundledPluginId, BundledPluginLocaleResources } from '@/core' +import type { resourcesEn as core } from '@/core/locales' +import type { CoreId } from '@/core/vuePlugins/i18next' + +/** @internal */ +export interface Locale { + resources: Record + type: string +} + +/** @internal */ +export type LocaleResources = { + [T in typeof CoreId | BundledPluginId]: T extends BundledPluginId + ? BundledPluginLocaleResources + : typeof core +} + +type ToLocaleOverride = T extends string + ? string + : { [P in keyof T]?: ToLocaleOverride } + +/** + * Overrides for the built-in translations. + */ +export interface LocaleOverride { + /** + * Locale resources to override in the given language. + */ + resources: ToLocaleOverride + + /** + * Language key as described in the i18next documentation. + */ + type: string +} diff --git a/src/core/types/main.ts b/src/core/types/main.ts index f280e9d57..6e37011b1 100644 --- a/src/core/types/main.ts +++ b/src/core/types/main.ts @@ -1,38 +1,17 @@ -import type { ResourceKey } from 'i18next' import type { VueElement } from 'vue' import type { MarkerConfiguration } from './marker' import type { LayerConfiguration } from './layer' import type { PolarTheme } from './theme' +import type { LocaleOverride } from './locales' import type { FullscreenPluginOptions } from '@/plugins/fullscreen' import type { ToastPluginOptions } from '@/plugins/toast' -/** - * Copied from https://stackoverflow.com/a/54178819.# - * - * Makes the properties defined by type `K` optional in type `T`. - * - * @example `PartialBy` - */ -export type PartialBy = Omit & Partial> - -export interface Locale { - resources: Record - /** Language key as described in the i18next documentation */ - type: string -} - export interface ServiceAvailabilityCheck { ping: Promise serviceId: string serviceName: string } -/** - * - * Map-Config - * - */ - export type InitialLanguage = 'de' | 'en' export interface PolarMapOptions { @@ -209,20 +188,16 @@ export interface MapConfiguration extends MasterportalApiConfiguration { * { * type: 'de', * resources: { - * plugins: { - * layerChooser: { - * maskTitle: 'Bahnstrecken', - * }, + * layerChooser: { + * maskTitle: 'Bahnstrecken', * }, * }, * }, * { * type: 'en', * resources: { - * plugins: { - * layerChooser: { - * maskTitle: 'Railway lines', - * }, + * layerChooser: { + * maskTitle: 'Railway lines', * }, * }, * }, @@ -233,7 +208,7 @@ export interface MapConfiguration extends MasterportalApiConfiguration { * When reading the locale tables, please mind that the dot notation (`a.b.c | value`) has to be written as separate * keys in nested objects as seen in the example above (`{a: {b: {c: "value"}}}`). */ - locales?: Locale[] + locales?: LocaleOverride[] /** * If set, all configured visible vector layers' features can be hovered and selected by mouseover and click respectively. * They are available as features in the store. Layers with `clusterDistance` will be clustered to a multi-marker diff --git a/src/core/types/utils.ts b/src/core/types/utils.ts new file mode 100644 index 000000000..19c71ffb7 --- /dev/null +++ b/src/core/types/utils.ts @@ -0,0 +1,8 @@ +/** + * Copied from https://stackoverflow.com/a/54178819.# + * + * Makes the properties defined by type `K` optional in type `T`. + * + * @example `PartialBy` + */ +export type PartialBy = Omit & Partial> From 0feceae23e364831b623ffd10214224ccedbcb4e Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Tue, 26 Aug 2025 16:35:25 +0200 Subject: [PATCH 266/697] Move hint computation to NineRegionsMenu --- src/plugins/iconMenu/components/NineRegionsButton.ce.vue | 6 ++---- src/plugins/iconMenu/components/NineRegionsMenu.ce.vue | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/plugins/iconMenu/components/NineRegionsButton.ce.vue b/src/plugins/iconMenu/components/NineRegionsButton.ce.vue index 7e9b83d73..7c66fa47c 100644 --- a/src/plugins/iconMenu/components/NineRegionsButton.ce.vue +++ b/src/plugins/iconMenu/components/NineRegionsButton.ce.vue @@ -11,7 +11,7 @@ - + + + +

POLAR map client

+ +
+ Coordinates of currently selected feature: +
+

Demo application ("Snowbox")

+
+
+

Second map

+ + +
+ - #language-switcher { - outline: solid black; - } - - - -

POLAR map client

- -
- Coordinates of currently selected feature: -
-

Demo application ("Snowbox")

- -
-

Second map

- - -
- - + \ No newline at end of file diff --git a/examples/snowbox/index.js b/examples/snowbox/index.js index 259187607..9ef03f44c 100644 --- a/examples/snowbox/index.js +++ b/examples/snowbox/index.js @@ -1,8 +1,7 @@ import { changeLanguage } from 'i18next' import pluginToast from '@polar/polar/plugins/toast' -import { useToastStore } from '@polar/polar/plugins/toast/store' import pluginFullscreen from '@polar/polar/plugins/fullscreen' -import { addPlugin, createMap, subscribe } from '@polar/polar' +import { addPlugin, createMap, subscribe, register } from '@polar/polar' import styleJsonUrl from './style.json?url' const basemapId = '23420' @@ -56,7 +55,8 @@ const isReportSelectable = (feature) => ) */ -await createMap( +await register() +const map = await createMap( { layers: [ { @@ -131,44 +131,53 @@ await createMap( }, 'https://geodienste.hamburg.de/services-internet.json' ) +map.id = 'snowbox' +map.classList.add('snowbox') +document.getElementById('snowbox').replaceWith(map) -await createMap( - { - layers: [ - { - id: basemapId, - visibility: true, - type: 'background', - name: 'snowbox.layers.basemap', - }, - ], - }, - 'https://geodienste.hamburg.de/services-internet.json', - 'dataport-map' -) - -document.getElementById('secondMap').addEventListener('click', () => { - const secondMap = document.createElement('dataport-map') +document.getElementById('secondMap').addEventListener('click', async () => { + const secondMap = await createMap( + { + layers: [ + { + id: basemapId, + visibility: true, + type: 'background', + name: 'snowbox.layers.basemap', + }, + ], + }, + 'https://geodienste.hamburg.de/services-internet.json', + 'dataport-map' + ) secondMap.classList.add('snowbox') document.getElementById('secondMapContainer').appendChild(secondMap) + addPlugin( + secondMap, + pluginFullscreen({ + layoutTag: 'TOP_RIGHT', + }) + ) }) document.getElementById('secondMapClean').addEventListener('click', () => { document.getElementById('secondMapContainer').innerText = '' }) addPlugin( + map, pluginFullscreen({ layoutTag: 'TOP_RIGHT', }) ) addPlugin( + map, pluginToast({ layoutTag: 'BOTTOM_MIDDLE', }) ) -const toastStore = useToastStore() +const toastStore = map.store.getPluginStore('toast') toastStore.addToast({ text: 'Hallo Welt', severity: 'info', diff --git a/src/core/components/PolarContainer.ce.vue b/src/core/components/PolarContainer.ce.vue index 96eadd2f2..edfe74e15 100644 --- a/src/core/components/PolarContainer.ce.vue +++ b/src/core/components/PolarContainer.ce.vue @@ -17,16 +17,37 @@ import { import i18next from 'i18next' import { useMainStore } from '../stores/main' import { loadKern } from '../utils/loadKern' -import PolarMap from './PolarMap.ce.vue' +import { mapZoomOffset } from '../utils/mapZoomOffset' +import defaults from '../utils/defaults' +import type { MapConfiguration } from '../types' +import { useCoreStore } from '../stores/export' import PolarUI from './PolarUI.ce.vue' +import PolarMap from './PolarMap.ce.vue' defineOptions({ inheritAttrs: false, }) +const props = defineProps<{ + mapConfiguration: MapConfiguration + serviceRegister: string | Record[] +}>() + const mainStore = useMainStore() const { language } = storeToRefs(mainStore) +// TODO: Allow live-updates of configuration, if possible +mainStore.configuration = mapZoomOffset({ + ...defaults, + ...props.mapConfiguration, +}) +mainStore.serviceRegister = props.serviceRegister + +if (mainStore.configuration.oidcToken) { + // copied to a separate spot for usage as it's changeable data at run-time + mainStore.oidcToken = mainStore.configuration.oidcToken +} + if (mainStore.configuration.locales) { mainStore.configuration.locales.forEach((locale) => { Object.entries(locale.resources).forEach(([ns, resources]) => { @@ -69,6 +90,9 @@ onMounted(() => { resizeObserver = new ResizeObserver(updateClientDimensions) resizeObserver.observe(polarWrapper.value as Element) updateClientDimensions() + + // FIXME: Improve types for lightElement + ;(mainStore.lightElement as { store?: unknown }).store = useCoreStore() }) onBeforeUnmount(() => { diff --git a/src/core/components/layouts/NineLayout.ce.vue b/src/core/components/layouts/NineLayout.ce.vue index cd30e38e2..36a3ca361 100644 --- a/src/core/components/layouts/NineLayout.ce.vue +++ b/src/core/components/layouts/NineLayout.ce.vue @@ -16,7 +16,8 @@ diff --git a/src/core/index.ts b/src/core/index.ts index 23afaa74d..fe2ee467e 100644 --- a/src/core/index.ts +++ b/src/core/index.ts @@ -10,28 +10,30 @@ /* eslint-enable tsdoc/syntax */ import '@kern-ux/native/dist/fonts/fira-sans.css' -import { toMerged } from 'es-toolkit' -import i18next from 'i18next' import { storeToRefs } from 'pinia' -import { defineCustomElement, markRaw, watch, type WatchOptions } from 'vue' +import { defineCustomElement, watch, type WatchOptions } from 'vue' import PolarContainer from './components/PolarContainer.ce.vue' import { I18Next } from './vuePlugins/i18next' import { Pinia } from './vuePlugins/pinia' -import type { MapConfiguration, PluginContainer, PluginOptions } from './types' +import type { MapConfiguration, PluginContainer } from './types' import { useMainStore } from './stores/main' import { useMarkerStore } from './stores/marker' -import defaults from './utils/defaults' -import { mapZoomOffset } from './utils/mapZoomOffset' import './monkeyHeaderLoader' /** * Calls `addPlugin` for each plugin in the array. * + * @param map - Map to add the plugin to. * @param plugins - Plugins to be added. */ -export function addPlugins(plugins: PluginContainer[]) { - plugins.forEach(addPlugin) +export function addPlugins( + map: typeof PolarContainer, + plugins: PluginContainer[] +) { + plugins.forEach((plugin) => { + addPlugin(map, plugin) + }) } /** @@ -64,60 +66,26 @@ export function addPlugins(plugins: PluginContainer[]) { * }) * ``` * + * @param map - Map to add the plugin to. * @param plugin - Plugin to be added. */ -export function addPlugin(plugin: PluginContainer) { - const { id, locales, options, storeModule } = plugin - const coreStore = useMainStore() - - const pluginConfiguration = toMerged( - options || {}, - (coreStore.configuration[id] || {}) as PluginOptions - ) - /* configuration merge – "options" are from client-code, "configuration" - * is from mapConfiguration object and thus overrides */ - coreStore.configuration = { - ...coreStore.configuration, - [id]: pluginConfiguration, - } - - const store = storeModule?.() - if (store && typeof store.setupPlugin === 'function') { - store.setupPlugin() - } - - if (locales) { - // NOTE: If somehow needed later, add the namespace to the Locale as well - locales.forEach((lng) => { - i18next.addResourceBundle(lng.type, id, lng.resources, true) - }) - } +export function addPlugin(map: typeof PolarContainer, plugin: PluginContainer) { + map.store.addPlugin(plugin) +} - coreStore.plugins = [ - ...coreStore.plugins, - { - ...plugin, - ...(plugin.component ? { component: markRaw(plugin.component) } : {}), - }, - ] +export function removePlugin(map: typeof PolarContainer, pluginId: string) { + map.store.removePlugin(pluginId) } -export function removePlugin(pluginId: string) { - const coreStore = useMainStore() - const plugin = coreStore.plugins.find(({ id }) => id === pluginId) +export const PolarMap = defineCustomElement(PolarContainer, { + configureApp(app) { + app.use(Pinia) + app.use(I18Next) + }, +}) - if (!plugin) { - console.error(`Plugin "${pluginId}" not found.`) - return - } - const store = plugin.storeModule?.() - if (store) { - if (typeof store.teardownPlugin === 'function') { - store.teardownPlugin() - } - store.$reset() - } - coreStore.plugins = coreStore.plugins.filter(({ id }) => id !== pluginId) +export function register() { + customElements.define('polar-map', PolarMap) } /** @@ -144,36 +112,16 @@ export function removePlugin(pluginId: string) { * Full documentation regarding the configuration can be read [here](https://bitbucket.org/geowerkstatt-hamburg/masterportal/src/dev/doc/services.json.md). * However, not all listed services have been implemented in the `@masterportal/masterportalapi` yet, * and no documentation regarding implemented properties exists there yet. - * @param tagName - Tag name for the custom element. */ export function createMap( mapConfiguration: MapConfiguration, - serviceRegister: string | Record[], - tagName = 'polar-map' + serviceRegister: string | Record[] ) { - const PolarMap = defineCustomElement(PolarContainer, { - configureApp(app) { - app.use(Pinia) - app.use(I18Next) - - const coreStore = useMainStore() - - // TODO(oeninghe-dataport): Pass configuration as CE properties. - // createMap may survive as a convenience wrapper. - coreStore.configuration = mapZoomOffset({ - ...defaults, - ...mapConfiguration, - }) - coreStore.serviceRegister = serviceRegister - - if (coreStore.configuration.oidcToken) { - // copied to a separate spot for usage as it's changeable data at run-time - coreStore.oidcToken = coreStore.configuration.oidcToken - } - }, - }) - - customElements.define(tagName, PolarMap) + // @ts-expect-error | We trust that the element is registered + const map = document.createElement('polar-map') as typeof PolarContainer + map.mapConfiguration = mapConfiguration + map.serviceRegister = serviceRegister + return map } export type SubscribeCallback = (value: unknown, oldValue: unknown) => void diff --git a/src/core/stores/export.ts b/src/core/stores/export.ts index 843c791ac..babed8753 100644 --- a/src/core/stores/export.ts +++ b/src/core/stores/export.ts @@ -6,13 +6,8 @@ import { defineStore } from 'pinia' import { computed } from 'vue' -import type { - PluginId, - BundledPluginId, - BundledPluginStores, - PolarPluginStore, -} from '../types' import { useMainStore } from './main' +import { usePluginStore } from './plugin' /* eslint-disable tsdoc/syntax */ /** @@ -23,18 +18,7 @@ import { useMainStore } from './main' /* eslint-enable tsdoc/syntax */ export const useCoreStore = defineStore('core', () => { const mainStore = useMainStore() - - function getPluginStore( - id: T - ): ReturnType< - T extends BundledPluginId - ? BundledPluginStores - : PolarPluginStore - > | null { - const plugin = mainStore.plugins.find((plugin) => plugin.id === id) - // @ts-expect-error | We trust that our internal IDs work. - return plugin?.storeModule?.() || null - } + const pluginStore = usePluginStore() return { /** @@ -44,6 +28,40 @@ export const useCoreStore = defineStore('core', () => { */ configuration: computed(() => mainStore.configuration), + /** + * Before instantiating the map, all required plugins have to be added. Depending on how you use POLAR, this may + * already have been done. Ready-made clients (that is, packages prefixed `@polar/client-`) come with plugins prepared. + * + * You may add further plugins. + * + * Please note that the order of certain plugins is relevant when other plugins are referenced, + * e.g. `@polar/plugin-gfi`'s `coordinateSources` requires the configured sources to have previously been set up. + * + * In case you're integrating new plugins, call `addPlugin` with a plugin instance. + * + * @example + * ``` + * addPlugin(Plugin(pluginOptions: PluginOptions)) + * ``` + * + * @remarks + * In case you're writing a new plugin, it must fulfill the following API: + * ``` + * const Plugin = (options: PluginOptions): PluginContainer => ({ + * id, + * component, + * locales, + * options, + * storeModule, + * }) + * ``` + * + * @param plugin - Plugin to be added. + */ + addPlugin: pluginStore.addPlugin, + + removePlugin: pluginStore.removePlugin, + /** * Returns a plugin's store by its ID. * @@ -51,7 +69,7 @@ export const useCoreStore = defineStore('core', () => { * * If no plugin with the specified ID is loaded, `null` is returned instead. */ - getPluginStore, + getPluginStore: pluginStore.getPluginStore, /** * Allows reading or setting the OIDC token used for service accesses. diff --git a/src/core/stores/main.ts b/src/core/stores/main.ts index a4b6f1af4..5d7ee11b1 100644 --- a/src/core/stores/main.ts +++ b/src/core/stores/main.ts @@ -3,7 +3,7 @@ import type { Coordinate } from 'ol/coordinate' import type { Point } from 'ol/geom' import { defineStore } from 'pinia' import { computed, ref, watch } from 'vue' -import type { MapConfiguration, PluginContainer } from '../types' +import type { MapConfiguration } from '../types' import { SMALL_DISPLAY_HEIGHT, SMALL_DISPLAY_WIDTH } from '../utils/constants' import { addInterceptor } from '../utils/addInterceptor' @@ -16,7 +16,6 @@ export const useMainStore = defineStore('main', () => { const lightElement = ref(null) const map = ref(null) const mapHasDimensions = ref(false) - const plugins = ref([]) const serviceRegister = ref[]>('') const shadowRoot = ref(null) const zoom = ref(0) @@ -82,7 +81,6 @@ export const useMainStore = defineStore('main', () => { map, mapHasDimensions, oidcToken, - plugins, serviceRegister, shadowRoot, center, diff --git a/src/core/stores/plugin.ts b/src/core/stores/plugin.ts new file mode 100644 index 000000000..3d2751c29 --- /dev/null +++ b/src/core/stores/plugin.ts @@ -0,0 +1,83 @@ +import { defineStore } from 'pinia' +import { markRaw, ref } from 'vue' +import { toMerged } from 'es-toolkit' +import i18next from 'i18next' +import type { + PluginContainer, + PluginId, + BundledPluginId, + BundledPluginStores, + PolarPluginStore, + PluginOptions, +} from '../types' +import { useMainStore } from './main' + +export const usePluginStore = defineStore('plugin', () => { + const plugins = ref([]) + + function addPlugin(plugin: PluginContainer) { + const { id, locales, options, storeModule } = plugin + const mainStore = useMainStore() + + /* configuration merge – "options" are from client-code, "configuration" + * is from mapConfiguration object and thus overrides */ + const pluginConfiguration = toMerged( + options || {}, + (mainStore.configuration[id] || {}) as PluginOptions + ) + mainStore.configuration[id] = pluginConfiguration + + const store = storeModule?.() + if (store && typeof store.setupPlugin === 'function') { + store.setupPlugin() + } + + if (locales) { + locales.forEach((lng) => { + i18next.addResourceBundle(lng.type, id, lng.resources, true) + }) + } + + plugins.value.push({ + ...plugin, + ...(plugin.component ? { component: markRaw(plugin.component) } : {}), + }) + } + + function removePlugin(pluginId: string) { + const plugin = plugins.value.find(({ id }) => id === pluginId) + if (!plugin) { + console.error(`Plugin "${pluginId}" not found.`) + return + } + + const store = plugin.storeModule?.() + if (store) { + if (typeof store.teardownPlugin === 'function') { + store.teardownPlugin() + } + store.$reset() + } + + plugins.value = plugins.value.filter(({ id }) => id !== pluginId) + } + + function getPluginStore( + id: T + ): ReturnType< + T extends BundledPluginId + ? BundledPluginStores + : PolarPluginStore + > | null { + const plugin = plugins.value.find((plugin) => plugin.id === id) + // @ts-expect-error | We trust that our internal IDs work. + return plugin?.storeModule?.() || null + } + + return { + plugins, + addPlugin, + removePlugin, + getPluginStore, + } +}) diff --git a/src/core/types/plugin.ts b/src/core/types/plugin.ts index c9b81e8ad..63b839f18 100644 --- a/src/core/types/plugin.ts +++ b/src/core/types/plugin.ts @@ -1,7 +1,7 @@ import type { SetupStoreDefinition } from 'pinia' import type { Component } from 'vue' import type { NineLayoutTag } from '../utils/NineLayoutTag' -import type { Locale } from './main' +import type { Locale } from './locales' import type { PluginId as FullscreenPluginId } from '@/plugins/fullscreen' import type { useFullscreenStore as FullscreenStore } from '@/plugins/fullscreen/store' diff --git a/src/core/utils/map/setupMarkers.ts b/src/core/utils/map/setupMarkers.ts index 1c274cf82..2076203ea 100644 --- a/src/core/utils/map/setupMarkers.ts +++ b/src/core/utils/map/setupMarkers.ts @@ -7,12 +7,13 @@ import RenderFeature from 'ol/render/Feature' import Cluster from 'ol/source/Cluster' import VectorSource from 'ol/source/Vector' import { watch, markRaw, toRaw } from 'vue' -import type { MarkerLayer, MarkerStyle } from '../../types' +import type { MarkerLayer, MarkerStyle, PluginId } from '../../types' import { getMarkerStyle } from '../../utils/markers' import { useMainStore } from '../../stores/main' import { isVisible } from '@/lib/invisibleStyle' import getCluster from '@/lib/getCluster' import { useMarkerStore } from '@/core/stores/marker' +import { usePluginStore } from '@/core/stores/plugin' // these have been measured to fit once and influence marker size const imgSize: [number, number] = [26, 36] @@ -321,17 +322,11 @@ function mapClick(event: MapBrowserEvent) { return } - const plugin = mainStore.plugins.find(({ id }) => id === pluginName) - if (!plugin) { - console.error( - `Plugin ${pluginName} does not exist or is not configured. Action ${action} could not be called.` - ) - return - } - const pluginStore = plugin.storeModule?.() + const pluginListStore = usePluginStore() + const pluginStore = pluginListStore.getPluginStore(pluginName as PluginId) if (!pluginStore) { console.error( - `Plugin ${pluginName} does not have a store module. Action ${action} could not be called.` + `Plugin ${pluginName} does not exist or is not configured or has no store module. Action ${action} could not be called.` ) return } From 3c7b077751c03977995ca8f0be641e0b812bc5f9 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Thu, 21 Aug 2025 10:06:04 +0200 Subject: [PATCH 268/697] chore(release): version 3.0.0-alpha.0 This version provides `@polar/polar`, which supersedes the packages `@polar/core`, `@polar/lib-X` and `@polar/plugin-X`. The core is already working, but there are still a lot of plugins needing migration. The not-yet-migrated code is left in the `vue2` folder until it's migrated. This version was not heavily tested yet, so use with care and not in production. Starting with the next version, POLAR uses conventional commits for changelog generation. --- package-lock.json | 4 ++-- package.json | 9 ++++----- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2e3c9c883..e93c80672 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@polar/polar", - "version": "0.1.0", + "version": "3.0.0-alpha.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@polar/polar", - "version": "0.1.0", + "version": "3.0.0-alpha.0", "hasInstallScript": true, "license": "EUPL-1.2", "devDependencies": { diff --git a/package.json b/package.json index 55b3229e7..90610f8cc 100644 --- a/package.json +++ b/package.json @@ -1,13 +1,12 @@ { "name": "@polar/polar", - "version": "0.1.0", - "description": "POLAR core package. Provides POLAR environment with store setup, localization, UI framework, and other basics.", + "version": "3.0.0-alpha.0", + "description": "Configurable map client based on OpenLayers", "keywords": [ "OpenLayers", "ol", - "POLAR", - "core", - "base" + "MasterportalAPI", + "POLAR" ], "license": "EUPL-1.2", "type": "module", From a8eebef60964efcad19d11c3dd284a4edc0e0597 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Wed, 20 Aug 2025 15:10:17 +0200 Subject: [PATCH 269/697] chore: introduce commit-msg checks This commit introduces commitlint checks for the commit messages automatically checked via Husky if enabled. To allow users to choose only some of the Husky checks, the configuration options are improved. You may create a `git-hooks.config.json` and use `.husky/defaults.json` as a template. --- .gitignore | 2 + .husky/commit-msg | 15 + .husky/defaults.json | 7 + .husky/pre-commit | 56 +- .husky/prepareConfig.js | 30 + commitlint.config.js | 18 + package-lock.json | 1241 +++++++++++++++++++++++++++++++++++++++ package.json | 4 + 8 files changed, 1364 insertions(+), 9 deletions(-) create mode 100644 .husky/commit-msg create mode 100644 .husky/defaults.json create mode 100644 .husky/prepareConfig.js create mode 100644 commitlint.config.js diff --git a/.gitignore b/.gitignore index 867ce21b0..7fda67b78 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,8 @@ node_modules .eslintcache +git-hooks.config.json + /docs-html .dist.preview .vscode/settings.json diff --git a/.husky/commit-msg b/.husky/commit-msg new file mode 100644 index 000000000..c2e90ef21 --- /dev/null +++ b/.husky/commit-msg @@ -0,0 +1,15 @@ +#!/bin/sh +set -e +eval `node .husky/prepareConfig.js` + +if [ "$POLAR_LINT_COMMIT_MESSAGE" = "yes" ] +then + if ! npx --no -- commitlint --edit $1 + then + echo "Cannot commit: Invalid commit message." >&2 + echo "Please edit your commit message appropriately." >&2 + echo >&2 + echo "If you want to commit anyway, set POLAR_LINT_COMMIT_MESSAGE=no" >&2 + exit 1 + fi +fi diff --git a/.husky/defaults.json b/.husky/defaults.json new file mode 100644 index 000000000..465b4d5af --- /dev/null +++ b/.husky/defaults.json @@ -0,0 +1,7 @@ +{ + "allowDirtyCommit": true, + "lintOnCommit": false, + "typecheckOnCommit": false, + "testOnCommit": false, + "lintCommitMessage": false +} \ No newline at end of file diff --git a/.husky/pre-commit b/.husky/pre-commit index 03e8c3c39..ea71ff200 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,16 +1,54 @@ #!/bin/sh set -e +eval `node .husky/prepareConfig.js` -git rev-parse --verify HEAD >/dev/null || exit 1 -git update-index -q --ignore-submodules --refresh +if [ "$POLAR_ALLOW_DIRTY_COMMIT" = "no" ] +then + git rev-parse --verify HEAD >/dev/null || exit 1 + git update-index -q --ignore-submodules --refresh + + if ! git diff-files --quiet --ignore-submodules + then + echo "Cannot commit: You have unstaged changes." >&2 + echo "Please stage, stash or drop these changes." >&2 + echo >&2 + echo "If you want to commit anyway, set POLAR_ALLOW_DIRTY_COMMIT=yes" >&2 + exit 1 + fi +fi + +if [ "$POLAR_LINT_ON_COMMIT" = "yes" ] +then + if ! npm run lint + then + echo "Cannot commit: Linting failed." >&2 + echo "Please fix the above error(s)." >&2 + echo >&2 + echo "If you want to commit anyway, set POLAR_LINT_ON_COMMIT=no" >&2 + exit 1 + fi +fi -if ! git diff-files --quiet --ignore-submodules +if [ "$POLAR_TYPECHECK_ON_COMMIT" = "yes" ] then - echo "Cannot commit: You have unstaged changes." >&2 - echo "Please stage, stash or drop these changes." >&2 - exit 1 + if ! npm run tsc + then + echo "Cannot commit: Type checking failed." >&2 + echo "Please fix the above error(s)." >&2 + echo >&2 + echo "If you want to commit anyway, set POLAR_TYPECHECK_ON_COMMIT=no" >&2 + exit 1 + fi fi -npm run lint -npm run tsc -npm run test:ci +if [ "$POLAR_TEST_ON_COMMIT" = "yes" ] +then + if ! npm run test:ci + then + echo "Cannot commit: Unit testing failed." >&2 + echo "Please fix the above error(s)." >&2 + echo >&2 + echo "If you want to commit anyway, set POLAR_TEST_ON_COMMIT=no" >&2 + exit 1 + fi +fi diff --git a/.husky/prepareConfig.js b/.husky/prepareConfig.js new file mode 100644 index 000000000..66d67ba78 --- /dev/null +++ b/.husky/prepareConfig.js @@ -0,0 +1,30 @@ +import { readFileSync, existsSync } from 'node:fs' + +let config = JSON.parse(readFileSync('.husky/defaults.json').toString()) +if (existsSync('git-hooks.config.json')) { + config = { + ...config, + ...JSON.parse(readFileSync('git-hooks.config.json').toString()), + } +} + +Object.entries(config).forEach(([key, value]) => { + const formattedKey = + 'POLAR_' + key.replace(/[A-Z]/g, (m) => '_' + m.toLowerCase()).toUpperCase() + if (process.env[formattedKey]) { + const envValue = process.env[formattedKey] + if (['yes', 'YES', 'true', 'TRUE', '1', 'on', 'ON'].includes(envValue)) { + value = true + } else if ( + ['no', 'NO', 'false', 'FALSE', '0', 'off', 'OFF'].includes(envValue) + ) { + value = false + } else { + process.stderr.write( + `Expected either "yes" or "no" for ${formattedKey}, got ${envValue}` + ) + process.exit(1) + } + } + process.stdout.write(`${formattedKey}=${value ? 'yes' : 'no'}\n`) +}) diff --git a/commitlint.config.js b/commitlint.config.js new file mode 100644 index 000000000..7654cbc76 --- /dev/null +++ b/commitlint.config.js @@ -0,0 +1,18 @@ +import { globSync } from 'node:fs' +import { basename } from 'node:path' + +export default { + extends: ['@commitlint/config-conventional'], + rules: { + 'scope-enum': [ + 2, + 'always', + [ + 'arch', + 'release', + 'core', + ...globSync('src/plugins/*/').map((path) => basename(path)), + ], + ], + }, +} diff --git a/package-lock.json b/package-lock.json index e93c80672..d4c430e41 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,8 @@ "license": "EUPL-1.2", "devDependencies": { "@cesium/engine": "^15.0.0", + "@commitlint/cli": "^19.8.1", + "@commitlint/config-conventional": "^19.8.1", "@dataport/eslint-config-geodev": "^0.3.3", "@kern-ux/native": "^2.3.0", "@masterportal/masterportalapi": "2.48.0", @@ -25,6 +27,8 @@ "buffer": "^6.0.3", "cesium": "^1.131.0", "concurrently": "^9.2.0", + "conventional-changelog": "^7.1.1", + "conventional-changelog-conventionalcommits": "^9.1.0", "es-toolkit": "^1.39.8", "eslint": "^9.31.0", "eslint-config-prettier": "^10.1.8", @@ -726,6 +730,465 @@ "quickselect": "^3.0.0" } }, + "node_modules/@commitlint/cli": { + "version": "19.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-19.8.1.tgz", + "integrity": "sha512-LXUdNIkspyxrlV6VDHWBmCZRtkEVRpBKxi2Gtw3J54cGWhLCTouVD/Q6ZSaSvd2YaDObWK8mDjrz3TIKtaQMAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/format": "^19.8.1", + "@commitlint/lint": "^19.8.1", + "@commitlint/load": "^19.8.1", + "@commitlint/read": "^19.8.1", + "@commitlint/types": "^19.8.1", + "tinyexec": "^1.0.0", + "yargs": "^17.0.0" + }, + "bin": { + "commitlint": "cli.js" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/cli/node_modules/tinyexec": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.1.tgz", + "integrity": "sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@commitlint/config-conventional": { + "version": "19.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-19.8.1.tgz", + "integrity": "sha512-/AZHJL6F6B/G959CsMAzrPKKZjeEiAVifRyEwXxcT6qtqbPwGw+iQxmNS+Bu+i09OCtdNRW6pNpBvgPrtMr9EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/types": "^19.8.1", + "conventional-changelog-conventionalcommits": "^7.0.2" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/config-conventional/node_modules/conventional-changelog-conventionalcommits": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-7.0.2.tgz", + "integrity": "sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==", + "dev": true, + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@commitlint/config-validator": { + "version": "19.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-19.8.1.tgz", + "integrity": "sha512-0jvJ4u+eqGPBIzzSdqKNX1rvdbSU1lPNYlfQQRIFnBgLy26BtC0cFnr7c/AyuzExMxWsMOte6MkTi9I3SQ3iGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/types": "^19.8.1", + "ajv": "^8.11.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/config-validator/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@commitlint/config-validator/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/@commitlint/ensure": { + "version": "19.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-19.8.1.tgz", + "integrity": "sha512-mXDnlJdvDzSObafjYrOSvZBwkD01cqB4gbnnFuVyNpGUM5ijwU/r/6uqUmBXAAOKRfyEjpkGVZxaDsCVnHAgyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/types": "^19.8.1", + "lodash.camelcase": "^4.3.0", + "lodash.kebabcase": "^4.1.1", + "lodash.snakecase": "^4.1.1", + "lodash.startcase": "^4.4.0", + "lodash.upperfirst": "^4.3.1" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/execute-rule": { + "version": "19.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-19.8.1.tgz", + "integrity": "sha512-YfJyIqIKWI64Mgvn/sE7FXvVMQER/Cd+s3hZke6cI1xgNT/f6ZAz5heND0QtffH+KbcqAwXDEE1/5niYayYaQA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/format": { + "version": "19.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-19.8.1.tgz", + "integrity": "sha512-kSJj34Rp10ItP+Eh9oCItiuN/HwGQMXBnIRk69jdOwEW9llW9FlyqcWYbHPSGofmjsqeoxa38UaEA5tsbm2JWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/types": "^19.8.1", + "chalk": "^5.3.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/format/node_modules/chalk": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.0.tgz", + "integrity": "sha512-46QrSQFyVSEyYAgQ22hQ+zDa60YHA4fBstHmtSApj1Y5vKtG27fWowW03jCk5KcbXEWPZUIR894aARCA/G1kfQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@commitlint/is-ignored": { + "version": "19.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-19.8.1.tgz", + "integrity": "sha512-AceOhEhekBUQ5dzrVhDDsbMaY5LqtN8s1mqSnT2Kz1ERvVZkNihrs3Sfk1Je/rxRNbXYFzKZSHaPsEJJDJV8dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/types": "^19.8.1", + "semver": "^7.6.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/lint": { + "version": "19.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-19.8.1.tgz", + "integrity": "sha512-52PFbsl+1EvMuokZXLRlOsdcLHf10isTPlWwoY1FQIidTsTvjKXVXYb7AvtpWkDzRO2ZsqIgPK7bI98x8LRUEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/is-ignored": "^19.8.1", + "@commitlint/parse": "^19.8.1", + "@commitlint/rules": "^19.8.1", + "@commitlint/types": "^19.8.1" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/load": { + "version": "19.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-19.8.1.tgz", + "integrity": "sha512-9V99EKG3u7z+FEoe4ikgq7YGRCSukAcvmKQuTtUyiYPnOd9a2/H9Ak1J9nJA1HChRQp9OA/sIKPugGS+FK/k1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/config-validator": "^19.8.1", + "@commitlint/execute-rule": "^19.8.1", + "@commitlint/resolve-extends": "^19.8.1", + "@commitlint/types": "^19.8.1", + "chalk": "^5.3.0", + "cosmiconfig": "^9.0.0", + "cosmiconfig-typescript-loader": "^6.1.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "lodash.uniq": "^4.5.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/load/node_modules/chalk": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.0.tgz", + "integrity": "sha512-46QrSQFyVSEyYAgQ22hQ+zDa60YHA4fBstHmtSApj1Y5vKtG27fWowW03jCk5KcbXEWPZUIR894aARCA/G1kfQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@commitlint/message": { + "version": "19.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-19.8.1.tgz", + "integrity": "sha512-+PMLQvjRXiU+Ae0Wc+p99EoGEutzSXFVwQfa3jRNUZLNW5odZAyseb92OSBTKCu+9gGZiJASt76Cj3dLTtcTdg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/parse": { + "version": "19.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-19.8.1.tgz", + "integrity": "sha512-mmAHYcMBmAgJDKWdkjIGq50X4yB0pSGpxyOODwYmoexxxiUCy5JJT99t1+PEMK7KtsCtzuWYIAXYAiKR+k+/Jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/types": "^19.8.1", + "conventional-changelog-angular": "^7.0.0", + "conventional-commits-parser": "^5.0.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/read": { + "version": "19.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-19.8.1.tgz", + "integrity": "sha512-03Jbjb1MqluaVXKHKRuGhcKWtSgh3Jizqy2lJCRbRrnWpcM06MYm8th59Xcns8EqBYvo0Xqb+2DoZFlga97uXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/top-level": "^19.8.1", + "@commitlint/types": "^19.8.1", + "git-raw-commits": "^4.0.0", + "minimist": "^1.2.8", + "tinyexec": "^1.0.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/read/node_modules/tinyexec": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.1.tgz", + "integrity": "sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@commitlint/resolve-extends": { + "version": "19.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-19.8.1.tgz", + "integrity": "sha512-GM0mAhFk49I+T/5UCYns5ayGStkTt4XFFrjjf0L4S26xoMTSkdCf9ZRO8en1kuopC4isDFuEm7ZOm/WRVeElVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/config-validator": "^19.8.1", + "@commitlint/types": "^19.8.1", + "global-directory": "^4.0.1", + "import-meta-resolve": "^4.0.0", + "lodash.mergewith": "^4.6.2", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/resolve-extends/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@commitlint/rules": { + "version": "19.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-19.8.1.tgz", + "integrity": "sha512-Hnlhd9DyvGiGwjfjfToMi1dsnw1EXKGJNLTcsuGORHz6SS9swRgkBsou33MQ2n51/boIDrbsg4tIBbRpEWK2kw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/ensure": "^19.8.1", + "@commitlint/message": "^19.8.1", + "@commitlint/to-lines": "^19.8.1", + "@commitlint/types": "^19.8.1" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/to-lines": { + "version": "19.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-19.8.1.tgz", + "integrity": "sha512-98Mm5inzbWTKuZQr2aW4SReY6WUukdWXuZhrqf1QdKPZBCCsXuG87c+iP0bwtD6DBnmVVQjgp4whoHRVixyPBg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/top-level": { + "version": "19.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-19.8.1.tgz", + "integrity": "sha512-Ph8IN1IOHPSDhURCSXBz44+CIu+60duFwRsg6HqaISFHQHbmBtxVw4ZrFNIYUzEP7WwrNPxa2/5qJ//NK1FGcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^7.0.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/top-level/node_modules/find-up": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-7.0.0.tgz", + "integrity": "sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^7.2.0", + "path-exists": "^5.0.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@commitlint/top-level/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@commitlint/top-level/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@commitlint/top-level/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@commitlint/top-level/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/@commitlint/top-level/node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@commitlint/top-level/node_modules/yocto-queue": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz", + "integrity": "sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@commitlint/types": { + "version": "19.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-19.8.1.tgz", + "integrity": "sha512-/yCrWGCoA1SVKOks25EGadP9Pnj0oAIHGpl2wH2M2Y46dPM2ueb8wyCVOD7O3WCTkaJ0IkKvzhl1JY7+uCT2Dw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/conventional-commits-parser": "^5.0.0", + "chalk": "^5.3.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/types/node_modules/chalk": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.0.tgz", + "integrity": "sha512-46QrSQFyVSEyYAgQ22hQ+zDa60YHA4fBstHmtSApj1Y5vKtG27fWowW03jCk5KcbXEWPZUIR894aARCA/G1kfQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, "node_modules/@csstools/color-helpers": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz", @@ -2757,6 +3220,73 @@ "dev": true, "license": "MIT" }, + "node_modules/@simple-libs/child-process-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@simple-libs/child-process-utils/-/child-process-utils-1.0.1.tgz", + "integrity": "sha512-3nWd8irxvDI6v856wpPCHZ+08iQR0oHTZfzAZmnbsLzf+Sf1odraP6uKOHDZToXq3RPRV/LbqGVlSCogm9cJjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@simple-libs/stream-utils": "^1.1.0", + "@types/node": "^22.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://ko-fi.com/dangreen" + } + }, + "node_modules/@simple-libs/child-process-utils/node_modules/@types/node": { + "version": "22.18.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.18.0.tgz", + "integrity": "sha512-m5ObIqwsUp6BZzyiy4RdZpzWGub9bqLJMvZDD0QMXhxjqMHMENlj+SqF5QxoUwaQNFe+8kz8XM8ZQhqkQPTgMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@simple-libs/child-process-utils/node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@simple-libs/stream-utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@simple-libs/stream-utils/-/stream-utils-1.1.0.tgz", + "integrity": "sha512-6rsHTjodIn/t90lv5snQjRPVtOosM7Vp0AKdrObymq45ojlgVwnpAqdc+0OBBrpEiy31zZ6/TKeIVqV1HwvnuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "^22.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://ko-fi.com/dangreen" + } + }, + "node_modules/@simple-libs/stream-utils/node_modules/@types/node": { + "version": "22.18.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.18.0.tgz", + "integrity": "sha512-m5ObIqwsUp6BZzyiy4RdZpzWGub9bqLJMvZDD0QMXhxjqMHMENlj+SqF5QxoUwaQNFe+8kz8XM8ZQhqkQPTgMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@simple-libs/stream-utils/node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" + }, "node_modules/@sindresorhus/merge-streams": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", @@ -2849,6 +3379,16 @@ "@types/deep-eql": "*" } }, + "node_modules/@types/conventional-commits-parser": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/conventional-commits-parser/-/conventional-commits-parser-5.0.1.tgz", + "integrity": "sha512-7uz5EHdzz2TqoMfV7ee61Egf5y6NkcO4FB/1iCCQnbeiI1F3xzv3vK5dBCXUCLQgGYS+mUeigK1iKQzvED+QnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/debug": { "version": "4.1.12", "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", @@ -2924,6 +3464,13 @@ "undici-types": "~7.10.0" } }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/rbush": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/rbush/-/rbush-4.0.0.tgz", @@ -4200,6 +4747,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/array-ify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", + "dev": true, + "license": "MIT" + }, "node_modules/array-includes": { "version": "3.1.9", "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", @@ -5001,6 +5555,17 @@ "node": ">= 12.0.0" } }, + "node_modules/compare-func": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", + "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" + } + }, "node_modules/compare-versions": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.1.tgz", @@ -5058,6 +5623,179 @@ "proto-list": "~1.2.1" } }, + "node_modules/conventional-changelog": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-7.1.1.tgz", + "integrity": "sha512-rlqa8Lgh8YzT3Akruk05DR79j5gN9NCglHtJZwpi6vxVeaoagz+84UAtKQj/sT+RsfGaZkt3cdFCjcN6yjr5sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@conventional-changelog/git-client": "^2.5.1", + "@types/normalize-package-data": "^2.4.4", + "conventional-changelog-preset-loader": "^5.0.0", + "conventional-changelog-writer": "^8.2.0", + "conventional-commits-parser": "^6.2.0", + "fd-package-json": "^2.0.0", + "meow": "^13.0.0", + "normalize-package-data": "^7.0.0" + }, + "bin": { + "conventional-changelog": "dist/cli/index.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/conventional-changelog-angular": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz", + "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/conventional-changelog-conventionalcommits": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-9.1.0.tgz", + "integrity": "sha512-MnbEysR8wWa8dAEvbj5xcBgJKQlX/m0lhS8DsyAAWDHdfs2faDJxTgzRYlRYpXSe7UiKrIIlB4TrBKU9q9DgkA==", + "dev": true, + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/conventional-changelog-preset-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-5.0.0.tgz", + "integrity": "sha512-SetDSntXLk8Jh1NOAl1Gu5uLiCNSYenB5tm0YVeZKePRIgDW9lQImromTwLa3c/Gae298tsgOM+/CYT9XAl0NA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/conventional-changelog-writer": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-8.2.0.tgz", + "integrity": "sha512-Y2aW4596l9AEvFJRwFGJGiQjt2sBYTjPD18DdvxX9Vpz0Z7HQ+g1Z+6iYDAm1vR3QOJrDBkRHixHK/+FhkR6Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "conventional-commits-filter": "^5.0.0", + "handlebars": "^4.7.7", + "meow": "^13.0.0", + "semver": "^7.5.2" + }, + "bin": { + "conventional-changelog-writer": "dist/cli/index.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/conventional-changelog/node_modules/@conventional-changelog/git-client": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@conventional-changelog/git-client/-/git-client-2.5.1.tgz", + "integrity": "sha512-lAw7iA5oTPWOLjiweb7DlGEMDEvzqzLLa6aWOly2FSZ64IwLE8T458rC+o+WvI31Doz6joM7X2DoNog7mX8r4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@simple-libs/child-process-utils": "^1.0.0", + "@simple-libs/stream-utils": "^1.1.0", + "semver": "^7.5.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "conventional-commits-filter": "^5.0.0", + "conventional-commits-parser": "^6.1.0" + }, + "peerDependenciesMeta": { + "conventional-commits-filter": { + "optional": true + }, + "conventional-commits-parser": { + "optional": true + } + } + }, + "node_modules/conventional-changelog/node_modules/conventional-commits-parser": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-6.2.0.tgz", + "integrity": "sha512-uLnoLeIW4XaoFtH37qEcg/SXMJmKF4vi7V0H2rnPueg+VEtFGA/asSCNTcq4M/GQ6QmlzchAEtOoDTtKqWeHag==", + "dev": true, + "license": "MIT", + "dependencies": { + "meow": "^13.0.0" + }, + "bin": { + "conventional-commits-parser": "dist/cli/index.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/conventional-commits-filter": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-5.0.0.tgz", + "integrity": "sha512-tQMagCOC59EVgNZcC5zl7XqO30Wki9i9J3acbUvkaosCT6JX3EeFwJD7Qqp4MCikRnzS18WXV3BLIQ66ytu6+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/conventional-commits-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz", + "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-text-path": "^2.0.0", + "JSONStream": "^1.3.5", + "meow": "^12.0.1", + "split2": "^4.0.0" + }, + "bin": { + "conventional-commits-parser": "cli.mjs" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/conventional-commits-parser/node_modules/meow": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", + "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16.10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/conventional-commits-parser/node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 10.x" + } + }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", @@ -5100,6 +5838,51 @@ "dev": true, "license": "MIT" }, + "node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cosmiconfig-typescript-loader": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-6.1.0.tgz", + "integrity": "sha512-tJ1w35ZRUiM5FeTzT7DtYWAFFv37ZLqSRkGi2oeCK1gPhvaWjkAtfXvLmvE1pRfxxp9aQo6ba/Pvg1dKj05D4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "jiti": "^2.4.1" + }, + "engines": { + "node": ">=v18" + }, + "peerDependencies": { + "@types/node": "*", + "cosmiconfig": ">=9", + "typescript": ">=5" + } + }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -5156,6 +5939,19 @@ "dev": true, "license": "MIT" }, + "node_modules/dargs": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-8.1.0.tgz", + "integrity": "sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/data-urls": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", @@ -5430,6 +6226,19 @@ "@types/trusted-types": "^2.0.7" } }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/draco3d": { "version": "1.5.7", "resolved": "https://registry.npmjs.org/draco3d/-/draco3d-1.5.7.tgz", @@ -5599,6 +6408,26 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, "node_modules/error-stack-parser-es": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/error-stack-parser-es/-/error-stack-parser-es-1.0.5.tgz", @@ -6589,6 +7418,16 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/fd-package-json": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fd-package-json/-/fd-package-json-2.0.0.tgz", + "integrity": "sha512-jKmm9YtsNXN789RS/0mSzOC1NUq9mkVd65vbSSVsKdjGvYXBuE4oWe2QOEoFeRmJg+lPuZxpmrfFclNhoRMneQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "walk-up-path": "^4.0.0" + } + }, "node_modules/figures": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", @@ -6954,6 +7793,47 @@ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } }, + "node_modules/git-raw-commits": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-4.0.0.tgz", + "integrity": "sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "dargs": "^8.0.0", + "meow": "^12.0.1", + "split2": "^4.0.0" + }, + "bin": { + "git-raw-commits": "cli.mjs" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/git-raw-commits/node_modules/meow": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", + "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16.10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/git-raw-commits/node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 10.x" + } + }, "node_modules/github-slugger": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", @@ -6995,6 +7875,32 @@ "node": ">=10.13.0" } }, + "node_modules/global-directory": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/global-directory/-/global-directory-4.0.1.tgz", + "integrity": "sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "4.1.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/global-directory/node_modules/ini": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", + "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/globals": { "version": "16.3.0", "resolved": "https://registry.npmjs.org/globals/-/globals-16.3.0.tgz", @@ -7076,6 +7982,28 @@ "node": ">=0.8.0" } }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, "node_modules/has-bigints": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", @@ -7187,6 +8115,19 @@ "dev": true, "license": "MIT" }, + "node_modules/hosted-git-info": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-8.1.0.tgz", + "integrity": "sha512-Rw/B2DNQaPBICNXEm8balFz9a6WpZrkCGpcWFpy7nCj+NyhSdqXipmfvtmWt9xGfp0wZnBxB+iVpLmQMYt47Tw==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, "node_modules/html-encoding-sniffer": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", @@ -7385,6 +8326,17 @@ "node": ">=8" } }, + "node_modules/import-meta-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", + "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -7471,6 +8423,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, "node_modules/is-async-function": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", @@ -7794,6 +8753,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/is-plain-obj": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", @@ -7910,6 +8879,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-text-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-2.0.0.tgz", + "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "text-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/is-typed-array": { "version": "1.1.15", "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", @@ -8126,6 +9108,16 @@ "@pkgjs/parseargs": "^0.11.0" } }, + "node_modules/jiti": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.5.1.tgz", + "integrity": "sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, "node_modules/jju": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", @@ -8354,6 +9346,13 @@ "node": ">=4" } }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -8431,6 +9430,33 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "dev": true, + "engines": [ + "node >= 0.2.0" + ], + "license": "MIT" + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "license": "(MIT OR Apache-2.0)", + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, "node_modules/jsx-ast-utils": { "version": "3.3.5", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", @@ -8509,6 +9535,13 @@ "node": ">= 0.8.0" } }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, "node_modules/linkify-it": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", @@ -8560,6 +9593,13 @@ "dev": true, "license": "MIT" }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "dev": true, + "license": "MIT" + }, "node_modules/lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", @@ -8568,6 +9608,20 @@ "dev": true, "license": "MIT" }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.kebabcase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==", + "dev": true, + "license": "MIT" + }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -8575,6 +9629,41 @@ "dev": true, "license": "MIT" }, + "node_modules/lodash.mergewith": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.snakecase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", + "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.startcase": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", + "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.upperfirst": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", + "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==", + "dev": true, + "license": "MIT" + }, "node_modules/long": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", @@ -9021,6 +10110,19 @@ "dev": true, "license": "MIT" }, + "node_modules/meow": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", + "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -9815,6 +10917,13 @@ "dev": true, "license": "MIT" }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true, + "license": "MIT" + }, "node_modules/neostandard": { "version": "0.12.2", "resolved": "https://registry.npmjs.org/neostandard/-/neostandard-0.12.2.tgz", @@ -9937,6 +11046,21 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/normalize-package-data": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-7.0.1.tgz", + "integrity": "sha512-linxNAT6M0ebEYZOx2tO6vBEFsVgnPpv+AVjk0wJHfaUIbq31Jm3T6vvZaarnOeWDh8ShnwXuaAyM7WT3RzErA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^8.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, "node_modules/nosleep.js": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/nosleep.js/-/nosleep.js-0.12.0.tgz", @@ -10320,6 +11444,25 @@ "dev": true, "license": "MIT" }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/parse-ms": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz", @@ -11825,6 +12968,42 @@ "node": ">=0.10.0" } }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.22", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.22.tgz", + "integrity": "sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==", + "dev": true, + "license": "CC0-1.0" + }, "node_modules/speakingurl": { "version": "14.0.1", "resolved": "https://registry.npmjs.org/speakingurl/-/speakingurl-14.0.1.tgz", @@ -12314,6 +13493,26 @@ "node": ">=18" } }, + "node_modules/text-extensions": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-2.4.0.tgz", + "integrity": "sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true, + "license": "MIT" + }, "node_modules/through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", @@ -12869,6 +14068,20 @@ "dev": true, "license": "MIT" }, + "node_modules/uglify-js": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", + "dev": true, + "license": "BSD-2-Clause", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/unbox-primitive": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", @@ -13111,6 +14324,17 @@ "dev": true, "license": "MIT" }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, "node_modules/vite": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.3.tgz", @@ -13822,6 +15046,16 @@ "node": "*" } }, + "node_modules/walk-up-path": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-4.0.0.tgz", + "integrity": "sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A==", + "dev": true, + "license": "ISC", + "engines": { + "node": "20 || >=22" + } + }, "node_modules/web-worker": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.5.0.tgz", @@ -14022,6 +15256,13 @@ "node": ">=0.10.0" } }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true, + "license": "MIT" + }, "node_modules/wrap-ansi": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", diff --git a/package.json b/package.json index 90610f8cc..3eb7639ae 100644 --- a/package.json +++ b/package.json @@ -70,6 +70,8 @@ ], "devDependencies": { "@cesium/engine": "^15.0.0", + "@commitlint/cli": "^19.8.1", + "@commitlint/config-conventional": "^19.8.1", "@dataport/eslint-config-geodev": "^0.3.3", "@kern-ux/native": "^2.3.0", "@masterportal/masterportalapi": "2.48.0", @@ -84,6 +86,8 @@ "buffer": "^6.0.3", "cesium": "^1.131.0", "concurrently": "^9.2.0", + "conventional-changelog": "^7.1.1", + "conventional-changelog-conventionalcommits": "^9.1.0", "es-toolkit": "^1.39.8", "eslint": "^9.31.0", "eslint-config-prettier": "^10.1.8", From 9e27f1e20002e01c2b79b0237e9d61da4d230afc Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Tue, 7 Nov 2023 01:00:00 +0000 Subject: [PATCH 270/697] ADR 0002: Plugin-based architecture --- docs-architecture/ADR-0002.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 docs-architecture/ADR-0002.md diff --git a/docs-architecture/ADR-0002.md b/docs-architecture/ADR-0002.md new file mode 100644 index 000000000..22d3680d2 --- /dev/null +++ b/docs-architecture/ADR-0002.md @@ -0,0 +1,22 @@ +# Plugin-based architecture + +## Status + +Accepted. + +## Context + +With recurring requirements, a desire grows to avoid repetition and reuse components. This can be implemented with a plugin-based architecture to create new map clients and have the most common features already done. + +## Decision + +An architecture for the client has been designed that models how we get to re-use functionality without re-writing it while still being open for extensions. The following graphic explains the architecture in further detail. + +![polar-2-architecture](https://github.com/Dataport/polar/assets/108349707/70090841-051c-44a7-8fde-2a9252a5d2ef) + +## Consequences + +* (+) Higher quality of features since multiple parties use them. +* (+) Implement once, use multiple times. +* (+) Parts are easier to exchange/develop, and not all clients are required to update immediately. +* (-) More difficult to understand the codebase. From 568e35cb8c97f3f0214b02093a6170287dfe279b Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Wed, 29 Nov 2023 00:00:00 +0000 Subject: [PATCH 271/697] ADR 0003: Error toasts have to be dismissed manually --- docs-architecture/ADR-0003.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 docs-architecture/ADR-0003.md diff --git a/docs-architecture/ADR-0003.md b/docs-architecture/ADR-0003.md new file mode 100644 index 000000000..6a0b51c9e --- /dev/null +++ b/docs-architecture/ADR-0003.md @@ -0,0 +1,17 @@ +# Error toasts have to be dismissed manually + +## Status + +Accepted. + +## Context + +Information relevant for the user is displayed in toasts which close automatically after a custom timeout. + +## Decision + +A timeout set for toasts that contain error messages will be ignored. Such toasts can only be closed manually by clicking the close button. + +## Consequences + +* (+) The user is forced to handle error messages and thus is more aware of errors that occur. From a7ca817fe001bb9fb29ea99d7c794fac415efdc1 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Fri, 1 Dec 2023 00:00:00 +0000 Subject: [PATCH 272/697] ADR 0004: Vuex mutations have no map side effects --- docs-architecture/ADR-0004.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 docs-architecture/ADR-0004.md diff --git a/docs-architecture/ADR-0004.md b/docs-architecture/ADR-0004.md new file mode 100644 index 000000000..b8910a2ae --- /dev/null +++ b/docs-architecture/ADR-0004.md @@ -0,0 +1,19 @@ +# Vuex mutations have no map side effects + +## Status + +Accepted. + +## Context + +OL Map interactions are usually side effects by nature, but are not asynchronous. It was unclear whether such changes belong to actions or mutations. + +## Decision + +It has been decided that map side effects do not belong to mutations, but to actions. + +## Consequences + +* (+) Mutations stay clean of side effects. +* (+) On potential extension of such map calls, asynchronous behaviour may be required; in that case, actions are already the correct position. +* (-) This restriction must be manually enforced. From bbc93dd97f05919833bd85f698f4ab35b862c13e Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Tue, 2 Jan 2024 00:00:00 +0000 Subject: [PATCH 273/697] ADR 0005: Difference between actions, utils and lib-packages --- docs-architecture/ADR-0005.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 docs-architecture/ADR-0005.md diff --git a/docs-architecture/ADR-0005.md b/docs-architecture/ADR-0005.md new file mode 100644 index 000000000..af9d6cccb --- /dev/null +++ b/docs-architecture/ADR-0005.md @@ -0,0 +1,24 @@ +# Difference between actions, utils and lib-packages + +## Status + +Accepted. + +## Context + +`actions`, `utils` and `lib`-packages can often consist of very similar code. It was not always clear enough where to place certain functionality, which was ultimately up to each developers own preference. + +## Decision + +When deciding on where to place code (when writing or refactoring), the following ordered list should be followed: + +* Does the functionality also change some part of the state? `action` +* Should the functionality be usable outside of an integrated client? `action` +* Does the functionality **not** have state changes, but belongs to a certain `action`? Either locally in the same file as the `action` or in a folder named after the `action` in the path `store/ACTIONNAME` +* Does the functionality **not** have state changes, but be reusable in the plugin / core? `utils` +* Should the functionality be reusable for multiple plugins / the core? `lib`-package + +## Consequences + +* (+) Gives clarity on where specific code fragments should reside. +* (-) This restriction must be manually enforced. From b0d6f01a50873f9d27c5d6a8f24989a4583698ba Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Wed, 10 Jan 2024 00:00:00 +0000 Subject: [PATCH 274/697] ADR 0006: console statement standardization --- docs-architecture/ADR-0006.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 docs-architecture/ADR-0006.md diff --git a/docs-architecture/ADR-0006.md b/docs-architecture/ADR-0006.md new file mode 100644 index 000000000..c1b8112d4 --- /dev/null +++ b/docs-architecture/ADR-0006.md @@ -0,0 +1,18 @@ +# `console` statement standardization + +## Status + +Accepted. + +## Context + +In production environments it may seem unclear if an error or warning message is shown in the console from which part of the application they occurred. + +## Decision + +All `console.warn` and `console.error` messages have to include the package in which they are invoked. + +## Consequences + +* (+) Errors and warnings can more easily be tracked back to the place in which they occur. +* (-) This restriction must be manually enforced. From df9c87eab9336575c7dced5d814294897bbb5f19 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Tue, 5 Mar 2024 00:00:00 +0000 Subject: [PATCH 275/697] ADR 0007: How to expose additional exports of a package --- docs-architecture/ADR-0007.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 docs-architecture/ADR-0007.md diff --git a/docs-architecture/ADR-0007.md b/docs-architecture/ADR-0007.md new file mode 100644 index 000000000..ebeb4eb37 --- /dev/null +++ b/docs-architecture/ADR-0007.md @@ -0,0 +1,19 @@ +# How to expose additional exports of a package + +## Status + +Accepted. + +## Context + +There are multiple ways of exposing additional exports of a package. They can either be exposed in the main file or configured as additional export nodes via rollup and the package.json. + +## Decision + +All exports should be exposed through the main file of the package as additional named exports. + +## Consequences + +* (+) A package consumer does not need to know additional paths to import. +* (+) This pattern is established by most major frameworks. +* (-) This restriction must be manually enforced. From 73f8a0128dcf371742a091f3fd1dc3e4dd3c538d Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Mon, 5 Aug 2024 00:00:00 +0000 Subject: [PATCH 276/697] ADR 0008: Order of configuration parameters in tables --- docs-architecture/ADR-0008.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 docs-architecture/ADR-0008.md diff --git a/docs-architecture/ADR-0008.md b/docs-architecture/ADR-0008.md new file mode 100644 index 000000000..d95510a4d --- /dev/null +++ b/docs-architecture/ADR-0008.md @@ -0,0 +1,19 @@ +# Configuration parameters in tables have to be ordered by a) required and b) alphabetically. + +## Status + +Accepted. + +## Context + +If a developer is reading the docs, having the configuration parameters order first by required values then alphabetically makes it easier to find relevant parameters. + +## Decision + +All docs shall be sorted as proposed. + +## Consequences + +* (+) Better readability of documentation. +* (+) Clear placement of new parameters. +* (-) This restriction must be manually enforced. From 76745bc5c0f0da33139be888296f34298f60498a Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Mon, 24 Feb 2025 00:00:00 +0000 Subject: [PATCH 277/697] ADR 0009: Revoke ADR 0002 (Plugin-based architecture) w.r.t. packaging --- docs-architecture/ADR-0002.md | 2 +- docs-architecture/ADR-0009.md | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 docs-architecture/ADR-0009.md diff --git a/docs-architecture/ADR-0002.md b/docs-architecture/ADR-0002.md index 22d3680d2..9dec6f4cb 100644 --- a/docs-architecture/ADR-0002.md +++ b/docs-architecture/ADR-0002.md @@ -2,7 +2,7 @@ ## Status -Accepted. +Revoked by ADR 0009. ## Context diff --git a/docs-architecture/ADR-0009.md b/docs-architecture/ADR-0009.md new file mode 100644 index 000000000..32de144d2 --- /dev/null +++ b/docs-architecture/ADR-0009.md @@ -0,0 +1,23 @@ +# Revoke "ADR 0002: Plugin-based architecture" regarding packaging + +## Status + +Accepted. + +## Context + +The current structure uses NPM packages so segment the codebase into reusable parts. These packages have no known outside usage and slow down development in various positions as well as make documentation and changelogs a burden. Instead of a differentiation of core, plugins, and libs, all of these parts shall reside in a single package whilst maintaining the current pluginability feature. This single package shall also offer a default modulith client with all parts readymade for instantiating that can optionally be used. + +If accepted, the original ADR shall gain an additional sentence linking to this ADR regarding this future change, as this won't be executed easily, in a short time, or in a single step. + +## Decision + +We will restructure the architecture as shown in the next big major version. + +## Consequences + +* (+) Easier maintenance (no superfluous changelogs, easier type access, less boilerplate, faster releases). +* (+) Easier to understand the codebase. +* (-) It's not possible to use different versions of packages in the same client, especially old versions. + * (+) We never did this anyway and it may have produced complex fix scenarios (LTS for majors?) that no longer may occur. +* (-) We'll have to introduce technical limitations (architecture checks) regarding imports to prevent the codebase structure from degrading to spaghetti. From 7d9bed6ac119a2dfe9d7a2c5fdd252e5386cdd2b Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Tue, 8 Jul 2025 00:00:00 +0000 Subject: [PATCH 278/697] ADR 0010: Manage ADRs via project git --- docs-architecture/ADR-0010.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 docs-architecture/ADR-0010.md diff --git a/docs-architecture/ADR-0010.md b/docs-architecture/ADR-0010.md new file mode 100644 index 000000000..d21bbd87b --- /dev/null +++ b/docs-architecture/ADR-0010.md @@ -0,0 +1,18 @@ +# Manage ADRs with Git + +## Status + +Accepted. + +## Context + +Currently, ADRs are managed in a single GitHub wiki page of POLAR. + +## Decision + +We move the ADRs to the repository in a documentation folder. We write one file per ADR. + +## Consequences + +- (+) Changes to ADRs can more comfortably be tracked via Git. +- (o) There is more overhead in creating and updating ADRs, which may lead to writing less of them. From 04d8b5862929e04f991738e21a4b60b3ea88e845 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Tue, 7 Nov 2023 00:00:00 +0000 Subject: [PATCH 279/697] ADR 0001: We write ADRs from now on --- docs-architecture/ADR-0001.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 docs-architecture/ADR-0001.md diff --git a/docs-architecture/ADR-0001.md b/docs-architecture/ADR-0001.md new file mode 100644 index 000000000..92ce6b68d --- /dev/null +++ b/docs-architecture/ADR-0001.md @@ -0,0 +1,19 @@ +# We write ADRs from now on + +## Status + +Accepted. + +## Context + +As time goes by, it becomes unclear whether architectural decisions have been made accidentally or on purpose, and, if on purpose, what the motivations were. + +## Decision + +From now on, all greater or debatable architectural decisions shall be denoted as an ADR within this document, like the "example ADR" you are currently reading. The used template is from [here](https://github.com/joelparkerhenderson/architecture-decision-record/tree/main/locales/en/templates/decision-record-template-by-michael-nygard). Also, questions arising about architecture shall be answered in such an ADR format to procude future references. + +## Consequences + +* (+) Architecture decisions will become more transparent and understandable. +* (+) A truth base is defined and referencable. +* (-) Time needed for documentation. From fe3ca9b43d361a4d733b999e647d54ccfb823de3 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Mon, 25 Aug 2025 10:32:45 +0200 Subject: [PATCH 280/697] chore(docs): introduce mkdocs --- .../architecture/decisions}/ADR-0001.md | 0 .../architecture/decisions}/ADR-0002.md | 0 .../architecture/decisions}/ADR-0003.md | 0 .../architecture/decisions}/ADR-0004.md | 0 .../architecture/decisions}/ADR-0005.md | 0 .../architecture/decisions}/ADR-0006.md | 0 .../architecture/decisions}/ADR-0007.md | 0 .../architecture/decisions}/ADR-0008.md | 0 .../architecture/decisions}/ADR-0009.md | 0 .../architecture/decisions}/ADR-0010.md | 0 .../index.md} | 5 ++-- .../{10-configuration.md => configuration.md} | 0 docs/{91-contact.md => contact.md} | 0 docs/{30-development.md => development.md} | 0 docs/index.md | 11 ++++++++ docs/{92-legalnotice.md => legal-notice.md} | 0 mkdocs.yml | 28 +++++++++++++++++++ typedoc.json | 6 ++-- 18 files changed, 44 insertions(+), 6 deletions(-) rename {docs-architecture => docs/architecture/decisions}/ADR-0001.md (100%) rename {docs-architecture => docs/architecture/decisions}/ADR-0002.md (100%) rename {docs-architecture => docs/architecture/decisions}/ADR-0003.md (100%) rename {docs-architecture => docs/architecture/decisions}/ADR-0004.md (100%) rename {docs-architecture => docs/architecture/decisions}/ADR-0005.md (100%) rename {docs-architecture => docs/architecture/decisions}/ADR-0006.md (100%) rename {docs-architecture => docs/architecture/decisions}/ADR-0007.md (100%) rename {docs-architecture => docs/architecture/decisions}/ADR-0008.md (100%) rename {docs-architecture => docs/architecture/decisions}/ADR-0009.md (100%) rename {docs-architecture => docs/architecture/decisions}/ADR-0010.md (100%) rename docs/{20-architecture.md => architecture/index.md} (92%) rename docs/{10-configuration.md => configuration.md} (100%) rename docs/{91-contact.md => contact.md} (100%) rename docs/{30-development.md => development.md} (100%) create mode 100644 docs/index.md rename docs/{92-legalnotice.md => legal-notice.md} (100%) create mode 100644 mkdocs.yml diff --git a/docs-architecture/ADR-0001.md b/docs/architecture/decisions/ADR-0001.md similarity index 100% rename from docs-architecture/ADR-0001.md rename to docs/architecture/decisions/ADR-0001.md diff --git a/docs-architecture/ADR-0002.md b/docs/architecture/decisions/ADR-0002.md similarity index 100% rename from docs-architecture/ADR-0002.md rename to docs/architecture/decisions/ADR-0002.md diff --git a/docs-architecture/ADR-0003.md b/docs/architecture/decisions/ADR-0003.md similarity index 100% rename from docs-architecture/ADR-0003.md rename to docs/architecture/decisions/ADR-0003.md diff --git a/docs-architecture/ADR-0004.md b/docs/architecture/decisions/ADR-0004.md similarity index 100% rename from docs-architecture/ADR-0004.md rename to docs/architecture/decisions/ADR-0004.md diff --git a/docs-architecture/ADR-0005.md b/docs/architecture/decisions/ADR-0005.md similarity index 100% rename from docs-architecture/ADR-0005.md rename to docs/architecture/decisions/ADR-0005.md diff --git a/docs-architecture/ADR-0006.md b/docs/architecture/decisions/ADR-0006.md similarity index 100% rename from docs-architecture/ADR-0006.md rename to docs/architecture/decisions/ADR-0006.md diff --git a/docs-architecture/ADR-0007.md b/docs/architecture/decisions/ADR-0007.md similarity index 100% rename from docs-architecture/ADR-0007.md rename to docs/architecture/decisions/ADR-0007.md diff --git a/docs-architecture/ADR-0008.md b/docs/architecture/decisions/ADR-0008.md similarity index 100% rename from docs-architecture/ADR-0008.md rename to docs/architecture/decisions/ADR-0008.md diff --git a/docs-architecture/ADR-0009.md b/docs/architecture/decisions/ADR-0009.md similarity index 100% rename from docs-architecture/ADR-0009.md rename to docs/architecture/decisions/ADR-0009.md diff --git a/docs-architecture/ADR-0010.md b/docs/architecture/decisions/ADR-0010.md similarity index 100% rename from docs-architecture/ADR-0010.md rename to docs/architecture/decisions/ADR-0010.md diff --git a/docs/20-architecture.md b/docs/architecture/index.md similarity index 92% rename from docs/20-architecture.md rename to docs/architecture/index.md index adac52cb2..456d50f5b 100644 --- a/docs/20-architecture.md +++ b/docs/architecture/index.md @@ -10,7 +10,7 @@ It may either work standalone, in which case there are only inputs for configura The purpose of POLAR is to handle all geospatial interactions of a user and utilize the decentralized geospatial infrastructure for that end. -![POLAR architecture as viewn from a user perspective](./assets/polar-outer-architecture.png) +![POLAR architecture as viewn from a user perspective](../assets/polar-outer-architecture.png) *Viewn from the outside, POLAR is just a component* @@ -19,6 +19,7 @@ POLAR is designed to increase *application efficiency* and *correctness* for the The provided _visualisations_ ease communication between citizens and administrative staff, allowing them to effectively share the *where*. POLAR is already in use for ... + - ... **citizens** to ... - communicate parcel data in applications. - mark their current position for reports. @@ -40,6 +41,6 @@ For client-specific business logic, this can be placed in the very client itself All in all, this makes POLAR a versatile map client factory. -![POLAR architecture of the software itself](./assets/polar-architecture.png) +![POLAR architecture of the software itself](../assets/polar-architecture.png) *Viewn from the inside, POLAR is a map client factory* diff --git a/docs/10-configuration.md b/docs/configuration.md similarity index 100% rename from docs/10-configuration.md rename to docs/configuration.md diff --git a/docs/91-contact.md b/docs/contact.md similarity index 100% rename from docs/91-contact.md rename to docs/contact.md diff --git a/docs/30-development.md b/docs/development.md similarity index 100% rename from docs/30-development.md rename to docs/development.md diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 000000000..5aad09f52 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,11 @@ +--- +title: Introduction +--- + +# What is POLAR? + +POLAR is ... + +* ... a configurable map client package. +* ... a flexible map client factory. +* ... an extensible library. diff --git a/docs/92-legalnotice.md b/docs/legal-notice.md similarity index 100% rename from docs/92-legalnotice.md rename to docs/legal-notice.md diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 000000000..0c4eca5d0 --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,28 @@ +site_name: POLAR +site_url: https://dataport.github.io/polar/docs/ + +theme: material + +exclude_docs: | + /assets/**/*.md + +nav: + - index.md + - configuration.md + - API Reference: ../reference/ + - Architecture: + - Overview: architecture/index.md + - Architectural Decisions: + - architecture/decisions/ADR-0001.md + - architecture/decisions/ADR-0002.md + - architecture/decisions/ADR-0003.md + - architecture/decisions/ADR-0004.md + - architecture/decisions/ADR-0005.md + - architecture/decisions/ADR-0006.md + - architecture/decisions/ADR-0007.md + - architecture/decisions/ADR-0008.md + - architecture/decisions/ADR-0009.md + - architecture/decisions/ADR-0010.md + - development.md + - contact.md + - legal-notice.md \ No newline at end of file diff --git a/typedoc.json b/typedoc.json index 911de5231..8d3c79ed4 100644 --- a/typedoc.json +++ b/typedoc.json @@ -10,10 +10,8 @@ ], "out": "docs-html", "skipErrorChecking": true, - "projectDocuments": [ - "docs/*.md" - ], - "name": "POLAR documentation", + "projectDocuments": [], + "name": "POLAR reference", "sort": [ "kind", "instance-first", From 2e07f30c4af98597f16564e982c0dea778e04174 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Mon, 25 Aug 2025 13:01:02 +0200 Subject: [PATCH 281/697] Publish pages for next-gen POLAR --- .github/workflows/publish-pages-next.yml | 22 ++++++++++++++++++++++ examples/github-io/index.html | 17 +++++++++++++++++ mkdocs.yml | 3 ++- package.json | 14 ++++++++++---- typedoc.json | 2 +- 5 files changed, 52 insertions(+), 6 deletions(-) create mode 100644 .github/workflows/publish-pages-next.yml create mode 100644 examples/github-io/index.html diff --git a/.github/workflows/publish-pages-next.yml b/.github/workflows/publish-pages-next.yml new file mode 100644 index 000000000..3331bfafc --- /dev/null +++ b/.github/workflows/publish-pages-next.yml @@ -0,0 +1,22 @@ +name: Publish bleeding-edge documentation to gh-pages/next + +on: + push: + branches: + - next + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 22.18.0 + registry-url: https://registry.npmjs.org/ + - run: npm ci + - run: npm run docs:ci + - uses: JamesIves/github-pages-deploy-action@v4 + with: + folder: docs-html + target-folder: next diff --git a/examples/github-io/index.html b/examples/github-io/index.html new file mode 100644 index 000000000..bdc4e7617 --- /dev/null +++ b/examples/github-io/index.html @@ -0,0 +1,17 @@ + + + + + POLAR@next + + + + +

POLAR@next

+

Bleeding-edge POLAP map client, with all the new features.

+ + + + \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index 0c4eca5d0..c72680b6c 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,5 +1,6 @@ site_name: POLAR site_url: https://dataport.github.io/polar/docs/ +site_dir: docs-html/docs theme: material @@ -25,4 +26,4 @@ nav: - architecture/decisions/ADR-0010.md - development.md - contact.md - - legal-notice.md \ No newline at end of file + - legal-notice.md diff --git a/package.json b/package.json index 3eb7639ae..9930e6c58 100644 --- a/package.json +++ b/package.json @@ -51,10 +51,16 @@ "lint:fix": "npm run lint -- --fix", "tsc": "tsc && vue-tsc -p src", "tsc:ci": "tsc && vue-tsc -p src", - "docs": "node scripts/typedoc-install-vue-tsc.ts && typedoc --watch", - "docs:core": "node scripts/typedoc-install-vue-tsc.ts && typedoc --watch --targetAudience core", - "docs:plugin": "node scripts/typedoc-install-vue-tsc.ts && typedoc --watch --targetAudience plugin", - "docs:ci": "typedoc", + "docs:ci": "npm run docs:showcase:ci && npm run docs:docs:ci && npm run docs:api:ci && npm run docs:api:core:ci && npm run docs:api:plugin:ci", + "docs:showcase:ci": "mkdir -p docs-html && cp -r examples/github-io/* docs-html/", + "docs:docs": "mkdocs serve", + "docs:docs:ci": "mkdocs build", + "docs:api": "node scripts/typedoc-install-vue-tsc.ts && typedoc --watch", + "docs:api:core": "node scripts/typedoc-install-vue-tsc.ts && typedoc --watch --targetAudience core", + "docs:api:plugin": "node scripts/typedoc-install-vue-tsc.ts && typedoc --watch --targetAudience plugin", + "docs:api:ci": "typedoc", + "docs:api:core:ci": "typedoc --targetAudience core --out docs-html/reference-core", + "docs:api:plugin:ci": "typedoc --targetAudience plugin --out docs-html/reference-plugin", "clean": "node scripts/clean.ts", "postinstall": "patch-package", "test": "vitest", diff --git a/typedoc.json b/typedoc.json index 8d3c79ed4..dadc684a4 100644 --- a/typedoc.json +++ b/typedoc.json @@ -8,7 +8,7 @@ "src/plugins/*/locales.ts", "src/plugins/*/store.ts" ], - "out": "docs-html", + "out": "docs-html/reference", "skipErrorChecking": true, "projectDocuments": [], "name": "POLAR reference", From afc8c6e28a35af1418b622fefc644fede65616be Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Mon, 25 Aug 2025 13:06:48 +0200 Subject: [PATCH 282/697] chore: install mkdocs in publish-pages --- .github/workflows/publish-pages-next.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/publish-pages-next.yml b/.github/workflows/publish-pages-next.yml index 3331bfafc..8b41cb17f 100644 --- a/.github/workflows/publish-pages-next.yml +++ b/.github/workflows/publish-pages-next.yml @@ -14,6 +14,7 @@ jobs: with: node-version: 22.18.0 registry-url: https://registry.npmjs.org/ + - run: sudo apt install mkdocs mkdocs-material - run: npm ci - run: npm run docs:ci - uses: JamesIves/github-pages-deploy-action@v4 From 6f77dc047f95389d2ec49367dac4e34f4c8175ab Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Mon, 25 Aug 2025 13:24:05 +0200 Subject: [PATCH 283/697] docs(arch): clarification for ADR 0001 --- docs/architecture/decisions/ADR-0001.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/architecture/decisions/ADR-0001.md b/docs/architecture/decisions/ADR-0001.md index 92ce6b68d..8166228b1 100644 --- a/docs/architecture/decisions/ADR-0001.md +++ b/docs/architecture/decisions/ADR-0001.md @@ -12,6 +12,8 @@ As time goes by, it becomes unclear whether architectural decisions have been ma From now on, all greater or debatable architectural decisions shall be denoted as an ADR within this document, like the "example ADR" you are currently reading. The used template is from [here](https://github.com/joelparkerhenderson/architecture-decision-record/tree/main/locales/en/templates/decision-record-template-by-michael-nygard). Also, questions arising about architecture shall be answered in such an ADR format to procude future references. +If certain points change while not obsoleting the ADR as such, ADRs may be modified later. + ## Consequences * (+) Architecture decisions will become more transparent and understandable. From a5ad9540bfa3adbdc3c24dbcf777b193fe20ab69 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Mon, 25 Aug 2025 13:27:04 +0200 Subject: [PATCH 284/697] docs(arch): use vite plugin for ADR 0006 --- docs/architecture/decisions/ADR-0006.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/architecture/decisions/ADR-0006.md b/docs/architecture/decisions/ADR-0006.md index c1b8112d4..44a58b73e 100644 --- a/docs/architecture/decisions/ADR-0006.md +++ b/docs/architecture/decisions/ADR-0006.md @@ -10,9 +10,11 @@ In production environments it may seem unclear if an error or warning message is ## Decision -All `console.warn` and `console.error` messages have to include the package in which they are invoked. +All `console.warn` and `console.error` messages have to show the application's part in which they are invoked. +We add the location to the console messages at compile-time using Vite. ## Consequences * (+) Errors and warnings can more easily be tracked back to the place in which they occur. -* (-) This restriction must be manually enforced. +* (+) This restriction is enforced automatically. +* (-) Console messages are more verbose. From 698231c32f90dcddf3535f9bad2348d3ab563390 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Tue, 8 Jul 2025 00:00:00 +0000 Subject: [PATCH 285/697] docs(arch): split customer-specific clients to separate repositories --- docs/architecture/decisions/ADR-0011.md | 28 +++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 docs/architecture/decisions/ADR-0011.md diff --git a/docs/architecture/decisions/ADR-0011.md b/docs/architecture/decisions/ADR-0011.md new file mode 100644 index 000000000..3fffb3531 --- /dev/null +++ b/docs/architecture/decisions/ADR-0011.md @@ -0,0 +1,28 @@ +# Split customer-specific clients into separate repositories + +## Status + +Accepted. + +## Context + +The new architecture, as introduced by ADR 0009, has a generic NPM package (@polar/polar, which replaces the packages @polar/core, @polar/lib-X, @polar/plugin-X and @polar/client-generic) and several customer-specific clients (@polar/client-X). + +The customer-specific clients are developed because of individual contracts and are (usually) not of major interest for other users. The maintenance of these clients is done primarily for the customers and does not contribute to the project's vision. + +## Decision + +Customer-specific clients (i.e., clients that are not the snowbox or the generic client) are moved to separate repositories (one repository per client). + +The new structure shall ensure that core changes can still be developed against a customer-specific client using HMR. + +## Consequences + +- (+) The repository structure is easier to understand (no monorepo). +- (+) Rules for contributions can be different between core and clients. +- (+) Contributors do not have to deal with customer-specific clients. +- (+) Real-world examples for implementing your own client in your own repository are provided. +- (+) Generating SBOMs is easier. +- (-) Following up with updates needs to be done in different repositories. + - (+) However, SemVer is used and helpers such as renovate exist. +- (o) Documentation of breaking changes including a migration guide is necessary. From 40a4888e2740337b30c447463687c868234afffa Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Mon, 25 Aug 2025 13:31:01 +0200 Subject: [PATCH 286/697] docs(arch): obsolete ADR 0004 --- docs/architecture/decisions/ADR-0004.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/architecture/decisions/ADR-0004.md b/docs/architecture/decisions/ADR-0004.md index b8910a2ae..95a9eb0d7 100644 --- a/docs/architecture/decisions/ADR-0004.md +++ b/docs/architecture/decisions/ADR-0004.md @@ -2,7 +2,7 @@ ## Status -Accepted. +Obsoleted (Vuex is replaced with Pinia). ## Context From 03b410b4027b14e08c6b319fd585d2c2eb018b8f Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Wed, 27 Aug 2025 12:01:46 +0200 Subject: [PATCH 287/697] chore: change default to lint commit message --- .husky/defaults.json | 2 +- .husky/install.js | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.husky/defaults.json b/.husky/defaults.json index 465b4d5af..da95cab7f 100644 --- a/.husky/defaults.json +++ b/.husky/defaults.json @@ -3,5 +3,5 @@ "lintOnCommit": false, "typecheckOnCommit": false, "testOnCommit": false, - "lintCommitMessage": false + "lintCommitMessage": true } \ No newline at end of file diff --git a/.husky/install.js b/.husky/install.js index 05658934f..5d9017a82 100644 --- a/.husky/install.js +++ b/.husky/install.js @@ -1,4 +1,3 @@ /* eslint-disable no-console */ -if (!process.env.HUSKY) process.exit(0) const { default: husky } = await import('husky') console.info(husky()) From ea1e366cd38f127bc8afa0e0d42ba81c30dfa4ce Mon Sep 17 00:00:00 2001 From: Hendrik Oenings <142312676+oeninghe-dataport@users.noreply.github.com> Date: Wed, 27 Aug 2025 12:06:46 +0200 Subject: [PATCH 288/697] style(toast): sort alphanumerical MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Pascal Röhling <73653210+dopenguin@users.noreply.github.com> --- src/plugins/toast/types.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/toast/types.ts b/src/plugins/toast/types.ts index 9d6cf13ee..9d1e6e567 100644 --- a/src/plugins/toast/types.ts +++ b/src/plugins/toast/types.ts @@ -32,7 +32,7 @@ export interface Toast { */ export interface ToastPluginOptions extends PluginOptions { error?: ToastTheme - warning?: ToastTheme info?: ToastTheme success?: ToastTheme + warning?: ToastTheme } From bb3966f7b2a972beedba4ab9e41674cedf97d5aa Mon Sep 17 00:00:00 2001 From: Hendrik Oenings <142312676+oeninghe-dataport@users.noreply.github.com> Date: Wed, 27 Aug 2025 12:07:08 +0200 Subject: [PATCH 289/697] style(toast): sort alphanumerical MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Pascal Röhling <73653210+dopenguin@users.noreply.github.com> --- src/plugins/toast/types.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/toast/types.ts b/src/plugins/toast/types.ts index 9d1e6e567..0a0886922 100644 --- a/src/plugins/toast/types.ts +++ b/src/plugins/toast/types.ts @@ -22,8 +22,8 @@ export interface ToastTheme { * Toast. */ export interface Toast { - text: string severity: ToastSeverity + text: string theme?: ToastTheme } From a89f8bb1c6aa5c5237f37e6ed914a1189abed570 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Wed, 27 Aug 2025 12:08:06 +0200 Subject: [PATCH 290/697] style(core): fix typo --- src/core/types/layer.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/types/layer.ts b/src/core/types/layer.ts index 959fb7ad7..5ae079986 100644 --- a/src/core/types/layer.ts +++ b/src/core/types/layer.ts @@ -43,7 +43,7 @@ export interface LayerConfiguration { id: string /** - * Human-readable identifier and value to be display in the UI. + * Human-readable identifier and value to be displayed in the UI. */ name: string From bb01595b7ad84e792892c45c35eb94d0159f85db Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Wed, 27 Aug 2025 12:09:58 +0200 Subject: [PATCH 291/697] style(core): sort alphanumerical --- src/core/types/layer.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/core/types/layer.ts b/src/core/types/layer.ts index 5ae079986..d20fed826 100644 --- a/src/core/types/layer.ts +++ b/src/core/types/layer.ts @@ -63,18 +63,18 @@ export interface LayerConfiguration { hideInMenu?: boolean /** - * The minimum zoom level the layer will be rendered in. + * The maximum zoom level the layer will be rendered in. * - * @defaultValue 0 + * @defaultValue Number.MAX_SAFE_INTEGER */ - minZoom?: number + maxZoom?: number /** - * The maximum zoom level the layer will be rendered in. + * The minimum zoom level the layer will be rendered in. * - * @defaultValue Number.MAX_SAFE_INTEGER + * @defaultValue 0 */ - maxZoom?: number + minZoom?: number /** * Enables a configuration feature for the layer in its selection. From 986921f10aa1474dd4cfe1a377bfbeb7e495329c Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Wed, 27 Aug 2025 12:10:53 +0200 Subject: [PATCH 292/697] style(core): fix typo --- src/core/types/main.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/types/main.ts b/src/core/types/main.ts index f280e9d57..3052c6bef 100644 --- a/src/core/types/main.ts +++ b/src/core/types/main.ts @@ -7,7 +7,7 @@ import type { FullscreenPluginOptions } from '@/plugins/fullscreen' import type { ToastPluginOptions } from '@/plugins/toast' /** - * Copied from https://stackoverflow.com/a/54178819.# + * Copied from https://stackoverflow.com/a/54178819. * * Makes the properties defined by type `K` optional in type `T`. * From 5bcbed773fdfe9292bbd7b3bdfd227490ceed946 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings <142312676+oeninghe-dataport@users.noreply.github.com> Date: Wed, 27 Aug 2025 12:12:21 +0200 Subject: [PATCH 293/697] style(core): fix typo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Pascal Röhling <73653210+dopenguin@users.noreply.github.com> --- src/core/types/main.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/types/main.ts b/src/core/types/main.ts index 3052c6bef..c7ff0762a 100644 --- a/src/core/types/main.ts +++ b/src/core/types/main.ts @@ -17,7 +17,7 @@ export type PartialBy = Omit & Partial> export interface Locale { resources: Record - /** Language key as described in the i18next documentation */ + /** Language key as described in the i18next documentation. */ type: string } From 658a3732e2c7123cba79c723df01965ae0bf9916 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings <142312676+oeninghe-dataport@users.noreply.github.com> Date: Wed, 27 Aug 2025 12:13:29 +0200 Subject: [PATCH 294/697] docs(core): fix example for locales MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Pascal Röhling <73653210+dopenguin@users.noreply.github.com> --- src/core/types/main.ts | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/core/types/main.ts b/src/core/types/main.ts index c7ff0762a..95332eb8e 100644 --- a/src/core/types/main.ts +++ b/src/core/types/main.ts @@ -209,20 +209,16 @@ export interface MapConfiguration extends MasterportalApiConfiguration { * { * type: 'de', * resources: { - * plugins: { - * layerChooser: { - * maskTitle: 'Bahnstrecken', - * }, + * layerChooser: { + * maskTitle: 'Bahnstrecken', * }, * }, * }, * { * type: 'en', * resources: { - * plugins: { - * layerChooser: { - * maskTitle: 'Railway lines', - * }, + * layerChooser: { + * maskTitle: 'Railway lines', * }, * }, * }, From 9c94914278766b3477203377c41d1d01451fce08 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings <142312676+oeninghe-dataport@users.noreply.github.com> Date: Wed, 27 Aug 2025 12:19:07 +0200 Subject: [PATCH 295/697] style(toast): use implicit closing tag MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Pascal Röhling <73653210+dopenguin@users.noreply.github.com> --- src/plugins/toast/components/ToastUI.ce.vue | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/plugins/toast/components/ToastUI.ce.vue b/src/plugins/toast/components/ToastUI.ce.vue index cf1625311..aceed58b7 100644 --- a/src/plugins/toast/components/ToastUI.ce.vue +++ b/src/plugins/toast/components/ToastUI.ce.vue @@ -8,11 +8,7 @@ role="alert" >
- +
@@ -54,6 +70,7 @@ const { backgrounds, disabledBackgrounds, disabledMasks, + layersWithOptions, masksSeparatedByType, shownMasks, } = storeToRefs(layerChooserStore) @@ -70,10 +87,28 @@ const activeMasks = computed({ layerChooserStore.setActiveMaskIds(newValue) }, }) + +function updateOpenedOptions(layerId: string) { + layerChooserStore.openedOptionsId = layerId +} From d6518e0eeb956aafd9df2b7de576aa05f261e836 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Wed, 10 Sep 2025 17:27:19 +0200 Subject: [PATCH 403/697] refactor(layerChooser): move findCapabilities --- .../layerChooser}/utils/findInCapabilities.ts | 76 ++++++++++--------- 1 file changed, 39 insertions(+), 37 deletions(-) rename {vue2/packages/plugins/LayerChooser/src => src/plugins/layerChooser}/utils/findInCapabilities.ts (55%) diff --git a/vue2/packages/plugins/LayerChooser/src/utils/findInCapabilities.ts b/src/plugins/layerChooser/utils/findInCapabilities.ts similarity index 55% rename from vue2/packages/plugins/LayerChooser/src/utils/findInCapabilities.ts rename to src/plugins/layerChooser/utils/findInCapabilities.ts index c42d1324d..f209398b6 100644 --- a/vue2/packages/plugins/LayerChooser/src/utils/findInCapabilities.ts +++ b/src/plugins/layerChooser/utils/findInCapabilities.ts @@ -2,6 +2,8 @@ * https://portal.ogc.org/files/?artifact_id=14416 * OL currently has no TS support for its return object, hence :any'ing here */ +// TODO(dopenguin): Check if this can be written anew + /** * Finds a named layer from a root layer (array). First-found is returned, * assuming that not multiple layers will have the same name, since they're a @@ -13,20 +15,20 @@ * @returns capabilities layer with matching name */ const deepLayerFind = (layer, name: string) => { - if (Array.isArray(layer)) { - return ( - layer.map((l) => deepLayerFind(l, name)).find((l) => l !== null) || null - ) - } else if (typeof layer === 'object') { - if (layer.Name === name) { - return layer - } else if (layer.Layer) { - return deepLayerFind(layer.Layer, name) - } - } + if (Array.isArray(layer)) { + return ( + layer.map((l) => deepLayerFind(l, name)).find((l) => l !== null) || null + ) + } else if (typeof layer === 'object') { + if (layer.Name === name) { + return layer + } else if (layer.Layer) { + return deepLayerFind(layer.Layer, name) + } + } - // layer is minOccurs="0", so we may always end up empty-handed - return null + // layer is minOccurs="0", so we may always end up empty-handed + return null } /** @@ -34,16 +36,16 @@ const deepLayerFind = (layer, name: string) => { * @returns array of all found legend URLs */ const getAllLegendURLs = (style): string[] => - (Array.isArray(style) ? style : [style]) - .map((styleObject) => - (Array.isArray(styleObject.LegendURL) - ? styleObject.LegendURL - : typeof styleObject.LegendURL === 'object' - ? [styleObject.LegendURL] - : [] - ).map((legendUrl) => legendUrl.OnlineResource) - ) - .flat(1) + (Array.isArray(style) ? style : [style]) + .map((styleObject) => + (Array.isArray(styleObject.LegendURL) + ? styleObject.LegendURL + : typeof styleObject.LegendURL === 'object' + ? [styleObject.LegendURL] + : [] + ).map((legendUrl) => legendUrl.OnlineResource) + ) + .flat(1) /** * @param capabilities - capabilities from ol/format/WMSCapabilities @@ -51,11 +53,11 @@ const getAllLegendURLs = (style): string[] => * @returns title, or empty string if not found */ export const findLayerTitleInCapabilitiesByName = ( - capabilities, - name: string + capabilities, + name: string ): string => { - const layer = deepLayerFind(capabilities.Capability.Layer, name) - return layer?.Title || '' + const layer = deepLayerFind(capabilities.Capability.Layer, name) + return layer?.Title || '' } /** @@ -64,15 +66,15 @@ export const findLayerTitleInCapabilitiesByName = ( * @returns legend URL as string, or empty string if not found */ export const findLegendUrlInCapabilitiesByName = ( - capabilities, - name: string + capabilities, + name: string ): string => { - const layer = deepLayerFind(capabilities.Capability.Layer, name) - const style = layer?.Style - if (!style) { - return '' - } - const urls: string[] = getAllLegendURLs(style) - // NOTE: choosing URL is more complex when supporting layer styles - return urls[0] || '' + const layer = deepLayerFind(capabilities.Capability.Layer, name) + const style = layer?.Style + if (!style) { + return '' + } + const urls: string[] = getAllLegendURLs(style) + // NOTE: choosing URL is more complex when supporting layer styles + return urls[0] || '' } From ef4ecd9d1d78035e08e595b970abc617e2e46151 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Wed, 10 Sep 2025 17:27:52 +0200 Subject: [PATCH 404/697] refactor(layerChooser): implement user interface for layer options --- .../components/LayerOptions.ce.vue | 112 +++++++++++++++++- 1 file changed, 110 insertions(+), 2 deletions(-) diff --git a/src/plugins/layerChooser/components/LayerOptions.ce.vue b/src/plugins/layerChooser/components/LayerOptions.ce.vue index a61db8bfd..9906f73d2 100644 --- a/src/plugins/layerChooser/components/LayerOptions.ce.vue +++ b/src/plugins/layerChooser/components/LayerOptions.ce.vue @@ -1,7 +1,115 @@ + + From 8738579d50b81a91533ee31d1f50c80a2735cccd Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Wed, 10 Sep 2025 18:01:10 +0200 Subject: [PATCH 405/697] chore(layerChooser): update function signatures --- .../layerChooser/utils/findInCapabilities.ts | 42 ++++++++----------- 1 file changed, 18 insertions(+), 24 deletions(-) diff --git a/src/plugins/layerChooser/utils/findInCapabilities.ts b/src/plugins/layerChooser/utils/findInCapabilities.ts index f209398b6..2bc3c5831 100644 --- a/src/plugins/layerChooser/utils/findInCapabilities.ts +++ b/src/plugins/layerChooser/utils/findInCapabilities.ts @@ -1,20 +1,20 @@ /* NOTE: dig up from Capabilities by OGC WMS Capabilities specification E.1 in * https://portal.ogc.org/files/?artifact_id=14416 - * OL currently has no TS support for its return object, hence :any'ing here */ - -// TODO(dopenguin): Check if this can be written anew + * OL currently has no TS support for its return object, hence :any'ing here + */ /** * Finds a named layer from a root layer (array). First-found is returned, * assuming that not multiple layers will have the same name, since they're a * distinguishing feature for layer enabling/disabling via URL. Layers can be * nested arbitrarily deep. - * NOTE Should we start doing this a lot, consider memoization - * @param layer - layer from ol/format/WMSCapabilities - * @param name - name to search for - * @returns capabilities layer with matching name + * NOTE: Should we start doing this a lot, consider memoization. + * + * @param layer - layer from ol/format/WMSCapabilities. + * @param name - name to search for. + * @returns capabilities layer with matching name. */ -const deepLayerFind = (layer, name: string) => { +function deepLayerFind(layer, name: string) { if (Array.isArray(layer)) { return ( layer.map((l) => deepLayerFind(l, name)).find((l) => l !== null) || null @@ -32,8 +32,8 @@ const deepLayerFind = (layer, name: string) => { } /** - * @param style - style of a layer from ol/format/WMSCapabilities - * @returns array of all found legend URLs + * @param style - style of a layer from ol/format/WMSCapabilities. + * @returns array of all found legend URLs. */ const getAllLegendURLs = (style): string[] => (Array.isArray(style) ? style : [style]) @@ -48,27 +48,21 @@ const getAllLegendURLs = (style): string[] => .flat(1) /** - * @param capabilities - capabilities from ol/format/WMSCapabilities - * @param name - name of the layer to find title for - * @returns title, or empty string if not found + * @param capabilities - capabilities from ol/format/WMSCapabilities. + * @param name - name of the layer to find title for. + * @returns title, or empty string if not found. */ -export const findLayerTitleInCapabilitiesByName = ( - capabilities, - name: string -): string => { +export function findLayerTitleInCapabilitiesByName(capabilities, name: string) { const layer = deepLayerFind(capabilities.Capability.Layer, name) return layer?.Title || '' } /** - * @param capabilities - capabilities from ol/format/WMSCapabilities - * @param name - name of the layer to find legendURL for - * @returns legend URL as string, or empty string if not found + * @param capabilities - capabilities from ol/format/WMSCapabilities. + * @param name - name of the layer to find legendURL for. + * @returns legend URL as string, or empty string if not found. */ -export const findLegendUrlInCapabilitiesByName = ( - capabilities, - name: string -): string => { +export function findLegendUrlInCapabilitiesByName(capabilities, name: string) { const layer = deepLayerFind(capabilities.Capability.Layer, name) const style = layer?.Style if (!style) { From 326bcc59a2cc155fb8cc55f38331a0faadebf644 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Wed, 10 Sep 2025 18:03:56 +0200 Subject: [PATCH 406/697] chore(layerChooser): remove migrated functionality --- .../plugins/LayerChooser/CHANGELOG.md | 42 --- vue2/packages/plugins/LayerChooser/LICENSE | 287 ------------------ .../plugins/LayerChooser/package.json | 37 --- .../src/components/LayerWrapper.vue | 98 ------ .../LayerChooser/src/components/Options.vue | 134 -------- .../plugins/LayerChooser/src/index.ts | 20 -- .../plugins/LayerChooser/src/store/index.ts | 124 -------- .../plugins/LayerChooser/src/types.ts | 33 -- .../utils/getOpenedOptionsServiceLayers.ts | 32 -- .../plugins/LayerChooser/vite.config.js | 3 - 10 files changed, 810 deletions(-) delete mode 100644 vue2/packages/plugins/LayerChooser/CHANGELOG.md delete mode 100644 vue2/packages/plugins/LayerChooser/LICENSE delete mode 100644 vue2/packages/plugins/LayerChooser/package.json delete mode 100644 vue2/packages/plugins/LayerChooser/src/components/LayerWrapper.vue delete mode 100644 vue2/packages/plugins/LayerChooser/src/components/Options.vue delete mode 100644 vue2/packages/plugins/LayerChooser/src/index.ts delete mode 100644 vue2/packages/plugins/LayerChooser/src/store/index.ts delete mode 100644 vue2/packages/plugins/LayerChooser/src/types.ts delete mode 100644 vue2/packages/plugins/LayerChooser/src/utils/getOpenedOptionsServiceLayers.ts delete mode 100644 vue2/packages/plugins/LayerChooser/vite.config.js diff --git a/vue2/packages/plugins/LayerChooser/CHANGELOG.md b/vue2/packages/plugins/LayerChooser/CHANGELOG.md deleted file mode 100644 index 12f7b5b07..000000000 --- a/vue2/packages/plugins/LayerChooser/CHANGELOG.md +++ /dev/null @@ -1,42 +0,0 @@ -# CHANGELOG - -## unpublished - -- Feature: Change configuration of `layer.type` to be set to `background` or any other String. All layers that have their `type` not set to `background` are considered "overlays". For the type `mask` locales are already implemented. For any additional type, these have to be added separately. -- Feature: Add new exported type `DisabledLayers` describing an object structure mapping layerIds to whether the respective layer is disabled or not. -- Fix: Layer options layer names are now translated if they're locale keys. -- Fix: Resolve an issue of loosing visible focus when using the keyboard to open or close the layer options menu. - -## 2.1.0 - -- Feature: Add new configuration parameter `component` to be able to interchange the UI component of this plugin. -- Feature: Expose `Options.vue` as new export `LayerChooserOptions` in order to use it in custom implementations. -- Feature: Expose `LayerWrapper.vue` as new export `LayerChooserLayerWrapper` in order to use it in custom implementations. -- Fix: Resolve a bug where keyboard navigation in radio groups didn't work. -- Chore: The documentation for `minZoom` and `maxZoom` has been updated regarding their inclusive interpretation of the zoom value. - -## 2.0.0 - -- Breaking: Upgrade `@masterportal/masterportalapi` from `2.40.0` to `2.45.0` and subsequently `ol` from `^9.2.4` to `^10.3.1`. -- Fix: Use plural for german description of the localization key `plugins.layerChooser.backgroundTitle`. - -## 1.2.1 - -- Fix: Move relevant documentation of `layers` to `@polar/core`. -- Fix: The LayerChooser plugin will keep working on the error that a layer without entry in the service register has been configured. The layer will not be displayed. -- Fix: An outdated warning has been removed. -- Fix: Adjust documentation to properly describe optionality of configuration parameters. -- Fix: Some type issues have been resolved. -- Fix: Add missing peerDependencies `@masterportal/masterportalapi@2.40.0` and `ol@^9.2.4`. - -## 1.2.0 - -- Feature: Improved implementation to make plugin SPA-ready. - -## 1.1.0 - -- Feature: Hide obstructive tooltip on small devices. - -## 1.0.0 - -Initial release. diff --git a/vue2/packages/plugins/LayerChooser/LICENSE b/vue2/packages/plugins/LayerChooser/LICENSE deleted file mode 100644 index c29ce2f83..000000000 --- a/vue2/packages/plugins/LayerChooser/LICENSE +++ /dev/null @@ -1,287 +0,0 @@ - EUROPEAN UNION PUBLIC LICENCE v. 1.2 - EUPL © the European Union 2007, 2016 - -This European Union Public Licence (the ‘EUPL’) applies to the Work (as defined -below) which is provided under the terms of this Licence. Any use of the Work, -other than as authorised under this Licence is prohibited (to the extent such -use is covered by a right of the copyright holder of the Work). - -The Work is provided under the terms of this Licence when the Licensor (as -defined below) has placed the following notice immediately following the -copyright notice for the Work: - - Licensed under the EUPL - -or has expressed by any other means his willingness to license under the EUPL. - -1. Definitions - -In this Licence, the following terms have the following meaning: - -- ‘The Licence’: this Licence. - -- ‘The Original Work’: the work or software distributed or communicated by the - Licensor under this Licence, available as Source Code and also as Executable - Code as the case may be. - -- ‘Derivative Works’: the works or software that could be created by the - Licensee, based upon the Original Work or modifications thereof. This Licence - does not define the extent of modification or dependence on the Original Work - required in order to classify a work as a Derivative Work; this extent is - determined by copyright law applicable in the country mentioned in Article 15. - -- ‘The Work’: the Original Work or its Derivative Works. - -- ‘The Source Code’: the human-readable form of the Work which is the most - convenient for people to study and modify. - -- ‘The Executable Code’: any code which has generally been compiled and which is - meant to be interpreted by a computer as a program. - -- ‘The Licensor’: the natural or legal person that distributes or communicates - the Work under the Licence. - -- ‘Contributor(s)’: any natural or legal person who modifies the Work under the - Licence, or otherwise contributes to the creation of a Derivative Work. - -- ‘The Licensee’ or ‘You’: any natural or legal person who makes any usage of - the Work under the terms of the Licence. - -- ‘Distribution’ or ‘Communication’: any act of selling, giving, lending, - renting, distributing, communicating, transmitting, or otherwise making - available, online or offline, copies of the Work or providing access to its - essential functionalities at the disposal of any other natural or legal - person. - -2. Scope of the rights granted by the Licence - -The Licensor hereby grants You a worldwide, royalty-free, non-exclusive, -sublicensable licence to do the following, for the duration of copyright vested -in the Original Work: - -- use the Work in any circumstance and for all usage, -- reproduce the Work, -- modify the Work, and make Derivative Works based upon the Work, -- communicate to the public, including the right to make available or display - the Work or copies thereof to the public and perform publicly, as the case may - be, the Work, -- distribute the Work or copies thereof, -- lend and rent the Work or copies thereof, -- sublicense rights in the Work or copies thereof. - -Those rights can be exercised on any media, supports and formats, whether now -known or later invented, as far as the applicable law permits so. - -In the countries where moral rights apply, the Licensor waives his right to -exercise his moral right to the extent allowed by law in order to make effective -the licence of the economic rights here above listed. - -The Licensor grants to the Licensee royalty-free, non-exclusive usage rights to -any patents held by the Licensor, to the extent necessary to make use of the -rights granted on the Work under this Licence. - -3. Communication of the Source Code - -The Licensor may provide the Work either in its Source Code form, or as -Executable Code. If the Work is provided as Executable Code, the Licensor -provides in addition a machine-readable copy of the Source Code of the Work -along with each copy of the Work that the Licensor distributes or indicates, in -a notice following the copyright notice attached to the Work, a repository where -the Source Code is easily and freely accessible for as long as the Licensor -continues to distribute or communicate the Work. - -4. Limitations on copyright - -Nothing in this Licence is intended to deprive the Licensee of the benefits from -any exception or limitation to the exclusive rights of the rights owners in the -Work, of the exhaustion of those rights or of other applicable limitations -thereto. - -5. Obligations of the Licensee - -The grant of the rights mentioned above is subject to some restrictions and -obligations imposed on the Licensee. Those obligations are the following: - -Attribution right: The Licensee shall keep intact all copyright, patent or -trademarks notices and all notices that refer to the Licence and to the -disclaimer of warranties. The Licensee must include a copy of such notices and a -copy of the Licence with every copy of the Work he/she distributes or -communicates. The Licensee must cause any Derivative Work to carry prominent -notices stating that the Work has been modified and the date of modification. - -Copyleft clause: If the Licensee distributes or communicates copies of the -Original Works or Derivative Works, this Distribution or Communication will be -done under the terms of this Licence or of a later version of this Licence -unless the Original Work is expressly distributed only under this version of the -Licence — for example by communicating ‘EUPL v. 1.2 only’. The Licensee -(becoming Licensor) cannot offer or impose any additional terms or conditions on -the Work or Derivative Work that alter or restrict the terms of the Licence. - -Compatibility clause: If the Licensee Distributes or Communicates Derivative -Works or copies thereof based upon both the Work and another work licensed under -a Compatible Licence, this Distribution or Communication can be done under the -terms of this Compatible Licence. For the sake of this clause, ‘Compatible -Licence’ refers to the licences listed in the appendix attached to this Licence. -Should the Licensee's obligations under the Compatible Licence conflict with -his/her obligations under this Licence, the obligations of the Compatible -Licence shall prevail. - -Provision of Source Code: When distributing or communicating copies of the Work, -the Licensee will provide a machine-readable copy of the Source Code or indicate -a repository where this Source will be easily and freely available for as long -as the Licensee continues to distribute or communicate the Work. - -Legal Protection: This Licence does not grant permission to use the trade names, -trademarks, service marks, or names of the Licensor, except as required for -reasonable and customary use in describing the origin of the Work and -reproducing the content of the copyright notice. - -6. Chain of Authorship - -The original Licensor warrants that the copyright in the Original Work granted -hereunder is owned by him/her or licensed to him/her and that he/she has the -power and authority to grant the Licence. - -Each Contributor warrants that the copyright in the modifications he/she brings -to the Work are owned by him/her or licensed to him/her and that he/she has the -power and authority to grant the Licence. - -Each time You accept the Licence, the original Licensor and subsequent -Contributors grant You a licence to their contributions to the Work, under the -terms of this Licence. - -7. Disclaimer of Warranty - -The Work is a work in progress, which is continuously improved by numerous -Contributors. It is not a finished work and may therefore contain defects or -‘bugs’ inherent to this type of development. - -For the above reason, the Work is provided under the Licence on an ‘as is’ basis -and without warranties of any kind concerning the Work, including without -limitation merchantability, fitness for a particular purpose, absence of defects -or errors, accuracy, non-infringement of intellectual property rights other than -copyright as stated in Article 6 of this Licence. - -This disclaimer of warranty is an essential part of the Licence and a condition -for the grant of any rights to the Work. - -8. Disclaimer of Liability - -Except in the cases of wilful misconduct or damages directly caused to natural -persons, the Licensor will in no event be liable for any direct or indirect, -material or moral, damages of any kind, arising out of the Licence or of the use -of the Work, including without limitation, damages for loss of goodwill, work -stoppage, computer failure or malfunction, loss of data or any commercial -damage, even if the Licensor has been advised of the possibility of such damage. -However, the Licensor will be liable under statutory product liability laws as -far such laws apply to the Work. - -9. Additional agreements - -While distributing the Work, You may choose to conclude an additional agreement, -defining obligations or services consistent with this Licence. However, if -accepting obligations, You may act only on your own behalf and on your sole -responsibility, not on behalf of the original Licensor or any other Contributor, -and only if You agree to indemnify, defend, and hold each Contributor harmless -for any liability incurred by, or claims asserted against such Contributor by -the fact You have accepted any warranty or additional liability. - -10. Acceptance of the Licence - -The provisions of this Licence can be accepted by clicking on an icon ‘I agree’ -placed under the bottom of a window displaying the text of this Licence or by -affirming consent in any other similar way, in accordance with the rules of -applicable law. Clicking on that icon indicates your clear and irrevocable -acceptance of this Licence and all of its terms and conditions. - -Similarly, you irrevocably accept this Licence and all of its terms and -conditions by exercising any rights granted to You by Article 2 of this Licence, -such as the use of the Work, the creation by You of a Derivative Work or the -Distribution or Communication by You of the Work or copies thereof. - -11. Information to the public - -In case of any Distribution or Communication of the Work by means of electronic -communication by You (for example, by offering to download the Work from a -remote location) the distribution channel or media (for example, a website) must -at least provide to the public the information requested by the applicable law -regarding the Licensor, the Licence and the way it may be accessible, concluded, -stored and reproduced by the Licensee. - -12. Termination of the Licence - -The Licence and the rights granted hereunder will terminate automatically upon -any breach by the Licensee of the terms of the Licence. - -Such a termination will not terminate the licences of any person who has -received the Work from the Licensee under the Licence, provided such persons -remain in full compliance with the Licence. - -13. Miscellaneous - -Without prejudice of Article 9 above, the Licence represents the complete -agreement between the Parties as to the Work. - -If any provision of the Licence is invalid or unenforceable under applicable -law, this will not affect the validity or enforceability of the Licence as a -whole. Such provision will be construed or reformed so as necessary to make it -valid and enforceable. - -The European Commission may publish other linguistic versions or new versions of -this Licence or updated versions of the Appendix, so far this is required and -reasonable, without reducing the scope of the rights granted by the Licence. New -versions of the Licence will be published with a unique version number. - -All linguistic versions of this Licence, approved by the European Commission, -have identical value. Parties can take advantage of the linguistic version of -their choice. - -14. Jurisdiction - -Without prejudice to specific agreement between parties, - -- any litigation resulting from the interpretation of this License, arising - between the European Union institutions, bodies, offices or agencies, as a - Licensor, and any Licensee, will be subject to the jurisdiction of the Court - of Justice of the European Union, as laid down in article 272 of the Treaty on - the Functioning of the European Union, - -- any litigation arising between other parties and resulting from the - interpretation of this License, will be subject to the exclusive jurisdiction - of the competent court where the Licensor resides or conducts its primary - business. - -15. Applicable Law - -Without prejudice to specific agreement between parties, - -- this Licence shall be governed by the law of the European Union Member State - where the Licensor has his seat, resides or has his registered office, - -- this licence shall be governed by Belgian law if the Licensor has no seat, - residence or registered office inside a European Union Member State. - -Appendix - -‘Compatible Licences’ according to Article 5 EUPL are: - -- GNU General Public License (GPL) v. 2, v. 3 -- GNU Affero General Public License (AGPL) v. 3 -- Open Software License (OSL) v. 2.1, v. 3.0 -- Eclipse Public License (EPL) v. 1.0 -- CeCILL v. 2.0, v. 2.1 -- Mozilla Public Licence (MPL) v. 2 -- GNU Lesser General Public Licence (LGPL) v. 2.1, v. 3 -- Creative Commons Attribution-ShareAlike v. 3.0 Unported (CC BY-SA 3.0) for - works other than software -- European Union Public Licence (EUPL) v. 1.1, v. 1.2 -- Québec Free and Open-Source Licence — Reciprocity (LiLiQ-R) or Strong - Reciprocity (LiLiQ-R+). - -The European Commission may update this Appendix to later versions of the above -licences without producing a new version of the EUPL, as long as they provide -the rights granted in Article 2 of this Licence and protect the covered Source -Code from exclusive appropriation. - -All other changes or additions to this Appendix require the production of a new -EUPL version. \ No newline at end of file diff --git a/vue2/packages/plugins/LayerChooser/package.json b/vue2/packages/plugins/LayerChooser/package.json deleted file mode 100644 index 3a00a8d89..000000000 --- a/vue2/packages/plugins/LayerChooser/package.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "@polar/plugin-layer-chooser", - "version": "2.1.0", - "description": "LayerChooser plugin for POLAR that adds a layer selection and configuration UI element for both backgrounds and overlays.", - "keywords": [ - "OpenLayers", - "ol", - "POLAR", - "plugin", - "LayerChooser", - "layer" - ], - "license": "EUPL-1.2", - "type": "module", - "author": "Dataport AöR ", - "main": "src/index.ts", - "repository": { - "type": "git", - "url": "git+https://github.com/Dataport/polar.git", - "directory": "packages/plugins/LayerChooser" - }, - "files": [ - "src/**/*", - "CHANGELOG.md" - ], - "peerDependencies": { - "@masterportal/masterportalapi": "2.48.0", - "@repositoryname/vuex-generators": "^1.1.2", - "ol": "^10.4.0", - "vue": "^2.6.14", - "vuex": "^3.6.2" - }, - "devDependencies": { - "@polar/lib-custom-types": "^2.0.0", - "@polar/lib-test-mount-parameters": "^1.3.2" - } -} diff --git a/vue2/packages/plugins/LayerChooser/src/components/LayerWrapper.vue b/vue2/packages/plugins/LayerChooser/src/components/LayerWrapper.vue deleted file mode 100644 index d090e80f1..000000000 --- a/vue2/packages/plugins/LayerChooser/src/components/LayerWrapper.vue +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - diff --git a/vue2/packages/plugins/LayerChooser/src/components/Options.vue b/vue2/packages/plugins/LayerChooser/src/components/Options.vue deleted file mode 100644 index 853e8e306..000000000 --- a/vue2/packages/plugins/LayerChooser/src/components/Options.vue +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - diff --git a/vue2/packages/plugins/LayerChooser/src/index.ts b/vue2/packages/plugins/LayerChooser/src/index.ts deleted file mode 100644 index 5fe1c5ca9..000000000 --- a/vue2/packages/plugins/LayerChooser/src/index.ts +++ /dev/null @@ -1,20 +0,0 @@ -import Vue from 'vue' -import { LayerChooserConfiguration } from '@polar/lib-custom-types' -import { LayerChooser } from './components' -import locales from './locales' -import { makeStoreModule } from './store' - -import { type DisabledLayers } from './types' -import LayerChooserLayerWrapper from './components/LayerWrapper.vue' -import LayerChooserOptions from './components/Options.vue' - -export { type DisabledLayers, LayerChooserLayerWrapper, LayerChooserOptions } - -export default (options: LayerChooserConfiguration) => (instance: Vue) => - instance.$store.dispatch('addComponent', { - name: 'layerChooser', - plugin: LayerChooser, - locales, - storeModule: makeStoreModule(), - options, - }) diff --git a/vue2/packages/plugins/LayerChooser/src/store/index.ts b/vue2/packages/plugins/LayerChooser/src/store/index.ts deleted file mode 100644 index 40d769ad3..000000000 --- a/vue2/packages/plugins/LayerChooser/src/store/index.ts +++ /dev/null @@ -1,124 +0,0 @@ -import { generateSimpleGetters } from '@repositoryname/vuex-generators' -import { - LayerConfigurationOptionLayers, - PolarModule, -} from '@polar/lib-custom-types' -import { rawLayerList } from '@masterportal/masterportalapi' -import { ImageWMS, TileWMS } from 'ol/source' -import Layer from 'ol/layer/Layer' -import { LayerChooserGetters, LayerChooserState } from '../types' -import { getOpenedOptionsServiceLayers } from '../utils/getOpenedOptionsServiceLayers' - -export const getInitialState = (): LayerChooserState => ({ - backgrounds: [], - masks: [], -}) - -export const makeStoreModule = () => { - const storeModule: PolarModule = { - namespaced: true, - state: getInitialState(), - actions: { - toggleOpenedOptionsServiceLayer( - { - commit, - rootGetters, - getters: { - openedOptionsService, - openedOptionsServiceLayers, - activeLayerIds, - }, - }, - value - ) { - // keep configured layer order - vuetify puts last activated last - const sortedValue = - openedOptionsServiceLayers === null - ? value - : openedOptionsServiceLayers - .filter(({ layerName }) => value.includes(layerName)) - .map(({ layerName }) => layerName) - .reverse() - const olLayer = rootGetters.map - .getLayers() - .getArray() - .find((l) => l.get('id') === openedOptionsService.id) as Layer< - ImageWMS | TileWMS - > - const olSource = olLayer?.getSource?.() - - if (!olLayer || !olSource) { - console.error( - `@polar/plugin-layer-chooser: Action 'toggleOpenedOptionsServiceLayer' failed on ${openedOptionsService.id} with value ${sortedValue}. Layer not found in OL, or source not initialized in OL.` - ) - return - } - - const updatedParams = { ...olSource.getParams(), LAYERS: sortedValue } - - olSource.updateParams(updatedParams) - commit('setActiveLayerIds', { - ...activeLayerIds, - [openedOptionsService.id]: sortedValue, - }) - }, - }, - getters: { - ...generateSimpleGetters(getInitialState()), - idsWithOptions(_, { backgrounds, masks }) { - return [...backgrounds, ...masks] - .filter((layer) => Boolean(layer.options)) - .map((layer) => layer.id) - }, - openedOptionsService(_, { backgrounds, masks, openedOptions }) { - return [...backgrounds, ...masks].find( - (service) => service.id === openedOptions - ) - }, - openedOptionsServiceLayers(_, { openedOptionsService }, __, rootGetters) { - const layers: LayerConfigurationOptionLayers | undefined = - openedOptionsService?.options?.layers - - if (typeof layers === 'undefined') { - return null - } - - const serviceDefinition = rawLayerList.getLayerWhere({ - id: openedOptionsService.id, - }) - - if (!serviceDefinition.layers) { - console.error( - '@polar/plugin-layer-chooser: Trying to configure layers of a layer without "layers" field.', - serviceDefinition - ) - return null - } - - const wmsCapabilitiesJson = rootGetters?.[ - 'capabilities/wmsCapabilitiesAsJsonById' - ](openedOptionsService.id) - - if (wmsCapabilitiesJson === null) { - console.error( - `@polar/plugin-layer-chooser: CapabilitiesJson for layer ${JSON.stringify( - openedOptionsService - )} is null.` - ) - return null - } - - return getOpenedOptionsServiceLayers( - layers.order?.split?.(',') || serviceDefinition.layers.split(','), - layers, - wmsCapabilitiesJson - ) - }, - shownMasks({ masks }) { - return masks.filter(({ hideInMenu }) => !hideInMenu) - }, - }, - } - - return storeModule -} diff --git a/vue2/packages/plugins/LayerChooser/src/types.ts b/vue2/packages/plugins/LayerChooser/src/types.ts deleted file mode 100644 index 2a9c60bef..000000000 --- a/vue2/packages/plugins/LayerChooser/src/types.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { LayerConfiguration } from '@polar/lib-custom-types' -import { VueConstructor } from 'vue' - -export type DisabledLayers = Record - -export interface LayerChooserState { - backgrounds: LayerConfiguration[] - availableBackgrounds: LayerConfiguration[] - availableMasks: LayerConfiguration[] - masks: LayerConfiguration[] - activeBackgroundId: string - activeMaskIds: string[] - /** maps layer id to its currently active layers by name - * only kept track of when layer's layers are configurable */ - activeLayerIds: Record -} - -export interface LayerChooserGetters extends LayerChooserState { - disabledBackgrounds: DisabledLayers - disabledMasks: DisabledLayers - displayOptionsForType: Record - idsWithOptions: string[] - masksSeparatedByType: Record - openedOptionsService: LayerConfiguration - openedOptionsServiceLayers: LayerOption[] | null - shownMasks: LayerConfiguration[] -} - -export interface LayerOption { - displayName: string - layerName: string - layerImage: string | null -} diff --git a/vue2/packages/plugins/LayerChooser/src/utils/getOpenedOptionsServiceLayers.ts b/vue2/packages/plugins/LayerChooser/src/utils/getOpenedOptionsServiceLayers.ts deleted file mode 100644 index 56181975c..000000000 --- a/vue2/packages/plugins/LayerChooser/src/utils/getOpenedOptionsServiceLayers.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { LayerConfigurationOptionLayers } from '@polar/lib-custom-types' -import { - findLayerTitleInCapabilitiesByName, - findLegendUrlInCapabilitiesByName, -} from './findInCapabilities' - -export const getOpenedOptionsServiceLayers = ( - technicalLayerNames: string[], - layers: LayerConfigurationOptionLayers, - wmsCapabilitiesJson: object -) => - technicalLayerNames.map((technicalLayerName) => ({ - layerName: technicalLayerName, - displayName: - (layers.title === true - ? findLayerTitleInCapabilitiesByName( - wmsCapabilitiesJson, - technicalLayerName - ) - : layers.title === false - ? technicalLayerName - : layers.title?.[technicalLayerName]) || technicalLayerName, - layerImage: - layers.legend === false - ? null - : layers.legend === true - ? findLegendUrlInCapabilitiesByName( - wmsCapabilitiesJson, - technicalLayerName - ) - : layers.legend?.[technicalLayerName] || null, - })) diff --git a/vue2/packages/plugins/LayerChooser/vite.config.js b/vue2/packages/plugins/LayerChooser/vite.config.js deleted file mode 100644 index 0d2ec38a1..000000000 --- a/vue2/packages/plugins/LayerChooser/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import { getCodeConfig } from '../../../viteConfigs' - -export default getCodeConfig() From 9925f1a52d09f7225ae9c9e21710276ede30d1cc Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Wed, 10 Sep 2025 18:11:04 +0200 Subject: [PATCH 407/697] refactor(layerChooser): add documentation of layerChooser to relevant typedoc --- src/core/types/layer.ts | 46 +++++--- src/plugins/layerChooser/index.ts | 4 + vue2/packages/plugins/LayerChooser/README.md | 111 ------------------- 3 files changed, 34 insertions(+), 127 deletions(-) delete mode 100644 vue2/packages/plugins/LayerChooser/README.md diff --git a/src/core/types/layer.ts b/src/core/types/layer.ts index d27111afc..fe64ee116 100644 --- a/src/core/types/layer.ts +++ b/src/core/types/layer.ts @@ -2,10 +2,9 @@ export interface LayerConfigurationOptionLayers { /** * Legend image to be used for sub-layer. If false, no image is displayed. * If true, it is assumed an image exists in the layer's GetCapabilities, and - * that will be used. If Record, it maps the layer name to a linked image. + * that will be used. If Record, it maps the layer name to a linked image url. */ legend?: boolean | Record - /** * Comma-separated re-ordering of service layer's 'layer' specification. * Layer's not specified in service definition, but in order, are initially @@ -14,7 +13,6 @@ export interface LayerConfigurationOptionLayers { * specified in neither are always invisible. */ order?: string - /** * Title to be displayed for sub-layer. If false, layer name itself will * be used as given in service description 'layers' field. If true, it is @@ -31,10 +29,34 @@ export type LayerType = 'background' | 'mask' export interface LayerConfigurationOptions { /** * Named matching OGC-specification of a WMS layer's layers. + * + * If configured, all configured _layers of the layer_ can be turned off and + * on by the user. + * + * ⚠️ Only implemented for WMS. Only implemented for top layers; that is, only + * first level of nesting is considered. + * + * @example + * ``` + * options: { + * layers: { + * order: '6,24,25,4,3,2,1,0', + * title: { + * '6': 'Monument area', + * '24': 'Majority of structures', + * '25': 'Material group', + * '4': 'Architectural monument', + * '3': 'Natural monument', + * '2': 'Water bodies', + * '1': 'Architectural monument (area)', + * '0': 'Natural monument (area)', + * }, + * legend: true, + * }, + * }, + * ``` */ layers: LayerConfigurationOptionLayers - // NOT IMPLEMENTED - // transparency: boolean } export interface LayerConfiguration { @@ -42,46 +64,39 @@ export interface LayerConfiguration { * Unique id to identify the layer. */ id: string - /** * Human-readable identifier and value to be displayed in the UI. */ name: string - /** * Whether the layer is a background layer or a feature layer with specific information. */ type: LayerType - /** * layers may have their own gfiMode. */ gfiMode?: 'bboxDot' | 'intersects' - /** * Whether the mask-layer should be hidden from the LayerChooser selection menu. */ hideInMenu?: boolean - /** * The maximum zoom level the layer will be rendered in. * * @defaultValue Number.MAX_SAFE_INTEGER */ maxZoom?: number - /** * The minimum zoom level the layer will be rendered in. * * @defaultValue 0 */ minZoom?: number - /** - * Enables a configuration feature for the layer in its selection. + * Enables a configuration feature for the layer in its selection in the UI of + * the LayerChooser. */ options?: LayerConfigurationOptions - /** * ID of the used style. If the layer is also configured in {@link MapConfiguration.markers | `mapConfiguration.markers`}, * that configuration takes precedence over the configured `styleId`. Only applicable for vector-type layers. @@ -89,9 +104,8 @@ export interface LayerConfiguration { * Defaults and fallbacks to OpenLayers default styling. */ styleId?: string - /** - * Whether the layer should be rendered + * Initial visibility of the layers. * * @defaultValue false */ diff --git a/src/plugins/layerChooser/index.ts b/src/plugins/layerChooser/index.ts index cc5e297a1..67a6349b5 100644 --- a/src/plugins/layerChooser/index.ts +++ b/src/plugins/layerChooser/index.ts @@ -17,6 +17,10 @@ import type { PluginContainer, PluginOptions } from '@/core' * * Order of layers within a layer is always as initially configured. * + * The tool does not require any configuration for itself but is based on the + * {@link MapConfiguration.layers | `mapConfiguration.layers`}. + * It will infer `id` and `name` from that configuration. + * * @returns Plugin for use with {@link addPlugin}. */ export default function pluginLayerChooser( diff --git a/vue2/packages/plugins/LayerChooser/README.md b/vue2/packages/plugins/LayerChooser/README.md deleted file mode 100644 index d515f101f..000000000 --- a/vue2/packages/plugins/LayerChooser/README.md +++ /dev/null @@ -1,111 +0,0 @@ -# LayerChooser - -The tool offers layer selection to the user. - -## Scope - -The LayerChooser offers an additive (usually Overlays, technically named with `type: 'mask'`) and an exclusive (usually background maps, `type: 'background'`) selection of layers to the users. - -Order of layers within a layer is currently always as initially configured. - -## Configuration - -The tool does not require any configuration for itself (for configuration options see further below), but is based on the [`mapConfiguration.layers`](../../core/README.md#mapconfiguration.layers). -It will infer `id` and `name` from that configuration. - -This plugin requires the configuration of `mapConfiguration.layer.type`. -Also, this plugin also supports the optional configuration parameters `mapConfiguration.layer.hideInMenu`, `mapConfiguration.layer.minZoom`, `mapConfiguration.layer.maxZoom`, `mapConfiguration.layer.options` and `mapConfiguration.layer.visibility` which are described in more depth in the following table. - -| fieldName | type | description | -| - | - | - | -| type | 'background' \| string | Layer handling. If set to `'background'`, the layers are mutually exclusive. All other layers are considered "overlays" and can be stacked. For the type `'mask'` locales are already implemented. For any additional type, these have to be added per client. | -| hideInMenu | boolean? | Can be set for layers of type `'mask'` to hide them in the selection menu. | -| maxZoom | number? | If set, layer only available (and selectable) up to this zoom level, inclusively. | -| minZoom | number? | If set, layer only available (and selectable) from this zoom level on, inclusively. | -| options | options? | Shows a layer-specific sub-menu; its contents are configurable. | -| visibility | boolean? | Initial visibility. Defaults to `false`. | - -For details on the `displayComponent` attribute, refer to the [Global Plugin Parameters](../../core/README.md#global-plugin-parameters) section of `@polar/core`. - -**Example configuration:** - -```js -layers: [ - { - id: backgroundmap, - visibility: true, - type: 'background', - name: 'Basemap Grayscale', - }, - { - id: memorialsWFS, - visibility: false, - hideInMenu: true, - type: 'mask', - name: 'Memorial (WFS)', - minZoom: 7, - }, -] -``` - -### layerChooser - -| fieldName | type| description | -| - | - | - | -| component | VueConstructor? | Allows overriding the LayerChooser.vue component for custom design and functionality. Coding knowledge is required to use this feature, as any implementation will have to rely upon the VueX store model. Please refer to the implementation. | - -### layer.options - -An option wheel will appear in the layer chooser that allows opening a sub-menu with configured configuration options for the end user. - -| fieldName | type | description | -| - | - | - | -| layers | layer.options.layers | If configured, all configured _layers of the layer_ can be turned off and on by the user. ⚠️ Only implemented for WMS. Only implemented for top layers; that is, only first level of nesting is considered. | - -Example configuration: -```js -options: { - layers: { - order: '6,24,25,4,3,2,1,0', - title: { - '6': 'Monument area', - '24': 'Majority of structures', - '25': 'Material group', - '4': 'Architectural monument', - '3': 'Natural monument', - '2': 'Water bodies', - '1': 'Architectural monument (area)', - '0': 'Natural monument (area)', - }, - legend: true, - }, -}, -``` - -#### layer.options.layers - -This field is named like this to match the OGC specification for their name; that is, layers have layers that may have layers that may have layers, and so on. However, only the first level (a layer's layers) is currently implemented. - -| fieldName | type | description | -| - | - | - | -| legend | boolean \| Record? | Legend image to be used for sub-layer. If false, no image is displayed. If true, it is assumed an image exists in the layer's GetCapabilities, and that will be used. If Record, it maps the layer name to a linked image. The `legendUrl` can be any valid reachable image URL. | -| order | string? | Optional. If not given, field `layers` from service description will be used, and defines order of options. If layer defined in service description's `layers` and `order`, it's initially on. If only in `order`, it's initially off. If only in `layers`, it's always-on. If in neither, it's always-off. | -| title | boolean \| Record? | Title to be displayed for sub-layer. If false, layer name itself will be used as given in service description 'layers' field. If true, it is assumed a name exists in the layer's GetCapabilities, and that will be used. If Record, it maps the layer name to an arbitrary display name given by the configuration. The `layerName` can be any string. | - -Example configuration: -```js -layers: { - order: '6,24,25,4,3,2,1,0', - title: { - '6': 'Monument area', - '24': 'Majority of structures', - '25': 'Material group', - '4': 'Architectural monument', - '3': 'Natural monument', - '2': 'Water bodies', - '1': 'Architectural monument (area)', - '0': 'Natural monument (area)', - }, - legend: true, -}, -``` From 865f0458b95c85577030227f9011f11d1d754843 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Wed, 10 Sep 2025 18:27:52 +0200 Subject: [PATCH 408/697] refactor: combine both checkbox and radio inputs into one reusable component When additional inputs with a similar structure will be added, this component can easily be expanded. --- src/components/PolarCheckbox.ce.vue | 40 ---------------- src/components/PolarInput.ce.vue | 48 +++++++++++++++++++ src/components/PolarRadio.ce.vue | 37 -------------- .../components/LayerOptions.ce.vue | 5 +- .../components/LayerSelection.ce.vue | 9 ++-- 5 files changed, 56 insertions(+), 83 deletions(-) delete mode 100644 src/components/PolarCheckbox.ce.vue create mode 100644 src/components/PolarInput.ce.vue delete mode 100644 src/components/PolarRadio.ce.vue diff --git a/src/components/PolarCheckbox.ce.vue b/src/components/PolarCheckbox.ce.vue deleted file mode 100644 index fae7a5127..000000000 --- a/src/components/PolarCheckbox.ce.vue +++ /dev/null @@ -1,40 +0,0 @@ - - - - - diff --git a/src/components/PolarInput.ce.vue b/src/components/PolarInput.ce.vue new file mode 100644 index 000000000..ebb67651b --- /dev/null +++ b/src/components/PolarInput.ce.vue @@ -0,0 +1,48 @@ + + + + + diff --git a/src/components/PolarRadio.ce.vue b/src/components/PolarRadio.ce.vue deleted file mode 100644 index 31416bab4..000000000 --- a/src/components/PolarRadio.ce.vue +++ /dev/null @@ -1,37 +0,0 @@ - - - - - diff --git a/src/plugins/layerChooser/components/LayerOptions.ce.vue b/src/plugins/layerChooser/components/LayerOptions.ce.vue index 9906f73d2..60cb7dd4d 100644 --- a/src/plugins/layerChooser/components/LayerOptions.ce.vue +++ b/src/plugins/layerChooser/components/LayerOptions.ce.vue @@ -20,10 +20,11 @@ class="polar-layer-chooser-options-checkbox-wrapper" > - - @@ -29,10 +30,11 @@ :key="`polar-layer-chooser-mask-${type}-checkbox-${id}`" class="polar-layer-chooser-checkbox-wrapper" > - @@ -61,9 +63,8 @@ import { storeToRefs } from 'pinia' import { useLayerChooserStore } from '../store' import { PluginId } from '../types' import PolarCard from '@/components/PolarCard.ce.vue' -import PolarCheckbox from '@/components/PolarCheckbox.ce.vue' +import PolarInput from '@/components/PolarInput.ce.vue' import PolarInputGroup from '@/components/PolarInputGroup.ce.vue' -import PolarRadio from '@/components/PolarRadio.ce.vue' const layerChooserStore = useLayerChooserStore() const { From 7413fb4c9744afba52e6e7f909416611afa4fb0c Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Wed, 10 Sep 2025 19:03:43 +0200 Subject: [PATCH 409/697] refactor: update styling of reusable components based on design --- src/components/PolarCard.ce.vue | 2 +- src/components/PolarInput.ce.vue | 2 +- src/components/PolarInputGroup.ce.vue | 12 ++++++++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/components/PolarCard.ce.vue b/src/components/PolarCard.ce.vue index 89c055908..9f5b6e3c2 100644 --- a/src/components/PolarCard.ce.vue +++ b/src/components/PolarCard.ce.vue @@ -13,7 +13,7 @@ diff --git a/src/components/PolarInputGroup.ce.vue b/src/components/PolarInputGroup.ce.vue index 7c4f6c3d4..74d61a6e3 100644 --- a/src/components/PolarInputGroup.ce.vue +++ b/src/components/PolarInputGroup.ce.vue @@ -18,6 +18,18 @@ defineProps<{ From 6efd4f9387982f7c9ad22aac1ade9d944682039e Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Wed, 10 Sep 2025 19:16:16 +0200 Subject: [PATCH 412/697] fix(fullscreen): allow unscoped style tag for now --- src/plugins/fullscreen/components/FullscreenUI.ce.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/src/plugins/fullscreen/components/FullscreenUI.ce.vue b/src/plugins/fullscreen/components/FullscreenUI.ce.vue index aa3bafc5f..300e2b172 100644 --- a/src/plugins/fullscreen/components/FullscreenUI.ce.vue +++ b/src/plugins/fullscreen/components/FullscreenUI.ce.vue @@ -25,6 +25,7 @@ const { layout } = storeToRefs(useCoreStore()) const { fullscreenEnabled } = storeToRefs(useFullscreenStore()) + diff --git a/src/plugins/fullscreen/store.ts b/src/plugins/fullscreen/store.ts index d3591e6c4..736d6c6b2 100644 --- a/src/plugins/fullscreen/store.ts +++ b/src/plugins/fullscreen/store.ts @@ -23,6 +23,7 @@ export const useFullscreenStore = defineStore('plugins/fullscreen', () => { const configuration = computed( () => coreStore.configuration[PluginId] as FullscreenPluginOptions ) + const renderType = computed(() => configuration.value.renderType) const targetContainer = computed(() => { if (typeof configuration.value.targetContainer === 'string') { @@ -101,10 +102,10 @@ export const useFullscreenStore = defineStore('plugins/fullscreen', () => { * @defaultValue false */ fullscreenEnabled, - + /** @internal */ + renderType, /** @internal */ setupPlugin, - /** @internal */ teardownPlugin, } From a35a5efa89d50325d24454f811816372954fbf3e Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Wed, 10 Sep 2025 19:52:25 +0200 Subject: [PATCH 417/697] chore: shorten imports --- src/components/PolarIconButton.ce.vue | 2 +- src/core/components/PolarMap.ce.vue | 1 + src/core/components/PolarUI.ce.vue | 2 +- src/core/components/layouts/NineLayout.ce.vue | 4 ++-- src/core/components/layouts/StandardLayout.ce.vue | 2 +- src/plugins/fullscreen/components/FullscreenUI.ce.vue | 2 +- src/plugins/iconMenu/components/IconMenu.ce.vue | 2 +- src/plugins/iconMenu/components/NineRegionsButton.ce.vue | 2 +- src/plugins/iconMenu/components/NineRegionsMenu.ce.vue | 4 ++-- src/plugins/iconMenu/components/StandardMenu.ce.vue | 4 ++-- src/plugins/iconMenu/store.ts | 4 ++-- src/plugins/iconMenu/types.ts | 2 +- src/plugins/layerChooser/components/LayerOptions.ce.vue | 2 +- src/plugins/layerChooser/store.ts | 2 +- 14 files changed, 18 insertions(+), 17 deletions(-) diff --git a/src/components/PolarIconButton.ce.vue b/src/components/PolarIconButton.ce.vue index afe1477ba..76d487323 100644 --- a/src/components/PolarIconButton.ce.vue +++ b/src/components/PolarIconButton.ce.vue @@ -41,7 +41,7 @@ import { t, type TOptions } from 'i18next' import { storeToRefs } from 'pinia' import { computed, onMounted, ref, useTemplateRef } from 'vue' -import { useCoreStore } from '@/core/stores/export.ts' +import { useCoreStore } from '@/core/stores/export' const props = defineProps<{ action: () => void diff --git a/src/core/components/PolarMap.ce.vue b/src/core/components/PolarMap.ce.vue index f314587fd..e9afa3c83 100644 --- a/src/core/components/PolarMap.ce.vue +++ b/src/core/components/PolarMap.ce.vue @@ -105,6 +105,7 @@ function wheelEffect(event: WheelEvent) { onMounted(async () => { if (typeof mainStore.serviceRegister === 'string') { + // TODO: Add a general loader that shows until this is resolved - dem LLamas need food mainStore.serviceRegister = await new Promise[]>( (resolve) => rawLayerList.initializeLayerList(mainStore.serviceRegister, resolve) diff --git a/src/core/components/PolarUI.ce.vue b/src/core/components/PolarUI.ce.vue index b048d1702..c5e71dbe2 100644 --- a/src/core/components/PolarUI.ce.vue +++ b/src/core/components/PolarUI.ce.vue @@ -6,7 +6,7 @@ diff --git a/src/plugins/iconMenu/components/NineRegionsButton.ce.vue b/src/plugins/iconMenu/components/NineRegionsButton.ce.vue index 016a3cb20..947801ad4 100644 --- a/src/plugins/iconMenu/components/NineRegionsButton.ce.vue +++ b/src/plugins/iconMenu/components/NineRegionsButton.ce.vue @@ -13,7 +13,7 @@ import { storeToRefs } from 'pinia' import { inject, onMounted, ref, watch } from 'vue' import PolarIconButton from '@/components/PolarIconButton.ce.vue' -import { useIconMenuStore } from '@/plugins/iconMenu/store.ts' +import { useIconMenuStore } from '@/plugins/iconMenu/store' const props = defineProps<{ icon: string diff --git a/src/plugins/iconMenu/components/NineRegionsMenu.ce.vue b/src/plugins/iconMenu/components/NineRegionsMenu.ce.vue index f543a623e..7615d204a 100644 --- a/src/plugins/iconMenu/components/NineRegionsMenu.ce.vue +++ b/src/plugins/iconMenu/components/NineRegionsMenu.ce.vue @@ -57,8 +57,8 @@ import { watch, } from 'vue' import NineRegionsButton from './NineRegionsButton.ce.vue' -import { useCoreStore } from '@/core/stores/export.ts' -import { useIconMenuStore } from '@/plugins/iconMenu/store.ts' +import { useCoreStore } from '@/core/stores/export' +import { useIconMenuStore } from '@/plugins/iconMenu/store' const { clientHeight, deviceIsHorizontal, hasSmallWidth, hasWindowSize } = storeToRefs(useCoreStore()) diff --git a/src/plugins/iconMenu/components/StandardMenu.ce.vue b/src/plugins/iconMenu/components/StandardMenu.ce.vue index d3c2b1342..2916e4aa4 100644 --- a/src/plugins/iconMenu/components/StandardMenu.ce.vue +++ b/src/plugins/iconMenu/components/StandardMenu.ce.vue @@ -34,8 +34,8 @@ import { storeToRefs } from 'pinia' import { computed } from 'vue' import { toMerged } from 'es-toolkit' -import { useCoreStore } from '@/core/stores/export.ts' -import { useIconMenuStore } from '@/plugins/iconMenu/store.ts' +import { useCoreStore } from '@/core/stores/export' +import { useIconMenuStore } from '@/plugins/iconMenu/store' import PolarIconButton from '@/components/PolarIconButton.ce.vue' const { diff --git a/src/plugins/iconMenu/store.ts b/src/plugins/iconMenu/store.ts index f3e9c04d5..a0d1802f6 100644 --- a/src/plugins/iconMenu/store.ts +++ b/src/plugins/iconMenu/store.ts @@ -7,9 +7,9 @@ import { toMerged } from 'es-toolkit' import { defineStore } from 'pinia' import { type Component, computed, markRaw, ref } from 'vue' -import type { Menu } from './types.ts' +import type { Menu } from './types' import { addPlugin } from '@/core' -import { useCoreStore } from '@/core/stores/export.ts' +import { useCoreStore } from '@/core/stores/export' /* eslint-disable tsdoc/syntax */ /** diff --git a/src/plugins/iconMenu/types.ts b/src/plugins/iconMenu/types.ts index 05416f0bd..e58a46986 100644 --- a/src/plugins/iconMenu/types.ts +++ b/src/plugins/iconMenu/types.ts @@ -1,6 +1,6 @@ import type { Component } from 'vue' import type { PluginContainer, PluginOptions } from '@/core' -import type { NineLayoutTag } from '@/core/utils/NineLayoutTag.ts' +import type { NineLayoutTag } from '@/core/utils/NineLayoutTag' export const PluginId = 'iconMenu' diff --git a/src/plugins/layerChooser/components/LayerOptions.ce.vue b/src/plugins/layerChooser/components/LayerOptions.ce.vue index 60cb7dd4d..3cce84b0d 100644 --- a/src/plugins/layerChooser/components/LayerOptions.ce.vue +++ b/src/plugins/layerChooser/components/LayerOptions.ce.vue @@ -45,7 +45,7 @@ import { type LayerOptions, PluginId } from '../types' import PolarCard from '@/components/PolarCard.ce.vue' import PolarInput from '@/components/PolarInput.ce.vue' import PolarInputGroup from '@/components/PolarInputGroup.ce.vue' -import { useCoreStore } from '@/core/stores/export.ts' +import { useCoreStore } from '@/core/stores/export' const coreStore = useCoreStore() const layerChooserStore = useLayerChooserStore() diff --git a/src/plugins/layerChooser/store.ts b/src/plugins/layerChooser/store.ts index 36265b634..282a91dfa 100644 --- a/src/plugins/layerChooser/store.ts +++ b/src/plugins/layerChooser/store.ts @@ -17,7 +17,7 @@ import { getBackgroundsAndMasks } from './utils/getBackgroundsAndMasks' import { findLayerTitleInCapabilitiesByName, findLegendUrlInCapabilitiesByName, -} from './utils/findInCapabilities.ts' +} from './utils/findInCapabilities' import type { LayerConfiguration } from '@/core' import { useCoreStore } from '@/core/stores/export' From d482ba0681d03490104bb8c436c3d0d5041fafde Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Wed, 10 Sep 2025 19:58:33 +0200 Subject: [PATCH 418/697] chore: remove todo meant for another branch --- src/core/components/PolarMap.ce.vue | 1 - 1 file changed, 1 deletion(-) diff --git a/src/core/components/PolarMap.ce.vue b/src/core/components/PolarMap.ce.vue index e9afa3c83..f314587fd 100644 --- a/src/core/components/PolarMap.ce.vue +++ b/src/core/components/PolarMap.ce.vue @@ -105,7 +105,6 @@ function wheelEffect(event: WheelEvent) { onMounted(async () => { if (typeof mainStore.serviceRegister === 'string') { - // TODO: Add a general loader that shows until this is resolved - dem LLamas need food mainStore.serviceRegister = await new Promise[]>( (resolve) => rawLayerList.initializeLayerList(mainStore.serviceRegister, resolve) From 471448527c1dcc25a21e0402530545bfbf69c263 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Wed, 10 Sep 2025 20:24:33 +0200 Subject: [PATCH 419/697] fix(iconMenu): add file ending to appease architecture test --- src/plugins/iconMenu/types.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/iconMenu/types.ts b/src/plugins/iconMenu/types.ts index e58a46986..05416f0bd 100644 --- a/src/plugins/iconMenu/types.ts +++ b/src/plugins/iconMenu/types.ts @@ -1,6 +1,6 @@ import type { Component } from 'vue' import type { PluginContainer, PluginOptions } from '@/core' -import type { NineLayoutTag } from '@/core/utils/NineLayoutTag' +import type { NineLayoutTag } from '@/core/utils/NineLayoutTag.ts' export const PluginId = 'iconMenu' From 6048f1fedd2e15a1e3ae55bc581f0b1dea7f3e80 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Thu, 11 Sep 2025 08:58:21 +0200 Subject: [PATCH 420/697] refactor(layerChooser): add console error message if no background layer is configured --- src/plugins/layerChooser/store.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/plugins/layerChooser/store.ts b/src/plugins/layerChooser/store.ts index 282a91dfa..4bc12883c 100644 --- a/src/plugins/layerChooser/store.ts +++ b/src/plugins/layerChooser/store.ts @@ -115,6 +115,10 @@ export const useLayerChooserStore = defineStore('plugins/layerChooser', () => { backgrounds.value = configuredBackgrounds masks.value = configuredMasks + if (configuredBackgrounds.length === 0) { + console.error('No layers of type "background" have been configured.') + } + // At most one background, arbitrarily many masks setActiveBackgroundId( configuredBackgrounds.find(({ visibility }) => visibility)?.id || null From aa322850534fead443c98282b54c7e1cceecfe9b Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Thu, 11 Sep 2025 11:29:31 +0200 Subject: [PATCH 421/697] refactor(layerChooser): add missing empty line --- src/components/PolarInputGroup.ce.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/PolarInputGroup.ce.vue b/src/components/PolarInputGroup.ce.vue index 74d61a6e3..5996ab73d 100644 --- a/src/components/PolarInputGroup.ce.vue +++ b/src/components/PolarInputGroup.ce.vue @@ -8,6 +8,7 @@ + + + diff --git a/src/core/components/PolarContainer.ce.vue b/src/core/components/PolarContainer.ce.vue index 57d6d9655..df126ac6d 100644 --- a/src/core/components/PolarContainer.ce.vue +++ b/src/core/components/PolarContainer.ce.vue @@ -2,6 +2,10 @@
+
@@ -10,12 +14,16 @@ import { storeToRefs } from 'pinia' import { onBeforeUnmount, onMounted, + ref, useHost, useShadowRoot, useTemplateRef, + watch, } from 'vue' import { useMainStore } from '../stores/main' +import { useMoveHandleStore } from '../stores/moveHandle' import { loadKern } from '../utils/loadKern' +import MoveHandle from './MoveHandle.ce.vue' import PolarMap from './PolarMap.ce.vue' import PolarUI from './PolarUI.ce.vue' @@ -24,12 +32,17 @@ defineOptions({ }) const mainStore = useMainStore() -const { language } = storeToRefs(mainStore) +const { hasSmallWidth, hasWindowSize, language } = storeToRefs(mainStore) const polarWrapper = useTemplateRef('polar-wrapper') let resizeObserver: ResizeObserver | null = null +const { isActive } = storeToRefs(useMoveHandleStore()) +const moveHandleKey = ref(0) +// Make sure the element is properly updated. +watch(isActive, () => (moveHandleKey.value += 1)) + function updateClientDimensions() { mainStore.clientHeight = (polarWrapper.value as Element).clientHeight mainStore.clientWidth = (polarWrapper.value as Element).clientWidth diff --git a/src/core/stores/export.ts b/src/core/stores/export.ts index 141cff592..66197872d 100644 --- a/src/core/stores/export.ts +++ b/src/core/stores/export.ts @@ -13,6 +13,7 @@ import type { PolarPluginStore, } from '../types' import { useMainStore } from './main' +import { useMoveHandleStore } from './moveHandle' /* eslint-disable tsdoc/syntax */ /** @@ -23,6 +24,7 @@ import { useMainStore } from './main' /* eslint-enable tsdoc/syntax */ export const useCoreStore = defineStore('core', () => { const mainStore = useMainStore() + const moveHandleStore = useMoveHandleStore() function getPluginStore( id: T @@ -130,5 +132,19 @@ export const useCoreStore = defineStore('core', () => { * @alpha */ shadowRoot: computed(() => mainStore.shadowRoot), + /** + * Allows setting content to the MoveHandle to be displayed on small devices + * if the application has the same size as the window. + * + * @alpha + */ + setMoveHandle: moveHandleStore.setMoveHandle, + /** + * Allows setting an additional action button to be displayed as part of the + * MoveHandle. + * + * @alpha + */ + setMoveHandleActionButton: moveHandleStore.setMoveHandleActionButton, } }) diff --git a/src/core/stores/moveHandle.ts b/src/core/stores/moveHandle.ts new file mode 100644 index 000000000..897f01efd --- /dev/null +++ b/src/core/stores/moveHandle.ts @@ -0,0 +1,67 @@ +import { defineStore } from 'pinia' +import { type Component, markRaw, ref } from 'vue' +import type { TOptions } from 'i18next' +import type { MoveHandleProperties } from '../types' + +export const useMoveHandleStore = defineStore('moveHandle', () => { + const actionButton = ref(null) + const closeFunction = ref<(userInteraction: boolean) => void>(() => {}) + const closeIcon = ref('kern-icon--close') + const closeLabel = ref('') + const closeLabelOptions = ref({}) + const component = ref(null) + const isActive = ref(false) + const plugin = ref('') + + function setMoveHandle(moveHandle: MoveHandleProperties | null) { + if (moveHandle === null) { + closeFunction.value(false) + $reset() + return + } + // Makes sure the previous plugin is properly closed if the "normal" way of closing isn't used. + if (plugin.value !== moveHandle.plugin) { + closeFunction.value(false) + } + isActive.value = true + closeFunction.value = moveHandle.closeFunction + closeLabel.value = moveHandle.closeLabel + closeLabelOptions.value = moveHandle.closeLabelOptions + component.value = markRaw(moveHandle.component) + plugin.value = moveHandle.plugin + if (moveHandle.closeIcon) { + closeIcon.value = moveHandle.closeIcon + } + } + + function setMoveHandleActionButton(component: Component | null) { + actionButton.value = component === null ? null : markRaw(component) + } + + function $reset() { + actionButton.value = null + closeFunction.value = () => {} + closeIcon.value = 'kern-icon--close' + closeLabel.value = '' + closeLabelOptions.value = {} + component.value = null + isActive.value = false + plugin.value = '' + } + + return { + actionButton, + closeFunction, + closeIcon, + closeLabel, + closeLabelOptions, + component, + isActive, + plugin, + $reset, + /** @alpha */ + setMoveHandle, + /** @alpha */ + setMoveHandleActionButton, + } +}) diff --git a/src/core/types.ts b/src/core/types.ts index 626c92ddc..526dd9c75 100644 --- a/src/core/types.ts +++ b/src/core/types.ts @@ -1,5 +1,6 @@ +export * from './types/main' export * from './types/marker' -export * from './types/plugin' +export * from './types/moveHandle' export * from './types/layer' +export * from './types/plugin' export * from './types/theme' -export * from './types/main' diff --git a/src/core/types/moveHandle.ts b/src/core/types/moveHandle.ts new file mode 100644 index 000000000..7f3aaaa97 --- /dev/null +++ b/src/core/types/moveHandle.ts @@ -0,0 +1,12 @@ +import type { TOptions } from 'i18next' +import type { Component } from 'vue' + +export interface MoveHandleProperties { + closeFunction: (...args: unknown[]) => unknown + closeLabel: string + closeLabelOptions: TOptions + component: Component + /** Id of the plugin that added the moveHandle. */ + plugin: string + closeIcon?: string +} diff --git a/vue2/packages/components/CHANGELOG.md b/vue2/packages/components/CHANGELOG.md deleted file mode 100644 index 7c4426efe..000000000 --- a/vue2/packages/components/CHANGELOG.md +++ /dev/null @@ -1,24 +0,0 @@ -# CHANGELOG - -## 2.2.0 - -- Feature: Use newly added store parameter `deviceIsHorizontal` in place of computed value `isHorizontal`. - -## 2.1.1 - -- Fix: The GFI's new flag `userInteraction` on the close interaction is now filled and forwarded according to whether the close call was due to the user intentionally closing the GFI rather than opening a new GFI. This is required for a fix in the GFI plugin. - -## 2.1.0 - -- Feature: Add the possibility to update the icon of the button for closing the MoveHandle. -- Feature: Set the initial top value of the MoveHandle to 45% of the root elements height or the maximum possible height on opening. -- Fix: The top value was not properly reset leading to the initial top value having no effect if the MoveHandle is currently open. - -## 2.0.0 - -- Breaking: MoveHandle can now only be rendered once which is done in `@polar/core`. Please refer to the documentation of `@polar/core` on how to use this component. -- Feature: MoveHandle now remembers the previous position and sets it to the next content, if it doesn't exceed the maximum height. - -## 1.0.0 - -Initial release. diff --git a/vue2/packages/components/LICENSE b/vue2/packages/components/LICENSE deleted file mode 100644 index 4153cd377..000000000 --- a/vue2/packages/components/LICENSE +++ /dev/null @@ -1,287 +0,0 @@ - EUROPEAN UNION PUBLIC LICENCE v. 1.2 - EUPL © the European Union 2007, 2016 - -This European Union Public Licence (the ‘EUPL’) applies to the Work (as defined -below) which is provided under the terms of this Licence. Any use of the Work, -other than as authorised under this Licence is prohibited (to the extent such -use is covered by a right of the copyright holder of the Work). - -The Work is provided under the terms of this Licence when the Licensor (as -defined below) has placed the following notice immediately following the -copyright notice for the Work: - - Licensed under the EUPL - -or has expressed by any other means his willingness to license under the EUPL. - -1. Definitions - -In this Licence, the following terms have the following meaning: - -- ‘The Licence’: this Licence. - -- ‘The Original Work’: the work or software distributed or communicated by the - Licensor under this Licence, available as Source Code and also as Executable - Code as the case may be. - -- ‘Derivative Works’: the works or software that could be created by the - Licensee, based upon the Original Work or modifications thereof. This Licence - does not define the extent of modification or dependence on the Original Work - required in order to classify a work as a Derivative Work; this extent is - determined by copyright law applicable in the country mentioned in Article 15. - -- ‘The Work’: the Original Work or its Derivative Works. - -- ‘The Source Code’: the human-readable form of the Work which is the most - convenient for people to study and modify. - -- ‘The Executable Code’: any code which has generally been compiled and which is - meant to be interpreted by a computer as a program. - -- ‘The Licensor’: the natural or legal person that distributes or communicates - the Work under the Licence. - -- ‘Contributor(s)’: any natural or legal person who modifies the Work under the - Licence, or otherwise contributes to the creation of a Derivative Work. - -- ‘The Licensee’ or ‘You’: any natural or legal person who makes any usage of - the Work under the terms of the Licence. - -- ‘Distribution’ or ‘Communication’: any act of selling, giving, lending, - renting, distributing, communicating, transmitting, or otherwise making - available, online or offline, copies of the Work or providing access to its - essential functionalities at the disposal of any other natural or legal - person. - -2. Scope of the rights granted by the Licence - -The Licensor hereby grants You a worldwide, royalty-free, non-exclusive, -sublicensable licence to do the following, for the duration of copyright vested -in the Original Work: - -- use the Work in any circumstance and for all usage, -- reproduce the Work, -- modify the Work, and make Derivative Works based upon the Work, -- communicate to the public, including the right to make available or display - the Work or copies thereof to the public and perform publicly, as the case may - be, the Work, -- distribute the Work or copies thereof, -- lend and rent the Work or copies thereof, -- sublicense rights in the Work or copies thereof. - -Those rights can be exercised on any media, supports and formats, whether now -known or later invented, as far as the applicable law permits so. - -In the countries where moral rights apply, the Licensor waives his right to -exercise his moral right to the extent allowed by law in order to make effective -the licence of the economic rights here above listed. - -The Licensor grants to the Licensee royalty-free, non-exclusive usage rights to -any patents held by the Licensor, to the extent necessary to make use of the -rights granted on the Work under this Licence. - -3. Communication of the Source Code - -The Licensor may provide the Work either in its Source Code form, or as -Executable Code. If the Work is provided as Executable Code, the Licensor -provides in addition a machine-readable copy of the Source Code of the Work -along with each copy of the Work that the Licensor distributes or indicates, in -a notice following the copyright notice attached to the Work, a repository where -the Source Code is easily and freely accessible for as long as the Licensor -continues to distribute or communicate the Work. - -4. Limitations on copyright - -Nothing in this Licence is intended to deprive the Licensee of the benefits from -any exception or limitation to the exclusive rights of the rights owners in the -Work, of the exhaustion of those rights or of other applicable limitations -thereto. - -5. Obligations of the Licensee - -The grant of the rights mentioned above is subject to some restrictions and -obligations imposed on the Licensee. Those obligations are the following: - -Attribution right: The Licensee shall keep intact all copyright, patent or -trademarks notices and all notices that refer to the Licence and to the -disclaimer of warranties. The Licensee must include a copy of such notices and a -copy of the Licence with every copy of the Work he/she distributes or -communicates. The Licensee must cause any Derivative Work to carry prominent -notices stating that the Work has been modified and the date of modification. - -Copyleft clause: If the Licensee distributes or communicates copies of the -Original Works or Derivative Works, this Distribution or Communication will be -done under the terms of this Licence or of a later version of this Licence -unless the Original Work is expressly distributed only under this version of the -Licence — for example by communicating ‘EUPL v. 1.2 only’. The Licensee -(becoming Licensor) cannot offer or impose any additional terms or conditions on -the Work or Derivative Work that alter or restrict the terms of the Licence. - -Compatibility clause: If the Licensee Distributes or Communicates Derivative -Works or copies thereof based upon both the Work and another work licensed under -a Compatible Licence, this Distribution or Communication can be done under the -terms of this Compatible Licence. For the sake of this clause, ‘Compatible -Licence’ refers to the licences listed in the appendix attached to this Licence. -Should the Licensee's obligations under the Compatible Licence conflict with -his/her obligations under this Licence, the obligations of the Compatible -Licence shall prevail. - -Provision of Source Code: When distributing or communicating copies of the Work, -the Licensee will provide a machine-readable copy of the Source Code or indicate -a repository where this Source will be easily and freely available for as long -as the Licensee continues to distribute or communicate the Work. - -Legal Protection: This Licence does not grant permission to use the trade names, -trademarks, service marks, or names of the Licensor, except as required for -reasonable and customary use in describing the origin of the Work and -reproducing the content of the copyright notice. - -6. Chain of Authorship - -The original Licensor warrants that the copyright in the Original Work granted -hereunder is owned by him/her or licensed to him/her and that he/she has the -power and authority to grant the Licence. - -Each Contributor warrants that the copyright in the modifications he/she brings -to the Work are owned by him/her or licensed to him/her and that he/she has the -power and authority to grant the Licence. - -Each time You accept the Licence, the original Licensor and subsequent -Contributors grant You a licence to their contributions to the Work, under the -terms of this Licence. - -7. Disclaimer of Warranty - -The Work is a work in progress, which is continuously improved by numerous -Contributors. It is not a finished work and may therefore contain defects or -‘bugs’ inherent to this type of development. - -For the above reason, the Work is provided under the Licence on an ‘as is’ basis -and without warranties of any kind concerning the Work, including without -limitation merchantability, fitness for a particular purpose, absence of defects -or errors, accuracy, non-infringement of intellectual property rights other than -copyright as stated in Article 6 of this Licence. - -This disclaimer of warranty is an essential part of the Licence and a condition -for the grant of any rights to the Work. - -8. Disclaimer of Liability - -Except in the cases of wilful misconduct or damages directly caused to natural -persons, the Licensor will in no event be liable for any direct or indirect, -material or moral, damages of any kind, arising out of the Licence or of the use -of the Work, including without limitation, damages for loss of goodwill, work -stoppage, computer failure or malfunction, loss of data or any commercial -damage, even if the Licensor has been advised of the possibility of such damage. -However, the Licensor will be liable under statutory product liability laws as -far such laws apply to the Work. - -9. Additional agreements - -While distributing the Work, You may choose to conclude an additional agreement, -defining obligations or services consistent with this Licence. However, if -accepting obligations, You may act only on your own behalf and on your sole -responsibility, not on behalf of the original Licensor or any other Contributor, -and only if You agree to indemnify, defend, and hold each Contributor harmless -for any liability incurred by, or claims asserted against such Contributor by -the fact You have accepted any warranty or additional liability. - -10. Acceptance of the Licence - -The provisions of this Licence can be accepted by clicking on an icon ‘I agree’ -placed under the bottom of a window displaying the text of this Licence or by -affirming consent in any other similar way, in accordance with the rules of -applicable law. Clicking on that icon indicates your clear and irrevocable -acceptance of this Licence and all of its terms and conditions. - -Similarly, you irrevocably accept this Licence and all of its terms and -conditions by exercising any rights granted to You by Article 2 of this Licence, -such as the use of the Work, the creation by You of a Derivative Work or the -Distribution or Communication by You of the Work or copies thereof. - -11. Information to the public - -In case of any Distribution or Communication of the Work by means of electronic -communication by You (for example, by offering to download the Work from a -remote location) the distribution channel or media (for example, a website) must -at least provide to the public the information requested by the applicable law -regarding the Licensor, the Licence and the way it may be accessible, concluded, -stored and reproduced by the Licensee. - -12. Termination of the Licence - -The Licence and the rights granted hereunder will terminate automatically upon -any breach by the Licensee of the terms of the Licence. - -Such a termination will not terminate the licences of any person who has -received the Work from the Licensee under the Licence, provided such persons -remain in full compliance with the Licence. - -13. Miscellaneous - -Without prejudice of Article 9 above, the Licence represents the complete -agreement between the Parties as to the Work. - -If any provision of the Licence is invalid or unenforceable under applicable -law, this will not affect the validity or enforceability of the Licence as a -whole. Such provision will be construed or reformed so as necessary to make it -valid and enforceable. - -The European Commission may publish other linguistic versions or new versions of -this Licence or updated versions of the Appendix, so far this is required and -reasonable, without reducing the scope of the rights granted by the Licence. New -versions of the Licence will be published with a unique version number. - -All linguistic versions of this Licence, approved by the European Commission, -have identical value. Parties can take advantage of the linguistic version of -their choice. - -14. Jurisdiction - -Without prejudice to specific agreement between parties, - -- any litigation resulting from the interpretation of this License, arising - between the European Union institutions, bodies, offices or agencies, as a - Licensor, and any Licensee, will be subject to the jurisdiction of the Court - of Justice of the European Union, as laid down in article 272 of the Treaty on - the Functioning of the European Union, - -- any litigation arising between other parties and resulting from the - interpretation of this License, will be subject to the exclusive jurisdiction - of the competent court where the Licensor resides or conducts its primary - business. - -15. Applicable Law - -Without prejudice to specific agreement between parties, - -- this Licence shall be governed by the law of the European Union Member State - where the Licensor has his seat, resides or has his registered office, - -- this licence shall be governed by Belgian law if the Licensor has no seat, - residence or registered office inside a European Union Member State. - -Appendix - -‘Compatible Licences’ according to Article 5 EUPL are: - -- GNU General Public License (GPL) v. 2, v. 3 -- GNU Affero General Public License (AGPL) v. 3 -- Open Software License (OSL) v. 2.1, v. 3.0 -- Eclipse Public License (EPL) v. 1.0 -- CeCILL v. 2.0, v. 2.1 -- Mozilla Public Licence (MPL) v. 2 -- GNU Lesser General Public Licence (LGPL) v. 2.1, v. 3 -- Creative Commons Attribution-ShareAlike v. 3.0 Unported (CC BY-SA 3.0) for - works other than software -- European Union Public Licence (EUPL) v. 1.1, v. 1.2 -- Québec Free and Open-Source Licence — Reciprocity (LiLiQ-R) or Strong - Reciprocity (LiLiQ-R+). - -The European Commission may update this Appendix to later versions of the above -licences without producing a new version of the EUPL, as long as they provide -the rights granted in Article 2 of this Licence and protect the covered Source -Code from exclusive appropriation. - -All other changes or additions to this Appendix require the production of a new -EUPL version. diff --git a/vue2/packages/components/MoveHandle.vue b/vue2/packages/components/MoveHandle.vue deleted file mode 100644 index f58867c4d..000000000 --- a/vue2/packages/components/MoveHandle.vue +++ /dev/null @@ -1,242 +0,0 @@ - - - - - - - diff --git a/vue2/packages/components/README.md b/vue2/packages/components/README.md deleted file mode 100644 index 758763a4e..000000000 --- a/vue2/packages/components/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# @polar/components - -This package establishes a place for components usable for a multitude of plugins and clients. -If a component seems unspecific for the use case of another package, it will find a nice and warm place within this package. diff --git a/vue2/packages/components/index.ts b/vue2/packages/components/index.ts deleted file mode 100644 index 690d6cbf2..000000000 --- a/vue2/packages/components/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import MoveHandle from './MoveHandle.vue' - -export { MoveHandle } diff --git a/vue2/packages/components/package.json b/vue2/packages/components/package.json deleted file mode 100644 index 949d843b8..000000000 --- a/vue2/packages/components/package.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "@polar/components", - "version": "2.2.0", - "description": "POLAR components package. Provides global components.", - "keywords": [ - "OpenLayers", - "ol", - "POLAR", - "components" - ], - "license": "EUPL-1.2", - "author": "Dataport AöR ", - "main": "index.ts", - "repository": { - "type": "git", - "url": "git+https://github.com/Dataport/polar.git", - "directory": "packages/components" - }, - "peerDependencies": { - "@fortawesome/fontawesome-free": "^6.2.1", - "vue": "^2.6.14", - "vuetify": "^2.5.9", - "vuex": "^3.6.2" - } -} diff --git a/vue2/packages/components/tsconfig.json b/vue2/packages/components/tsconfig.json deleted file mode 100644 index 4082f16a5..000000000 --- a/vue2/packages/components/tsconfig.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "../../tsconfig.json" -} diff --git a/vue2/packages/components/types.ts b/vue2/packages/components/types.ts deleted file mode 100644 index 01ee473ff..000000000 --- a/vue2/packages/components/types.ts +++ /dev/null @@ -1,7 +0,0 @@ -export type EndEventName = 'touchend' | 'mouseup' -export type MoveEventName = 'touchmove' | 'mousemove' -export interface MoveEventNames { - move: MoveEventName - end: EndEventName -} -export type PolarMoveEvent = MouseEvent | TouchEvent diff --git a/vue2/packages/core/README.md b/vue2/packages/core/README.md index 19dbc2ab6..79ca6c549 100644 --- a/vue2/packages/core/README.md +++ b/vue2/packages/core/README.md @@ -259,8 +259,6 @@ map.$store.watch( This is, for example, useful to listen to search results, draw features, or marker coordinates. The plugins document how exactly to use their respective fields. -To add content to the `MoveHandle`, the mutation `setMoveHandle` can be used. The values needed are described in `@polar/lib-custom-types:MoveHandleProperties`. - ### Mutations #### setOidcToken diff --git a/vue2/packages/core/src/components/MapContainer.vue b/vue2/packages/core/src/components/MapContainer.vue deleted file mode 100644 index 341ad4f6e..000000000 --- a/vue2/packages/core/src/components/MapContainer.vue +++ /dev/null @@ -1,85 +0,0 @@ - - - - - diff --git a/vue2/packages/core/src/vuePlugins/vuex.ts b/vue2/packages/core/src/vuePlugins/vuex.ts deleted file mode 100644 index 11f5c6adc..000000000 --- a/vue2/packages/core/src/vuePlugins/vuex.ts +++ /dev/null @@ -1,77 +0,0 @@ -// console is a vital feature for this -/* eslint-disable no-console */ -import Vue from 'vue' -import Vuex, { Store } from 'vuex' -import { - generateSimpleGetters, - generateSimpleMutations, -} from '@repositoryname/vuex-generators' -import noop from '@repositoryname/noop' -import { - CoreState, - MapConfig, - MoveHandleActionButton, - MoveHandleProperties, -} from '@polar/lib-custom-types' - -Vue.use(Vuex) - -const getInitialState = (): CoreState => ({ - moveHandle: 1, - moveHandleActionButton: 1, -}) - -export const makeStore = (mapConfiguration: MapConfig) => { - /* - * NOTE: The following variables are used to store complex information - * retrievable from the store without actually adding them to the store. - * The reason is that complex objects, possibly containing circle references, - * put a lot of work to the Vuex store to make them reactive, whilst gaining - * nothing in return. The Vuex store should only be used to store simple - * information. - * - * To still use the power of Vuex in this regard, this hack is applied. - * Please note that no child item of map/components is reactive at all. - * They must be set via setter to let getters toggle through. - * This is intended. - */ - let moveHandle: MoveHandleProperties | null = null - let moveHandleActionButton: MoveHandleActionButton | null = null - - const store = new Store({ - state: getInitialState(), - modules: { - /* reserved for plugins */ - plugin: { - namespaced: true, - }, - }, - getters: { - ...generateSimpleGetters(getInitialState()), - moveHandle: (state) => { - noop(state.moveHandle) - return moveHandle - }, - moveHandleActionButton: (state) => { - noop(state.moveHandleActionButton) - return moveHandleActionButton - }, - }, - mutations: { - ...generateSimpleMutations(getInitialState()), - setMoveHandle: (state, payload: MoveHandleProperties | null) => { - moveHandle = payload - state.moveHandle += 1 - }, - setMoveHandleActionButton: ( - state, - payload: MoveHandleActionButton | null - ) => { - moveHandleActionButton = payload - state.moveHandleActionButton += 1 - }, - }, - }) - - return store -} diff --git a/vue2/packages/types/custom/core.ts b/vue2/packages/types/custom/core.ts index 0880a33db..727b5d073 100644 --- a/vue2/packages/types/custom/core.ts +++ b/vue2/packages/types/custom/core.ts @@ -554,23 +554,6 @@ export interface MapConfig extends MasterportalApiConfig { * */ -type MoveHandleProps = object - -export interface MoveHandleProperties { - closeLabel: string - closeFunction: (...args: unknown[]) => unknown - component: VueConstructor - // Plugin that added the moveHandle - plugin: string - closeIcon?: string - props?: MoveHandleProps -} - -export interface MoveHandleActionButton { - component: VueConstructor - props?: MoveHandleProps -} - export interface CoreState { center: [number, number] | null clientHeight: number @@ -589,8 +572,6 @@ export interface CoreState { language: string map: number mapHasDimensions: boolean - moveHandle: number - moveHandleActionButton: number oidcToken: string // NOTE truly any since external plugins may bring whatever; unknown will lead to further errors // eslint-disable-next-line @typescript-eslint/no-explicit-any @@ -600,22 +581,12 @@ export interface CoreState { } export interface CoreGetters - extends Omit< - CoreState, - | 'components' - | 'hovered' - | 'map' - | 'moveHandle' - | 'moveHandleActionButton' - | 'selected' - > { + extends Omit { // omitted from CoreState as actual getter type diverges components: PluginContainer[] hovered: Feature | null map: Map mapHasDimensions: boolean - moveHandle: MoveHandleProperties - moveHandleActionButton: MoveHandleActionButton selected: Feature | null selectedCoordinate: Coordinate | null From e57800b0e7e99c5fc89680433a71c205ca3695b3 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Mon, 15 Sep 2025 17:30:20 +0200 Subject: [PATCH 432/697] refactor(iconMenu): use migrated MoveHandle to properly display content on small devices --- .../components/NineRegionsButton.ce.vue | 6 +-- .../iconMenu/components/StandardMenu.ce.vue | 8 ++-- src/plugins/iconMenu/store.ts | 44 +++++++++++-------- 3 files changed, 33 insertions(+), 25 deletions(-) diff --git a/src/plugins/iconMenu/components/NineRegionsButton.ce.vue b/src/plugins/iconMenu/components/NineRegionsButton.ce.vue index 947801ad4..2094c6180 100644 --- a/src/plugins/iconMenu/components/NineRegionsButton.ce.vue +++ b/src/plugins/iconMenu/components/NineRegionsButton.ce.vue @@ -13,6 +13,7 @@ import { storeToRefs } from 'pinia' import { inject, onMounted, ref, watch } from 'vue' import PolarIconButton from '@/components/PolarIconButton.ce.vue' +import { useCoreStore } from '@/core/stores/export' import { useIconMenuStore } from '@/plugins/iconMenu/store' const props = defineProps<{ @@ -31,12 +32,11 @@ function toggle() { if (open.value === props.index) { open.value = -1 active.value = false - // TODO(dopenguin): This is called in mainStore - // setMoveHandle(null) + useCoreStore().setMoveHandle(null) } else { open.value = props.index active.value = true - // iconMenuStore.openInMoveHandle(index) + iconMenuStore.openInMoveHandle(props.index) } updateMaxWidth() } diff --git a/src/plugins/iconMenu/components/StandardMenu.ce.vue b/src/plugins/iconMenu/components/StandardMenu.ce.vue index 2916e4aa4..e742a21d0 100644 --- a/src/plugins/iconMenu/components/StandardMenu.ce.vue +++ b/src/plugins/iconMenu/components/StandardMenu.ce.vue @@ -38,13 +38,14 @@ import { useCoreStore } from '@/core/stores/export' import { useIconMenuStore } from '@/plugins/iconMenu/store' import PolarIconButton from '@/components/PolarIconButton.ce.vue' +const coreStore = useCoreStore() const { clientHeight, deviceIsHorizontal, hasSmallWidth, hasWindowSize, layout, -} = storeToRefs(useCoreStore()) +} = storeToRefs(coreStore) const iconMenuStore = useIconMenuStore() const { open } = storeToRefs(iconMenuStore) @@ -72,11 +73,10 @@ const maxHeight = computed(() => function toggle(index: number) { if (open.value === index) { open.value = -1 - // TODO(dopenguin): This is called in mainStore - // setMoveHandle(null) + coreStore.setMoveHandle(null) } else { open.value = index - // iconMenuStore.openInMoveHandle(index) + iconMenuStore.openInMoveHandle(index) } } diff --git a/src/plugins/iconMenu/store.ts b/src/plugins/iconMenu/store.ts index a0d1802f6..7b3bcf405 100644 --- a/src/plugins/iconMenu/store.ts +++ b/src/plugins/iconMenu/store.ts @@ -81,30 +81,38 @@ export const useIconMenuStore = defineStore('plugins/iconMenu', () => { // openInMoveHandle(index) } } - // TODO(dopenguin): Implement once MoveHandle is implemented - /* function openInMoveHandle(index: number) { - const { hint, plugin } = menus.value[index] - commit( - 'setMoveHandle', - { - closeLabel: t('mobileCloseButton', { - ns: 'iconMenu', - plugin: hint || `plugins.iconMenu.hints.${plugin.id}`, - }), - closeFunction: () => { - open.value = -1 - }, - component: plugin, - plugin: 'iconMenu', + + function openInMoveHandle(index: number) { + const menu = menus.value[index] + if (!menu) { + console.error(`Menu with index ${index} could not be found.`) + return + } + if (!menu.plugin.component) { + console.error( + `The plugin ${menu.plugin.id} does not have any component to display and thus can not be opened in the moveHandle.` + ) + return + } + coreStore.setMoveHandle({ + closeFunction: () => { + open.value = -1 }, - { root: true } - ) - } */ + closeLabel: 'mobileCloseButton', + closeLabelOptions: { + ns: 'iconMenu', + plugin: menu.hint || `plugins.iconMenu.hints.${menu.plugin.id}`, + }, + component: menu.plugin.component, + plugin: 'iconMenu', + }) + } return { menus, open, buttonComponent, + openInMoveHandle, openMenuById, /** @internal */ setupPlugin, From af7ed16e1549a06f39eaeb837685541fadd225ef Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Mon, 15 Sep 2025 18:16:31 +0200 Subject: [PATCH 433/697] fix: update vite dependency to close two vulnerabilities CVE-2025-58751 and CVE-2025-58752. --- package-lock.json | 20 ++++++++++---------- package.json | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index 95dc651de..bc2bc68fd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -52,7 +52,7 @@ "typedoc-plugin-vue": "^1.5.0", "typescript": "~5.9.2", "util": "^0.12.5", - "vite": "^7.1.4", + "vite": "^7.1.5", "vite-plugin-checker": "^0.10.3", "vite-plugin-commonjs": "^0.10.4", "vite-plugin-dts": "^4.5.4", @@ -13893,14 +13893,14 @@ "license": "MIT" }, "node_modules/tinyglobby": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", - "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", "dev": true, "license": "MIT", "dependencies": { - "fdir": "^6.4.4", - "picomatch": "^4.0.2" + "fdir": "^6.5.0", + "picomatch": "^4.0.3" }, "engines": { "node": ">=12.0.0" @@ -14663,9 +14663,9 @@ } }, "node_modules/vite": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.4.tgz", - "integrity": "sha512-X5QFK4SGynAeeIt+A7ZWnApdUyHYm+pzv/8/A57LqSGcI88U6R6ipOs3uCesdc6yl7nl+zNO0t8LmqAdXcQihw==", + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.5.tgz", + "integrity": "sha512-4cKBO9wR75r0BeIWWWId9XK9Lj6La5X846Zw9dFfzMRw38IlTk2iCcUt6hsyiDRcPidc55ZParFYDXi0nXOeLQ==", "dev": true, "license": "MIT", "dependencies": { @@ -14674,7 +14674,7 @@ "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", - "tinyglobby": "^0.2.14" + "tinyglobby": "^0.2.15" }, "bin": { "vite": "bin/vite.js" diff --git a/package.json b/package.json index fef45cf8b..78ed568a4 100644 --- a/package.json +++ b/package.json @@ -117,7 +117,7 @@ "typedoc-plugin-vue": "^1.5.0", "typescript": "~5.9.2", "util": "^0.12.5", - "vite": "^7.1.4", + "vite": "^7.1.5", "vite-plugin-checker": "^0.10.3", "vite-plugin-commonjs": "^0.10.4", "vite-plugin-dts": "^4.5.4", From c1607445d53ba81be79948ef669afdee23d3731e Mon Sep 17 00:00:00 2001 From: Dennis Sen Date: Thu, 18 Sep 2025 21:17:56 +0200 Subject: [PATCH 434/697] refactor: this button needs less js --- src/components/PolarIconButton.ce.vue | 145 ++++++++---------- .../fullscreen/components/FullscreenUI.ce.vue | 8 +- 2 files changed, 70 insertions(+), 83 deletions(-) diff --git a/src/components/PolarIconButton.ce.vue b/src/components/PolarIconButton.ce.vue index e352d61f4..a28d3a833 100644 --- a/src/components/PolarIconButton.ce.vue +++ b/src/components/PolarIconButton.ce.vue @@ -1,46 +1,36 @@ diff --git a/src/plugins/fullscreen/components/FullscreenUI.ce.vue b/src/plugins/fullscreen/components/FullscreenUI.ce.vue index 300e2b172..a4ba4da02 100644 --- a/src/plugins/fullscreen/components/FullscreenUI.ce.vue +++ b/src/plugins/fullscreen/components/FullscreenUI.ce.vue @@ -1,9 +1,7 @@ - - + .snowbox { + display: block; + width: 100vw; + max-width: calc(100% + 64px); + height: var(--map-height); + position: relative; + margin-top: 10px; + margin-bottom: 10px; + left: -32px; + outline: solid var(--eigengrau); + } - -

POLAR map client

- -
- Coordinates of currently selected feature: -
-

Demo application ("Snowbox")

-
-
-

Second map

- - -
- + #language-switcher { + outline: solid black; + } + + + +

POLAR map client

+ +
+ Coordinates of currently selected feature: +
+

Demo application ("Snowbox")

+
+
+

Second map

+ + +
+ \ No newline at end of file From 7a90f582a91b7be696e24022c4f3af27e20fec1b Mon Sep 17 00:00:00 2001 From: Hendrik Oenings <142312676+oeninghe-dataport@users.noreply.github.com> Date: Mon, 22 Sep 2025 13:32:28 +0200 Subject: [PATCH 456/697] style(iceberg): remove superfluous type hint MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Pascal Röhling <73653210+dopenguin@users.noreply.github.com> --- examples/iceberg/stores/iceberg.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/iceberg/stores/iceberg.ts b/examples/iceberg/stores/iceberg.ts index dd8d28497..a0f79d45c 100644 --- a/examples/iceberg/stores/iceberg.ts +++ b/examples/iceberg/stores/iceberg.ts @@ -20,7 +20,7 @@ export const useIcebergStore = defineStore('iceberg', () => { }, }) - const serviceRegister = ref( + const serviceRegister = ref( 'https://geodienste.hamburg.de/services-internet.json' ) From f3deaece65bde78f63954cb77bb367281a305a54 Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Mon, 22 Sep 2025 18:15:07 +0200 Subject: [PATCH 457/697] refactor(core): move action logger to separate file --- src/core/piniaPlugins/actionLogger.ts | 17 +++++++++++++++++ src/core/vuePlugins/pinia.ts | 19 ++----------------- 2 files changed, 19 insertions(+), 17 deletions(-) create mode 100644 src/core/piniaPlugins/actionLogger.ts diff --git a/src/core/piniaPlugins/actionLogger.ts b/src/core/piniaPlugins/actionLogger.ts new file mode 100644 index 000000000..d49c4240d --- /dev/null +++ b/src/core/piniaPlugins/actionLogger.ts @@ -0,0 +1,17 @@ +import type { PiniaPluginContext } from 'pinia' + +export function actionLogger({ store }: PiniaPluginContext) { + if (import.meta.env.DEV) { + /* eslint-disable no-console */ + console.log('DEV MODE DETECTED - PINIA LOGGING ENABLED') + store.$onAction( + ({ name, store, args }) => { + console.log( + `Action: '${name}'; Store: '${store.$id}'; Arguments:`, + args + ) + } + /* eslint-enable no-console */ + ) + } +} diff --git a/src/core/vuePlugins/pinia.ts b/src/core/vuePlugins/pinia.ts index e93924e28..86a5c2a4c 100644 --- a/src/core/vuePlugins/pinia.ts +++ b/src/core/vuePlugins/pinia.ts @@ -1,21 +1,6 @@ import type { Plugin } from 'vue' -import { createPinia, type PiniaPluginContext } from 'pinia' - -function actionLogger({ store }: PiniaPluginContext) { - if (import.meta.env.DEV) { - /* eslint-disable no-console */ - console.log('DEV MODE DETECTED - PINIA LOGGING ENABLED') - store.$onAction( - ({ name, store, args }) => { - console.log( - `Action: '${name}'; Store: '${store.$id}'; Arguments:`, - args - ) - } - /* eslint-enable no-console */ - ) - } -} +import { createPinia } from 'pinia' +import { actionLogger } from '../piniaPlugins/actionLogger' export const Pinia: Plugin = { install(app) { From 3b9d738fdf354a1ba3722989f5fb437f5b4d1f90 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Tue, 23 Sep 2025 13:40:05 +0200 Subject: [PATCH 458/697] fix(core): initialize services earlier to ensure the map has been created for plugins The map may not have been initialized if the services weren't fully received from a remote source when a plugin has been added. --- examples/iceberg/App.vue | 2 +- src/core/components/PolarMap.ce.vue | 29 ++++------------------------- src/core/index.ts | 23 ++++++++++++++++++++--- src/core/stores/main.ts | 2 +- 4 files changed, 26 insertions(+), 30 deletions(-) diff --git a/examples/iceberg/App.vue b/examples/iceberg/App.vue index b1ca5d594..a35732283 100644 --- a/examples/iceberg/App.vue +++ b/examples/iceberg/App.vue @@ -9,7 +9,7 @@ import { useTemplateRef } from 'vue' import { createMap } from '@polar/polar' const map = useTemplateRef('map') -createMap( +await createMap( { layers: [ { diff --git a/src/core/components/PolarMap.ce.vue b/src/core/components/PolarMap.ce.vue index f314587fd..0506c1ff1 100644 --- a/src/core/components/PolarMap.ce.vue +++ b/src/core/components/PolarMap.ce.vue @@ -12,7 +12,6 @@ + + diff --git a/src/plugins/loadingIndicator/components/loaderStyles/BasicLoader.ce.vue b/src/plugins/loadingIndicator/components/loaderStyles/BasicLoader.ce.vue new file mode 100644 index 000000000..9cfe81576 --- /dev/null +++ b/src/plugins/loadingIndicator/components/loaderStyles/BasicLoader.ce.vue @@ -0,0 +1,118 @@ + + + + + diff --git a/src/plugins/loadingIndicator/components/loaderStyles/CircleLoader.ce.vue b/src/plugins/loadingIndicator/components/loaderStyles/CircleLoader.ce.vue new file mode 100644 index 000000000..4c0ae5cda --- /dev/null +++ b/src/plugins/loadingIndicator/components/loaderStyles/CircleLoader.ce.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/src/plugins/loadingIndicator/components/loaderStyles/RingLoader.ce.vue b/src/plugins/loadingIndicator/components/loaderStyles/RingLoader.ce.vue new file mode 100644 index 000000000..4391d2dbc --- /dev/null +++ b/src/plugins/loadingIndicator/components/loaderStyles/RingLoader.ce.vue @@ -0,0 +1,58 @@ + + + + + diff --git a/src/plugins/loadingIndicator/components/loaderStyles/RollerLoader.ce.vue b/src/plugins/loadingIndicator/components/loaderStyles/RollerLoader.ce.vue new file mode 100644 index 000000000..df248e36e --- /dev/null +++ b/src/plugins/loadingIndicator/components/loaderStyles/RollerLoader.ce.vue @@ -0,0 +1,111 @@ + + + + + diff --git a/src/plugins/loadingIndicator/components/loaderStyles/SpinnerLoader.ce.vue b/src/plugins/loadingIndicator/components/loaderStyles/SpinnerLoader.ce.vue new file mode 100644 index 000000000..5f4ecf317 --- /dev/null +++ b/src/plugins/loadingIndicator/components/loaderStyles/SpinnerLoader.ce.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/vue2/packages/plugins/LoadingIndicator/src/components/index.ts b/vue2/packages/plugins/LoadingIndicator/src/components/index.ts deleted file mode 100644 index ab744713d..000000000 --- a/vue2/packages/plugins/LoadingIndicator/src/components/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as LoadingIndicator } from './LoadingIndicator.vue' diff --git a/vue2/packages/plugins/LoadingIndicator/src/components/loaderStyles/Basic.vue b/vue2/packages/plugins/LoadingIndicator/src/components/loaderStyles/Basic.vue deleted file mode 100644 index 6027a55a2..000000000 --- a/vue2/packages/plugins/LoadingIndicator/src/components/loaderStyles/Basic.vue +++ /dev/null @@ -1,125 +0,0 @@ - - - - - diff --git a/vue2/packages/plugins/LoadingIndicator/src/components/loaderStyles/Circle.vue b/vue2/packages/plugins/LoadingIndicator/src/components/loaderStyles/Circle.vue deleted file mode 100644 index 09d12fac4..000000000 --- a/vue2/packages/plugins/LoadingIndicator/src/components/loaderStyles/Circle.vue +++ /dev/null @@ -1,50 +0,0 @@ - - - - - diff --git a/vue2/packages/plugins/LoadingIndicator/src/components/loaderStyles/Ring.vue b/vue2/packages/plugins/LoadingIndicator/src/components/loaderStyles/Ring.vue deleted file mode 100644 index 327c10067..000000000 --- a/vue2/packages/plugins/LoadingIndicator/src/components/loaderStyles/Ring.vue +++ /dev/null @@ -1,62 +0,0 @@ - - - - - diff --git a/vue2/packages/plugins/LoadingIndicator/src/components/loaderStyles/Roller.vue b/vue2/packages/plugins/LoadingIndicator/src/components/loaderStyles/Roller.vue deleted file mode 100644 index 42f530116..000000000 --- a/vue2/packages/plugins/LoadingIndicator/src/components/loaderStyles/Roller.vue +++ /dev/null @@ -1,115 +0,0 @@ - - - - - diff --git a/vue2/packages/plugins/LoadingIndicator/src/components/loaderStyles/Spinner.vue b/vue2/packages/plugins/LoadingIndicator/src/components/loaderStyles/Spinner.vue deleted file mode 100644 index 03dc0dc24..000000000 --- a/vue2/packages/plugins/LoadingIndicator/src/components/loaderStyles/Spinner.vue +++ /dev/null @@ -1,113 +0,0 @@ - - - - - From 10f651ee7e6a8ff406dfaf4cffdef52fa1e92c26 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Tue, 23 Sep 2025 20:09:13 +0200 Subject: [PATCH 463/697] refactor(loadingIndicator): adjust size, center loader and update styling to fit design --- .../components/LoadingIndicator.ce.vue | 43 +++++++++++++------ src/plugins/loadingIndicator/index.ts | 2 - src/plugins/loadingIndicator/locales.ts | 23 ---------- 3 files changed, 30 insertions(+), 38 deletions(-) delete mode 100644 src/plugins/loadingIndicator/locales.ts diff --git a/src/plugins/loadingIndicator/components/LoadingIndicator.ce.vue b/src/plugins/loadingIndicator/components/LoadingIndicator.ce.vue index ba5506972..51fd346c7 100644 --- a/src/plugins/loadingIndicator/components/LoadingIndicator.ce.vue +++ b/src/plugins/loadingIndicator/components/LoadingIndicator.ce.vue @@ -1,12 +1,7 @@ diff --git a/src/plugins/loadingIndicator/index.ts b/src/plugins/loadingIndicator/index.ts index 4aaf3de07..57a15ca49 100644 --- a/src/plugins/loadingIndicator/index.ts +++ b/src/plugins/loadingIndicator/index.ts @@ -5,7 +5,6 @@ /* eslint-enable tsdoc/syntax */ import component from './components/LoadingIndicator.ce.vue' -import locales from './locales' import { useLoadingIndicatorStore } from './store' import { type LoadingIndicatorOptions, PluginId } from './types' import type { PluginContainer, PolarPluginStore } from '@/core' @@ -22,7 +21,6 @@ export default function pluginLoadingIndicator( return { id: PluginId, component, - locales, storeModule: useLoadingIndicatorStore as PolarPluginStore, options, } diff --git a/src/plugins/loadingIndicator/locales.ts b/src/plugins/loadingIndicator/locales.ts deleted file mode 100644 index a572b7b81..000000000 --- a/src/plugins/loadingIndicator/locales.ts +++ /dev/null @@ -1,23 +0,0 @@ -import type { Locale } from '@/core' - -export const resourcesDe = { - loading: 'Lädt...', -} as const - -export const resourcesEn = { - loading: 'Loading...', -} as const - -// first type will be used as fallback language -const locales: Locale[] = [ - { - type: 'de', - resources: resourcesDe, - }, - { - type: 'en', - resources: resourcesEn, - }, -] - -export default locales From f5b4d442ccecd3db61db7fe7241d6d00e258f98b Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Tue, 23 Sep 2025 20:20:01 +0200 Subject: [PATCH 464/697] refactor(loadingIndicator): use self-closing tags in loaderStyle components --- .../loaderStyles/BasicLoader.ce.vue | 24 +++++++++---------- .../loaderStyles/CircleLoader.ce.vue | 2 +- .../components/loaderStyles/RingLoader.ce.vue | 8 +++---- .../loaderStyles/RollerLoader.ce.vue | 16 ++++++------- .../loaderStyles/SpinnerLoader.ce.vue | 24 +++++++++---------- 5 files changed, 37 insertions(+), 37 deletions(-) diff --git a/src/plugins/loadingIndicator/components/loaderStyles/BasicLoader.ce.vue b/src/plugins/loadingIndicator/components/loaderStyles/BasicLoader.ce.vue index 9cfe81576..5b707fbc4 100644 --- a/src/plugins/loadingIndicator/components/loaderStyles/BasicLoader.ce.vue +++ b/src/plugins/loadingIndicator/components/loaderStyles/BasicLoader.ce.vue @@ -1,17 +1,17 @@ diff --git a/src/plugins/loadingIndicator/components/loaderStyles/CircleLoader.ce.vue b/src/plugins/loadingIndicator/components/loaderStyles/CircleLoader.ce.vue index 4c0ae5cda..78fa43eb4 100644 --- a/src/plugins/loadingIndicator/components/loaderStyles/CircleLoader.ce.vue +++ b/src/plugins/loadingIndicator/components/loaderStyles/CircleLoader.ce.vue @@ -1,5 +1,5 @@ From 77166e817b7f776cf4dc6b4a74cc9479abf348c6 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Tue, 23 Sep 2025 20:58:37 +0200 Subject: [PATCH 471/697] refactor(loadingIndicator): use square sizing for CircleLoader --- .../components/loaderStyles/CircleLoader.ce.vue | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/plugins/loadingIndicator/components/loaderStyles/CircleLoader.ce.vue b/src/plugins/loadingIndicator/components/loaderStyles/CircleLoader.ce.vue index 78fa43eb4..08f2f3075 100644 --- a/src/plugins/loadingIndicator/components/loaderStyles/CircleLoader.ce.vue +++ b/src/plugins/loadingIndicator/components/loaderStyles/CircleLoader.ce.vue @@ -17,6 +17,8 @@ export default {} .lds-circle { display: inline-block; transform: translateZ(1px); + width: 80px; + height: 80px; } .lds-circle > div { display: inline-block; From 86cca97cfca7a3efced3220dc177d4bcb82ea0b2 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Tue, 23 Sep 2025 21:07:43 +0200 Subject: [PATCH 472/697] refactor(loadingIndicator): update gifs to depict the current implementation --- .../loadingIndicator/assets/BasicLoader.gif | Bin 24863 -> 87320 bytes .../loadingIndicator/assets/CircleLoader.gif | Bin 26053 -> 76168 bytes .../loadingIndicator/assets/KernLoader.gif | Bin 144101 -> 1953975 bytes .../loadingIndicator/assets/RingLoader.gif | Bin 87285 -> 135969 bytes .../loadingIndicator/assets/RollerLoader.gif | Bin 27508 -> 103034 bytes .../loadingIndicator/assets/SpinnerLoader.gif | Bin 59144 -> 192183 bytes 6 files changed, 0 insertions(+), 0 deletions(-) diff --git a/src/plugins/loadingIndicator/assets/BasicLoader.gif b/src/plugins/loadingIndicator/assets/BasicLoader.gif index fc213ab47d0d711e09d1116cdec7dd850cf04fdd..8ae360b0fccf4151ae476840eca10578801ba8f8 100644 GIT binary patch literal 87320 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⋘~aeV3e>R|XuluU)rJ4`kj3Ou+j;$gc>v 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

dep2bZX3G1g-GpBr=@O4ur4WE0vnMDh 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 z

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

AY@$HzW0Uhv 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%0D-X@A&sV|Xdpvxw{kqV>mBjB6s1C)8(kD%#_fAOR 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

(S7Z4Mfje%1>hORN1dvz@ZO~2?^q~JBLUs9m_ zST3Dstv}(GQq?5jv1}x|*3iktx{LNH>U~6sVpD%+`mw(*Hu-3kGU`5?`O{P(0T7Nl zX;%+rJJ+=~@9Y};RD^Pnxz*ZkzL{SFL>OD>4j6@UAK`5hJb_F#FVH$)PwF*JVgzAw zUp#Lm#f`OScxT^=Z|S_(K}y8GRRB@Ia2VEuNF+tB!Wp;Z{YopUL^N^C8tI0eLC!`2 zxMrb2K(mDrXg{pTAc9TawqZW4Bqk9f;Nt`its+tFrDIWx3F0Ys_$iD=Lym(7`dP+d zFuMn40v~e!F$BSqxk5t?#Jx%I-i*qcFl5Ki6}y0Vw}7&Ujj}m{nP5vn1eXrX#v5C= zxg@ez5sF~=8jq#j3letJr?vp^IWMBo+(tA_u7^%f=i>TM0$cFx5cA7Seyc2!T^MIGyzr7WNI)Xf_*vX3*sqTS`f1)i3@QcM@W;z)Ast$g)e z*Fp%ZCc*(HQB~}siSmsqR$KQ$NNuM#`G(VpO-yMk8MHz;E`Pk!uz2HriD(qSwOh3G zi|DIrG5xSRQ2UAq20vI7BcbGHvhjTzQc11A>J^d#!}Zb5;<-z-&olC-V%nnK`^hNv zJagjX8y|nGeQ@AI_FDVQ>PMNy+5)$P8(lgaCwOOWnEtrYWpnKa>c05tx4x`)W&)QI z9j{EvWWUxp71-t=F~^wA)7N@3;m9G{X^BWd1o%GM_Hw~V4 zh!k&^MQasHFS{MO?Kz+Hzogs=W6*H_M&R>U=Npi#_*o&C7mDZ3Fu2lt5X? z;JNb6q*qNHZ=q*?sixU}YD%8=QIz{hu!D2-q>r90>wR=$^m*v2KKt$B-cdyH&=Zu} z`@RKJH=(}WZ&^cA)am8wUm@%(86_S4*?rf4t@XTbI`L!l&ikt0cjxrNHt6loi}^3f zF5WsEV(~zDWBshu5eC1Dj}r@>xzF_7jZU$?B}0Gn;;i1~&u0FD4I~DM8q!d--=z;f zsLv8G`fJYbBLJG+6!wk&wsRSh&7PC7dYHz`B6hf?R1orpOFvC$oyUWp{dHhXt?=V2 z>)28fOBh&=Uoq`a?3zP^*H(^@Ia|18VG;UQrjcBTv6S%^xH$LQt!Zb>vE1;|D3{^% zJS-_WeLlVHnO)@8b}jPCk}J!K1WF6PDBx%=8j(<=-r-|_luZ-cG6qJb=cx$88W`(4 zWxl1Lm@n6zp=VIy@Y6fgeWQUP4OZ=O`ewiNYZQpE9Bv`a9eakCC}9HiFtF~{DxG`Rj|5hYura0 z6hXfREpQw+es0}b;L?pL^$biD-xMu7HkjK&m(3imFq?HRU=-Ij&JB3zqH^6N_OW(U z*9j;HJe48EF6tfXIqD6>>)(sisBNB_jaXI%YoN001w?Gn^blHVehKi z9-x8+T#EmszyLAs?%9Kz05g`rv3LYPlKtsU14y#_Pl3ocAjW@EU@!JA#sA$?`2RLB z29)>@kxU*SlBuW|7$p4@NoJNzP$dww2?d7v)p-DxtijNDzc^h0P|2cV<&%1~RjX>M zRSm?kyu57ejI3~GCT0#6UOquNS=Ih(fJ_F2zv;$%LTnnF1fa>D%An=|N zZv$je7B<;J3LDf;OT5lL`ijvqB3VDlA7kcHe?Rp!LWX&fNb0|R9c!T4vL(V$9r?6J zD${5Pah?B-d(C8;>zF9drXu@dKNu9AN{oD^)IyCwnjwN~9L5t&?i#CjRMd;O#bGM> z4lcBO02865P6l5Sw?sxsIWKN&=;XNpK`_%@T+tNXbHkP!#JkNj`K>&%?Je$?-Rq?o zu|pRRGCy&~aHRi1*bf&5jBzIP(R_?wL?N8tH6)++$HyMQ%?X)>@I^R7UfN4jQr_{lF&s z?una^LhP$**-%;$;xxqCv9<>|gBR{q%$MqFUu*F@Nn}E$sAZg4`P%O8g(0FRpa>=k zz!Rx)!X;(d;k|0brEZ{XK%D9^39Pp7{MKr+Xnx>G5oRZFsid{pdcB-EHWTc$uKY3} z__o&?hIf-I9V+J*P@mSr{Zt?JI@%4Kd2HHlvt4zJ(FVfm4t%# zYdW(N=x50XqBLBSmbtwL8AzrWdB3vGdS9k|_iy05x!Ih?TR90%dE^NZRo7b}y_1ob zMEK}p_(9{Z=LfQj34~qpq+?rhH1eo}56f(X8?gm`QoVIFK7mrFi%_QZi?cnAR=lZA zqtW#iao(w`abvE587zHubHZZ%dH0d$?Jus_k43U@^MkkR z1-|)yT&%#Kt7uQk2$AqhJ7g)goOM!D!#nSE2;phb#?4^2QVC75M-n-XHT0VLrq>G( z*63XuQ^FF_9EeXbNZ{Y|_j!&motL#1&?#eDC96HVVQKiB!S z@xU-`p6BN8qBYL-_QWj@1hF@1BW#Z8)cdMWrQmn+;Vd_7(~d}}L4^qd!VUTB4MVqo zJaGz7QgVi=d?>)Qi z^4me}MnY8Jn#izEchT&-W;5-O=hY}adsv2~ttWORlzJSRie@?7F@ z-Q+S}HC|9~5fP9sI;)yv*t2Qnpl5%GeM>T4%ya4b>fo#58f0O-X&K)416)7?KK$U< zv__RkGAkxn(=1|S7hzOm$ogV1QYiDI8;4+#w3^A_w@rFhq(Y$-zrMtZdQ4iqL!~p3 zmtPpYlH<>xbo89lAz!*;PKNjED{(ggo=KU8T-mtGkvStb`%mVzSEiWr*BFz5aJWv~ z%1QKze($FALK*)Fme8$a3)xpX4MB;<`sJhMHV+D8C*lr0W-C1>O+qSD!wUl;;sxp- zjQxisnj-8>Ool4uB5C1FepJ{u9~XI5=Ot!Ru2pElh@WO_KeGeyHYQiHY50YkEt*aX zs;5~_^jSz<)QH!$d@J6Ijn%{f@G&a1(3^xdKV=U+oqM0Xxuw9EYx{`Qnx}x&F)4GO zbf`!L0QrXe6F&BDvJCjt`=rpnwl{z`@_sq`${(1?-Zj}bdcPT+6cBX%a!4AW$@|Ud zJ($U!Ca3K&LNl`K{=AW?WjCs-yZ4m22JoqGHnsj0+B+rp?^)G=G6Sb%02T^t zOz*?J_nyfQAJZSrzxq>={s-LqPmJqddB^2BH^NfoDm-@w?OKk)sxqxc)e7>=+0-Oc(@zdwe zU>L(a9=wb>Z6oVQ>-Uw3ziZJ$w&j+)pxO2C@-jvcdfoGxnk}s;oaf%$VabZhP zKR-)wa-!U8{saT10$prcrpZY;aW#)W`Rvx=K$ZIEC=iD7{3$@z&O4h}L zr;>vvkhZ-iG(cop*GDi)?6Jnzw8#u`u~-GZ@&5VDgJY={P7MwxXdou{$mFj{L1fk0 zfCJ^z3oa5HFPRi4M}FP>?BY`rSe|`>ssV0-a^swUgD@BZ3!57RbzfjLHO|~Vx>+88 ze?IZHZPhP)D1lSn{u%AQzHtKA0adb7)hVLYlfo82g4-%%?X6de^evg>JqY2D24(ssV;O`Xr=lj2YBvk`U8-uc;R}xmL!_TrLRIw@A zVJL@T9$QsXMHO>3<(E3COUJQsW0KVswjcFjE?+(q%ldx?JJq)EllqTyJ0#>*wX7@* zz-rG$QBWJ*j3=6g@@e8GnB|#L|4#NqcNF3?02OP5tjo5lS<$&nm>tCIL*_IS4WP4( zv5f7D>?dK!`~J(6E*txTrXKds0Yt_(?~LE{MWoNXGv?UzGtFxLxUtzFD3t0^Riolf z$QSjgPXn(ghCA-svTB_)yd|iEC7AYV6e?t=U&ti-z*w~uTV<#<_d&FCZBKzY6-L;o zz$32@=L8=Y*2CH7mO$bYJ5wL;eBSQTpE&WwNxAg{0LX@*Wn08DmGqeF^N%e_-2?HF z2ihOEOr$;sbB6lqGbzytrekh7_EBhs8K=3YHE#vF;>?#G4i2lW-MVa{w4kD1+xzR* z)5SvW6osWo%@mI1v_p<;uOsj*+pmEsieRIN%f-nn-xJQczEoyR%owYB8A4rG?$kZv zpL!v^W79A?Da6Qf>Gt%>RcW4{O{4co_V;cV==YwwHR#B8cYM-e>m64#?^XQ3$%uDf z63(1PZOtq-IqbgABB1#;G7HYnUH|C+UVD{z?tsphbJxSJe188excFyx{jNwA-OMp$ z71sBCQU2QEr_;7E)hY~4ECLJ-Nd3u7>*4OV!WZelKyk@FH9hYOs6Vu4AnL|(jy{?VxE zxHg5kpKhx6+A^^xt^?*YIBVg9f*<4pF5Y}4me<4BWav!lU*`0O85em4g$kI;QJ$+! z8Gaf;K$7c2rtv17fmf(1Ef8d=Q0eFNHV)^-?Kwy*P zm>vedo*?VgYXhIL|?`r@OyuYvU7gY=xj(+-V5hz3deI)+34E29~B>q=F>OU`2 z{!i#f?bo9SKs`!T72uQnM?WgZSg}Y^Q&Z2}D8Difs7KWqlN+0wnoE1@)iVYml`^H6{*z@80LPhecI(prp`F^hr`|>Ve>`SU<6M_Fj=t-=Cb)V zgH5bjqc+Z2pir}xOmc~gh9%eXZ1cVN={J}{h&`aEux@})Y}pEDfIGS6gP5t*{`__3*){WL*hmB?5_H`ak-If%%53JJ?)dY$6>kiUw=@#Py}WD(7W)~I zCv9MO&HcQ;SH5NYiOwAvacWtYJdKhiK%6+?Z?gt#;Op+#mWCk^~j@q@vT*wXh} zOJ2LO3zOY3H#r#A+_!DJlnd7N3;ET5_Z`=_{EcC8+j3fm z4TN69wHT;ij^oW4EsuBOoqUYB$u`Gsx$TbX4}P@5@IUqaBnF-Nr0fShW;B;v!(@o3 zQs~T_DHmPBOzc~YSyrE2e&yRqCBcO#gaIXKa-{mQujp-!H`XEYimRo^qa&A8(pYf! zYh&N0uJ5+KQ=UJc%=|;#;+x5pJ6(Fqn&LNIpZ};icJ<57)*aZ%@egC(5kqg9&Og(} z%Ur+RTlL^dZ-dXo+3To*9LoD!yW)@ZSX$SXO2+-iysHmrYaO4kw60z1{rz41>w~*D zfA)Mj$?@yK66u>_f7dIE_g6Q@_#x+0JAR>B0>=-TLphG?Zi1O2x|UuVj=10Xk@n8^ zfgKj=d|BYvsq2@iSLolXNO?2nsqR9X;CmGisXLdfOl5mSKplaD4R1}aV3qkjaNB&2 z07@1=l!bgE(jbs2=FML*&YCV+E6`+Mm(c=-Mt2Nd@-T7s>SeBWzMx@zlIG@10QNt4!10SFAWUF)-9__|HD`uI%%RBbS;!NtIW;{!RQ+7B~%)vU7 z&g#Bhl7aS5WU{X~@zaA->9O~2T#oELzZsFFLoRPKvUmE~WEY`vpQ(yo52Ls&OecR| zjX`uTAL`1aGliQEDEctD%Eg*y9JE|f)S)LTGK-~#uYwT$I}BBErgx8aBJ;J$Mlw<5 zj5)H3+3R)ga;2Fo*_P6Dbr| z*&SdtdVwr5$LceCr7D##`*41b8`mI89rk8?Et%xzCe8_o6ihACDtAgev^`vyYL4s93$z3W|2NSC{mImboXr{01Bu+%69lbhF zt+3Xt)ntt8_?R>quf%*e+MZZC?Z8=DgGBwobMH5p|4pF*jgvA0fnZZC3u@p4MQ-;rzJog5aP8xg&COO8+4Cv>M({28ds$!q*0($uncAb9=v zI_0fDgzi7VE*eDAKOg&VZpoKF zYW?>V*8hoW4H(y&R)-IhH5JK+bpbeuX_ApCiDb18Ey>SGF)b*`$uKmlFf*^NsjZE$ zGS$)4iHcQBxC z55jRM_9B_{9S%K_5D-M6+_Hio8Ygk;K&8be&$V%?WlAx*r*0Dapq&}SnL6 zN>>!dqZ8l7sW333pYan$$eF_WQn(?6K{r30>is!tOx@IAT zr1e^X7!i`&Qa!}hN06BIzLOj`!y;`%JK&Fs1DSnD$?WwTEsjMHCw17iZ1%%M`ay7mo(r$^!(wXU9YRb?*zMaI|cY$X5J&+O36D?vuQPF3t$_1I>tCXLyVMgCpiP=Jiah zCXXt_H{Yc;k1pst%_DGKh6)oU=}x)O2HDs0Q>t}-pp#5Pm)`5E*RLClDe%$HbT1bQ z-bmK9+B#u_Cn^{oGCQdA3gN>{19OTq`E(?U%JLn9Pj>`-n)}jCbTsGOB=~4}99)m+ zKcYcV*0=y=G^n>G(QIB^8%Ql=J_Od4U|uH=(_Y4SAG%?Pp0NsAI=(==Yz~{*Qhkvr zfPzAO6sUtMZv)SjvoiqzIw)F_N&`b2s0QO_3&P^rbIdwGb8^AHKa!OCXb?tR5G9;J zZfkmG^3I!Oe;FIK(}(8-x^P$3Rgb6t`f}Kk#fbLon&Ow;fv-1~&u-^uZZ1BrEWd{0 zcC$Vh%1{Wb|lD>UO6nxj9FY zc>z*)QViS&gE`uvJbTQK!%!Q0o86;9eNDhR#s&sBjPGw14Dq$IZI?TL(; z@bThf!(VSDiucVP6$|rAgx$i&*GU&}UJKxnfQ2VZ$dnTj45fH(k9cQnkvOQd>!yVB z2M0(KB`yI%%~ywTj*BJ-`|zWNEa8c2ACf~OYEY)cwq5qwZZSdEj&b3(YK^{avef7* zk1*O9m5mv&h?vRczv`LQjZTv<{KV7~Fon7~KZ+Avl9yZY&(hl}Vi)Fs^{8`5{Gi9O z22lm9f}xtso-=d15k@< z-2;6#w$j?#|Aia*8`3>AJ3RIf(CD$r`Dvh-JPQ<)_htIgo}>K-FZTa%wEso?{I4DD ze?6-IN8rW&0}HP?j%WCddix__g-WtZOT+kP_1*3;6F5Gks+0l z@&E+tpR9&}40%7e@Er`P2(lGa9!s0Ur*{Tw*525Jg5bq<%ph8S9AEb?4u#?}1kCHp zN|Q3A^Vl$RhQcQNYly z0P@?{KQraluQHqHBisRo2o@X<2)gE*ZV-`&%(2S#vyIS)jia#P(%Cvss*Z$=Xe?W@ zX2ur63qOzZmxSRpp$w{zxg#Rt@cA`N<|3m+PgU{Pkrjp0R$zaK6R7HpDc^)tp@!h` z0`Q5DS7-ETMH6dGV+>eul^$NDuE9BlB3NH#e?+>uFU-CG=I0A>(|^HsWu49Pk*$8I z)Z6ujOme2v8vY=jbF;(ml~aQ=1BK#Zb|`|W8ijh89iC!V@wu_b`4xfWi(2jW(O8=m zz$0M~AA|AdQkD+3*6|yY5+4c6Zm=DA*a<3rF8Z)}chI2Bufl%C_6ULS$wgKiR_bd- z<&Y|pZL1&~qU~WnD(Z& zTA>mFln+)~z15YeG5<3YqK?$w=_P6Tq(tUTYlNVyZ|-5AYaae zpk%)vg~dBsF$LCtA*x9pYt+OG$)>7+xS!qly!oM<@)&}yI7$o_XlT=VKMCAO>=|SU zetqd;*O>@PLqH5efJgvAwF4yDKlh5;4DQC)Oio|HM3mo_+O`)yuWiP2&r#t{j`EbQ zdV)-m73;Tyt6}0Kf!H0qnx4N6+40w>`6pjtcYbqOd4!PYzpQe4%yHsjSD2g#w=4Ud zD6Ao^50YTPCM5aAdtr4OSc2Pe{hj_~!HrLeM{JJkqu1YGyK+TDBiHthGjmfE{uzd) z0B$JY2#Hg`xl~wX%45HKc%0ec4jib?d^2Sp-5-~Q_n%>A89=%c9h^(UQoAMeQ3Pnx z11LvZeUWk*q66bnnFz^)Dp^WW9Xn@s7zr6nE0x0(2D<_Imd3mpwbWZsH9%rdoF zHVP9#WrH9Yg5|?s$3Ny+_oT4KXz;uzEOKw>4!O#IHF45x_sRheJFLv|gf2%SG-+sg z_}Y}@t5=GeTO>)d`vum5BDgE@r(JtcQ!FT@!X+4$tp@?Sh#%Bh85GrGdo{hgMMD(h zhNZbhkQY~8BU7E1uYEm{4fe+w-Blc5J~wk~ZL^{bS|rXY(`pvuC6OEx0JAek0f7u6 z-|UHD+v)L9dtPhQ(G7P!ppnX}?!rd$gt0o&9z?t|lnp*wrKt1p{-VbbQpQY-N_Q*N z4NVgG{E*QxDql^on=?Iwe>-|EtaVH*HKWF1xmK3Oo*q0A!8PWgkNr=fFm}NGcG?Gm z8j#)hLSg^me(&v6?sb`+{!D57HB#w)J|3WhT@2hqiCo^FmfmkkS{s&kdKbqpH+ ztZ9(dfLY0e_>ZT253<^3E6qMAy>vziCe%tStDPV_&M}nas-WIIBm6lMwy$;i5C{Guk zqM!z&C=O{z(br}Z)G%iN0SW&aL&??|O} zG^;ud_P8A(Bdn5cogN}pAyp+B4UYzs7VnosB$KGEK5;ety3e!hff1MF`kLLCxChdi z3>1dbcNj5#;R1v%PXuZQJoo(R8GYF7BmOdv7tK)NP{}LZzA}ewUF97ez@UiH>nI2hitEY=?RU%UC);fdFCD(X&Q5__P{Wz#eA7&ADBqhYW> zy%g7%=2J`4G)imzeU_L@>AcM zGK{QS>TIywuaDN@HEu?hHqtBVW6Z+JevTmc)Yhr!I}ZuzF`5gbuXZ7<5ys(6Vr?d= z@uus!5ez?lw;<9smMUkmoZhL22ltADBCe|PKRA=C(c=eBl9E-MQ}=Fr;?4lxG^R12 zA`Glb0s(&(axexzVDS1OX0=RA8!H666mo(kJ#k$fhIETiRFGCTanU(fzvbIyN>WAdQ%f;`$euwN^mF{Kb6e`#ac0Rw(*wkf`G|AZ zb?5`VrV`_j`s)hV7em&u-=Damw39DA7HA`!f22fY{u-m=Q*?YzSK^8)QHoG>9D3%! zug(Z1PS67M*2B=QtGLylybL-!zrOi*=-P(kms3N#z0OBeeGK)|eKF1aQ&*Li$1ac& z`TFH5eaRJGNQiqvEpLmUd-II>C)Ab<^v4E2*F;XH>^731Q7gmMP7g=I7_Au(EOBaC1Zp2+EOajG8QAIz3L1ubBylO5feA-d$X{tcym=WKuRT3CEgr?w&q< zpl>U)S5Hpk$>_BIWc7`^daGZQV#2Myb%!H;uq|58et(Qj05R4F!+*x?`h8XtQ+X!= zyIHU^;;giNYRl(GIq99M$DNAk)No!w^1FPlfnB*bUX$zeCi`6CAqS+L7-@kf=z%s$ z9`juhMKXL6hcRVCqqC``gQCNO?DkACY|H5^6M=(A*`k7dyvh{VaXjbfSoUWkrcTml zveDp3xV1(E%k6C`xjNIB$+Sc(*hstpuL$Y^@9^o>h~YrDfomfeJDn&>hUYV5Cy`Pn z#enSrZuqPwS3gR4@PiSN&pK_u6e5<0VG#m-+>N}GdWboQ2s7IxsuX|5QK{W|wxTVv z8gZ3Jy)H(Xk^$ClO;V`tnpqE>5=^-tel*6D(bIeht};`Z6f!<_1w0|AG6t4$1hd3% zm5U<3#|Rdn1Z4BY^B-`UV;;9dy=`%PuFu5PI%Y?UpJ5T&eheZ$B1rEem2ne0F#>aZ z3A!=Wc(A=4#tj?kZ|x?nhH-w!IC{@H^nQsZMgdms5|ELsjVEH2OWki)S~s)#kuMa-+8N#F(@t{Vi?5TD?8z;m*{ zn76{KE}FUoxo}Qc)v=$@gch&57AC_bhYqLx1@8O{@%0aBHt{edpZ()}@0F+i^JCft zSk3r*lJd`lG$76UdF}M8lq}#X4HTI7Ued{Xk!`^6&d93Wze+b1Q`-PgcU4U%5D)uv zl?Dv&zecZmMtb^y!}Qdj!!)pX1sLA{yFJSPZ*S<2e_7ps4@v)@Xm$TnodMfh6(D>8 zr{+V4fM~XAqAGB0-jn8RV`C$o!ZdYlH7#|uBBP9)njGNVOw9XhIOC9Jijg@W&YFd_ z{eU>Djf{?sj}}%BZlwtyd8fi1~_%6PiGfQth`y#F(NNz);BgkFxJ!Q zPEc0W{BG1upuHWOK?%k+n6zKep${9R*A_ROSM^f&H>^OWMS&7I#m20uOe|QJmW##* z^Oa*Wvo|55{^R&lOB0t0gU^jHfS7rcy4l(hnB#hWlyc?I=_8S~Nrq+PHhfGVG!g_N z^c%9CH4gerE1fQq%FRlm6YIP@AGD9Ef~*La*1=2)yDk0q#>^E|qso^St%&E-RRTY9=W`ks551+J)6k;Cl9D9CRFITNn#^D&7pa46zL&`2$@7i!)B+}nTFmtkGUx~vPuiSrWd)*Ad#K=IC$b}q0UW}AtejX@n z^6*1W8j`V3!U-&?tR8m+{ws3gJS^)CHPWbs3S`bKA5l=BjbaZ-lgWW8(Ff{|L*m8p zbbSKi#p8U%wc%AUpc#$LqHqm$l*Zn}3=Qs*^?rLm8N|6M;3Tqb8&>m}>Y6K>YYhGp zGWKwFD+3H@h}6XG{nLxeC$Xm##?1pUstqtljj= zP_P3X06W{is#1uW{_f0JF&$VfP99p{C|8^BDFPd_XRWthuftN2J!O&58`t?;L7^OW zA7wkE!$2iqHAhLSX8Om=&`^dX;&_vG#Scl?Q#NXU?`n;7Ghp(0FW>y}ZU+*|(lTDE z0e;Un2nEPos|Bc>U?_a66o@@FuwAPGU?Iu>WheIvE_qGsMUt;Rf?W)wVpte-0F z&1XOvGx8ghd^6M_&V-ir9%5NteYVWxBQi&0S{;(Paa|`>+YT)++vbwxDu7|COQKV9xghSogIrwqK!vlC#qa zaGDbvK2Zn|FEHHVX}eXon>AAR!T^nd5Q$Kuqq!5WM<@-SA`~)bLZAq%7Eul88Al&Q z1>~%aJ~ru88pQuxLO7#U%YkJPgD|#>bcN4nh!-l}I<0vi;K8uE%41exTs8|2rQ;Ni z(eCkzqwN^JRrf2b`9x!e<|_3ci}I9}nam{~`^s3!DUclu!vWTq?{Dt6fh0uwib?&(cKw8Y-!Ex z4V<7|Nl4%@ZFDnqfUA`}<@MEh(ukcyE>(F^!C3*B$UA~)rXvo8wAY+1W_K%?0e*&M z)~D-Zp2$vIBFwVn1$`3i_eAJ~g;Uco0E{!}n8C;>>yZkAY`Qj+8r!Q>(QZTW-Z3!R zpPG0N1Cjk1RKf5x9Cn%IBK3S99~ww+$A=mql00A@nfg3J+wB~?vWJM*FXYSkzhdj! ziq^k`i868E5PxJ?YkF^Fl&N)ugSgZ$X_bIQG(swpTEY)~Cc#p}T&oTt|I-EfKcv|3 z?^iOQ!xq+lz(BMOU^oEPsefLe_o`Dd-ha<#02#4BU^e6Lq&A?&0Q75LjrZQlnK||Q zH7bDn^{?A=?|wS$Z(n==xx81P+RtcD05euIPxf!mdogVQC$bk4d%pbQKMv3T78Cp5 zINE;>&!4w{Y=8T@{q6r~H3p8hF=-HJDl zQL9Y9o0T^>`g&#T=3=Hv{fx=12~oEzK}Ah#+qjExXWha?H>6O2oSJzDuWNTRVa3Z) z{=Axxy1&g3IW6ip1@mmI)uhMoFza+cGcd@; z(ZI@^n#Z$uLqcvDHZ`0&tgH_50Qyled_TSyhY%DGgqly+HA6DS>MAXpTABG%3 zxnOk=8cmhzt~T>c?%9658o4`??@OQ)-KWsDZjDhvBBdg?DK`Yy)A+n>mJ;r7wH&8; zPcf6XLHP5F>cPDh_kJ^nDgfbgwBWr4`rv0$%5}{65O;1`j&bdQ08bH0#M@@pIAqL{ z5^X4Q`n+I+PnqqN}FIXX#H*~uXa zL`;PczAVlSh2hTySuwIvkQ5Lb67tNy_TjM<*4x0Y1e=^4T@=IzG7vk=u;#IhRo_O6 z?uPR_ro&jF%)u2Yx>f{G99x55YVrtKqcTO_&aaXJb(mS!gnmg~$}#RC_NU`(jxH!j zwbj00d~d`Xo?}>iv8rf2o=`=>DQlcn2!+&@v$+_P!b35Bcs zpl1ZWQ#QTfn{>I^_17%{?krobEK^oLl-eomeOq-BCjbF1eoC4#)sTp_FlB@s^}V1` zRA&)C0&$_w*82Y_?~i>Nd{$ZE&5B%h^AS{1VTNBSH^!fx4)>GC#2Q*ZFc*+Dfc` zToAKkw^?ob0U|}A>6YVj#T7yqQBA1aexKj#y20s#X9Iz`S2Rv%ccgv&rh)Y97wWn+ zt<>TtAiCDY>3(7tl>&JV#kdBn3?;X)$CV_M{3qk%mOkNQ`ov|>E=1*U&cLR(7m z2dalwuMoRPGI3pbq}Mz;Y!_+7>NSugZXUs3=$9Bwb(?gVsF1r?V`^bZO7_~sA_mN( zSrdbKM2s2odqYR_3(Kz?*QF~zbVIjBq(}OE9}#`?qhJ4XIJ;>!W7Zh!uqGFLd-zR*5JCvONC~}23B6;0 z&=C<7QBgyYqKFYu5m8c*4u;+#^sb<&h$x{K0Z~y=Q6o(dbR(i-<^Klu?3pv?%$)Ce zzMDBWd6FA02+3lt-zud-;6J0W*Zq?X3Lf;k*TiIiwepy-o#NI}MA?(cF{^^X&izs` z(k2uuwNN>M<4Y8Q6fae0siB0pI#?P32+DcV+G{saCT0q@c*ZQpho>uUGdLxw$SRdN zudF28Q&a0$kVwzbo#IkQciIaae3!!fK;ikX+2(%$=zj_}gDoTb&g}F4a}nAPEc@C( z=g<@2$vOG-22uXgzP)jEPE0Q06k%^va^~cL@#cnt;$|@642s!cj;a>ivI0X?&3|Xf z?RN$?r=dZjylLMa9eeiR;a}Ni&X(1`7PJ4YgBvWuUi}6_^8Xd0yeVTFfD;#BR@uqP zKugOY$-vyuc7rS1+7ivv42w(53JZzEoT@5YL(6S>w)Pv@W+#)>N)Vn+3ajrr+gh5N zmGt)Y7n^5vR24SlU2V4AX0GpKb34H))}SJNIJ;nAdZyRBlAT#w-}s=@{6?alfyrm$ z4Xry1tfJZ9zlXkPzUjRDGRmxei>Bj_^49eDD3;Yr`Li_WY~-w zio(PNT!rWHs_>!fllMKmwq8fwRH#>yJ@5$XFBxM%LR@ z1;YK519nH=J*a|@Tzy%aj))UE)UCF~SrMr%YkKaxn+Dm0fqVQEI^s3MgB0SX(lmxXB( z<8rjmrwENjFNvgCL%76)NN^gH_DboRbT^EI{e6arK+ngzD&6lT<0a2_n;gz*)GqzRN0B-RFIYJID5$?#wNJhE}v3+ak|k9Q+rsjnRQ7x z#8|!FG}Nu^B66H(xUMCvmImEcJXTP4Cv0K}yKb`mz|TWWLG3 zBAp2LqyD@lQ%+F1p2+%gKC#tX0ol2EKjZ~uhE)Ns_bDgKZ$JKB6P*2Z>O~%Eo1vSw z?xXJou6)~+n~3yYaj7!?V6D#j?)6`)l=Yq&x1X{C)ensb*{(+l4`71wgDBhNuW-Yl zdRjntk6QneuItLC%VB*wTjHQ2qE6&b#)!AxgGh}6a4T#EuDObnojii$YG*w9<6)*$ zbLS;V#v<66Bt z$&g*l)Ry!6p*E9TC`R4YnU?*=kDNl0E7Qg2P5j_xH-1I%NI$x1taQfGH3lBGFNlE7 zI1*~aBQlEo>@(XoVv|lPr%Ye9rjJEdwFOv?@`c`HRVN_gmwCHw-HU7xPS)%$vb%>g zbc#z7fEweXGp?boyep7fo&G7Jw~l_3AHjOt;oniyfkPiJ1;iSTqgDnzhHctDJbFs_ zLuEFIthg1s9p?135X#h+J~y3tJ9X@m=tLEyx{VSoGmg$yZFHF}9SIXB0Ju_D8@b!W z=$h+|J6KE@%#;QFKvy_8a6H7VOl05{3|Q2>$ZgOBK^$Mnuf4O#CAt@~-b1sIpT`NZ zVe$M=GdczA0+k)vodUDf2FV)DdLbTzcZ}0uiW*c98w=H()-G*@DpB|Syoe7Yz!`3S zLb082Us2(LGy0Xr1tbNByYUPK(YMIeANHzI1k^QuUm zdkIST5_>U*JVGo*pDDpdSX=kLa7X74%tP*PATFM_l7rn8xQ)b>3Y?yas2^0yHY4?J z?Rl7Zt|=|ubWlb!O`yMgiOqE@{9<4%woYa>J>}v@xv*HrRF5i!OJ)L?^hUh*E*4M7xDlbM4-F%B4i8(shDGq#3T7O!QP4&9lo^kiLsf&WVxOlALM!+ zyvg~&YRYFr$S^TRmnh$Y9Y*{?{Fw{3#bwxwC-NsUtPYZ~g%L!}(^Qz)41l~8RAq0T zvGc6_`*H)Sf(pYZu{~s*OXx6>kLb=HU|5D#-u*AH$D8`}rrB$UJK4?S1W1a#yd%KW zl+T~~bS!Ad23Ms{Z={wfv>Z-eDxnBG8gCY0bHY-&bw#DuKod3ywN;$uNKUmT$b~^o zdZSFFccV;X7>q1;_l^yZJRTVZ@5WCbj=$U_!mnP>{ClWfT3Y$z!`g@C)ekG*mj8Ia z{NeLI`MUm3u;70br#GL2yjaKHo}jOzZ)c~ob*oO2jJSL& z1KIgK>^CJwH(q8|*VbE&SeY8PBx>sztP)zbw$F8RPW_td`<}{nsJ{HT?#zv=y_7ct z5BPE0xZb^(yHeI0_Ht6w?;;~TZU1v?$p$U7mKg%^Zd!_mj*_eXSXl1ZnM4dX@RfI#_4d^&Zi4}{w!kScLRqlJ8!u9&G8vuJ3iE)my*)h z<{URzd`RMc&(ggj({k9;Y|{mys{xIHowx9%U1AS*TP6>+hBPlNP)vW^VgooU?nk@7h$Ht_Dzk1{U*_?|k>f89%Cu zYO5ct-&WOiJ>BNjlTN@41r%xjs+pKMD-@6PgZ4jO8_Y5qBC}Ef7stdCq*oKvYz5ur z$DZt;S#yb2#@NbB+02Q-*}cl$IeTQurLDg?Kb&~H}}ectE>Su_3&!*Om6rI#b0e!~*Zl5erJW?PvP6M(&bw zeE=1-wbuPRHQ3pGHw4cQa+xWQ9WmBZ-JUqY>+be$)SW+FJsBGB=J;^$r@m9;JNz_H zRpCw9DIhEJw$7CHmQTG#+}1P=D0`Nv7&#SS8_uZh5yQMxdV2ON@+0+tE;1U{1o#ho zx?Ia8dwkn*&&rLUoYQjRcEmKaXZxOQ(vJ$DnG2`)FSVoII?Ms_1=nt(HC{iL&x5+S zMNZ{B;w8rW%P?-5)C+n1s8k$?yqO0XalL)ZcxDKADnj6LQ_JEy+c2s@09dOMzxSZl z@rjssS?^0~*cNN=@9cS{pK)D2#Vk-%fLwq(QEg*RZc$%eYpGUMp37pPcBa z35D3*QX_(k;?;HwikHr54D&l=!M62{;T5+k$XN&so|zv@KmAQzZQ)HiGQP|J9mLY%bTqpe{Dp>fRl@VMT$?K z{quMmP0yoWh?lfFxwOsGoEZf>-qhOx6yXVjL z>CyXttuFp47f-$fmzn-mr1*c+iZ=-9|1FdR!BOAI$p$R4bad3$($Y`TH!~n^fFsey z!Ys|ez|_>F*tF1wBN`i6SQ0PWZHUH>#;G<=AU+xw*0St~Ma3W|9Wbk6)fRFzW1^** zo}=}h1jkr?8=LguoPvRw*@22%Z?cH>_lXaP1ve9Q^^L#U+|=rLNAI2kV3HnBj*nqH zFEejFrz-3*lGKwj5!59Pbkc0%c_xtzQpffWuXJ3hopWwxIO?YR8xpxe(fCXuD(8WH zy^LY|&WC4fXI)6^B$P?DQr&s_w7T@;{+4FbJ8XOpBA&K!YZOp7~$t9y7`?jV*_6gkHDW} z?_U^uO;NK(%W^evKlrki3ssy-zu87-uI>Atk2DP2?qHrHSHSV8aLmKnR{A~fiLgwa|r?a?kuz{T4Jj)Qg zyr_LZvP{U}VK~Io`jw96T{RgDA9JCEr=}$#uXrL07nmu?T#+x;c|xF;Ae#tG6S{6> z5i)Mdfxw*|k1VfL>cUb>gxLfh_qk-QchoKZbyHCFCAeE<{qH_#nm2|3Rg$0Edo&`j ztk%jD(D}A_{8wo$aAHnszb^{G45r|g^cRVp;joj&!cvE!kda9#z6;6> zflAZ+*|ZW&?tVdqEI~?3%-ktY8Pj27xO+btx#mX*&}NqI#&|jFJjruoAMXjhj(NznK^S3!Fax znH>}@Rf#yxKehTGbE~vw{>olorP=3Yj)Wqv%EmJ&Loo?LnN~K;@CkkwyBZ=_A$Deh z7_n@UgY~zpUGk|WolW!5EpJwF`{T9^V)eU<6>qypK@0cdcQxzuV`ZZ!P})K-+t;7Y zHuQ(_Ru6qNwm@pEE?XSo=*9O7f2vcsy&}|F{9-_OCOp^h?15NDnE^;Eplxz}Cl=MW8xkGM`zOlfNl|_FRi%9a!yb3E2|0Mi~$%P34 zvU=eswanan_T>iOJ5$3j_!bm@{Acc9pmMppL$j4Z^ezF9k2tw+#*R3vg^?7to3zBO zoGq`d;`h7V6H$@4kj;Wa5wQuy z@rhtH=ASNTFtG&IaDgL=C1smFtBqiBBgYHPX{&DG+;?xb4T6s7+wB8)JMVXNjd6A( zHan}qGOkf@H{v;1lew8*+8j%M#eVw_3FCh{^!{5l`9F9s8ANCc4-XfD1;O3j!qCtn z$%1IPeM2?gvE7AOXlb*}vbeO+#f9Ur+HPrQzx~RN=BwAP(%h|5T|7XDw&FOfh&H7h zht)P>TUSlt<))Ua+wFPnAt98tz5EfBF`?AKj?pCW7ywjGm z_qj(UwrZcjgu|ZGTN2WD|Im5=+{$L;;CKe}eu7GhDm(II-H-W29Z^Vw6B zKHeLm#V>J-f6T+Ww%flyL;-MgRWH&D6OpJ?}_G zysA#ML-2is)AEi?=18-CD8Z5_vQs2*BTg90h9m)=^Xvx z)9&IpYl25Xiu-(LUexzNA*(ER2YTsAK{8Yc7=0Q{we%*d0#b!g)X8eyc}QlI9T`>K zEQ*BH1exM(2(5F^4`I<#P6YJb((an3$G;e}rOJxuQVWKmJ&>v(OjBp{g4_N^W2G_E zw_HW6@5dtXq$Fj86+ALDQcHt858W#NDKt`lVE-bYLFk#|r!2ALd6+?k-@A^%2W(37 z`zkv5lz#hw3e2KCa&*0W5OIQ4Dlj&t-8b+OhcDq@Wor#w?mbrnoh**OdQ?S`tcoZI z|8X@?rD3R3JK~iFMo6v!1=X|o;hj+zC5fMo`yzSZQD2lgvrBkK;gY_(enTCr#ACJK z_2X=~bg*6$Ed>Ry4>fbR)1P}RfxjM#KSExJ;xiOdY;Xc{B_x-=;4EC4)De^_h57ES zH7_aw1(Nkx=bo>O&N?o#MZsg&66PO;P;WQSw190mt$ft*dB=`7;v+Gr6MNjcFLb_= zqQmP^OzV@L--de-3V#$7jHv2SttVl`#bjDs|2tYwn%3gM7~CUl=X^!M1@l!TH>7s- zccKmZwvmR!nRS>=WS^n#Xvq;67oz7Ff#=S3kvB2Jk~$V2x4`9gpA}HvAt$6APXMO4 z0N%_UB5AmXCrm|Ruo}q}-lj>VsO6+po$Y&nJ6{seVz#>My)RgZ&r2&SFF-5zbE}hq z&*?XyY~;)qYX=g3H1M*p00g#Q9+#Y)gOZ(BL=oeCzE{i&2+15qo}GT&ZjD2`!XYS+ zCN7nwFYURiTo!hCZeALZ#Z`zqzlwwkx%#GT_ttSC>Li{5)3s7HbzXhePtdYq>8hrR zv8wKFY3>iR_T;AFw2|&V#&!XyffG7TIy52Go$y)3S@Z45Njh$E80ioIAkRF6n3Gvo z(Qkfd80EPMEAQlURYln9XI5DGQyfDC2#D4F!@BY0jD5vrl24Fb{G)=7y9H-q-sUVs z5KHdbPZIKSysa6#lV8XBs&eM4lCI?`u$hMteeN4vce?q8()<hcc@xyn7ogKavLmMPp5;Yh>R3$Xd0E|+{IN{tJ>60^pe zw-^F6tq<1m*~<#?Y0HO3qD(Tt4UITMRfLxEN(v5NCJ=GU_qI#$(5sLx-vSc_GwX@? z{cBL9ArdMm^Km4-A*J#?jrgu1BbS;xos0OKWN&c|m7!b4z4bwy(UzU@g-&vtyT&k3 zNz;%3{^5}OH^=iPByTQ8Y}%}RIAF{<}m< zjB-W>r-~~F+-@pp*w~F|!`D#I%@A8aQoOD{O~ z#Eq5irq=DhF)HloLfnRV()#J}@Er($*S&Z5xb@_9wz*fCge$8@F6*il@}k50`^%{^ z%0b^B`pV^nL|sTRIbG)?eRTg-feE>Qr!p6RJVCZISFE}*zdd@>KCdi}@c53_{4nZ& z`_x`R)>uO1<9o!txI-O1$9ML!CUcyJi_g2!o*X+@y{}`N(zgLh^-xIv%-cif0m<_2 zARf_c-Bj$2{u1Y1pGAE_>e2phaD22dpBQ`eDlYgfa_vpnGy*vqqhdW#YIR%Wx=+$w z0WWlfAx&2yrMWU<_`;`;Yd&;*6LT`j3}v!!J+`+A0L#LIfIKfJ%r_pi@-FZ%1E!Cs zqO#Y#T+(;D+riN?;!U$qG#Up0vbkS;^JI$w7K9H+U}f*O#y>hgo9pm4Oxd_er6fw7 zWo`Br9Vy4lgG;Odl-;Jf&!t*B5aH=7CIDAvW^Qnd40>!KTPR%RT@7~~bFP+~)s$w^ zV2$jCRzpdIO5ZY%MXIG6<0zou;FTKK@nsK@`xXXwIF6=VFMvE=oCwjOI=zrZT{-<6 z5IB@oek@ued}}Zqma<=#7d6vH;4?X09U5Vnn=}tK(KkIFp`p(>3e(6v*?srTELN@I z&IRk`QyMtNA`D+x{;Er|nXxkh|IJLi5H^Jrp5(}8EMKbX5Jw!c^uFfKvF=(8+Q4vZ27ct3- z-nH+10-xv%I(=+gq{U=ukszhZr9R)n;mJD9(Xm~j?GEwwEl=El>#=hww0^D#?5K%> z(65u1xdsmKqzBZqbpR1&IzHL+1-^4ysY2f45ixVQwPa6;$ITIS@;e>maJ$#qU2|_N z<;jZEU6Xq_xnzKMwfYTW%ZUjyX$xw{L_Id zLx9@R`jqkqU%%MA!mFq!aYd3|K=dtZ0QKc+f+V;W_}GUOas=GVY`^cvLy%r?(@C88 z9Al(;6@qfXf31K(yV*K`(rC-Zn9LgL;<2Lct=LU!iCdPlvZ#wdXo*#Xo67tcP7 z5P{_{V?*E}<)R{IC`gskSY?t24`M1#rCgvN;{pILuDbzz1Kvkv!UPpe{e|xgj=G&@ z!|*GI)%I&}NnCnjjnZ(^FdUV=NmWdgYtuU13_#@ehdKCj=ig&4Hnosb;827`ZCO^<=RmP=;e$bCS z_&kLb_q`uMvodXp{x|HSM6WaAacnN8g`I<|J~FxA&LO)>>*wl-94Cr7IS zf|=PiGjp@F0!NOjZDvDsy6m!{YVWX2b#wy(+7bk47bmNtVvsWrRI*qbPH0Za)((d| z2|HrJaxYNTcI+LTog1=wlkHT0-|2yqjn&OWV^hmD$D8^bS^F&%WiC3C*@0{DwmNB` zy~jw}M9RcE9nNDN9m92GQd}`-+u0AV3@TQMpsKw?|18=lwA?v`;HmqFSn(Ju^GbDA zn7apu->ywRvQ*>B!@!xx|JGCbB+Fk?1E7jb@eU6vbTh=MDBD4g>|NbQLJ}9YDqYO( zJ8@muvEc>9b3ISuaYc{go|5p{8zPY{<@KjxV&9AGbGuU8QQfY#eKw11nw+J}H`nSJ zXw|asyhVVN@Ib&ots$b(+@aWda3$dG5|3p0c#8klZ@a@3A7LJE8MzS~GJZJ3$qd7< zFoOB=VOqjS@U^12*T*^+hI2_&>T2(ch$ad*J2@`Fo_Gd-dv*Z3a*Nw zKL+SL66P#uq{!u3HrA*Gu!aMxJOqfq8h#+-G^U1H!lOS1)Jc&|r zUUCeYXXk_pK;*`nT1UV2T385`Mq}$rBpF9i8P(RYw7PmIqch&4PqGA+^Tdf-KRYjZ zi1+#z2`ZrpwIvnJBm9DbvE-@`IirhrTY?x6O&h}hG_IJ!@4JK@-XtR&GwfXkguTVLrG!k8mnz}5IuC+AL`onB2Y-LJ3B4k zWd9U>;5w>_YVR&1)S_hI@2$_1*)uWwFf*KWvT@Bb?9-sheFCIM99bq*YE@4mH*!&M z#i`DJP#`_9agyva)efM!(Oc;ln%~M9XohI_C@T!9OdhZrsR@r7&PAxmeX8S5X1yFK zkNRoYBVhjh5&M&JTGvZ>JTo==mwM;YOF`08`OZgofp;&}qz2?}>3WlIHn#KBga`_o z-&Kd@8`Yd^Fz{xFH^T@o_ffIM-@9h9LgetEnURA*g5dF={6GZW;i@=l>s-EGByUVM z0|bU8nA)D;kIU2!VV`T{Ygm4vydauA?Pc@CjW+a_7vP19WZ}Z6xk2`K*u4cNN@O3o znIv__It{J@hfu5BC+TaCak9qC0K`}pki0uO@nG}1T6%+cC? zUv6T;9R&1Z!()gPp2n{6i@TP96%1p*pt>=X5h>eV`A>b+C{k{&JPWGP1Z_^aEN8Lw z26w}XE;G}m72}m)sU^;Xv9^-&-Px(kLk5rxCfDLmd(|Lz%6?+S7E2OQ;e#Miw&v3% zf$d2_G+#Oofdo@!Q2CAHJ2<9i3nrC6aXH>Q)gMbRe}lpKFkd>v3YV_MsC=KwdDs#w zEpa#o<4)sO^l#as^SM(93IXK4!GV9E%RU?R9UKK4L}OR5yc!G$gWVmc_IO8Zj7M;q zt2d$eXy|5hbz&H3!}{BP#06>&2Z|FwDBf)F;ADiea%(~B^CkjsjvP0FApAGg`u3e6 z(DV$#Z*Tv@zQISFfyD=)QVrH&a&F9{QYRA5QW$f?TZaODR3%U7DN&_J$CblxD#9N%+630U6&mTz_B6x261U-<{uGm)4+ zl$FP+?s-hr7c4YHFjc%Co26jJv0mt0llsL|#8q8S35*jrmr;)z~xpv^rh=Mx&0* z(0bGn^>n!S{aZs9xLy)x;?+EfQA=Zs=|`TOL{j;tVl!2JQYw&j`z0PP`qm{}Us)+# z`M7H|J%M&AZ^hj_=FL>ChPUZzZIb5xJ=Wet2jwmGdWNTqMgx})89J!7n42;~UcDx5 z`6D6u_3LCy4Tbf-)03EcA}54KBBD$?r)EwAm!j$-b-G_Y(ta>7nRC{6{&DqJ^y^=X z6!Pq1^tOf{hrZ9vtB|Z9j(xJKFiZrK@7wun7y=JQ98Gw*^C~HZ$5Q-Y81OAl?l@ay zT8@IgAYRHp8~@fhzFR-2j3Sx(NIF60E^=zu*JD9`G2BC^Nf*stIix0Kvc(lI&7ym! z)>RB-7M`aUXP#zeh_BfDn{0QNkW8GRWK?7eTrfdKtJ6$y6uy<5%DmTndlgLxSJn0= z_bOJF7eX)a9L|dvs-6?{mW1sqxzP4arF4a=1Vd{#Fsyl$*nNiz<1d^fA`t*{p$c$l zk}1p@vIhVJ7zl!)HJB`f0U%x%$uR-}Ffs~&V(-3_=0{Dm)k5)^<@IL_@$C94UigdI zrh)4uR&#~A8RptRCu5;`5arx>R6`MX4|8s9I~Jtwy?7MX&X|7M3eV!zM4;2JDc_bx z0`KAQR2#+H9b}*pkeaO0?pRm`tbj2ZkbDEa?oNk|NxF66d<~<9)_LZhClWAzLq|Uz z#Z8=RfYWA(y-xFxF+G6)XS;9Q&-CRpV0)KMnbC`@Za1z70gi9ah96y^-?UI*T4(Tn z*uO9|hG9X_@Hf>*F(N)@LG(+Za6-vBDi^5eb=KpM}cy(_V zybgwkEJWL`@P6#f%j-sRnSa;{Q(yCiX?Mb4=fBF2R4z{-`T-{vUVKU;yGemxQNv2I zY=AFVJunfRHG>Ha4qL(&5e4t-M2U907p# z@Kbo2fVC*y+`Kg*Cf?sCd-UmG!hxAF9lKuj^dPcr7zlg|e6)JoPh(RH}}= zhhP?AEC3+hlY`*ckmUo)+-C8qX2_kqRxDi=qOsGcsY2HNHqEo}TmpC4N|MmSfCDy6 z2w!Ryh8}(g*Z7FkooaAltAEGd2(qx6Ms=nifHIfq3<8Rh?N?QgDC7YnI+8t z6{eyPK|BQOe?@k&mCD2g8Q>zi6 zdNya>X=8V>7hHE5e7uoO;vAG8KKio`^U-5YYxRHIUHl89{})MnGn@2($O`sfFj`yt z@7W}dq+MWG1VXeq2+@@r5M6J-VUqqkL|5Ih&rbtQ(j{i*w)S_bHf++H7~RGZv^f}^ zW7*j=J;Njpf*4&hGSFoEriBC1Ux+Q*?F)2U5ToxUOc}-7*X*)c})9t5{3LKU4?bN$#nh)D$-O>N$_9sRQJhO7znX2I_M!Sxs?rGAA20u|~B@UzeF2S2DK!B#Zh?S855Y<6p(>6Ajlev0M# zSl;*AS_i?(9gE+S-#uj4xOY$>S&<=s)Lg4*RnoL2#<}f0(s&h(5_+!_6GK~CY1XZ= zrCHwI=_!iwQKs+q`_hPR%h{IGpk}2dub7cCD#?5Em4yju$;uG(Bgxz$+-~ajH;J$B zBQrY2lTWIY99;P9TvK@b{>!xj)A`w%a2&tuPvmQ#wmbE*`d&8|JJE+;FldcUeB`?v%89gbV`*vDE{oCBGlw%D&k-md_Bg_ zGosXWc3{Fk%(BdPFvG)iP(jH#-NQe7aKtFp+d)u4Dff1k-b0#J*)5rZ%*nOEoX{I{ z3gJ7SERgcLS8Xuykute&i>RipOii-r_mbTCz4Mi2>jIIg6~8}zbKE`KZeM$5OK5BD zc|#Vf3sq6autwcH`@J?&8eqSxzpUF7Q&%s;1A+0))E$Kh_7ILX2I~S_8@Sh;FiqpV zOjgqsL(-D*fUB4dbhzy~KzN}1v@Jmto1QP7)@MX_BcAN@ zhRsnAUO$t3A`o>GsuFb&b-yP!bjCDS;bkW~r{bpPv?1_LSpdwDe+5LE@Ou<5oAgQL zn@}hbGnm4$B);2T2WKnK*FW8k@PC~`8M?RZ25TL#*jAmU!(f8hv@{rj@T79>S_+0$ zpZ%h3aF);o=gK^8i5!|Bc?g;}t>5}Ob`oo3O@;uBD^Xl5*ZoPNoB=b@%oaW{A3aoGsgUNP>F(4y<)N{NW&_ZS>k>l5${;KP=r1X!cBQ27^eha zRF7$yIZV5xr^PrD6@(9;7=4z|p^EAKpw3P4)hzx~hS(cWbtucx}sg4sSKVnEs46H61N4fwmpQ!k>e_)%4bBNV}N4Oay&5^9moUOchm z*JNIl&r{>E^!Lw*7KQxr12!K)j4sS9Rs9R2|G^3N7mo(L+W%z)YGWIDQ`IKKhhU=V{@BFBzj*X>&ivv=e)z9ViGOr_EzZ6D|HPyJlV$9` z81&|o|ANu~m>=H6Xz=V@R8;WqcywMNv#Yzu(8#>4mLfexRxie-!+^ zd8nT+G?RR=D|a}jDu>`x_wzcvUneV1*Qf2lqwx-=n@^RW#7S%#ZhKDC@R8d6<5wVO z(5HrWN!MRCYxRU8Z@f2_-MZc@?_74hTKW3#38>~fdZw8Raq7Hn)l$i8$I8~-r%<19 zZM4iTM6WY)ueG&RMCWIoae4p4mbz^fQrdD&5ku{vE2=6Ur2u)M!=Hfd*FRoI%)BND1-k9XbdVaDBf8yI=+ z!b87ukCY6V;>>jJIlMD5@j%s!$9vIvt=>AKT(rqcD(x7zB8ise-o16A_h z&NkjIU54yWB@81u7Y9Ccv=$?Z=Y!XN2!h9_l0#`{S9pb(Blbup`Do& zJfRCPrW{z$$HG(~ye9)qk*{?&m@KRZ`4d##Tiz$5E_+P7SEk%IxX;cb1mLNTc(=Ws7(rr<2;sTI1_tIx zdi^r0*XD*F&k_C@5o9GDPZ|)E>w3f^#Q0()nBJ()i=IRSi0!HG&s1q-Mty>K*$0)@ zZgpe79}y$ms4Zi5F*|#V?6D`W!UW8#`NWZ_p<^YVe+8DC@6t5pKEii1*^YX(iLwCO zwQQoC_Ot9|o?`Ck5=6BCq|3_(G1VEwNiuaAkYdnInU6249E^>Y&%T7u90OL-g{;Z- zZ7=4>%mTLze!vMRc(HCRpc&*=mXT5?{aaWde`4rNFBu9?6e@;V<2!5zVLZ-^K4lr@ zmYgLDwQ&%_Ys@yCm&3t-B-mr(34*~vv}nF1v|9T07*UroD3B|)3XD+%D`Mpo9og2y z_Ia=Lm1R_Fs7*4RP?16$Tq+lU!F0NgstYPsH22WB0>NT%I&~{ zh%y1V1_|I&EfdI70{Dd8wwgI8Y#&R5_o$Ak_IDz86@R_1gSrIpVLP2tJ7M{2&B6~D zc9>8%(YuIQ2%t)l-d+u$6+eo_Om?b!`-pnZ_|ZM0N}c_IK2xoS>xbYql%G>!Fvs5) zu{Hypf{_eHR4zQmY-bT437`NMRu1vwJ3mCpU*f(&!(PV{x1M@vet)3ixCZHsX2B^6 zGJ>G?dW;?7Y66!WBV?UQvv&lNV${#!1nXTg3m6m6Lw`S@@)4O3j2i{ogn)3nu%MDS zDo>r!qiKT{F4bH1>Y)8ABi&y(Yl3b5-p3*#G*0M=I2~f-GiJ_^=dMpB2U(ICuneu$ zivQNeMFLx^V+ln64cm6`Kkh++i^&^=n$!2Od4k^bY#%+&*@FTX8#&#Wk!j~HWP*4N z>fT_y>L13SDlOZnSarm*sU-6>vJM zZ3zZWHtisxHY`uS2lh4fPfZUHhhEXat`FNW+iezxoKnm$#2eao=jmND>p;?H)!r-p zrl+s$`#fglUy$-QLcNVcsAs52vgU!8MNjWaKbq;N)MXl}K(hhCT0Msc*7c4%b!VpU z+>900t2KuJ`7#z)Rp-5YH+_+`sL z=+P^(x(K7wKNq>(Qtz>M8%`)(yVqIxO(dXwc=`2~DkCS?^G6JZ4;y_iGemqbeE*sq zCHAuA%Dit_W%O2A;oL%hdehN+2VL)c=sTIyR&*palPRBB2fyrD^F7iLy={la zt?6CIAKwdHPf%^5e3-4Tj;6PNTl>CnMoRbRYOFT}`Fu{wboFc;?wH-L?rtZ*WDOSs zJhSJah;a?bU^>KAM`NT9=DtybiI)2$JWg=HsjtuU`%=^dZG_K>j>f;CW=RQ@r%GS_ z`gofOG*2>Wx<|2MJx#3GeoD|Xoi35V-xlPe<|%43d(k2B(Sx(Pp=z%$ITzk6%e{Bl zaTrG|%VTe|4?mk+z<)y@BWM0l4QDc$EL2rIUVFA%87$%|VaB9-RFsl;Uso;v`faaY zIOD>e-Ieds^wcVIwax@rk2^YGYD(R0>#C=vuCr_HO^1%uU&#Na9vDAlx@a4K`aaY6 zYQPB--(GeShSrOJux zVs*WXCGo81{qc$b>0P}+;z|8kMF#qz{`kYLf_IO?5D;<*1vR`>u!NL4%1gz)1~Nm? z_u9O>v`>E@T;vlQ9}Ypwc}CRpthAZaj0&pG)b-eTkeA&(i;mbJG=F$w3Ae$C5x5;c ztJ8L;FM5Gj97}3}E*)H5R@qaYM|}V&lC6*Yd^|FP!iFC>$;F+~>-i+~3k8Y@eQHiY zIEeMCDHjNSs);f!Wa3|Guj|e~4x0;};orh;Y=oWA>rU`LDFl;bC?$tPLKK3$a{0`N zf?F=+nAySERYwb0_lsYT+k7~6Q_JlSxjv>fqVwoI7Sc5LCRUJuJ)?U(OZM8YFtr%q z{QByQ<;y$=Cx8BlywamH=5h$FH(e+NV-~=gv0<1VpVxjf{PDKLsB-`w0y74o6P)UH zZ=#8};<&JdB`9kw4Qb2_o`F#y8e=pO5iag+_%2+OTaJvB?U5HJczA&^;MC!J0Jj?p zBF+T3a5xA|mB0nd2KZZ8+nnD}vBBvHU@^4uj^JH(4q(n;X*mHJ#6l_u@>J{7mGvFD zw~Nx~ih{A*rn}fekzl<>Kj{Ef5(zv?JJ>+kB0>73q`I_7kBJ<1qBqI$R11;1&-gRCqy^anQoE zFqu2^NxHFabjgZx{Nu$qjOEv2pJ4zBFb=3behlzs;=<5^JOXak>E1ISne~DmK$Z$d z0a)L8V;Ua(#2z?8h6t!qd0n2VO0|=OZ-A&9&WacFN@vh>l}^NGNXjP@U_#(;c1X!M z9YO)Vd?N6C*~5s?FB5GyuENlkk%UA=mBm6OMdsPGEj<820iYsO85E=<3&I`2f+({o z=x_r3Q@wNjz##H0+lJc)_tp@;PdQwRDmUB^$7lK0p=**Qig|B^mj4KI`5o&f5DZs3 z$)x+GenOc38Jqg+==@*scXKmhvkmj)pDRy)Z^NYit#2#g#3_#d3(QPykY$el3j|-# zqs`&V8^zS1pq-UlpI_9tNtVG9kd5((+l@_|eOrB-vNq@L%qiP?yqRqtfBbSYA;l52 zIedBU-G1MxQ)3gRy&bQ6EGI&ugGU*^wl;IHYI?%-M^rYz?- zqR8p8y=k=*w}1d`VZo`6WMIAfZI=61XJW*K9|BLj`fl{BH)!eA)jFgr!52r*^RCw1 zx|TI|;sxAOtEq#+Q#rY1T&gW8AbR=bfQ`!YQsm7q-{tgb4i5yW@Jg9Ecm>d7cbqzD zBD~s5*4pM_UASQPHl^_Z-B9w}vlRE=4p$y|?Y(&-8P9**DMj?_^mJcky27!sFWL|K z$E{!AHD!MBc;)6OW*=$h|LPU>m*nx}Ti@Osylwc!#`_ z)huOf4##*%dQE5Z_8FDrl0<`)RKp-}pS;V6VE^pCroHUM^gR7$U}z=Fz3XYxmD0o!*+J+dMb-Za%T+4=5iOnLEY|}zSIm*%T{GkQ7`1D>#mQd15{9iBXsiUGzB?kj=lo};0V<*!fkXs z(9PHNA-(~{-SXlx6oUmQ5Y38*OHD>Z9HsL;ia=P0q4c8$tEh%fG2Fs&XaYjF=1Wae zMIW0oz$Jw1($=(?R2KkCfmb?pGS}F{G80kP06G7)*Jq0An*O*iG{4MurI+y>3Kx0} zwmY?5mNg$T0B~un)$d@LX1N)-E>k#@~1%!SEVC z1r^w?B%rJ@W(YuC7$<405OwWbWpmc)7yP;B6I5`zFJ-c}?!rgh=3B@0~^pA%r4LO6XMxJ%pBo7K(`2 z5K$u_0wRKYePnu^nH)efC=B~lRXl;-usXq48* zc0&CJw!Ge$ete&^0YkbVVuo=>g3i46B@#e@XKsDcz4yELB0DJlYsrjGVXGz^1&>gR zsCs)*@P;o!0W;&z%b(~uc49zH)ginfn0<)#UQj_A3{mll;q>H5c)`19d(+*pcnK~A zCL0OB6}bRXj{w030&ps*(XOUV?72;y!D?A=D*m~t0}OR*YN(8(>3TY z{}sqS&OLc5^$gfx{woCrHkele*(vGesTtK-x#0EsuPFAvnaqDjv2XJSRyBF3yLW|w z*+1}X@Lzo9$4>+!qZ9u*iv2&|u>ZV?|64Q}d6Pqj4RkxwddJ&w>(5!_f(sFO{gYFZl$&E|HJ582(rFZncykNuuTD+IZF8Nkmx0W( zO~}%GOZ9B#B58ab66chZC~xRl`%26YVhoj^(c5Jbgn4K>cCE@^!d?FC`G>tmf(vQY zB$4Cl{yiElMD(w~^7^t3=V#iLzd`(+hNw9Vm1k|6wv-lnz@TEmX%opR7qiHg;@9?f zmv28FAb#U&$-3$|SzE8` zT@**@t#@FeWxJ1ryLZ0PxzS>!rKsorLF-0D;1)*krUp!8q#M(yXps%^BI>%hhE^6eyMiBrgiG<>@QKR|>;B!k0s? zC367ZZH2^#3LM3=AJ>swHZ05Z7Dc)Eqx$zsBzf&QTIH2Ba89RxU-5x^KOZs@`0?pEew^?G_q4d(XjZa+#%3Y(ANSoQoVFo6(L7QXvKV)Kgzqg3a$8z8ZVA zIGbf(pD|NxdX*iRQxa!kTl?)*CM|2CAn(KZsw^YMxa?q7Y2)m^0_z;(z$h1f(CZ?B zcCc2-Y<8eZ>8yi8P{|biMAeaJ*3ChY`5CI?6~7|l)T@3~HVtG}st8pUT>7$UpGA3u z>_xIhLGk3Jj?yOGE1lZey0wPSa?~xt#dnlsME|VT^GPW9KA&~}E^_*6+M*Zwn)zv$ z11=*rt{jYM+SL$?Q;H){C}6^%HCcwnY6E z4+ISk6xuGG7nT}j4Gx7sa}MvMbz{~UMu+9^_BFx+!0jfOa^u2#b#g48x*(xMgzo#G z_o(wjp8U1z%W;YgH$Otx#MZK3Jf3>U!4fFUU!5@e5OlBddCB$jsluBEg#iX-Vyhz) zNf*FW>1|ja4~}9dK?rBkhN3Vb({~U0;=LeY@hZ`3SQS*5wxeOFeId?mT_l_cK;(v) z(3c4Sn)n={Sq_M1g+>)*p?86e;jxzUR=ofNmSonUqH+MD+Nd0!2#wAriD?^e?8Tkd zN~8}nV0Vp+rKnO&L>NDGfA+ZOF6D$HQ9?>1vuK!HZSy+04-gFxmGING9K&w*QO7VE ze$Y$&gNPqOCagqE!~-JPutC`t&o)6N3pdsV9CISNeB8W|BSvB{+4eaAj=&P@p1`>f3h|z#rFD8t2>@!DF*rMIpv0YekfQfXE6jl~W5&a!L zy#e&65t0NzMXoLzUdc!CD{))r8A7?eU3M+^VU7d*i~CLta0hA!AVNA(~O}SNx6cg9PZXR?1zx3p&+z83{mn7hy<4pGXkLC z$}{3nO~7o6h3Hq=qTH9m6~XOI3G0VdkrNGr`b-blxlTsOy%ku zu_CtgOD?OYXHaZcIMdd-6|LFHMW9dIRodFR`tDs-+M6p%>*SQuo0((NB^c{=av4nr z56|?w{}9_nr|ZVIUUPEBfBo*DXv`jls^vFty9DYj`)|DsBiueCW0>(^Iy77N?AlyX zP|77WXTsX1pgX$b0^j z5?{E{qSk<_1JPoO_O*+Sq3a8;*GKqkniuY}JK`dYpTEO&Th7}0U{O+Hq|o8Qf}T0u zx$ovWn2H_SQ^9?`>%B`Nd6AVjE06REZH`ILnuB~WjZmakT|klix} z^Fu7V^0KzS5ule<59plyy2qA(@%_nNGRG4pp5D=nwLJ3k+sEfIBQ?v`r#~m0op_~P zj_!SW<|9};KDhWfRe{}S`uHBx|62zk`r4XCf)PgCPWhZ*c3X}uffhKXt(mb@cuq0H zyeJ-j{YF|MQKi>+N4nMr-}9*J+loliAH8>k{EJIO%N1HH72s2wnq~L)L zAtLxZ))>b3pZzX7KZ9L^;uAZdS{?wf_7Qi#`qyQugoPxzh7TcF9uuYCQm|(kryExL>!WlDGtpAm)bN%@x1YF+i0h6~ z3#fR6fNf1xRPI1Ydr=mGr%fu;h168GcfXUHCK2)gK*R18fMGB(kp#FplPVgF=ir_Y zkosC}LW)GnB7^~m55F=<{G-BdV{pv}olto1Ks0qNIo2i_${%FDrhrZW^8lMN)oX?U%x+>p+Dk``K!Cm&_(;ZcMGIvaaMqXih+ zFk8E}39X#uY3)D5dj>~qsj9x|?m+Vdw0YeDvd|v5ynvt`JqvL^!81=t<3llxV_F=u z7V$^Sy#x!Wv%Qh{s`SPRD|`B0K(xlMwT@&d9E){=qzyn@N8NOe5;-Bmq8nUDqRPkQeIL16Tr0Y&_n7#oguA98l3k8V=3nBk#} zJXjct0C;(r4?DfY1gBZyV+mYbXCEqZxCH5l*EIX?j6a;Avi4Ii>*djNvUFl6$47Xh z8sP!T^&=12jRgq-|Gt2@s=@#ZabVm zdLrdd(fBkA)ZDB;Jdl;HF}HLjn6L_?dl!^-?ghc``1eG*Lsv0kJHY&XTrXdepUX@Kn}%;?uahWObVVPkR*DRJf8m-+!d=pkhP-kj(f zOtGJ2S*H1^H1DI)5_bxhBML0XCt{M$uQwWVtM;ofD5R7m{V-gdaaFY^ntpcNT)mCy zdiy|GXMc)V(H(Zw&L0wR@FQP*M3w z{e#^%119SG?W4DGJM_Nl|Ni`LpO?#fjr}K(#>SI(D>euGbmL0us#>`0vyVT)xR+j& zI~k_%R5~P4f4{KiqO>5WJ9qJO{-wys13hC&<`z;vHm5uuyeiS(So6H9XXM(k13%sb z@fT()U@a}*zCK!x)6*Kb6jMoYv4SLEwcsd>??!6?EVElXA zfY;BKtO=&DyI0?7`QMc#=Q%!_xaE_MFSkuZS;wpTrCvj9ccTZN-K3U2Cgwbp;`9A$ zsixAL#@?*2+OqDR6TI11r0m#D<+)BNqyWtw51dO#xv__f3$A}?dX>g}=cjIH9lI&; zgy*{WT_s7u$e_}}^)6Lm8N1@W%X9R*gDQT+rp{#Z^p9#;a59>Q^Vh!nT2Vc>zBjm_ z*4wC9v$SFRMf0#6S@**?UseW6+&KDCr*ga0L`G)YIO6ruQZv_#3nAaN52*J^mB?Iu z+Fd;#f8XrRTeLP=DiO zhRXs+?nFh<%|cWZrlWBFhiDPH=S{$}u%2K>_;#dYKTHS(XV66U=aAin<+42T3rId5 z6et=_g!ZWwXS~&1XM*R$qy~7?!V-8q1wd)xnJDANAGNm&8^PifSriWu?!i^EVKA)q zB3MFNpgzd|S%2tMVGDr@-~ttxP}RhIKfJ0Q@A?x Qiv@175;hx0oZMqNMno{R}%b=rT<89Ew=xskgYv?C+9?H{y15IclbeHabjAYOnl zqqtRrRC0`K*(EH;v;L;egNXG4D9;5beH4z=r$A8p0;Ui&3|g<7k7F~VserO}8%pTZ zAuekP5*7&8;zMu@02=k~Y=$am`^MmumOM22v!YE>I!ZQinGo~NBJuEPrex_AQR|Wwe`EXc(+}aWd(rpzY-sLzsj=kHgD*4w2_VCN^T#9EoTNp=1%6 zc^>+(_Q3kca5Bx5h1A1Cgu>9>5CZ6f0}x?`EJ14a#1boCsW9P!4fhhLXc_# zVEbA=L|ni`2Qt_OfRavcUu@(k2kEe4^qz3qxY<|vY!MRYt^T0Z#8YxGB5*}`o!>E$ zP=#pPU|K?x*BMLn$c=b{scr`KcZ&B#~thJy1ZE*O%z}o$j^8$6(#Mzk!lB?{O_^4&mNl7$k@SRIqnLEra1`Xb#(u%gs zRm6v#jWL~iD~^87ghm5}mqzZHnC!GHf0br;anNoECSbOOksdSU$J{jR)z)F`B^znXm z448)Yef?-7@i9K!fP;G!H>X)~crMIa&bLHUhe<0D8vSry`#~OsXu21CgUjggUp^q;HL)9OE~CZ{QXdLY?uPlDL*=|^Yu9>nIJBW`W? zW08F;eYFH>seasdvfI(iXOvZ{UUH2!ib_+(S_2cwQyy_+7Zx2fOEP4PEPA=wtZatp zWaAchPJo7UlI`U1P(bv4@1Vgv^kq}`{giQ8rJM=u)r!LJ;oAK;yL#t9^0{-x)1-v% zr!!jH9pzq@+IjD*I_hBM?N*+9&dD98sVJcnIaL|RIb30rITvxMSx2>|ZhUJ}1@_6@ zYs1o^>NiJOAGf`}GD{4q&^jc(qvmXCaCHc=QQWvM=U(fUs@lg;nAVkDLOBO??3$0% zXvIHqIdD+xwC;Fr8l~!8O3;%dmzyWf6>qA3PbM9_F_E@E=$0vbI3%?>U_>VA8C1Tk zrKG+(gwn!Vn&+(f;;OgIZ(Ub1j*$%%%vaqN@_GCR1ulx8*E~5};NXT;h6Bt#pmcPO zqq9S$UwADLMu7rw1qz%U@?FsGQ%8gV7}?! zaR-N50OC_&O@V93%Z>>XqVaYX@GCGkG_Lg0F+ez)YkZEBxWMcqY|e4v!&3zfFN37R zAXs-yT{}VuU@#wQdgb*K`8!oQk?F<-N1+No*Xba!*aZ_PRI8S4*z(KH4wnq5+9MMZ zaGznyQ9fE|v5@@heG)AcxA5Q~nq^y|D$nvMRGvUZ88lwnjur)Pp%YLdz!y5aFGO+K z&T)x1T3Z>({qc#q7Mvq-u-j&bQLw80^$C$RdNTZjNp$qLGh^rRjsmMMW#<9WVJ3Q4 zEi7go45>cEhcg5CUljPzXZNF*Qv`_$L;99_krc#34FCofb>vV~%yqFi=}H1Zi{6GZ z0dMy5lq0H9-iYySlJ1L46i2|a#h)TN4P#1H(7Q1z1UM-&K_rJNkrNxEfvszk=5#=@wU-kk{e1uoczuwJ(asM< z=snsf8&&x_Oc}LHQ5wyJTJhmq?o$arXt4w}7V@l>voG@l6er33o$L~!hK!oFI5)#E zIMo+J&?%8rt`R%+`Wq8P4dO%Xd9bZN9hZIW`UnFIq494{a-tkq=Vw2pW+MO_a=g>M zg~95PkHdRMAt*)ymS+=J2iC|D{9>y1ak( zmJXZ)xtMwzhAm{@;KZBg=mCSQOVcd$#3!*VAKu&eWpUiVXeF1OfHT-8-;?MBX zipzU*rKZ%%zYDs&;LIVoL)>@g(JGr7B!0Yl{u~@39vgk}zgWEgS(`sD{ujN2K~)AN z+1$;|0bC$_|0pwQq@YJ!kIV0CGO)4lAIKqTceCZjRM=9q&2jny>5+ ze{r~O*g88mKDE3Y#ryQyZ;S4}OHuP$#c$7nPvKZeWl!#IF%Q5PYTtculjSi?>bkyb zmnKuf`qI{nfrf%3VYVHy2cgzu=Ax~;Q$Dso);5!J2fY|j8goHj9=W%_$^?0DFSR5< z9y5S?kmqoYai}^Z|IwA@6T}zf+Vryg{?qKckSAFeF8eMcbT(F`25-2ge-h9(MWM?$ z3k%ohKQyG=^9(>9a2+wO9&UfBFQksulNZ$7V*LI%BA&hbbUGrFV-@(YEi6}OT3zIO z%4CM0ZvOtR_17G4UZVbp7QrHYM>9yvSF>-D1~W=eC5=QqZ#?W$oRF*^>u213rmpbD z>x|?G^UY8DAWuVEX1ed*F3wfGr}+Kb+xO3JYdijdZL;n6gKsO8n6s#T zZlX{Oz3|k}UmXngC0Q>w=55p__oH~59t8^-BQcM2=<1#hgSAO8mFST0*!U9)1v5Tz zU4*RoNPSx6%T4A_vUt%w@NG$nWK67*VWIZXJzPu0*_X>CNtLGE5$knkCr=Z_56fF@ z(uj>txev)MJ8gG)x+s3P=k`IuzKkZN3q_Twz6Lq9OIU3&wsl;a6n_y zs&}8;xP#^lZ|530@FR>fmn)ffMra?Wm!ck(P9{I>$p5`(&S$fQhI=OmWjEH~Dz&KLS|r{sd%NxcleB)k2W4qtyJ zAnnrGfv$i!zKN@RQtTXXwcBcc_4O{=vr8c+yJqK_qUn8|8T^7fv&UR7?_XE9UdMD0 ztJ^YkASn~u$3_5n4|e_J>x=q0qbTtIJx)!)$94OD6<&5VPU8ZAFp&V#Km!S(`HNe= zw8H_JAtprB7L1vzW;$Qi>1P6lch=pA0x%cFb>q#oDBMp&00qyf`t;!BJi>k&%qSbG zIy1-yA)|{OP&Z;n>Eg!jduW)?uP{JrDIxHT;SZ2>=qnx7_9W^{#lr5&0gtwx1GYoZ zyqjmcMh(^xhrV>6qY3m3!te<$%#&Aj4<|hEmWC*N(E=Y zBibFy{T2ojP3CH`A9Iu#Z5V=7I2%DbNa1w#j7-AbBpKJ)p^`;y0Jv%=-jrxw3A8~( z%>fGL-LCdNoHN`o{&Hp>k2$?glhU?~8VU636jrte&2X~xsb<5P1NB4VBQYJr>hzig z;H3aY0N~2R9lrF=XxT~%T+{=2eog~G0u=ay@ZFzTLy50~+_iNgDa)~rOf*vf*Y%(Z zH;BQcK>^diQ&EH=VCLFe(CB3fC$-5Hf~$N^GM%E|_oQ_h4#MWD2UC`jJv-C&eNA-jS#scE2^!(-$x1CYT8q-_7QY^VGnpuRB=+0g*T(j>ERnQv ziFoY*I|Lors8?aC^@s^WQ2=#Z(kUp336&GD#Ir<9R`v@c zsdp7nV`3MuX!m)v8$H5U!I(ltk+>{jIst+Vrx!Lzg- zJz#~qwSI-WwQ`nTeI)-?LGoR>O#1~e{r|!A04In4jzIrmdaS&YSM$$*<_|&W)++q6 zwzza<1aZXyu511KoqVIY_fG^GtPFQ{f&HULt3j(3;}=xnKQH8eJdei(<8P*C-_6ZV zzj*^TkNy`4{%<-(gTIRY^$#e=#&kN>%-GDy$yi_CIKh}~LR*z%d#V-Lf=n{8FySSW zsk90(cSSR?vaX=nuja0t%#)~eP?62a(2DdowA8^FnRTemTMeuXl%YjZPIU>=XB3PF>cof3zLp5#O6H+SM9wa zYa|bPQ1D*r8R~$@s1`BiYIttxdcT=@ltGx*1^=IPJ$Z23>4=+LW?hf2qA7o)ZHb59rlUN<*u3@%3q>0ut}s&7tbFGZPc z3DNTKT}JzU)_O>QPF#hTCEe-}n>?B6D0xk2?57=eBvEv>cu z>+qM6TwkYcuYUhx*~{1$o`I``?>f^~#$m7qMJ5&0f8>86a5_aAhxbcLWsO*j#NA+= z8_bW%p%6T?@^!>?Qg_F79;kFXrQhGB!WloV@iN|cyj%WErdPV^*>ObUCW^#w`e>4T zw-k3dS+YFV?Szccc7muYPF&T<(ws&nC)kz;#LZj^F)S(IN|Qh5sV{}C~F_=xw3!Ag;8S%vB~AGcK$)`53japMmxg444_E{eWNCIuBM~Wjab&6YvG#G#vfPl`;jGcAnv`x@9A!&f$Da7T~ zEZ^Q;{*es`X%av50D23wI?ZzNPBvs@CMU4t!wwnnM~?d@*kdKlcxYcT|jcV<3CD15oM zK8Wtk!7Hgcbvs`(3R2OZ;S zhEXxQ&K!kd#I+VaIVu=!wioR?zCR8};Qk_ml`dxFS)E8i+x?|OMDFs@T$2d+qHNF+ zG`J=x`Vpqoz}L6buLVbewa?zOfdC7y5?-fp7H2^9N#4Fc>-(Q&onC#CE z8S~*j5&7v0vWYyXxWrUHl)waI&4}kaM4j0@@zjNOA^lp2_U&2$*~f4 z6Fv#qMA{Ra>m`m1ii-~|B1JZbK_w!YP#jpNM)8?Qfk&|vgNO0LyOj(v^AdSTc@|~x z;LnE??;yJGJ40B{ntT3(kq|6wG^^s4Uuv4g?E zVX%6%-Djou`>&9W)i*FGx=BZlb0beCv(NsOyaG!{s}!wDP;v7LSI*Ka>E@Ne;nu5v zZqiL%Ev@~nD+sN@&hDX}-uob)<8OG@li_hNWc3fN{nu0U{Qs`Cf6$iyMJ=O$mD|7n z4(hIfy}h-Ofsvh^fsT$rf`J*)W>t4>tj%(hi3J5_CT1jS8wyCDCXy^{E>l)7({{#5 z*7l(48n0fa3&G2DfvH()TjlC$+QvfP&gxd2-8lnm>y&|XN>0z@RHs>)AkF6Dz4EIz zBr}8fbq2;u);Dx+&)M7L51=Ju2bGdHzI)kJZ&-r7A+0ZOF@B%ZqjkpG7dzTm=cs?= zqd0WWQh4m;P_3B2@4YonB1uGxdThD2ldimB^TwQ}tKIdCd0))iUWxPz{)QM_|K>+d ziG@{;xcuggvc_Qb=<_gZc6LiO1NpsW?uf!>njZ&&y^|rIbWw3R9sO;a^TX|~K-&|- z6ehKC&*nSjP_ODMPtqwB0j5i$VQv>p(wq7lI-c%eyi}Cl>vL@8h08~c{VAC;uYCvk zN!_Dv==?w#ll5mD^S`V2JmY|+KM-@|KT^pF^?#8i5s+lY)YW89nAL8qMLw6JM>RDM zz{1bCmL(HH-~5iwb+wW4I?OWVU$iB0Tc{rC-`9!d|jY z4t}jLOp@j7<+*QlwzF_nX&yaWDCvz&P5L5Ln3?YFw542-ezh_`Pv=HZW$_7&PF3ak z_~7a-8FsVPTsCd|V&#+LiCRluo2iakGF@n=%8VsV+rP%0RkR^c~vYvP0(dffM%2llL^2hhV-xW2Ximq z65=JigEbfHsHw{l@wI%Y^g>&!>se!>DcR+w(KX%JK{o zK)g{wYgC>CvqNn7;l@O)d*4*2d3zi&0FV1I`ZoVK+TQOVpG&xYAEH-Fo!I30tM6rI zWs`=OhRMRQX4z8ajT6z^e)*`i?0jH{yi)R5BbN8`qwO&!bhdJg+c$AeNOgmqUDlPp zAZxaOGIh%pKo}9(Nz}@Qs3vkUDijX|7_IQ&!y!RW9;>+YHVaJ8eI}6Q4WI}ESc`%@)ZBQ&9K&XNLD2WMp zYSh93K6DGqRV0{^y2;H~E)S2@*@b5#1K-CmKy4IS;2$f~&^D`$lgsp#IM+!@Xx42* zfQ2$5TWmiuaYISsM@OC34!z4mPIgBl(QBgwkRuJMKYj{z`B7%H3>PNO=+L6q#+EC; z5WG?k7-C^{KK?qQAj!vsmg=J4O|6M;?6QT<-b(a=%jZS$0bt3QduvF-;zQ3bAHR6& z0w1C8g`pUgr^{9jDxE9kL$kbGS>N8mnk=Q9Pk?GXLle^BLd0IvP#H5NC(d@bp~(!$ z)cprZs9FGdx-&_plDGCoEXq89k6Kf6$gq1dI=uZ8^w35CdU-8HW%n@wmme-5CTjJOiWAh0q`daK{NR<{V<4VETGiJf>_H^ zMX4W|1*5Su)P?MX(9sD*^^QQ-Lv3uuN`{Y~$KC}!Lu{OhO1e=N#B92XEenVKpLENA z9HzlU^xx0mKXMEbsKJ-;9|-lIm++rGh(DW6D;cfTKJZ_A5Fk8j1wy?NiU!9ZQq!yQ z3N9D$YF9hJpf2CKT;KkO!2#OEH*fW}wXNi`Kwa+Zf3&jxaDNmeP_N*pMApjV7qT{-^a71O|#V;OMec*QI3OxNAE;uRH;Z&9JW8}n&QMsUC9#G@-y8Q%3Hho8ACxEp*1 z?qulH7O!~4=<5$viEB4GBpdChO6NxIek=as&W*L6#h#*4v-{9tLk&kH0-z5rB8dkL z))=>9O=7%UK8Od$_dJ^#yQ^0c8toPrRxWoCROGjtj_{v32d9a5=Wty|8(a_OtqV!J zCr{+)9=u!kl{y@|&7knzN!8kel_3`-+)g!ZJ7gC1`$1BO)7MYVy-HVGWQ{4GX6{`y z7aC2WEPa?lKB^n$J^wj#_bd8zdvXa31nk5r5HTt!0r`DhL@r0vowO@jQUf)_x}Tm} z#F5&i!Z@Y$;B|pT1%-}dsdsBKybZ3$3gV{DpDjw1JJBdXQ5%nyJKr<2_`=YJOj0_n zlk^az`{iCL^CJR=aSSma`%q~bYFG9yi}^jWg{fMvzm#UqY@FSb(#u5)xLqyRi*vr+ z)x=rsY=8D5`Orw5A{Tb|X>LJo(Q#~U;ZJm+EnCWNMl+^ho4cl;S@r1V6i=t1vO7ED zgTgN8H_w({$ncw~sFLwguVQ6fMH?B^@Y_==KUxTIhK*brYAp%iU)JOG%VbTxrL`Q zlX#SUS=~DY&%X(%aobxe^Kv?cg$2SCp-N2URkG6J&rpc!QvB6WtbXDZh&u24D+5&mfe5ULN|-G!{=I;fqtN>O00T6RdJ;zcc{tqnM_Z=t<%-N*~GouO~4kHObfetY=D?Dt3Z z#O`hL>ixZo8HbDAHTSRzVs$xbp5(k*PlIjRwhQ5Q?ye=kpcI0{ z=O+MA$v64+0WBRflVswep(Nt0Y-~?~WSsx7e?S7_=D0<2ZEcK?XW!4dG8FKfT|OG}5iC`NN-W5PG4BS_ z>Npmh$K;S9cIdE*$|xVAs&WILKLjSCpSfY&xF8db5L5DV1SW|GS0el*E>t26;^R0< zRy3|^ADSG5M(_L5A*POR6EdQ(PQZrE|HHqB5?ApX;7a2EsJr09_wRgCb#JT5PBU=x;ZUuTm?G2|YVy?JrO{UG!MmPD z`$3+xz+T0&tZvFNy_FBy_!$OT!E}aavsbMoDU$;GqP8X4NmO1Qy~gl(6)LG{eFq|+ zd>KjJ?Vc*GqGDfhyP{X$Q(?#Bi|Q5D+jfq}x#>K+(Xo7@W)gClE`BCs&iBY0&r~h9 zi~J7P8#1XlwQJ%Ut{}Ti@nV-Dienk@|N}Yskp>SlyL79`U6` z>LclX^uRiw6R>NP$2HrfAEQq8o$ugpJuFdaYQDb?x(BA(D;nn5)Lru9M{@XQs`9ls zOoR5Vo3`T@k=~+S!#9tO-{$!pdh2}a_nC_3KMNW;^nC*#>5icoXPWoRj;sDPau`E>;IxgfJHETR- za)I}PWYjv$h?2eRG#Fzh*ONlRDDK&F!Tep;(|CKcCDmm^a$N-@<^7mUrn)li86&3M z%`qw6Ma~&@gmUN^FEvfDkduXEJ13slRg4y7ygEPenib}|eK1ca{%}Ihrt#xS+4D^^ z`^ZO6Lw%DtIX6m)hpuG@9^29WZRYqP7jjiZa{qDd(nH-IY?M+Mmx>Uh*S44E#a{)# ze>cnpUliuW&yvi%coZl`9%MHN0RpCQy_{1L4%_lQ7{V8N^Q^eTjZt$E(ZHLp-@9`m z4I2^?ll9f`mmvnjH+kje zq?4Bb#RbxV8zc`lwGr?T95j0E>C0|;szP|X+_Aa9nU0m*Ee!2WU$AgfH}@b=8gY+= zKNjuxra?R4m9>X%+}{3x4IRS>C`U!7k8M$xB_;yGGRDspH8d9G-oe;5I#a|Hu@7K> zi8<6zXkxpaj#jY!!R&wjuG~<=aOO^!(A)R{Eh7yqKMbO@VSj_>k2YdkpH>O+Qgn#% zs1Bm9SVyu*VM&CKm=FCPQ8?Q`y!J{eBu8*>Hc@c>70z~U_uV(??W{3?Xg%}VTX;BI zfZe9FbRo*#frb&&vwC*}qKR!+7Yo3-_fzgpZE1({LGM_$L8|3K|D z{z(}%`<>=JUnRQK+c)dMp$LT zRE_h=p6mxa%V%&aJgmTBpLPO_esG*6sy@Ggc#8^wEqt+tO7fwEz&4SYr(#ovE_Q-I zfp|bY_ia!tLL&C%S3F2-1Uoc39#m{VuSgl{oX%8SzF{IyQfUdS(@@1UeE5*7r|x+{ zxY7`DCIF_hplh<)c8pAmDtd)$%y`@}UP5Mg4)fsRr17t@G3>gbz3TMYHn%6F_U2eHw|etmKlr4d;XXH&Mw)6er{ zwALQO`+`so7MV%C9R*xbG7M~k%K<=`Lh=@A;DVn?opT!3U&?|>#i7D8X_ab9*2BBZ zQB!O&Hv;6kNnVSFN8#n|AU0}?^3+_ z{&n>@uyON>6t8-~k-NZi^vbRS^UtmW*a-d`L%9-{j!HfA*ZdMl!urbz2HQ!iiRp_V zhBChpbb_ye49b7BlWwhEr@I=#>-6ftL)(fIeE$yEPPzxKI}AU1yz&J8gQ0vS_#d&+ z{|^W1|Hk((D8;6xE-rQ?Qg z*$qrY+g}{IbJgC)ik)EGYGGm5XuyAqaiBTX5-x0dOYcgZjz`}1d2-@0-pC$R#hk(f z>owYKyLm$RJZZ7ASE@19+2nYLR4DlP)jb>Z{XU3|4ogewEH&{*wlnO7TIIbL_UWjU zgjSZMp)1r?%oBaZT^e-AiW5BjDOvvt@k-CW?FttSL)2^cm3=XBjRU2)cexg0R~?5+ zxiX0xJn|zYt*SPAF8P4e;`={l*_dIL%S(`_AooTwj$j7Ai>`%L+8@I$_PrLNSD6@o~1mG-{-raza zJM$w4&#DKI#ts==N2$aQ@;ZtWF9ro-*^ZsD6Q?1&iv0}be|z~vy`F!hw9IzAe5}Lb z{pU#c#|#RiCQr;ltG{3rs92OR05g<1Id5UE z#+wK9Nk8PtrdGW9nkQ1z+M*+v1SaOi`0F6t*lQg=X6mR=g`vV;o*qP{;Z0T!Qm2Sj z)_#<6kiu3;l|}!2?Mxpcrn(t*zU^ zSue$H{KHIel7`w=hx2IffB!Dl1+6GdY#Tx&Wu!zUB18D73$&3VhL-Z`Y>1-W0H|1xxIg12IgXJdeN!gbh zli^p{U3)|s?Svgh)=kIycOHVis2An2-a9sja+YzAstyx&sPg9xA;>Jsml*54Jy9Y9 zrb<|p#T|D(T)V}cu^--cK_paMQo;X%yb7~m0`9>Q_qbs5HhH&>Su#g;$X`O**#SrA zlAl5No)SxZjMwAK+9MMT#s^ekTE4uAwo>YJ+l4h<8u={BPpr00=ArOSg*)CEv&Q;^W>=( z$r%}-_mfyavL%?L9{rI1VBT+e-QC)@PlUK`#(Mtw?VX*tP;TE|e6dRO3`=vvN7`mS zljExAQ)>c9>mb6BHjxg>VPi=;`9KHTVurh)TIS>lq> zpC>5gmUr-OVUWr-`rFm`zR$H#Noi^<{EJA)s#e#ODp?VEBu}{j$^4v9kBmYIU`X#Z10!k&xtVucZr|H;1$1%q`zi}(=Nen!{UV# zXigGJVk6NaC&ps;j1!PLzq;)X|7%$5Usc-9DR8yX^yg50;7^VCA6orSWb~ga^*<+z zL3&423Mka8@#)noH8{hRR0PJSL9I?%eKUjYrjqh&;Dh<%N{9FsxbJZ3G9SEH*EfLZ z4zS?V-O{>3jqd1r0LG_5aP;6RHTutB;=?C`RX=(B#jDxXxrhJv?`IHSx%lnN(%1h# zm#P7m zL6=;1f<=q1t@CxG)|s}cU%#zrE=3Z>@mq|y(&k^JT;GpOQKO^Yz4>y*_x8pgW_9~B z@!2Zgqcj_IjNW!qg4Pd&Hd@aod5istu#!j7>SbzF_-}G{{k|sVt2DUS1DI-&oAEmB z*`iNrq(YBA2;%x9ts*t25Zd;UMe(jmM&FSw{SD%}S1eMkMebbB;`-B;JG8^=*Ni^e zubJwv3p-AJl0zc+*4&D1n0F3VB5Iu1^(=4b z~AGu+NN^TtL|MBHfxZm9b zSKDgoZw73q;6mT==G`A>3sM)CkZTF^bKU%l<_QH}5pM6-T~m@ebL;y%&xDIN18>`w zed9&NV9xwrgA!=gD9G5eu(WW-sYtP52J1IUW{1Vz^}W1k%i|S$IQI})*wdk>NXkt7 z%SWQ&8t&6Yo2I;mi%>-Sliog&7=3~WN+>(_e?1Ec^7fRFHi z3L6WUd-HyOMzLWc1b|-@W455l`*JtN6$xNLK$5TtMGLA&3?^9EtFa)(JZLQwl~b<0 zMN~36eg>kSHd2^lrNx^o!aNcLpP8Cp;MV|zh4xEtL@Wl`HwV3$m-yA&+(kqd=9t(% z9anb|+(I*-aKD*8C~|agj$i!jM8z z`-=Rx>d&%k1~W zy0ZR@sIZZfQ(NS)d|mjCb3b=yd*tzT0bC8?>ik0-~ZKh9n>$CG-xVR}~Nu6f}e)ASz8oMGZv-M8&%7+#k5s-fQo3 z&vVbYe?2>S1B?NK`JMAK3t=(V5vb@ohYRe`^5j7Upm)D<@8rGz63z3_pmc+T+~nm4`(qa-^<8bNy8YuOV+#q7_w#hPC)#c8OIwLZmeRXqRr>l>)e zw8@bb-DaVaa|O3gZs2@6-(sVtCUg=C{LAksm${bTsKnbRTaVNYhC_2cs%h&qA9hc=pX znkipEL<(#>T}Q;?qDtRPoXh(PE4_EP!yrj6ScL=m+C3b@!HKHJj02<YayMykV;nq)4ffJ_e_qo?+v-L|n-GOcqVvUW6@*m5*-Lpa4_-{hPu_(V&kwm!Tu zyx+Y&pztK0wQ6VO*2CxJwZlOeoHWKsjPx+A5f_KHSqP#9M<)R+)@SCsuh10D`63<< zw+*pV4vUc7&YIV>11kf6*^v1sP2OrDw?=)4ayNi5m>JDskNmM5B~Vr7fK88}acx8B zWsr9FR(pp`Ql>guMNWSOti0fnm^p0&|CUt};e&$+6FIw*AY4>T=4Q{jN+ErIf=*QU zIVD4D!6PHW&RrVGZ{mdnHTe`-89$!mH|ECv8J2FSzlhQxU&wy6AD=LqQM7fkXj7u? zuqKtIX$gcj5@?@8KxTT)8&V4tYHhZvq5C8w5C!ITb6KlwgD=ozebMWsd90W~3H z1t%>U%YXZqMy=oA><9Yin1j>iuyqQ(wqX3Hje5<|73;qjDAi(xuE&kT!V`hxF~FaJ z8Hc~75ljEZpMlVEU2Z`mfXTpuF|fH*Q-Ae0ECbVsYk4N1*Q0y*de7ayfxEr^V>f{X z<6Dz}hz&4jAjt&WkN@J&{~Zqh_h#z9aQHvY;01uQ;Xe<^+S-h?O-45B;A~@U0fdc> zjW|ZeX2ll31-X9xf_%}grS(z^!;wa2SYJtD7?O({c=5&M12+dbYXz3Y7n<8zZ7dCe zxG{sAOgp=lH@=;7F=OcELiwg^bJ;dcqc-C<07C2EAd{^-wR>LoMOMkt!WFpqO*^}j zw;w9gJ#ak)CXT@?QsRM5d8fCAuL^yp$X!|xugTr&blG+rvA*JfmXv=(>szcOnKxb&pJH-5roJ+2p*DNMyCyrDHWuD!(jKeeU482zE3{bi z%Q;k!+ijG5rpF#?Lr?+)kKs2mb)?qL4cs^&avU6iXu9>pY^Lb;R%;l7rv6!Ur-K|Um{^DpyNz!y}Ooj4p* zq+U;>ARD(F+b7%W2)&3Q4Yn>B$t8=B%vVAor5=rnX2wC^G$E}gh4+|kB&}#dwenBt znr-~(tqFP5xoNifT53%SC--fxF>IKsO2gP%yt%bLl!)0d}~ZX1Vgf4t(1s5fc)(3h?Llu-HU>S8>TtqIlg;9aQqfspId2p-?#$;=XT7KRihLlA^WeLYSG&& z9eS!>vYCIF`COrj@v>+SrMa^&OVkZsIJ=Vz>wN3(3;7Xv_)^Q z(2FZNpb(s{ocOF~6nC%?6|6J4pyZVRh6pu@?^x0VtB3?CpI_#zs&Q-ujAC$@Emi8N z*nH&+FpkECFnudHW0>e8E<8jMF!~m9ixf^`APmoMJrFskl^!8|b;LuFg@hoGoF~Vy-K77AVKKT zK@wpYlF*5>B3__0pApIiatKUV&0VyB&rkh%#9wpR|7N?z5&7Z;0o}G4H~Al&4Ox7! zhiw;a|ke73;^>wWd`K! zV>@<5d;3K1_5)Uy)@O@>Dv+>vpb7*qTm!w*z{2=gN{()`lL~S=DQa z<+vT6c835@koqsCaf0l2JOak7nwXE^<^d!){^>EGM^_Thj z??I>kk+%Ku%a1RA09^S$qX*=_)wXkO0dc!H!x$JvG%f+8?b)4y`(zcs|I4V+dPJ&R?Fq|J?m(R*K(vA3|HK#}Zsw4Fl4Y+pJB0^+xIGdt0B} zEroo4>uhs4b>o)p0YQVQqr4ZLq2_Nd-MU(-^I3|xGvZ131tVUXg;|6Bn6Z=2^tsOJ zkf)u#Y8PI;m0XD1mf@^!@m)TGAjF)42g7u)&Q093*gy=M{IoPEde%36Lw9Rm&-4wu zk=X7ZZetGVR(Urpzki=isp)n5C6)NZ{y~c!Cr;pGp39k`cQ-k4*UPhTggowlqyn)7X|mhXTzKAh-@zA|Opw zunoGZNrWM|;5E_iZ}X4q*>lw;K3 zxCQ|e$z7aNSHn2k<DTH^oV*}VNbWE zF!Ve|J7if6M%b|XX^S>_v_W|DcS*PNDw~k|@7?Kf85E4h$bui#QnWWH<54cev7oH` z8U!8UYc=>mgJVYt5^ckj-Y=y!YRal@NXo5)XXT0s?d>PQk2gO!ku;np%Z5B8-Z(yl z2z|MqI*}R})>IGxD*bb6D z<;?f{TP;Tx!x!a%6+6bmlI80g5}ZA9~?ejJ_SzG)=Pfj!-ILK zJ`?ofURePVCG)%!P6T8!K6h$>gwa%i6HJOKp+?Yll!|A88TLBqpxe7j5;YCc{Hb|$ z&5ypKE+k-)0|%B_c@`DoWmBm)4>wqZwYd2+V63Hh7%0wFnplESu`&EG>VV1YK-?^b z2%xkfJ+`^t6&E(qy1#*_?1^q>=jf_oLWvS*np zZIwc=O_MJ&{Gq6iqpm+?sm>4$N#)tSLixo>O6t_q%~A2I8ESOyNS7@LhUMBvAcj>= zXG$uL%;(f_2E?$D%q{xk5R2sva1WX6C(Z8#*EI1*ae4RVZFFw);}A<;AORGI)>W09 zkOFb>53q*=lDMAhtlid0E=+{|NT>o)f^GpM@kD#&@Ub)(QZ?GqTV=%_1hL4Rkk9mY zkd|U%*Vc}+y%JFm9&(4!?@FH-R#+y`Gx6vOVB#38{Kg~k=rU7C6U7c2EEs+KkT19q zB%~X{J|}NDD^UEy(IIk_yV+~pG(KrWKe`vOXWCkh98DFabI&<`q~KE`G@K8h5eC%i za~VW?Js(Z^`8r-zY8}|=y)rB-R<+g?0{^}E@Hh9@-}v&MmTOn{eo+X_4j=!%ICWgw;P(7`h-vaZ|K55&3J|mZR*v~U2I{}InErFbYy*S8i`mvi zMSz%1rCL}!0&;fUx}1H%W&Py5E@uNL=S@~?C+Cbczx80FqsyNs=f4Zu)c{>C=mTK6 ztZH_yanxzt$<`Xsv#$esc83A?m79|_og+tcE3r~;^07NY!29YR=st#XWWdU;RA2_7 zsEPw6=EvX49@`q!m_4LkXl6W7)v|X$Q8RwO=6EvPCC4?u!wEB=O`_{EgO@cnJED~< zw+3s**Pp$+l@jly<7K$N8t)MG>&VsdiOGx5%R4=IIhl>l=4EEkTgN!;VEa`gjfnSm zGpEb;R4W<@#3yaJfr_6Ok%j4M#P9H&l?oj#^Dgzc_eiQD9CP2-HVCul1sN-Gg4*wq zS=%hhyV8@{Q8oRr%ssCHp&*!_boNDR<}SHIGIB^UPt*|!kCKebZ|3?81_WuHN}2@O zRHd>#hdALxc>0uRP0JrqXNJbaUHfgmRrkDLk-pz49eouSUtY22ReSeoYnO)F2e+Yu zqER27>??~MirzOQj0CMvMZO~zaB(+N)Hh>ffEXu8v~HzL4{R2#!~!HK1{ffqbPy<- zVxvcGdO5?qpLEFv2AYJ^AtInr3UYP#AG1*|lj;+2;v+Z+EP?`oR)qzB)$NKFK=$@R z?PX6;pt|HmeBvTJ&^lw=eQXbI=XGq3X#voroa%o+gp1f~hEOo8&kv^*f#7~UVi9IZ zPxUep<=|2fmTp}Z35j+@38Q7HXA_Zw1axQyWdWpNTex6q=86WDN=$R=%U;6Zz3~T; zAYR>O>k}>nH8g!6#Jlxd0J~W9Wn5+ZA@8MdQM4H&y<5dWUD6mwe+kx+{65!0#MAe| z^vK^;%(Bo)>H>W`A3rMV&&EJXAz}RUXMHjw!R2R5wK$FaT~c91&?f!``VqAWbdkTN z-`nm#ax|H+Xk8GL`+26}qR5AY{h%`VrM!*$4jEH`m@R%qh+lHh*zMrJv+`b2sn{g) zeZ)c^30#Wm3V$Dg^bCUvL}OOo-70aFpAm!2ogm#YEt`N!O4Gdw#gt7oM-t_*2ZMwh zHw{$lK5CbtP6|DL1SyC4b&GbCx$u~o(Zl>tTW(s9h3BgpA`H9w-Smm2(qYFxpLkh? zuxpCe^n3p#yDufhNso4JADq66F=nc(M*Ywhq?Y#NVh+o%rT4YkbznQEv-w!gQD@Q5 z>Uk^8;Bq0{=|5h)3z&tJgKYW6JfB~=PL=Z&q-)p0nHU$i{1uI!XO3s3Tu|u~=fG9! z4=kfXeIqTbC%ezgJ`wxT?x;1|bg5%AvK8ahvwB;`K=0(#E4)AW;m4g6%h%Qy=Bz*a zV<UT~F{(U8iomfWJ6<>CAz%EQi)x0_zrQi!zK8Xi=XhmJ@bGbGOtq|FNq3K^ zh^I(VaB;wN;m71{7J;-R2?blJWt1OySBZwb0N(BdD~lxoOLr3uDXQ6%nD%_c20`Kb zk!WbkTreGKkTP*9Ta}Ox!Y2x9+rm*BYJibMkglKmm8f2uIg4gxR}Mn`<1vJCHYMIz zmeOobN3l8D;Hx+b91k;Xz&ZoBCt0>q1!X{H9ooHN=krhn5Ynfg@u^7R@|KYh%4^j@1eq^uy#m7HoS?5cT6xq>JP(;Z+zTG zS|S&HT9d;`!W7)GyYFpV*eluzs?}0_$Z+G^M zzuGj{AR4Ia0u0){eRl?Ku4&uAv3Wfn^>}RJ(VrCh{tOUa{#S7Rw+Qop@6`T}Qn&%~ zO#WwewVoa$4QQ@jQ?+v)9PEMW>e4dH;$nMyM}Ry#0NvFE4vy<6?doFAum@0@Yz~lT zSD=sDvJB`4DYeS_lRi6GlY#nbhIz8fS#nk8-P|IeA7s$#>U=i9o+taP80UF_rre_Wu93Vo8k zpRM{~;9e8rn!V7bv&#>Af}88~MuXqX#Ycs}c6Suq@Kiy=KzcTs?_UWS&Dztdj5Vc^ zC~Y{m{G0yNRA8uNZsi+-ych&1`Ne?*Wrn6}9rk>wKD5=|k3^3Fqem$qiH?;aG3M*M zr-z381|Go$(KLRXNZV*BQ$F~Qo%=|JIC}hhuv?ix&CvxMi-YZh3c}bSQ_AC8&>-paMf zHJ)8yk_cP#gP|LcyC#1ku8EW?N$i&JZ^B}isuo_HuKI<0f z5lnRJXEGhup>a~dZ`jAfItNzlw^-rtjiKhCIDafg+;`{o(j8;NL)oF_o{k8;&mmmY z#Ycm6`WD{Yh7`$^f>)^vv=H0VjtPEC%_aShh{_vN_Ps)mH01BoZ!q$Qr0ZLc247YP zNFKo}etbA5@HFn4N}k--p}4CGdm2T>Wbxi~p_RyvMl-S(8xJAOzv5pX94QEbXuy~K z%nbS-1VWx^rtCH|B(7{+y@1(LytztW78f=!=(zVn3T!L#y}_cP`+;H}sl9H}_dEeINWxYXwe9vf zR8)0kSC;A<^{dVNODPDPg0cHzzP^pX=j+#u=^9FX)EtQz^Wy~VnnddyB&hp1Vez9O z^a@@Y_XmI9Jy*ceuiiG35J^5AC)lhT$j)$OuUA-qnLkuWx&q1;w76xf8p5xcL3HhjtZ-T50paOpS z?3Iy*i@#DHaD+wmS2J$C;KWT_gl^Q!xb6F%(Oa;CeTiqQdC>zQ|A!Y>;6v}O8-Xoz zV4>J*D`DD3H=FljnjbxrRO1j}LAM_8(4E#(t$h z4ZM}!N87_;9#~c5yKv>Y(KzkVK6{HXoLvMWjNAhyjMz%*Ut@{e)A0ztx@w2#$Yic+ zO27gWv2PmYF}c7H?E(=KhEjbi@>84+&ZfEMBWzN<>hUQ$s^xHq201Iq)!ZZQ>KGNx zrX;F@z#nksgVGPCtey5&Wo)#hJ$G?w*>E6{pJT`fl|FxHSG)EdoX(d4hmmn7rR6t`f<&(X5`ax-&ZldHsxJ#U|$ z4>L4zOta%Hx;ES1PD`i{mPig~%4Jt8XHT6)^h|BeBaP}R>+u}(DT#;s{DfF+XJwDp zbR}$ry!9*f?Abb`LLXhSql2m&J(`GhVJMr;#3AgINABAaGJRv@E#xDF4=v*a&9RV; zYG4+7KC4QlpNjWzO2o76B?IO9_e54A(~KcP>O&6VWZAU5_kXX={JV&~Zv6`Wol*X4 zL1N9Oy_Qb)TZiJc1M{CE_Q7=#8(_;v))G@|gT=sh6XSP4`CQrW1&Qpuy1YW*#@qyC zl!3uw!20!%+RXJcGqBgRwjgn}YxvK&RR2W(;KcAc8sA+DD+85X(+?i<*P1i=&;QqI z_Fp9VKjPB-uQCztFQnA6lb;Q2HaXmN08Y!s-2e(-(Z8|8n|lGeO?dT3 zWy!T2=VST3MyVUpRP2)_m-kh9a?gQ}Rza`S1A9%2lJ}PEGm|<}d%FC6lEew52x~8a zu@3hnXKN{E0l9(Jmv&M7v@c)E139G3x~K)%=exBNkw941Za-`AwyIN3eax^F-__YG zul;Jar}xB#kPHn8%{PM>|C!ZTZM&n#p1XO}>L<-=9)C$Zo^w^kC}+5K0RMB=tVHg? zld6X6jH-_srtjuUeKih7sz*;aOJaBWEg$e!02;^;KNXJkJ$4qC5XAX`M}_9b54_5B zeu5XOXI&9arGPkK`orhZbJt_^K9M?qxRm2WIRHRaoU_|~XSdM+-xY}&0*?qVmlje3 zg{r$Yb({zFyu_W>aEJ#lOhDcEDh^^RZwP8zDUZds`;lcO*}ky@`@{X{;3dIf=2Buf zmmzHJ2Vu#3sLZIp-lozE!M<<+37SXM&7LjA2g3wm*aaQXWu>5UfVb?q9@^p@#3(VT zdPgm6hMo@dst?ZEDLvP#L3HsB5XiZ$QDrwjeXJ}6*2GuO-J)otEMoCS=0$m6;SmH} zFPBU&XB!vP>FL_>E1~JZp#Yrm{pjf`iOGA>nI0b2)mRL=s=>9e(o^tD4vkvZ_PG+8 z&0-S+8@iF+>O|HGNGm~4QY#2^{wiB5L1<-3oBRT&#%mMy2!CBRWYiLut{8Kwl9joQ zABcF-5Z$Ei-mRgU^*XXcgLqtxKZpAiNvto$etvlIRA%HgKKEDd1S=hcLzP#dHp%<- zSnkn?SS4i|Czq#gm{S9G4w0k-H>(|y)IlA#k8ByTZtx$Ee%n*Ub9 z7dZ6}EMAV8eh-p*&@_waOzgIYPBe(W4s zxoWwaj0px=H`}l38~eTHzL@rQyu0;K$LH>4Zx80cR|KwS`gJUAyP#h!$@p1$KHyIM zDuM>jJc#{rPps6#v1#n!tMFlQ0=Bpe5^!_mg@(DU!U4hTMkh5A$EMU5T$DB4et38V z2kv!l82O@pOsf*YkAphubFS5Y=D;Na{*Vo&;c5Lx6sbXJ%?=)WJ^{5_kfj|d_d8!6D`Te< ztB$iI(GGMWGzBSn@A_NPUda!LG;tc64i@xd%rGP&)JZG(g}Y~JNf0<-0YoEVXP(Ho zIg@HK{6FH%YVyIT?T{OyCBX?B=HoB{t(3Toes#e~6o%P?h#|!#&SFuT#VY-=L9;t7 z!EAEz6e}M;p8)z+zQxub)`zy2AAIE~)?=NG0~}foAcj>!fZV03=V_ADNn)R|5`8HI zS>X}nk(FqN=YH`rdhb-^lLny*aDD7URs8DxS(;MwtW>z9;J!ER(&ww(uV!xWR@IE* zK%K8c)$MRFw6SBRW?=w}^U*f3eSwMVs6bz#2WqiB5-YIp2wo}Gdi07kwF?6&b{#z; z_w`U|&jT%&Rh{u)A-yYf;C|!}QEpRaDxha|;-_eqvEjXkI~KBbM-Y}HIZ&CXIcXEF zfS9Z@(-99NnA2ZCDhqh~Gi|bizxL>cMWiYW(uHiM`tfuSrv0@+89C9`s0Y&@i6X%F z&TrOy@enSbKd)$)uWo`G{x`FhI4A)4{==*l0&v>DuoRdZ{=LSub`TB-j{BW=`mH>N zA366=JErBgX+4Zi-LTXI!!}rInS@GP6vt zTUuJ&$a3iDETNfFD=O>n)HI$;WhDYYn{_k4(u#Ne8GmNhs{c`5dDYz-nza?#B!OWb z?|OlpcI8D5wSD&2>P!rK;wAoJYg9dZC6HB#5S4ony+Y>E?2V7mzJaF)#~x6QSc$64 z8;?0w9={)sH4VU5nK~*24*ZBtQMwdt<+NSXb}-|vT4q|vrdgYsv4Vj}M~sSQqNqb| znzndhQi#VETC(DkM=e6zc0-PiPG5f2NWhz2I5a+Z`SpNO=&C_^_2N7{V|V1li-1?{ zZ>^Mqjmo>78XD3&@`C)l=)AWkerY}K5G@2EixH}ICKODK14DJwkobKglhwPsr@!%8 zIUnm7?#$Q#e-MZ+08$%Sfae?aT#ebQl7_qzzFTFA5p5R9pdSQ5WI-!#bH21^H?|0k zg&LC7VylJ|ikmbN5wN=l<+xAC^3%&V^%XzGUchFmgs0E1e6+D;e7vjd#|4*vt=JHQ z6%az7&YkyDGU-*G0h+02jseFX<$MKqeLb&H{4_gn2(jw^#U~1rSf@;NA}-tw-`rsf zEKqPc^dyiqpO>t)v_axnKKaX@6KH<^9;n{RVBqSxuFEwQ1aqK5Dr1yNsmwILN|ZTM zn(tPW0d*n4bG<^prk*VcwuD2*Aa$kw1dQ4IvjI^@9 zPE@`pdPsa+CW#`PU_YE8c2nLTk^@OW@2|4d&A)|`pnHQ0i&R3?s>>2_#CS2v&d{pZ zaP>5d;jV^)Z8?5; zu$tGk#Y?Ni;|NhK_A58%>HGTXWF0bH6|7KoZ9iIWHv!VDrr*ry%FuLwOTfA~mkR{G zf2`h?XBb)muafOjrdW6}m`BLcOQhAZUyvY#FqoeR65Ajrt3@72^qYqzClr_DZawIS z7t(ALW_L(py{$(MzggNt5W@~>-!W%w+PvFj){8W1ekcfYXn2WknCsNbA<+>XUq2?x ztj@tu7DZF^{vE1yeSJ*GUKYoXIcQNM~t!KOV-L9#4}F$-Jls+LgT6M>`Qt4oInI5%_BV2M(1Btd;zgb#Jh zExmPP^L%sYNr9@@-_%b(FfyWdJbjwq$BgKn! zy}eq1;`Pk9Y^6W#6penikVCL#YfD&w!m{OdeKXf%s&pTK&Q=r`NJb~2N8Zqg3-XW~ z8LdtfPN1YU2M{MqX<~h$^%^oJIY9DA^kB(?yYF_S7VitzP zMFG8-(=Hr}qTXzkQwMRC!~qJhxQABGwvkN}oeKx!1VD6<syHBEu)DO$>7rG#LT*im9q8}bGXP6uGjy%-Yt`iMO3eOi`qo~Bhf zEH+HQRoK*8BKV=`9?oK{!9#zwY|7Aiq7z0!Moq7?+|kZ)RHv^ac|VdTZ1hN+oimsS z1czCdKr=QF(~&(YAFziN1(F2731a!YB#&8!!e#T($myXwU*`jKt^ATHzMklv?$8jJ zTV;;=)5s1p65A6AOr32SZP}gZ2h9U;la8M6G>nuYORV(V&X8T^oq5G%2ywjWEb15~ z=hozNEy>f12|C9R^0Bg*+IKS5DEXd5IYWk!K21xM=(M5oerxVIX40;Pp?lcQKer2(~`HICP(dUZywMNxC&KV{-hWp;Enqim)O6(2==eN2;6_~GycV{|B--RW7i1> z4kZBzXuu-&`$cf-^qPa45x+J{@q05Wb$y>PE4OZ~i3FHvENuZck$=Ak024PLbpJMS z0|{ur#Lerw1H_+i4o(gNChps73F!5~sHcFH8;Dc^)OsyaHS>=g^uL{;|KC;ae|rx6 zMX>+xeGUN66W~Q)V&V!cQ<#wKTsAT6?HShgmX@x+Uj#+PC9YXihYAPB>YCbGMvgr& zUlE^3VzgS49ZHKF9Wt}X78c~|Jy{g{D;Dr56xa2@ZN`cu{2l^MkDCSVA?9{Pk5)Yox ze$XKlcoDoS;vTd_DN0@*^-+y}a0t-A@$<%OFM^K|s61Zq9jBdZFM=& zD)mmmKjAfKM4YL-w|+&?B0<$6^w1;!3LXTc#ZG>Lm3ok&XgR3!3`k^L_V%=HY&PW$%-LRB=!~ zE->uIP%lKQx|7B6aV*+colgN7E`UWq#Z%;=sTb{}pWkTX8kKK%87YX|&z`+>a1;(B z6Ge1`!hF2GZ@=y&aYRDZrWHIh&tx%PE*!~%-w*sj+1!)9=VDd(*2ipmRy;ZV*H;h} zH~LXgUq<=x&l@{xUyLqiT`_WFFgIM^ z;pZY3Jo&_~kiCLU;&`)dk~J<&jm7AS#8s&261mtUh&G5PN>)3uebwc|Q6fi8--QCG zel#{O!7(7}k(G47?Cf?~6o~*c3EuxgUEyewsJaUIff871F#JWa>_HYG`-dYDBuE-r z+*bk;zakP=|vvaB4|v(+?Nv zGLWcR6q*gMt*;gJswbCV-5DUfQ?qqb?F&D3brQ`{v#INP-jZ*sWpXJO1XRsrQmq`` zcV`nCE$43yNwxY`6ml&mh%yTmEHl#;{VMYgl!P;!)>!4PPVY(*9>X#sXqxT!K}H!iSMKU@K0ng9|J_wW z*Jb({C~^F>@m7d}1hdbDo4x>n zb9?H39bEZpT5x9WDHpSI^pC|7bL~mwH_q9QP&ekSQjy|*=Fx?RStkYuq0vM*H6H!f9w!BJS5(4wE=v8{MAS*94`%u zdC&IDbrkNdR0n?zX+NJN@bcsxFgv$v@sBSv-VW}#&BhZ%Ql=qOiLL;IZ;8xg%30M zagu($2h0(^EzFgGG!Iv8a|BoX|-?BR(GVh%~~~Av6D#3*>Cs) zxw@T3D2%Q0>CSAtk2j*0ZJUwj#8d2?&w938v4PjQ)gDM6(N19)W^SrN-d?hhb$P~M8c_gWDhGQT!jgOblFaQ9b zRk)&ox5$7D27LsTm7^t{(Vv*Hn{7>-hwo6lS>^F8eU!&Ycvnt2K~RnY0h&U!(KBzPT?~hInv+(e;O?aM zjKP%Wa>Y}csjA07%!a4*vRiu|Qe7N0JY8wloB*n@pt^tRe&DyY3C%D%1_Znof~0)z zEs2D-Om>KqMP}syQb2t{@daQk5^$gaviiC={ObCJoA+mcYkiPvT~-I+e=SkH zZbEzfj{=n6_1ypeFWmnL+spvuo0)CdLbEWl*u2?n&4EVUnI6w0QuP3C1q zR2nU>uFi3jjjiKF=k>(amd%!o+H+|P%QXjD(R%5L%|*a~wieiOv^6u`>~KAK^I5Z+ z%#m!Hs=@i^97=T-pVfH&qT`t3EaM#6%<>DZ(}2sTnGwy<9d5nF)Faf%^TM-lb~o*y z#{77--IdKzrKOR4ZZcU=C`cX@648t|#ns+VIwhzT;AD5jWhkmbqnf0kjt81Gj)3W+ zYD|?&8ZHvzJ8Yu!EBaVO0-hpSgKV|tfl9qZh-ivU-43^EE`fSeReMuGel*Qa%EkuL z6uxQ$A-}u)CXF?cnN3LUOPo+Y`C#Y!IO`yv4xH9>^LL}rJ(qKGy&0Mv9;qTo(VGgR zAP{QcD0AMfpc%m*iuNRAxKl3$XW)|$TI=s0A{3M^*K9A@tgq}D>{*i7JaNnHq1Gb-~hde2Eiq4W~e_*uw?Mi0Hac)0CxQD)J8Y<X?FD7GJeMGd43R6J5?o_A4@TdTOJe?4Yj+IfHyn9f)i%>3T zL^JhI9UOgL;Hzj*CaMr_LWdcZCI#ormY~ZI zNK-Uk7BpgmRFuu!(DVpcerIj5v)c&_8BeM&fT+lyB%XPJ>g&I+A;7k$?|3 zi7PFBvtKE{4yRWWp%Lz_nUI~E<%FEx#_es)tU);K-4O1ec_H%iiFv|C`g|db8`2{Sdt4Hu;auOWM_fGR)u-p|Es8dtLhWFiIxHSCHR}69 zyhDBFrO_6lLpeOYp->gtan{0*IH|t<za4> z&>R#|{aYr(PaF?EVCmhtWqGtP7@C4RNlH3nog|prD+L}rwDFXJvPNIpJ;=d}n-MP| zhfB7>#=q@xe3kao9vmP{ZuS%&*uiiMQUQ^;U@;um6Q)MOTKK&^xr@5G4}@Kb6Bc;# z>F0buT#yIaP{)q_J^=L8s(ny`ex11$%S=vgyyUAFm7RS5HJzSef?nLiu@kUlsA#f}^K8lhgkbAIEB`R4E3+)h(ZaaMKRdFq2` zePv;PXc1UJ=6?828&73573CCRS>~}*);z=(NXfOB1!J`t_tu~E#V3&-joK@GZmV{-zJG;|dXv1ptfDtlK!qSiDPK&q($#igX9%b!F zz>6l4{nHEKX_{TpRn=IcM2fATQ}QfE-F$`!_*9dkrm$^Zyr0GexP(J)eN1IyoPzZr z+HB__WwaymY{Mc9ody|pbYV)8VS#vG)4`kMIbwd$O~un(rqBC?ysjV0o03hPqggj| z7lwqiguNVs#+R9aGgO1#EOBeNa-qI^mCX4Q1F`#gLKHVab7Y3_u`XVg)AXPj$9gk@ zQOWK`+!c>xL!Bu2&C5}V7Y!2hw0yO(=MFaE1ALR z>0$*4)(qN-M$ItoM?i(iALAq(%UxUsnR=HxN7b<9P@gXq<(5QNu41{y*CD&YQy+l-T*Q3Z5x12trM1&#SdO#lfm{gZ^R!ExjHwWtfatUPu$3(KrUDV&$V|(S{0ubJQ1XBJ4qm@2Apb zFZZ}OGZ0z=)Qr9uVBm>(=~(naGf@oR*^IzM!Gg`)qK&MCM1%eMqT=1sfhs`g+yw`O1?PLVHGD`;R)D+jhO zGJBX$o{GF$!eE;1H`1z>cf>&o^B-n9>l@KB)waBkjPyxT-hTroN(plO@-tbXusd(~n6Us29?1)f+G@2eo}lvE=r`*ltt zqCCvX$x@~=(Ddxx{QBBBr{_=LI$yVO<7@AC!ovd5SNe zTvC5G+OEDgQMPEI!efs*SVq(f1hFSt1TNJ+Ob z)An4>*B=IX^ZH#(SjX2BAF~{_J|sb^jlLVQr5;iYJ&|oON2}jWf%3gwVil_Fc5Unj zH3eto8{G@4eAu2M{aU?b;>eZ`mR(ihJ?p1_%&&dDIn|&qwdEDpvO)GrX}c#Gq5KCR z1@f;wocJWlLs;0Z&3nuXn)&>*aKlj$tW;fcMMBS`ZP=2pvz1Rp8gc}YT|K@G)7^?DtJsB{NzKz;V-l^+lMg)KcSSb(rf*s$mh9+@ z`A}b)xm0x|ed89=3+Ef%`UAI>oN9LnJxN)4w*vB6N;#SElM+$iTfG#+MRMjo-mE!U zHGJUUrLET3LDc7n5ocr+2lnza7xMIin&OX#P~{LwbnHPE7^$49{mCj1(aV}|5l8I~ zmXI1y!*IjP^j91-kk`-AN}9_>1&(e+i6UeVYG86Ic)d8~nII!-hE?VYR34(b&v@}p zy(Uab{WV34S63kt56cm;I6!~9;A3jeV>QCuQ%6-%@{S*6zH)2TH;1dL=i3kro$4hC zvJ55n?K$b>8N`l7n$(An*0WIo5?eyb)r`l)h@t~2Ta$00vpERmY4jJ}oj>Fw?7au> zfo8IIfH&`J61VMQ_nxgvA<(z0ZfNu&WE6&1ibeCCB2(OQ_ZCn3M}t_~xz-XbEn-yb zhsC~-59vTKTQAiSo`trC52KJusrrNaoX&d|uYl1BE6LXUfXt&kLlW-#)P2K|np2Bs zH^zLpp*oKfiV_zbLaLsYJS5Jg)5Z+lKkuut&b27tCNm986_&K(a;ykjJ za2Q?Je#PhSF5n=owhf^DszE!^O7h?;e%=2^Zu&Pp24H;&zdL6_(#oc54+$f-dA_xi;GSgB^jQxqsl#I?StMFOK#JmGXDx4FOKI|lb<2*!` zc@J>e#hYf{XT>lfi`(P`L279p$e$TnfMEX)qJt)=D}wKrK%bkuyl6# zY^q9qh^wf%SBDb<1>-z|%7rDWCU}+DxvZj;Ef9a;7;3CVT$87`(E)%G6$DexpI_zzI-{W`C z2o%hT6D<@gW)-93LW!i|y4@D%17#{aPy5wZFGg2!Y_l--J+)<53$_?3h2(-x*6GW# zD#sIF+8D6nNuf<936I3J6yzyWFtzu?bq(XB4K{g2@qWv-8ZSJ9QN;mx3asB!j@UZp z(;8>*iQw0_=h~kW^VV~rU}5acQ>s^n{XKLnpyADp*VMlyZz0Gxsc(a*@^@XRW6jfh zu0m>^hy<}V0=*kyP-x>|j1J(f7Mn=nto!m#O71T+(F@;rQ*a!48~^OvqUulpPtIwh zEczJu*5hMQPB7er4PD6aS^ZlFlWa{XF!&GcV6n6&WOaB~Ee7?bB9)uG4?STj=QA z18-i{@tquXc}>3;FQ)H2n4q=@9sZSeqUcXZKF}))Zdgx8e%%a1V?0K@j9gMD5mp>E3v-q-i<*;H9hY+K} zW1S!g3UuKRy~nKICB9`5CZ)fc?-S7~A;m&^vjx0+ROFq46Gm5*Dn}~H2|3m==#&lD z8R5O~)(XkRkj(dJn;Rr?aV;(VL9tMD(#&nUL}F-#gts`fxjFIN8|R9b+-Ry^#oHux zaqAsviCr2egG0A9-I9`sDyu;Ir`?pvk^R(zla#`ndNvArVy#&!QT=!ymZw-xFa9Oz zCb=3E@Ev~wDl-rI2G8v2IcPqEpmkOG%J(SiZI0&GA+#C0Xym!mujA zz(ID9l6%iDK<8|IU;mGB!4_J4(4nld`0N@b85OnYM|(HO;5>0lufWRTqa#(L@z}9! zHEFRZjNH7Rbo^9&P)e_Y62CevS@I=W)dTHMf*08>05i%IM3%N@NlxFWhOcV>q*T9< z^Zp>+U^YVr%`=V%IoTZI_M2pSmOjgNmGPvf?e3y)FbuIps`+DDM>&}eDgNG(9LMCn zlbjo)@nozMQ{hJdhD;oe_BiQ*wN**arp1dPXA%2jc#`qv8Cuql;8^Xw$`)oTOYH->?w=HDw-Yn`8W*C;V? zpauYX^8U=aNIegT)c=JNzg}N${yz_9{D-YJuOFygoSkh=HrhIGV%XU+tnDll$F=MB-j5XRZnK9%ZT!@ z(L!k;p!IbIko@S@mgd;I%+iXPD*e#8dMEOD0?Ekjm2a=t9TqMOo)-^rJtlm{(2D37mc~;X?;hkqSIJ1;%Oru z5{uzU1@by%{JKopaaxe`&$*fU+##>&1X^4Z6(Cqf*m%D1UO1fIdhc!jTSS=Ti+jab z8dVx>q_7cX{glL{@QfI*7#5j0l38nC`#p$jC_`9&@NQPz5?*SxFZ@az548LTXQRU7 zbY&(KqyJHHUeW1r=Es&^o)2>sJ(uGoSQq9pft59l*-9{!fs+jKd#HfK7K<3k7s9Zm zABxTF9-P#0fSlncl>06~22NQeUs8Or0^Pw0k6GCJr>e0=(;atb#rT3@^t|dpuw=@| zmpwBW=ec0#^Uzm!h2aA|w+ar?1I*T96 z>`+ptR*TDCUl37@l^_ypw&>uSaUGv-nyihUG;bp`A=Nl0MPN)j+hPi~HzPG34WV4kuae z#a_1EamqV8Baz^$hsZ~+SM8pqo{F2Bv~gvN_Hk#(Wfj%+(6Qp~5o*1)JzjE> zbbC~nPWJ>BMAu4+7e%VLJ3a$#oxSeSvt?{Sw8KSdijVVr7_u~_+pJc~Bl}+LsZ^0h z&d&w@mI!;oVKRF8jqNWcmdlX2rB24MD$f&82C4kcC3=i+FeF~RgPoPbMv=69^2S_` zXz@)Fv@8Ggj@*fpWe&`6M^`5SyY&V$waeWW>;7!;I`?oA2H@?l3{qeS?!}gEs zyR>f3GdobIGX9Tvo|_sXn?Fu}-4cy?IbnMBw@bemI!bN!ne^2+4^RI=`<(D5Xyg*( z(rvKfWY}}XCo(^>Y2o(G#7I?FYF3dW{B#(p!@NE;`DF^jEH;MSTId>@I>Qilf?nDC zgWT-bmn_5;;>PE0iitCqlc9?kuZl}Z^Md7o!yu!qW>0j4bN()bqceUJuBD8Juq43y z#5T^GSXD22{e;|+o52S?4q>gh)LXQ`heKTRqh)#9%zrDchPuKNPO)pGYLvR4Jk`sI zJiE=W#sN=q79Vkllh>zo8R(q3U@kIa0fRW9_hKi$0LD*W*v2mqR%_6}i5vpsy|IyY z>xyZ>Rl-O+p-dU<7vWV19dYn^XHov8%OQd*J{YzjraJv@J!r^SG*2W;Q>9O0kPgjq zZ%KL5*Yzkvli|=NhHk=2Pb$hRTEOP3)VJL}r57otCS+$iO`Bqs(JQW{d~@J22dL8r>&4+u8!ja3v#&rUCQh_eHG2Tq#n|ZT!H*_5{K=MNmGe*gRP@tlTad zPf0Y5=O}#Y2OC0_eBup{3dWS5C;&Nd^2J)^kA&9c2~}7{B^EWC?qO>lbLh}eL8rei z{!nqLe$)68i*iz=0vK()>`a2dY%BRhrI6!Q8Np!Cou9vtS2K~3{K2pI`ctWqE>PDK-0LF3xwBbM^b5OOpQnM16ZvNEmrj=1o^cLRdz!!m3I2n}%&`*! zWnkkZJ7OTgti5OIbkbl^#aI(F8RpF4KG=sX2qAOc3C3_l?#a;LSa;;edY_^JH>K8Y zG0HEq7|-SfgZmQcWC!bqC~F{SzBzry9s_MU zGjiy@e+H4;tPl%!JGICrVHA*fgeG2M6`PxVTx}G-9as`_JAJDKR(fNog2MQkMzNC? z9lbhj_Dfy)=wcydz7*jaP10PpNt#%!-!t%zvx5Q=6y z#>hwSE^Qi!9_&)(U7FRojxqy@#z`X^vjT?p;6$$avfjtbRb1}sHb^TNFN572PR{Om z5{PfwwlPKLoEL)O>Dpb;L)nKCvvy>U#5FDSPU3~TOL>ht$v@zj&}yBVTt|D3P3504 zfYy&IG#Cw9BOViQ^Y5OuSX5`>IiY7lMjS=It+Dc96FXfa7T*$QTC{$>VC7x11VNb; z=11WH4_omkkIk(UX;|JL1-cY+!;dNi_W8np@=O2ASWz-{@ZdNF^7{AY>EbC_($-M3OF@$e5?EBYGgS@S79G1uOKAi7QZ`&I2JFT#{QyzDoVSDMcbNlA&GQeMU`?Pb%k5@Y0 zl&=pS-g-oCIiq>~J9H!uN2}j90v@~a=o-f^JSt}P-L0!Xcqma(P%XNR^PC*1^IvH> zYN6aE!6vcu+Mg8hx$Oxm3u*#17u=;*3f3X0$~`P{q0+ zGft!z0~wAK;pHysPwl-FB~HD0brh?B>*h{pjD|h!#ftfttb+$Nc#8^7gWj?6VHfB+ zIrZ6ZO{!~AgbaJ8L!5F$`yFb&h+&FNXtkB%C_BN3u&l*x^t4bg&YUA>n?-0Ma*zg!55%C!bF$|s0 z>UV|47LUGrl?S6bF!y7JDT8d6i}dYQEiwiwnTWJ+hc3Y;=`=8I0=FoSK}5-Hg5!P# z8Jg=ERaL99R0Zr@x3P}NsjKfpNeIHuci@soF*F|RoMGQRfQ+SO@aK))H@DKwa$#qP~HzaZ-HXAKO2?zp)!7s6Wy=B$^V1<^2JfgW3BFIA#T1eMSiZPGD9~Rc&w#+JOWDtT z0h5ylU7$ej>!S66}VXA zzW-k{VEZ!j#<$J?-gj>RsWr@j1q}@aiWxye!_Y9!z)(lW`~azq65@{<$`h0gHM2@e z(^B+}s*Fs41&z8;b3<(nZEB=K+(R8rqq0&%b6GiIUT$V~dL%syJ&K-#6C*6CT-;S+ zq^Va~)v#a^8WY!J78$2ONSVo!73F7QrUgL`kQxkvLg_`$AI=CLORvXm1^n;!O#GGK-Ca%$Fv%cmr?^g_(9;ZSzlEp$h8+`1c9tM6^l088j4e_CCf% zzo8I@{=|kIg$J6rfo}-svFV{mRJaW?)_yTLnv!*b9w}^Bnn5EIB~(N-+HronXQO&* za$ceccA*=5Rd1b?Vvv`-l&uF%g2i%n>u0tfk;LEL*xB3=YJg%tGk>xGR^_1(^$0luAJj+$XG0 zNk~X2S+6G0PyH(HDzDa0620Q!yg`BxP>CUoHI3g_{c>8Lc7X`yzB;uvjg-8K>|D@_ z7Q_lK)llth=nz+Hft;crUtT>KO7hU@Zu~A5OuFCepMptOhI3iaUQe#_3f0QBfIQeG z6T%*jM`XINB>z%?bc`qXpA(mC+A#;Qk3xKF`=5wpqPYo`V_+F6#+tpBf#VX;_8qJ7 z+P*)MBN1?Iu6)SgkvmnHG}?Ok_~Dwh?XVlu=g`)n)xS}}Q)l2=C_SkpJZ$U4$ zlrJ6k*nci*PQbpsa3{50>Ck!IzK4^zd*b)bQT@}= z@1u(z{qBs>1Qx6wo=(OzcC+p^RBfC-cJs&M1?%n2ZQfrs(*6tT4xpAujV+onHmwH& z8=K9KjHt(gs(-wJ9$V<-SJA)3EoJB~e@6Yjxvw{y)%-iLs7J=erlC1S7}|S&M3la1 z1g?$BXbZpVea6tJ)T5jE0$Ikh>pTy8wJxhrd0E{qURU`0tIhOY9si+vI^uMS>{($( znKT+##p*Xo4rthEm~dRQ@M4J?oD&#om(vjwW|_$BkF__CE6Ic*a~)wSFA>*>gSp7x zHsvOBs9RaS6qEdM1Ij#YbfuSB_Ihcnaz7az8`rJ8IH+gIX}%YbVg|W@2P+%EL*fTw zZi^5AKb%!4{1aEVyB24hj`c=*wB;F3Q*mmy7(FLr2G&*h`*hmu_H%l5HVueul>xrwd^b7IEBt~xn4FwSL$)Z#!fchrq%c(3D)MeY zDI=P<$p&^UUzZz4jYte5mS`+oq1V&$w4_XTF`Ff0NpiGsi`-WV#4CgoHF^j?&k@WG zLYRQAlV%e>)kRM{ay-SYjMwp)L&RLW=2{U)|M1K$) zP*b6&3KzTF_A(ze5gdk|F8_kg@hzqsuqcvF?`6+Gt`d#U(6i=%1QBxHFmovQ0HhBt z-Tx7!_lr*UqgZA>CT9OMgYFl0|5-cs4?-X8QU006+Alf@Nxu=A2{7t#pm{7d?_lQY zz?Yp~4oJ~JGbq5QOAiXW4?wzO-vxHJ>mZFa_^5mAQTKRPH^8OG0eBvLvLDDg9M%B1 z^q;2ef7YS@lmF|#Ue(z6pLFa7Kw4!#iKQZ^XRM*3qOTvPqpz)f7{xNtNRW%gYb&Ul zq-K|9rH~A&3@8U6ZK4l^w5gGDaSwrFl(NzS1w4j_mz4pUqyG_p70o=$J)R&K1Ay@-&aT2#e2u;7I5k zxI_5Dg!f&5;X}18D($|7Sqk$ik1vQh7n3bQ6?6&k;d_!GIGZv0+{?$dPyNGaRZorR zqGv1(_8h6fgwCp0w}6q?#H6?0cnZmiW@2G5`E-v~Lf&x0A|&)-qPhquxIjOFSDUTp z+ZUaITg?XaE^383cT0KsRP-IoCibc;yLiSjwCvE6|)msw7ia;jPJ5Cbnym3{V`5HU40~&)+@a(I4Gts0kwA} z-`pPP`Xq&kb-3HORZo|iBFi}CxbuilBx3rDvP<2N(t_|T!}NQm>6OTgp4ETWCmC} z!?MnFUlO^NGG9D|=$zQDR-h`F-E*PTsu;n{J`H7q ziWwV<6Dcdf}1!@M@l+XSK}<9@TBhq2=Wn+c^x<;Y1 z6D(Y?<6XIfLh4?rj&7llT7K1fuckqvRyUlQS)$W@Y2T60nP;rML=kT@Q_wzQNjD)HkZUiiuGXH~V|54zio zjHMTE(%nLQ>2PuT*=RB8;IKME2ffUCW{v;4QoiJkU*beFJIc26`8vejmrJ2CzkL7; z`tRL$%?UdLpYHI_;)cAg-dKLer?2?q58FSyQvELQ{r(w|^UJ%A?&%2i=Vnv;_v2MJ z#*e;+&|RjtWcRu9N7!kRRrg1;er8sG^rU{ueUZOdF&0#N7XwO47G)il4wDJ8WjLPE z1y^D=m(x8(`vWbq&Nc34^uc67L)mR7G>|TI!#{M=`}_z)4BcRp?l0qP}3{Fq|s|(nTnxmRWMx( zgbCLzdz1>^4o6&1?RCdc2c}^K37PXeJa@LGDZZfylNDOthk-FzGJ8X>*MxI$)t{w_~jui=nP@sVOF<9 zY~RVaaSmfHaR zL3c|zAR^H)t|*=E;n7=_KV3p4m9b1#-o8&vcEe*4;*6vo!(#9NG?fE z-AC%ba?|&K{i}n+_x>j3-Fsclt%HDXtgU0DqjO)J?(LuG8=U(4@cmDE`o*6eq5mdM zul;``PVXPSkL};Rj{UpYOk)62=@ zi8;mo<@<;4q!OB>UQWSl8>*~1%B(SJVvrda4uLm6IRLp{#9MKqJAS^3~S}(#MbNty#{k-JTQ-LF(2fjd| z*d>YrkG?b3^3!-$P@GwO>$U+M=+q}pAM@GIMzwgs{`jFtI+_jy7K5KBD$p{)IWfrl zU=UMH^uq`yU5jK936=}o5w77bQw(@2r&D+MEl#{Iy zDH%Rg!o+}{`pO9t9CS=^s?4|Oq38Z`i3JJ@K)w!9$Lb#uts7s4T5~1%cDkVA2xf*{ ztr!wC5Ip~i0m~mHD1t9}Fy&Q&AwmM2r1Qah45j1K3Bn?F7%)g+le~B#xSFT-w_Z|BH0#t@##C|qPL!dz&1?fi4~>d_RqzUv*n9WIua^4 zq`3U~siDH#g-fpVry~N0jQ44C&Xkp%DuntHn0!N+x|J9_%f!F}Pqh9<1PTxM1*HUsZqHN%G+mXZBE%YO4$nErZ%!)Jc}7oY-k`r& zb4*l|_sI!{5&5n${#O^LFekdpp1F8kReFXkeYN&dK!CGx7V=iTH@kK6)w#Jv%4Fl~ zYZt06`UTUCGzW$qdHo6Pb;JJNVz<&0(WN9KAKbgHOIKBwZEQaT&gK>kzkhESnI|^u zU)MtY5bgg%;iE#K=^XZEPltGOB+H5F&;Ebg8%FK=Md zj(ws(|5CPu8jjR@1s}{AB(P*k?lPLIF(+d3Uz^%=ANzJpL&QIaCNc$c+}DLi`IGGo zNQIZyxm!_jD%Z<(<*1$Knq`yiv4~U~t~-MI(YrB2EWyMh5{7b)CwdE&F5xpV=NhPs zUl*Y+mq~)mE@&-B2$OLlg9fCxjFyWOOtQJG(&`G>c$@8c9<_htMZ!n@2pd)OBcg^2Xq6O~hcJ5oZ z=VoE|eM5D*cR%Mv6a%^;D&sz5A>GlHF4pl2F)j1hWa`&gdBw6PvA$t+M*&POo`egG z&KFC(q&fu!_i8I1O>gqTxjlzhWNsGnmH^+vF^SB+wIz6&GZoCiA><_tSVZp3ODX%e zQA;b)JR+JE#=eVT!kJAdH3-w;w8p=|@&SAP(0bsw~M&-~MIHg`~J@-NdGi;Mrs+WlWM>Hi6mGyu!$WJFm=)tP={*k+tq)}X2sv(Qx zWk)iyAXyk-a1_T8ZmfK3XNjSPZbfDND`NnXDFA&|*G_q!aZ47<#RLXzeBJy8fq)Qf zJlOb0t7c|38_x|XD86vcUzp8e>mqCi$htCQkpzYAta{F=$Pz-JtY(8df~cJPA@!+9 zRO8#B1m5>Iev%ub^wlm>#4PZg4Q0o!f;k)sa?JUODPqSFSuZ^znJ=g(Vu}82j%apv zWbcomZ)IQ_u|SYrOZ@C);W2BWvFb8!4!$)7&41N`s-STjXE|K zHWdAo{oFkQIk|Ixf?8+L78fih{=wYlDKj&iGj{E4XK37$Y)J-Ff9zAYsZ6s`K9e8r zK)FG6dq*+7CAz!Q)sfTengiICsfhzm2nrbIXbmGjIi^Je>{|#St}R$j+}v5vL?3qE5gaLH1E9 zzw*0b8WTE%Ag6|DA^c7S1ht39iuI?t1b!KO%OYk*2-W~Al!q|sH?Az=G_VC$*C~U~ z*&%{UINUAu;_-PfL<*ymq5s_d6;|1^u^V#C2lG5T*jk86gKH$XXI$d{Rwg3b``!}7 zl!0LQjU`Ug}wdHN=jE}zLgOB4Udk{MW45VWx#;da4tjXv-gFv|v zzT+`}_U&dC?N2p(Q9tJj?6VYu`$4OoGQ6iw^|M4EJ_OXa~v1c1)ag zA1%5OSK)ZnAnI-(ChW@k7;KxdS5`{cP@zLj;FQ&vpzJTNad1{l!PG|)Z&#d>OT282 zo%+Xbtx8_@AE!U@&s`YyFhYEr@%HlCYW5xY?DaHD!dR5`lI+Kt>FWb$D_;lDu6>+$ zNEQH!Auc9AoBA!*- z(rnBTdu1kO0xx^26QV^s9*Vb|X9|D#D1!uhW_IMX;l|y78jbV4l3>`UF=dv(XD_r_ zE;v5X7HG@JJhvCLH>P3igV;T1skPmlRV{Gw{ZdcFjV~W%Pu>0FzWce%o$8d+KYDw0 z?0;G4Ydy(dyC!w@&Ntd4Y9fiU#`<5L?}=>_XihDj=dhcBevV{i1)xffiK~&&KKk1d5jNqO|m!6i_bDj>~v=sa$@7OSHR*)0mG**Q9^P)5Rn#s zdOBSakX_^3A(O;w5$)9z)b#>mdz~p3&ak6 zU?=T>_;S#Jw7lOY0&rmGm}%ZFQ)g)#DGbw!!ohI z>G0y)L(u)d@PYleKVJigd#Ecb{=2T6ZIqm%V`!9JmA%M7mru;mUfX8y9nc#G= zLGV5ihB6%y5W{Ou*-L~E=TzeKFR?kps7SVx@u{ECoZvwGGhBDYY2l-T%}7(JkL|V{gX9=9(u+>ZBLpLK-`ZZ2&ZQhdFRTgeZ+OJ5Td>i z6Ofi+D<7Gb31HEiDki|%1z9fkvQ6TE?10PyoesZWRO`1^z+0;0zcLQ zA?5ypMmXNUTtw#qh(uE`al8}JUf+bVcoyYPvS)D3?`F!f&x|(Zlp=2}iSh10)Pj+KWx!1P!C7PAsNT zGRD%U<`J4nAm*K=BnZ#cgLk=UK_Uy96jQtoOOTs8!eY#GQkO-AiX=dNmfwO9xJgxa z7VP}xF(_CU1HF^EX@nHE>EhMxwQz<68!hB`20s+Qi zTtF~8(3=Wi>kmqc3Z_R^XKF=BG-@vS3PBio^NERFkdYn)S6io4b(4RqH;XvTH~7M{ zbld2fH(QwA@D(4PFvjJ6Td&rj;j1F;tHV5hVwer zZ@ET$A2(lY7{0oIJD$=m+n(J}bE)lk&h0;Dm$^TaUj*bxZes=B+kYOf-}qJY>;?l& zr6Y^OL3;6xM2E`TQ8j)kfC%4^csF?JhU#*(*Ke`+L03&hR|;Y~a36BAeF9(Tv(~CT zQ=I+v-JIzU&4&bjuj_&Dn{Op6wVP}*-=1w@m2MNWdm*LtWWdY0snLHM8T2&++^&8{ zt}5?m^V6{^jc+3vKQHXH*4py7J5DT^v`PPG0SuF>!)U$N9$j6jO&oE9yzpq z!C1ceI9(=Zt~*AlQ+FJlexWsFU+1tIh`IA!v}I2&)|YXU`=xxKAVcA(KO^JR>Uv36 zemMSG=5!wD&2uWUG|pOZlj|jR@Zrg5JZqwkQzvtjIK9K7hb+|&@%R~Ou*>X-dFzq4 z#YIQEm+)E|@K71FuIe)}M#Iz#HY~s8VdBeiks(hDV(T;Yc;xyJ`s=++-TO2pAJDmW(TTq zHdnW+D<@&x#}o_MdfK!mXkae1f2-Y)^{-*|;8)t$siyzlFxn4AM7VBfgKdluYW99;IiYCZ(FM@m^a=oZ|8`&lrY@km^N{EQ(dFir z{^pjU!z=Uw>^=sF?!eF#0K5Ov;rRw|U{5_eaC8Aczwhw;AJiHGWS9Z` zRo$=iRt4(3HC0s&4B~VR2!z8v?{rN?JYHVSAiJp8G)0G8K{l+esjUe$HPBGiphn8a zwGh5&{f00wJ5>Qp0@SJb^W1OT|uBr;A_6Htutf?VuO z5D>t4w;(VCiW`eB{Fr81@x7mZ2+14H`3*BgwJs8F2W^cDLP(*IE%~#fWJho~i*x`; zw=jOT@&uU*8Zuv_ZROWYkV-D_v1elE!u!k(rSOC4xNUy+(7NVSrc?y?0*eF#Exh^( zoZ_uA25@?{YiFN*$G~vsBur{8zSj+53_Nnk+=hm9aQMl+=HYkZgsw>LX)F^F=L#6F z&w=;WkFO5Kz+uZ0ug?ZU5J@G8KS7PqK{M=4Il-62z$p}`>XF#j*^XgxPdX*;YFg|w z-YhXCP7~WI5S{3a_KsBgr%7EUXFbSvw!tB^%)DY42Y~uAHRw~)snlrJsVSom4=~5R z1jFcsd{rh2gJL;VW0pOLg<&*ww5^f}<3f#Rjt9TcUjvqK?PxdxgCVXTL4GN8sNOR? zP%P{c;$mfedIB=(Lp=mU&pB=hLQ;`vLf$hZi3UD;FBr~zs?dU}cl})!Gd==DfQ~+M zv4e@*&@RdvOc5Y72v~g@gelqov;>l!R(LN?@f;`^x}j>&g%DpO8?s;tm<+J6)dyWM zO4rtWve6_S3}PHV+6fiVb$^#&keFC%O_NBVN2g2`BXnJ5K6Hb3L5{(+vVprIO5L8* zDPVC5>H_8whA(@KknN%Mwjl?`2G^I?EjokzI-~DfUSc2m4biw8muAYy zdWwzgOjcz*R?zvWbH5`g_d*x?&am~Un$6Fzjlv&WH!@fSyyeHza)T*s@aIhDq$S-IQUpWjDIqOQJA$hqEH zS|oaHYqdxu=gOVBo*Q>3bzk_XJ6>RA+FGM|B7LvF6RNw3O6IW*`s8L?^L^to>9hJ~ z@w(=R{wtPsh!6N1ia~cuy>3PCjh$hT{+-EZ+uhEro_p)#+={mB?`>CFrPd$1Dc^s; z8Gl+QeO{&L_4myq_zm{4o6&Ely93-+BCmJ`2fVfWoq9xjw~ILhpZyXf?$NTu&cwrS z$NheNsdJvjER-FZ)T0$eitO?XM@`MZ5FVtfa`mo9i+MVgY?^ph86zfQU(*YeDzeCk z2W5+8Ge-_~7bW>dIc(UrQ{jDgenmt(bXzh9bu!@OzR(^0n1;hq&@g~EAFoKCa55`08MOh=d?M73FWJgf*|j0+BS!q_4Zs`d^72W?=LtlphQ&@? zFqD^*^;lM68Jf7+dt)m;#6N&~YE&N14~%A*)+b0s2(bcBqr6MN%F=I7Mi;*?5|+a*oIN=*JVzI; zE`%_$9Y&wy4k?L;t^bD-k^cnDhYImwYWdGbFWbuiCEoXP9TaT-y<2t8H|n5SI}zBA zJY1~WuhjkrdWWt9&q|H9_RgW&Q3A0B+v^#qWIdwM4T zt2F@3qfhpSHV&-T|M1~|LFNDC<@&Et`7biOvGa3hduwO=ziF4(VY3JT%!ghs`G5Cv z>6;K0H1zR!RRdKOjjZwt6Tr?@Yd|?ri2t;6$;WkQ7gbgyD2U?tSce(tSeOxXXbw(Z zjF>`CWib)ZhY!45ImVH3r7177@K`=(dN>3G-dBi0z`P-hnOmg3=3(zD`vV&T>YP|_ z6rG?*3pW=^X`IY}W<_%j4m7wJKv)S)DvG|g$~H|2u-%ZJTqa8mEolIl`NY}TIY++^ z-W6?!Fv`H@n%3x=Pl(z7+L?k6Fa@Z@aEdzzVB(P|_@~XGd!i6}kpxD&E9mDIg~o?o zt_dgAJza(AnR~TkFpP5)p9qCqg;C=@dG*>*)UEa&Lo-gtX1^CucAM$VLkkxSuy8>e zB#waCRQMksCxmn49rf$5%Zyrm@{%0l)|uJ#IRS!6%`axUk2{gcSoVZX%7B>##I3;Z z>v#uBN6U=2ACIFbXo6gfr2&_QqjuhcO-z#P5Mz=!rrrc(g@*DG#S-7u7N@ zH&qLbS$Jf>HSFl)?LHUMp9Vnay#<|M2r?=kqC_o7K8eEzBf<71dYCMU*X_t+tXbbb)>L+zg&c#flZ7vLqd$Ji zWA)7(1LMbSUg!2`RjsnHD@;$&q~--yu*{_M=)g4f@;~8UoXtAh5>x2wru7>%4o)d` zqpvH~kHX7>U<$s$88R!gx_5u1d+E}~A@YG_9w!FE)F0w;cCY)#GN=p8JbgDrjLvOF zCWh9f+7rQJQcq$MbCVRkFCxmQL(lfmXs+as{^}1Sr+yEAOxt@g$%#Kk6iU;Kz3s;BGmJJ9iB`@RU(#Q=USDvo=f}5@ zg%-Z%`zr3&S6;dCNJJNSe*JY085|4LHZ`xlYFtni?pT^DlV5vq_t;wv)rO|C*LQ2w zT(y>#o4HqeUW$eKRJ|8lb!@FH&*->Xn0SYN`{PxTR&+u9(~g%dou;P5ps-Ce5X`^%3s)>WXuG#Xw_N-1+w+^J5xeZR z&MH%5k8Ucgt=8SSfqwh^jqVP-)NN;BEcR7Bth{3nymGVSA@7f~;q5<7WKS2ivi&4% zKk|JhcD>HlF(=bq;%lGuB}Ror*u{ZIznO|dS(kX|Gjyxi8f!u$uh=mtpXg#rsEClU z;%2@lCu!NY?qg71upR796mpXZS)ZJrwqRHFdtC3Os9;*@6Dc7&NgsV*KJL8*yDsl0 zhV$fx9lIQd?i804UC3_N5z+GAB_}^%Xgj4#1Xz`XJDK%LT79&+P&KMML9MhI63z5A zpsdTWkDj$>ZiT8#OQ3_hREQ;E+KZtk!n$(d3V+qQq*vvVj7Fv?s;vBOy zHr{1-NV(ricgCIPSfEvovP4$6!uS>ZPVQJ0<6`|eg!gaN(;Q||-D-}dP zKqmC*Pi*FyH4r6Q7NO-zB)loaD`wPGCFimb@V|^*{2MCok6j$bpezm;^TCz+nv?6k zW9wf7Pyi(VJtBECWZzpI8Iu0k8|^C0a3WHcz;ClpzZo0;MD?#uMXR; z@3$N}wuTOJ%KNL%BcoFXU_ASL`Zd6kfo{!%v5Uoj+mZbHIQ?HM!hhlMfAen5Lp=T) zm6ePP4Rw@cbqv*%lyr6Dh`O4ZMu#z|RHdW3(z3VY(-N{vGgAn9ReA;o4r?P_RV7tw zq-@+nO=Z2ZGG%E=KAs~;6ca5oBa{Wr#L6ckDyiI6s;8_CSghv_0K%*bT&$JU09=+9 z;Y2b(VUT@?^)8$V$thekV{h0eky|B1ILqc-9F~Z-jgR_?Cdc-{5e%O`%nr)k0fAxI zV7QpCZF6Wt%+D1kooFWR)qoXD;|h&>h?1Ej?|4JmSP)DiF7sLK0425R>gYMwB7HR; zohU{*2{YO#xc1$%?2aHv6vuL7&E}SgrwuNQx8k^v_&Fsm#2%Z+?W%9VFxKft3Z!tA zF2SN$0kr^@vPJRZK=}L-6-gMY&%G}zAw`k1Lcy}^UFJJesME@hzpGCEL+s1t>fJ=HWW7#7aRg;n!?P(R%SLP(|>z$DXEHfF?U zb2IE1ikvR9kXg@xV*JX;0X+=-8jh!+;;^rLk_|Oq!y@S=GH0FXbUV8g*${7u&^SI2 z1UK*vRA{b{?d%ji)U^(Rpo@cbVj-EVKG3ybVkYBEzKXJ z4Zs(QD>K?qFkaU81EFyLGvS?Z4{P~ltm=I?H~)*J6=lG`+-ji`kz3<1s>X3gT`;w|&Omvny>fX{g*@ zn^F+5Tb!^is|bibe#A-amc2Wp!qiaO=bGpAwdk6eK~t077g{}h&8d>&=ad^c-Y8wn zy!Lgb**is=FR;3(@%rn9HbYgV>9~Q)z>;+R+Okv);~P2eN-S@+2VamlJk2> z=CSLoh0!0|)sn(kKY#zo)~B_S+SJVXgXR8v)9O^8ukhACUM{uiKJ7g+_LjLb?up69 z8T!+R=i@nx8u1=)N-u2a+d402JbQa?XHVpOxY{IFSR#6@bLSs!P?aej863a;2E8yQ<;(Ty_V*i=k1Z9U8(uetnNq7_r`** zUllcBY*z#z(q+W%l{GVd-E3N(X`$8y8DGiV7hBHouFT_x5oxTP=oV@RB;Q9N3v50fq_&(3^(y?haY2p;Rj78BQSF1M5@tNhGFt`vfaeT4gTk;|>uaU&T8a9KGwAFUM>v-^%;>)k zIsGFSn;ukM19I{H^2A}6m&=VmQP_LG%gg(K7+(s!bty10@LFCecx3Bl@ zSbsKc{y*5U{s)5Z-w>=oA(M#;Qbe+ff&z&Yr%eK^S_cqJAyE`mWMvg4N%)-H?DEVM zEu9)2y@Sq>9AyP%YNS+Lo4TS-MTLqYPJoLGg{EglFflQ*F>~_rNl4u5&eBoT1WH2| z^Z*RbB}c~PrOafiNC-cCGqvpW_g!DI^a+=}$)@kw{HjORf zc-8YGw9K5Kk&L3S#?RPY$7eke!bTTRAK|6(Ij;tI0=I6*$r7lA@fSbUHxw-;_GCs( zJLXmn)(zZhxmq%+))~Tx4Ub+6qQDcqi+GA&$8QtB&pQ#i@FbHIk4efYr|uZLrypLG z3(HR10NEy>GepY6kpK<`3xtTyC#p0tQ*;urb?rr0R^E?WUZx>*62joT8pU`blt+wH zq&giyRxMbuPuf7b&ZZv|QrDgw2sN7$otE0}bYWSzh* zxqN2#JcAa)A~>Le58NqCB&l~LdX{G|zE1O?mxClYUg>o5Pnn}SXDNcBOVdczoy23> zs`dFPnp24}E|wivMB^0#Itd^G&XFX+R^Z%|dYu2PCr+e#IR(Vtrs{?cp$E#6i>*me zT6o08kbDKSM8WM6{z?c9fe%lrI@tyHs*a=&AqMg(=9Bc+iOrIAjrt%d15RGs+0;RO zTWF0IE|{d=Vz}ek zu3xKemRVs`JzjpVr&b&Z4R4{u4#iig8HQy~vr<~GJidMU z`>snttX8XaiS1Rj)rvP2RrhO7d+xqW9`JcL_vM}0gYo;a+h-Tnw@j<4JP}g=i@NuI zYkKdOe$yZcgb=Fq8hSDG(38+Y6|i9sy^4T{D3%aHFNPj^hX58pM6h5IdJ$1kum=P| zY^d0E@qEFx)?Lot`<&-GzuX)CgGajPkGgL=c|!h62TFb4E3F6U++;9?}&*$gzRM1 zrL`RS*1FZ<#q{-whA4w`wFQDr{lwLDMhvFYbtUWYb;Elrd(BJog!l(qlnR@vW_5R) zmgjYam)pX%u)I&Fyqe9mq63e-pRL|qdsRiI-3>Rj6Z10Qyo^*3{K|6~{^w$j0nT%W zAC#(>p_5Ir)h4hul(OqN?R9F9MK*`=0V0z{`n?6HwMoGg{a zIo6)bM6^Tqx$>FnPjGt{Oqf?+Vp{7*D{xc$5m1-31Kk+SA(P8v`dqd@G_--0-9+>E zxn`nLv`niPBo8@{TbOv5a;CsK6ppdP2;DsKL4d)4nWp>$`NI*nPN>)`pi`xX?HP`FLWI%@<051$oLC!Rm;RS`()6%ODC?8T( zN>k@Gv)L!{a3D4BUBKw26B(5?`wI|u@JyywG*{gaRyaiDLDee)yRZTw8H_(GousW_yGXZzH{CtAhT zK$?>mUtP-*bL*6nb_+B+>KwM#zJ0)Dy3gT4{DK4%L*ln|CT;_d%no}$ zcHKTwnP-2w9SK5xa52UC!bTKqVxl?%>T&9-=HkI5!*+vxk_`d7%hL2E znOb$pjTZJ{YHDBt5{A2ZjM>_O3<+Rei9#Vh#Z%BGaLU^sdO!eJKRR%J0^sAtcAz)jO6tx9h1s8eM6v~*(U*_9R;3< zm4#IWMjCQ#e5gC2>Jg#NUXEcgszu?Ic+#PLCX@0R@kJ?RdB-HfMg%eO_o(4-V5+Rp zFqzQ?5ktzP1XzApD=Tf(LHlK?9tEWCq+Fg>-Bd->COTSKvo$Tx+(`~=36~@icS`^4 z3#D~_-t8=S`2)}@YHM74)vhi#c^6hHQ?&o$kfa5d^$CL^RaZDBycXKD(jx*pvcEPv z=AomGU4Wbfj@H<|pYLGLF-Z~9X*p|*{;>z#gtNk8h*pyNn>l(@Z*mdgouk-mrN~~G zqM(`+@|sI#%sbQa#kI9agwnEGtB8F39${DkL#OkCp4^E}vdd=oR$(*$M@gF7PFCk)6ahj5}vxA#?PF8r*QgLG2uYN>hr$a zep&aft@1`r`(~E^43Z!uzCWKR-pu^@LgVTx7DF=+uUPwIr|#EXku>C4n5d}~iRr$w zzs%wuT%`W8>(`v)36{z&EA-0MRrW!%_dG5=x=vEz)u~3#*1VwjI?>O|bUY8-sh*3q z@}1l#nV{lPeJNdbg}q5j*YEZH0y~%x3Qm8|kqGANCw^-qX5G%iskbL#VKr{EM(9%9 z(Lst5_)x5Pii=+d-ONSB$rSQr8#8uDh(CI3=q`xZ6=g?KE;1Gmp%oe@iYrRpF*XN? zIn*e+%TMYztD;WqECVs(ySdxfv`>j5Uhj5kq*g1qq&kB$2u~adR1^3xC_k@M z6kgwei|)S`@v{To62%vchvh#XPA=&C`DCOw9~#i*CuL9J3Ns%_5>gPQxBJ2Iv4!G% z#{gffbW8i8A?jvzhdi%*0l(Hh1m2gAv~Nokit9lp3;DzC=J!~cFOqBP8xV)Q=9OYs zAo4h0tIo7cHyLNn>DU)}_;_&D@H_qM&KJL~b$wWC<)4^8EqM6%QIq|0nNLggUL{oj4@zhbU8 zV$|y_&3`e)0jJkNn(M0*$&t|+F-JD;(!ZnAzyfo6C6M9D%BjuCtMCZ5>Sv39B-7Jja2zKdaRXI;xm& zd4vJ2i3d~&@;LD78`wAa2LF_4&+yIQp4*uREiP|$0#OJ@&nNP$LBa)MphGCRa7CMO z@c>6(Zz5W?a<^af^ByoLz=w!jU0@TApXi!8*44wEC{QsxeYXi>~|Cl6A%FSkDxB_{53_NhKZ;QgYP zIV@|})omY^SEnaM45ug%_yA_I41{9v1dk33IOd>*Azw#?7KK;VmW{JRC?6sB2$+u+&gQ#!Z9B%SQBCQLl{V z0pmaNb{BiS#EuH79LwBHi@jB-^i+G?N5CWUDzwXyaYk{0+lNea_ z=Z9z8#1+QE`F5#Mmdw+@T5nqP2`yW}O8o*Y7VVLO8W{P>p1V-@E|Wsmi^^Aej(l0n z@;!rtI)MU4egT}6NKWe^rh%0b+XGQgk@H(XqneO`Z($Ji=c7t(Ykl5bxIjDJQk#1i*46ILQHe)SETZ@A-23@8?cP(9x6PzI&Ewa~{C`a5 z!Y{nqmYf~=Q}cpr=a%8IFH84@Zb21)UC*@G_2p9u?nL^R$9uS+)?TK2D4zQCVDYKx zm#t3NT^~if6i*E()*Z-yoz($8O#nZ1smKqp;Nd0kQFSPua$P3 z3^x)ltWs|%7kGg&{zg$izT0W6G^uBnpzZ1QuwG7{C%o0@XMd%-2sHBzGDS4~4m+x@ zJSMqO#1v5rzOiaQEflRSl%IGYgPMfn3TCR+^QfNW$`tonetSHLpssBA$1a3+_VHoq zCwFl9o%On4qEnwPlZ)yZ#!6n9tinbQyX>vYwuJd%$C6a%QL}6IUMHrjNJhYHF-O#V z(mSxzB*QcELt%~Im{3s9ruz~#n?T4E{)BlKA4l)Z^9BR^KYL42VfFk*GYgtF3u8h0 zqdpZS93hW(fw_9Fnx3!P$MTVzZr`0sr%(gJVNrCsy%*JTFrNGQM{d4xPRcWjQaQet zoA%CXezPNN-ZJ5V8|4o!qat=zm;!>voLa<*!}w z(7it=>Sj2f4D6DrTH>LScs~)BPKs>Om?cFPhITXaDX{*Sp-j=sA+4E(}Lj`nNaZe-h?@?l)~Dx#BkR z)h9P%TmX`5V|fCYgZleg{TJl}fL#A}%D~Nf{pC2f4sgo(>nUqMqy1J8K zQCVH(oOjvQ#)4yEs~{kypsa0CaHYiAf>c-EGSviVG8yp3K(P8|37N!Qcwu1#j77bM z2m)mu{fD!KwGH>0ob3qsxzB`TW_gTvTlrfk_R zs!WhHABpbUb4GzIIRe_bc|afNGMZSoCkNPAUOn4{ z3mO+&j&QLC)xdQ2DK)qYhK&HpYDxvUwrQ;T?nM<4mN9xC1Qj!0D|MDJbQwlF6|H3a z$Q3LYyGS)>1-i}W^B;3og!@ z#RKCq5GuIBQVhqKYiXP+boC{1cTT(Br@Esk!1hm?huco zu3XZaz?Tl#I5}$e-r8Bms|v3s7M9u%yyl#UaQX^E2yIf(RMOm>o0!>OX4NDs>Tp68 zrWw>8x9Mb24~Pa6dp}J@TAqM-Yh7FIccZe8a4AM66aLC`@NXzeSpGDn!^8qZUWtD^|f?b1NS>3Bt3{fH(L<B}LRHk{fKh$P=9@#Nkln& z>P_#VJ1c~<`Xpq2FDwZO5Qe*%JkpY>uId^Jod? z^BMRY7u)k*qo`DfsPU!AsdMif`;aP81aS0g-O%$m*TttO^B2J9SP1@MpU31NT=&yW zoP#3z)!971vkCC^J`H)`Y4y%`i3pNOAx3(2IlWh;+#BLes-h-)Cg2|OM{5g64 zn|4cSK@nHZhe|8bLE${gbL8W}Vx9A-eh~5e8!UN^+tmM2CzwuHn?%#jY~5 zNgAhWv+xBfNfAdSQ)Y#c?jVwE4ctl2g+VNSFRH128>()VsF<(0AF=BrbF+6ie8yLb z>^UcKYL(_I^O}K~9~K-1JFV@`s}4}BuNg9kgxK5?H&?W7xTx% z|DcFBb#K-3rit#0JXChgxFPUVThgIY6=kOxXUt%F-e+>#nWby{@T6}^?!888Sq!um zI}bCY`60Vvtf}D-yz{4PACXRMFuIek;AlgDw0Wn!l7u$u2-;ASjLF=|&w)y>5M*zM z^6m2W9!*lB=RC~va$V7Y0zO(ZdkF}DX(Or`jc_UJAji$^FlVedzU8N}*;<*gfPG(|tP_A?5dM3~-avt@?^3MO zt~X*{f4(sTedK`Ce(NKSNx)vzp_mLH<`uhMMqUqJpH3`Z=YRma6u>j{dLJ2(>~#(Z z@XWmKtIN;TH+25hit1etd$n@_Hdj}7Kk(jsy>|o{QtlrF232m4-@JG0uhpo(o5+uz ztiLz^-9&!=XA}8vFxP*5-2PLqf&2FAHz0TYSKjMCRIdR$y&k?^Z$;q^9NhtsCeVtq zbF#Jl-HIwLE3fd#Cy{H(E)9)MO+X#$Pkv^HtvR`}oa{u*x3)27bMlSUHE~wNZYJ5B zSX0Zo-2mvd6QI`sI&+kncZoCioNa`J3knFyYHpr>T4j5y{*DWoWNVh3Wkq*Cmz^_1 zyR0qOlQb6qqJXNEK@g-io$?;N$tbw4R(bXk3yGF}6u*M+&~!9Al!s}NYl0AEq1^}n`g})xWJsUye40qP=1y%1CqLhDCRm-$tjU_T^0wA7m7ZsXi#bbJ zHtcmNf`a(A+$Bj7@8x5aYu0E>Q32_ZjjA@0JtpKhEm%n?bPIvgCnlo;kUA1>d^w<;)wTN=EHtlAP+4=b;v@*`N%CQ?aI3J_SQ_$l zzA!_m07f_D8S>J>4yLBVlIWcJ`0AwtDJyI^@#Hft3OBuE-m_9uCsKvy{kA=A45fzU z$wvs$slIAfZ;pDeg=v3Z!V1dI3=vMLsN1QkyZr2!%JtwLh9S_1O$4Y;l%M~Z!jR@| z#SuI5xG*jfm*_s`sWRss*Y!XxPFP&&F@O1d4+a67ea`zaNUNl>O?g#>2oe6yMKhC2O0y}wIyzrjLR2l zS0X6Vdmpe|p49Hq7Lp7Z1PMJm+j;idz6{1LiW0?7|3+VJ>3x{-`E7a}T?G+ZkWlBP zQI~rLd&AZQHuH5YcXD^1U4)i}uH~b$Tb@WPU-Gf-$>I2 z=4~JG5~)wr1OxhDV6;y26F{SF9oVSou_tQikOqn9r^kOt**!7%bl6aadoh=YH9S26FIgwkfP!LSR`n7Ps6#h6KyA^GRAPa}S(J`vx?Y;Ie7 zb;N6Pui85mamkUz;&&(2pqCGfu)bA3?H%`=CZGC|V{6mvvdd2HkKx_s5~kG!9&Qn{3bhw5mEttKPT6JEJl-3F+ob-JlHF^hdaW}} zRG$`QXuXRjwqlT87ac{|7Lc2MB1tDl&R6Fv2!4L0qf#W0yvbnODE4AUA#pBbE&Ipl zo#S*77-Y81V(Gnq+vfo>d6+V?2n0ENipn(O4=d!#U zLEv&#;+84R(20BXi*)PvL`-#ih64gp9%oMTLp4_&&*O`glNQm^_NB`{X5;aO9=6s) zeY<3geFDnut!~^IIo(fzPy0-0Ym@RU??cjE;!Dlny%Y*sQsU3?p?k`3lB8x7T<9xDS&@ZnK9xtw|rs$rZRQhyP zN5z2TE}J-Y3JBpU0|B5vpP)rSzQFhL`nIE;QwV?$ad7?zJ_NAWf1keh|6|*6U8@0m z9djf*;bZ~u{+vi(e}7(2f~_M%>eum^g&W;v;PegTgX#g522fq=r|s~|Bn(4q{9A}NHn0*zlGWq z0A2(6YFAfN9L_Y;)Y{B337A?gc64yCw#J)PRase<+d7boSu960TY}>S@yxP3SzXmR*kC_bg&6YCerD zq9O{HoQ-a)H;{&k%YoQ=0Hnj{De|h>83mgX*SOG!JpuV{z7B2zdPNX6w1^CrqhjWQ zTigkIf3a)Qz3;iImVwpGJ6rivob%C40x8u<)ym=%qeM$gU2gZ;{I0#Q{qWOxpfpPb#RxGl>>c+edLwACyjPkOBJI%Aus+kMORW8 zfN;oM+NZ57&lK3XEET5R5W8fNsH}NRt+lK(Mtfw@$IcvR);&J zE;222dC&Iq6@a!>4Dytgs{JcL;5d=TNOgl`tUp}IbK zDu#okv04F++IO+`nvm9J^qtbd2(_iNn);OvX_#_wM9szXje2;B3^)u8c`I~nBB5SL z>~R8EtwzSE^@eUFXl}naf(x^Fppx}WFjf5sbxofnRf`EJgp6YvJa;i?Q?c^_skGdrsy&uv}(PLj~e*eooQrc9Dh|#`}5P zI=oW_n(u4fHe!C_i}f&)Xk_*EX-csfX+pWoDCT)FHb4f>BYS+SP4F%%lwB zB$Ns!RexMvD(Ym!`v_U}T)1-fz#Mp7ml(zC%|DYvg!-i}G{s=1b28w%dOS8nNgxVx z#aMQ&1chB0%7X}N0xQ@BuXV1h!jeRj){qh~#*Zzn7_`mOz%T=X*r&c@)!>=yjYH?3 zY&vw}d+C8Nk6&l6KC2Q4YJ0eEEaZij?80hL&Ms+sT*_5N(AH$FQTY`q6IF_V;axK< zjuAM~%`>owXH-5pbKtP0@4G<*TMX$9{i~{c+5UJ&={~|y`QB%r)nM|A57}OFx3x)L z{O3xGYBanZkk(QI^W1op2|6SDAc|ijmH|`uNfK{ub{94)Knm>_u`wG-H!9GM@ zeaP57kXLCAhux;F(;d9i(nx@yV!lyujBpwN~d`&>ij$3n7h7LCk z;98&Zs#(I+@SDV+aX4EGJ#}tU`$)>tn$}YPe&=1jXczn-(Q{jN)W9}w%Y9gApf{1+ztL=@@#B$q} zvEs7|(YiB~`=TRdB#}l_)RMF9#Dg>v;t2B3jM$%iuYU;ihB~ij#C{j1)?;EmM}VmI ze!q?5_r|Lr)Sk&(x6%1PZK|Xds7(RS z)4vxU8~!m#alL&5rwNpq*Oj_w7}%z`b{*(5-&}vH-q?-0dF$b=J5Sc1svkcF<{dYV z-+zX;|L@H7{}QF%IDT*3v^_k`jf~7Q%?TFH>jGWm>`W$<=UUiWR9RGz^NX8`fxEU{ ziSzG;M-S^9@)kg!t;<<#K%Z*>fgUXH;WU+>E4kRQe$@7Gx}NTl0vyxx#*4~^=NIM) zW3x#uXV2euCJ`=Yn3-FDAzwDSvCMt32Ffq-hSyhIRV$faST2I5syaC_Exuh;?4?@_{8*oham0&L%-zcrFUijVY~94}($)LLm?CmG z^l~R`B!}sqy~UmCgubVx9pJ+JP+Qfk3y-goq5&WDw?QfAm?j+jJ3LbR>o*X8Lh z38Np;wt6t6EFY-kL=4`9W%U4NUM=uyY;!L|uUSYo>0+LtZuJw0G4o^JEo;d8s%YV1 ziqRdbiAgHgdK2_hrlBS-_Vx>Af=QHxu8=Iuc-v2tB)#DfIjG#`gwMzH(jp|s(dQ|JL6}SN(NdT#L0$&p2yGX$6PR?nXmYA{M6DQd zDqkIx2%z=+G$W{LVt0uF}FGoZ_)eUMxR28fVBxhEx47_wjuHoyX z^2qxpcUT8D)(x>~trKQY`P_6W*ELM?SWdH#!&ih$wLM06TOpQ{YcRyao?8Bpq_{M% z?#}EtwjgdQVu=o4mhrlYn-VwiB?I;}QIkt7~12f{MfWf|R0*8~~idQ<%sGVt6 z4e|^+Gq|z zM@5y;8JiXBlxmWP(}#a)+B0Z!{iZ?eq`gron3uyt(yAQdtddb$%M1r~Em|-&who>Z zVjs-?MpuA!ia~xMHBQu_enriRbS?1-2Tej%tY~Gbw}o8X1(0uFI*Ca+vGG5|xERplvNAx5 zZEYBLxmEpu7`HZZSY_ufTx|a*EpEsgD=g_7em-AS|BTl< z;XL`56n`RLHomd6#hGBU0D@LNg3}9IgU|C8=KdDrZeeG3rqt5bWA#=d*gMFMf|cDs=eyfVCRx{^6{fn5*$|JI5j$S zFFU|u;b+@IiJ{wy3Rvt^(t^SFik@eJ4^C=wvTo%XHI@rztSB+nm*9+|6LT|m{0IIp z0|zzp%sgsN^n!?a%Amt@1_`7qilSQAScJL-Op8_y*=nV>u=v_8xAHpucp6wShN7$% z*frXet9V5nYkv0Ol>-8&dv_8Vp4BY9I+stvCmyUX?0elFoPq(-5jYpJxi%@`g&>kZ zrXmXv#0m7n(eziR!4ZVk%7w~wI-=*irN@OgA58mFq1Ayi_@MgsgcMP@`22T+93#-#Coq!&H@7a0 zV5uYs#zo1_+~C4j8WdyU37s$x)=WD6PP$s#fEe6u*Y;3?H-leNt5CqWi475ioL+%0 zPF))zd^{~O&M=w&(LVX+G-io$X(&LrgErc4LU@la>DuSqgxSBctuO9fA2{#bkwuol zug|}3!tSbHTj@O`)0>5A{3DehkOX>z$LX=P%@1rT*n0GlGh0v@+7z&FWnqi`AJ5>j zLXoIP&UatFK^EdOzpE*N&dWnt=)5DdmuMB$tnSxK;te+Y zM`0-FtLLnR|A`3-*%J&BU{mcmWLWf_%KL;SsBF2CC5p8*P(>*%5a)3`AR!BdXB6{8 z*q~0kRM@v*obCe<-xEIq#BjxYSxP6wDW3=jQK?UB>ZpU1ny$`Zs8lS&Omy3$k-T^d zzUIwJ76vn-c?c`l)c{TXzHQg3@mb%#&c!OC3cEgc*$9A@;bB*Axu99fhQ}i{gY9X; zD!ENRL$r}{g2T*t8eRRXo#KZv#4jsmzh73Um^Fnf*4UmNEHbIV_uwJzajrw0mXoqd zNs79CT}IU;eeIMsC;OD~Z74P^AQxHUU#^X0)DEY}CwqC}eWWqJR{h~5Ply_gEj)x* zr^OmLD)ezlwR9DA?JzF3o|DevGh}k6(%?>DI@9N)_#Gyo*1U0b3DMG|3^9eHD@i-p z5IJ~{lU5y>97P&P_rW%q!hM|_zNv$V79`exR3}R%s~#Y^ z9zFF|zL&M7D+eGD@wAkAS5qI-L-G%i913@Or)jyHBMwed;XNRfvS-X0+sF$l3Va!c zjjEeu3g#ryvyQ@2x6{~Zjd0lom=h-v7M-|I6=~tG8gW}tVX_)-A5XU?lD5=9Bt$nW z7J8@~6DNkc^TdqY&-liTrpYnu6`W?Y%*r1^HU7MC|Eq!i8<4&J8vU1t{vGb#z4zGf z^Y&k|odQf!0LgBE&Iy#PfI-L8fLa3vdYuDSm6}n#e&=4#cQ*kB8fZKN;qJP|Zr~}p zk=5M_9J$+X0Am!tt@Apd^ZH0%|HOK3Y~=3mji@{8)#r5r7yuplec}G^mzMu)2-yF+ zcj(_2ZZqH|8YoSz(L>b zv$>pMVrKcp@iOklD{jRi2yFOjxmQD?)Eu}^POgq(8L`CV;Qxl}2m##c_drJczI z%q10vyb<*y6IoJY!-hP^=rUR-Bri!^t*m&Psi5QehAqXKiSo$8=M6a3QtySCbnTHF zRi3xLVUE^^c&gel(Jd_|i=!;c%}pC6CC1dK=QNt{?qiL~gjm%7`-DR&e~ zjy>1tKJd9zv=n{N$lGy@WYTRKxurw@pglJN5SHe5j$cGz1TdBEXi3$!9RP>HZfTZ(a1dw?jQC=`Cmy`ISGV?$E(o zZQ%QE6BV90{>CI=yYRXdSd3oserwk4BVXRGxxgrd>J#5!y43BuPmQ0y`vTk7PXZz3 zC{-uX-2{1W_KCm=0?09*F2IkC;w6fWSC=Og&opKUCpl=&^6~Etc?ObyO%+Hj?7_}u zCOwWKg4K&s3COjIIh8EjQws5<3I7U}_A5ROm1*Uu30(^%inf7IYjFw#@^tMn*uXK1hqs3V1(4*QYrN$gaWQID7h_3d_d=a9peN;pD zxG%D(AGy%t{GCl;NJNEbp4%VCevyn^(i%6vRy)Fl5Nip}TXbRT^M)nF{U2kj!#3a^>2n4goyR~>H6i%l|65#pMSWMdR7(M zos_7q0`eSvcau_+E;v4EFh0_QIiD^(9Az|7)zJ1a**{KjHCS!@L=7LK{`hLJ($C}7 z{JpTB#zcA82w1sh{~Hu~)07Xp?2Pu|^V1WoJ^oj@KI3W+IcM1)l2I7xrl6=QKRSYF zYC+z!&@cD}Ek1>(^1YU-II3nieo_hC<{g86nz>b_a<&Qb<>Qt97g;~#b?wP)mfM&>9oi7(QRW}9MO?P!5$gOsz{5tkmBy{KILn%*Ty>pJ#b zE3)qSC$z*~Eih_u*DvGuL=`1caYqW&cunwf1~TDuVk-WF;12#0_D2qVb9}F|@gWuP zS1qWWI&rx47c) ze9=u-ib)&;x|6F_6bTm5J3I;K@SN`X;Zz0Nk^B|#M>~kDfI&90RE4z!ADL41!+d52 zH|CUmSRw}RC#LN|sFdJ+{T%M!c0Z(I7k>;jLCK&1KXhD_OU6<~7E_VIDQcPT_Y5n1 z!KX#C3Gg14pt5J)8Jr_G>kUd>etRxdiZLfC{A~~|bsKRN8wCF$&S$&x>+l3NRqRZg z!{%5}l00HoWE$X~+6&xiEXfshCS+;Wnq|1vBjK`v{X%Xr!r`X17`?#1T=ReX#{7>f z_HXaJVVqBH80SPF3>J29qv;&Ie#PDpVaBnIRpsBiPyqQ0IAo`0R{utF=H@pPGB?O0 z8!yej8&(_1?e(Vf`by&lh7%x<3=ZF2$8g?yICbv{Aiu!b`mcJ`|D8wv-}SV-{=B^L z2e@V z;mg6TMmv$_DkB5uuz68(iAMkh_8&bkd%SI~Jy+FitE4Mf?0$#F;NfQ}^HSldAqe7*dCd; z5o(oNQu8bdowx1mwsgwX8_3qyZj#Mhffk$A?Q=OYBJk~YW~xh7(Wch^+hV#6?r&1) zk77&IC^uiO_{D;uOrA2q{;uY)j|R&JT1IN{1Q2}@YfM(|yeYwZ_h`>pg(iVQq={4} zbDjiiOAK}a=+IC%|6^c2C--HtzF65mzt2B^(u_oz353U9zu_GRY9NNcK zO4C(uCxX?AhN*&?FE_bl>fZNEJYg^~%}M3`%!lUa0l}0r1`1KMHNVll_BjXbRhl3W zYe_s&XrwUTuYe__%mr_U5I{&z{(iL_QUHO#L@UKRrw*1oV^M;1b5KbW#%`i0=BYX) zYrA6<)Wh?Wb3IyAX_qosi|JQqmNFLtVQvqiZmY?yHBYSNQ<&VX7Da;uHa;i>g`C0q z%+(v<87}o0A^I+&%kC>K^YHM`@gQ2wDL-GG+Ri@{F11@JDaH>8GiX1=)P; z+`jqiug_I)hW*Ncwk6?~S_zzI3gb_OKB$jGm7_11(bp=(Hf=RX@P#l8G-WSLzaQ#N zDVHC-UwT4T*jJL!p`rcE)Q*Y7wuc$i4MrdZBko(Gt1N^`B&Il)12tdbcOQXo7nmd_ zJV!OJnu%{Sry`uib3aVsydJ26KVNt2yRrAc9BFLvD%-99>2nyk8R=| zO@@k}lrr}|e9rD(YH`%)&4IRGZ!y>q**d6Vso=*c9BwiO!DdQ#qUB>>v#W6@8!lq7 zS^I0iY@Lsq_39USN6tVIG6f86*$3~_p~wU8*MuxnoT&|&=ayE4!s4vzg03Xwb+%&9 zCgAV0+)wMXEkZzqv)0-mxJ|4K;0$f2zuywT;6R|fw}hp1SmfRhXXjWvkWhiwj2kg& zKWJnRGiJNLJ{k1vrUqD@l7SA2(w}Ryk9%dX33)OVBw`<&OkyX(@{4mJjxTK&2t=>| z1}ytDSk-AV5q(DDhTm6=eUDbEfUYNvQ=_KrNCqa+eFw}w!8FkpyMw7B!pd3pGP5{0 zpYqzl*Z|T&y+m)kxS^~N4K zjS$fRwMRj>!cRlh!|{OOKw?sge5YhxBi zu-jKKHR3scR!IL|R!q|2Akm6y??rrL-bEdoTFGl|9KlFlk`v4b%QzNdr`*2fX4>Fp zFIBSQ#e4y}p&!3SyAuX;MJW3z=wIH7r9dJeKj42o%mus^Z=9$9d@KH2Wq}DO0Imr{ zu7kqpfXV_BP``^(M>lTMz(X-Tr3~=7=>XF!w;{Knv9P!q5Z8?oa|hsae=jb!p1bzf z;v)Mu!#m)k~zxs+U5QCXBvaIAAAH#V_Yw8Hh!S8^JTb`eN?RaH6W z<(u_dSy|r5cj)e^0HR*CbMG#WtC9AaLzwd#Gwo1HVW9(Y(>Q-7-w2zi;B zq|hvqUC*25TwXle_56>uzKqxYc@ZU7wmF_!r3Cl`;LPdRB~32EvFotocktux_Q$;n z{K7fAHQPk2!cEh}l_4L>u{k*3<5P`{T}F9D0wOW}htsi%LmBaz&ISI${ykW*$S2^< z+0`KrG=LRvZVGU?$bD?^N&AcfK1fvebF3`7wahqdpWsS}zN+uqRY{Q!9kIQgCG?Ib zS99U}FYa(&_*CYq_e_?JPO7WVOvS3YAZkzkM2>i#J1{0~bR=}=<}NGzzI#>~N>f!= z?psJ&Ge%s`ovu-kc)c6ZrC5~_z&CQ`$f6=QBkpEBV@lsy;P9p+uYR1H&F(YERfySk z`2#b!?A;jI_VB=~uQN;AWE?KYj~qVTUeYNZ(mXZ4RZ;Sr|kT*h0qN&C2E(dHbzMPGP zx|^C)1r}jnwj^#f9VP-xh9!Z}hr__&o3Cjx7aA1g%!UuaoIT3yKQqAKXwz?0)buwo znM(UBJYRsW#^Y$jbvTC{R+OS@f<(tBosa#2`WBLcH^ym!HDdjOPnFdc(?Iz5LVZ_@ynyv*X9Bzg){}H@>!=dA7VI`zC}K!Uk_En{*}+vpKM@k=#zjX+ zkTg*W#9}RE_ravp&pn)NAoK4B!{yzUK|O2bdzLOni-OdMpq@Q-sHo4!2(0r*!Y`zo zZKJZl*CLrOZ>alGTe=Hjq59m1u}Yy;QiPJ%Yi5^7Cp-jJO3lFqpTZvVQ2FXq*I|{r z8h!oIGStlCxq97dL7&efRG}iIw$VwwdD%s%J}%n8kMj0Jj$q|yq_G%C;^3-*Aw}@u zq^7O)q)^Xb4_j$Fklqr?*H-dmNGF^`3g+8PuGk8f-Gm|YJ=#8VBE#!A^)hX9hn@`C z<3bT{ekCbCt6HM6>+cx;Qk$*pUU{ihh!RqGKA(uwDlPh{gkLC`QHrX9`a~fcpW|;H z6)+h(20~PTJ9QTeBPQRMq~EeueO(x9(agsP_RxE+K3=JYyxs0{Or%dmn|buAeleBaNC$p}yxmozAlgg-Own;BQ4bPW z&`|@|e+FF3McEy?xn9X;Q5m9!wT=>>Gc|WdV2*Nq&H0%auo_|#yB_h<4HVUDKCmNh z1!}g#QTY!>B41uX12|%AO-!I*_2{osV^k|pyD4A@qZI7Tkj=}=D^T@P zZN_y=`uQXq`Ipdz`Vt`^O(n3x6razjD444h2M&A5*@@`W95|tBknv4{Z)uY%MK@V2 zq2Iw$sib1i=VN&q^7eM_our2Di^i~H_2?+iiQCm5aa*SNtdA)PP)Y~!;w1=^!_bQf zqH6xbT(GSxM?htK3|?Q2*wSC?mQ*^lH*XRwtUcnHah7B_1a=YOez;OU^RiO>7qA$k zDx)%0%|9-S{HRGn+j=k5f9;%Ck)O@q^AO5!4sr?DYb24eO33~`lZs724(BPTN&^`% zRVl9|$0ZQIPvE6QywM#A`6=-{(@SIF+de`MgI>yCWDJ_bfS~fQ8W{_AvTzhvn0)*m ze^=YQX}m#!Jmq6+&?k4p^QGIX$o(}JLmc)LQw9C@`l;AoPZ8=3tCjoSxamGKIXspD zolyVW;wkV?yUYKk{6Iw-z-j|4RDbrZb{*Nh@A&Vf3*f@Nfz@93*9ZS`!sH)tmR`DH6W{{f3_X66nAxy^76 zZk9AhM;gh|#>V}(@&kP<_k5yLt&{Uc->Pu^7QQb09l#;Hvdq~jFCPyiy?Z&pkAutI zrN9v!Xj|QCXxWf{030^V%wux^<)1aTaeP!Q)rgSZs*K$x)!fKo%>^L zcC;eAHmk&9n-ldbB{pd!TV^KiHI9o&={o2X27WyJzKng)2Bq+SsC)BpsQdnn`#X!- zj4_sEH}+j)&2DDwOA;-TYAgw<5T#O$v9FDNjj``SvXp8pSt6lLQYIu+LYr347hTuy zy6@-t-N&>1b3cy$@OQ@?&Uv4o^L(BB;B1d{$kP-2>W(rqI@V$yJ)Z)wnVnukHZDqL zeaSoJQU+gXNL{NK6sH(jV|X!EVCgwQ!TMak)#aQ#4dEBU9~JAQjY1i=H;!$6Y-1Tn zeVk?{{j^1NP4TSFkATOFgW02X_s#h0CX2Tsh&BjFkKW@J*qO%-N*1F>3>!om;Oq!FNklh zEAdZz#<;BgK40(WcCX?F)dpiqgxszd=05rot)l+&qNSR+eNVK%e`(8xLEJx|xL$o$i}CGxni-`|jXEtlP%FoUpi3X%~40V`}J9{Y;I zuved2tfPcaj3s-&@t@ljqj1sjm96M!hI^bG;^Bm>o?p;dykv@e5>~;E85Vs#KubDl zDA+O_vjqT1YcOdxl%TtncfR0&iYHSBh6XQuZ1M33W}4(Iz6-feibzX=MNlU#OzHbe z5P$-cmJ$TTcVKgav2=eHtP?tD@#+YXbfxQ^>)6+ikwO`jc1qXUY{>=rS6s96iyf+PTt3JX*?)UGZEa z;^kYrSV6|5w^xOJyn(_Bgc+uM+|fUCIk|~>lXt&Wwu|B7_hKNm#DVq~T%yX)fK24u z(4@`+DTi&OtXwH2~VR~yyw|1Z_Pt=FUP1__U@JN%e70vP78jH?Fjc`sA`8+a$^Z07al2I&>n5T!ol>e{3!|m91I~b*_(1`ppmtgbnSD zqfKXbkDY0=$Ybep5P_DFevhleXG@`3!;^6~B5n{!C50t>x)yWLa2l3I^ju5$K9@&< zB^dZCEVjLU2Zi7IfirY}WZK^KvET$=Q{z-QP8};0bGVeh{?@4oRRSutEM-YY>yt;i8V*rK?MZS?!aDF$wxY9lbmu4xEe2NIT(TvP$q;J?#{+eq>h)mYjOu1AXv+av0$=;1KZBA_(y0XT8mlT)S3|6x(bqQ z5SVhHds6~eX^La~94@o1;i4+n_;~!vbiJviDq<|Cnzy}6Aj!^=5kpAh;V_qTw0%vm z&C}Qq0R*TJKG)+~M%1GUR^2I=z-Bf7vb8S_rWqP#%AtfR3lta?Ir=C{(mPpxx36hZ zUtw<{!!d(UZdxQY#zL%>3{r|3VZC!Fw!Hc@gOgY1kp?(Yzku282#xGjZD`JsTAH%IX`S!nd?`gXjHU1aGjbH3H5%gXcX+41M%?0)%*j z3Gj!H*pJ6RonNnOO}={jm#zN)q_Oq?wH8eA~%&g4PF*Y&3YPnI`ve8R2vjr`6z1*sfh+G{ohSt|_e6_POcfGS^ zZeplqV|qK*CQ94PEaiSiPXFuKeuL7~sc`d};qoSPW5d=sO>MpJX058MceZh6`j+)f zb@8`j%if=r#;ecWXn)Ln)i;8dG8KTzNZn&vh8qMm6eBvE#w16y@IgtAm>*)Do%H_z(;X&(b8o#!v`ISYNPVrNb%zr7`uJEX`J zh&+sD^?ruCYVekE|B0lg^tHPDE60+MPZ_9GIDZvdt+dEud$tQbj<+g35cY$sBI((U zllFV=8dl+`vVE45FU`gT-fffE4&zhw+rKhWkuj$|*fe~C=&z}r>1CNVJJmzcc!r-{ zoPP4Glw-*3V1HC)^hLLD8C>4!sZ)bO(myk+TF6iDU*r5LcyRi}p6i?|gZ3}Wd&N2v zeq6|ZhnQb^{Y=`FTl|OYx89KU=$*!fqtq{Z++XNHR*(`Gd(8HUQTzG5L8AA2c`Uua z&|6ZLUq1^Z_^F|d58Yl-mENH)WENC&LlRInj%LQNnpY1bizhn$jD;0FY5=-;Wk zWemBpz-WdUN&bY_lr710ZdB@kz`_^59VYp6|SAH;AGmSzh)q*zc{Cn=A) zcqJK@LNPRg6w3{_|LzWlxaxZWTOCG=%H`=qT7`!VFwRq6bgmGMtjCa`M7SBFMxv8S zt3_mytjgP6vS1v|7>4Y{NPz<`i0U{c7Q&YJwkA?iMah?AChOt5>+cell&g7X>Xlm& zbtGCX-ajZQVh)-~hc+7nU2V%5M@?&Mr0U_fzj?JlVa+=A6viY+-a#(Tv2!FcCKU<0 zQ>253t#vM0sMurR*Tw-X>ez%RcKlEdspU0EafL87ZquPKTX{(oYJ~8rFI;V_|3Sm2oQCDDyl%zu!3e@ z<_%)abLN-p<~4ZLYKR$o`^l+ahx{OeXAKaPIODdhD)mejJ8XLpf%SCIlP=L1 zhLR(g^v4pA9rci%Amm!0@q@QS^8H9FAguY@Nl28_UAaJ7gzRn)K4w7SuG@FhxvgmK zTV)`)J><)xcuCpE!)BfWX4wUBOFnT264!Y-8j`eA18*J6C(+q?*AJ;&I@f>Rp+mTh zmE`+79KaSyGelNdsI)nV$Ec*4>}aH%3_$9YIRkJt(Y9Y1BilP9M_4TWgkRZxFJ(LC!W8AF={v{CCK)x z=V@8uz_~DB1VgD@d7%iwOmCP~1kCILI4o>9f_B7~=`Hdw6s3KKc`sneWiJJNacOwe zMz#81gJ+v=y!pmWzS-OYQ)hc!{;0Hv7sxDIfA9va_;rciNSy_pVQe(F)`j}-=GG?N z8}#Hi4)SU+CZ3z$m|wVV%a@e3g5 z8h^gQ_-4QUSH=DtTlSyhXMZ@O|K+y)zl6m#H2yU#PBH<*;>^5UFe+ZQ5f!ho-JpB_ z-P_77zrE8skJ;6Ix4?wba;Ge}y0+o!W?1~@pW@a)hE;yg%P#wApp?1jN45y-A$K%=(z8#{M zVh8$or!S}7*5cYP>uI^&X8X2SX~B<&2MU1g^o^cYVYtST&ZhA4N?GGD8*QZL+(?>L zoG!_#sb-pv#_E)dc%Hu56y+DdVL$c>Tx*tVp%Cax0_t}$(?8)y>F*(P*r>P zj`!WOk`q(fk30QK=ycCuc@Y20jCp-10T-9>Sc{tNvRBYqyL^A8wEJPSO@Qg2Z*-UVwIo z!G|)LxF6Xmht)ZC#+U&!0IEPw;B>2*1KZ9jAxg|qeu^j)Xz3O!3#MjIh&DPG#Yxkj zTuG44uVA|Ge%0qr_kqlN#0v6WJAB!6NYGO6r8RTAX2}v64tzqBpru(KORn@svgHAk z3X=xm?gs4i4)Bh%;TRPL3xKccu`m%Oit|@^QT}sta_rI?P zn$Usqhp;G8^>Mwai5Yt^V-&GY)Rl(uF$Mpxcs_gfb%LX?xty}DR+QdZ&9v1(X* zn&}iPBa2m4D~LK~cLlrc8hH(9#xOgMf8Udrgxeyj44^L;yv8 z9jiv^euv-Y+&9rNSZvH3JeS<**N+nrZG66K(@0{c)n}Gfp1&@nRP7_-VYeKQ>9~a{A!Z*0T~o%% zCyE0wzYJrlO4MBm=evJpJ(F!9*-?p2LFKSAdP#M*DF?TN0nlG(gmPQicLV?RjYt7y zLUwd=QJPm>VYq#*7Utm4uAl6kv1>>+iAj407!Efo>MyyMjw+uMGDUQW+$UjPJ~P7+ z9*O?k5`JO6zXK%IIDz>2PTsUEYh0w(#**X|BvshT1=1smm+&T|11PTF zTE-?qgj|oCOhfO~L3vRKQkPvqY0li#p?O4J;RH)(UGRYmMSyS%LbiQxND}K~id+vtZ9m6~vG^$~J31a=wv>FlI zW<}!ApwR_Cv4Wv~aMjZw;_MR*b(!jA)ve{^LzX(+u9v6~Hxj$6o+r#2UwPQ}lz+;3 zm1{ha#40{0(TJP_$S~^y}617QbpH|^Bz#1*RyGVyz@t(cfJl5 z11hOe-`QgAF)OMs#mM4|BFadHbt6LM6t5A{a+egMPQ?=hzT~j z3Jgj*DvSQD(FL}vL6J`G{Ug%VLuJ>jb2r-6U#wcx@67MCo}L9D(EhvJDCK<*Tp{zx z@dt3CNupxpz;1%cNrZvW2Z)BdJ?hgSFs#|#Tt0t9TJjr2bL>V2 zNfQUpoIx_gOp!nDgr`B-U%X^Q7LT~p-X4bh z=pWr?Qjl=Kv91a2HnYR{fYNVKr@*$6w4ZY7Db~^VhA!`K@ygCk!FByU$2YnPYd+D} zzCC_r>zRh0+1}#bm#8gQ-tW%4za?`>>}b#R%8Q(5cD##zyf_!B6fL}j{QmVJ2PIfd z;`W6VWg4B{NJryA!>>*0R=PMkH?iseUk5NlnB`B@>IC}&=6EdCVLofCbE@q_9@TD^zIls?Z zCpgM=ek+L7>SIFDGIlAiFP{!Xc4NdHKw3+T)VWT+W5UJznM;ou3II}tIu8+#370Eb zDrB=D9Q;I93BR|^P)1%^7Zj3ezd)mwmwgxKL^kEj!DQ~miF0v`#Z^F!9#txz(Gy)z zhH9Y<{DQU#vXues%niRFJ;KsEh@OIh>alGqODeGbjBCe(v_CC?wQaHRh1T@p@9$uG zC02ts-r-U@D{k9RtD-+&6o6JYV;p>o?*ii=WJL@)Nyx7Bv;IVVyCoHf#3!euwN!4{ zLm2D3xaE1mIz{klueYllD5BKf7QjpF~Y%CfRK=hO$?6z7Xc;2cM>?YFAh9TsJfzKStP{mpK6p}`ZP>52fm!U_IAQAd2t5irc8*Nvjo+$o~ zt-^Bd6g)5$W|+SW@UwgNoL;Y3Q9!^q(v(%4V(v9F1OIB^0TEz8aqgE>G7QIg#swnm zG-TBG9VUcL;!m8(#)TMJHEhwJ#P@AuL z=@n1~5>zq-pURsK&ML5J9@~=Q{pJDBSI@tlGa( z$3PDoB!oJzT!(ua#YqH^B*II6b!vA)#i!1I#6mML|28OMy^5XSW_@;y1{>Q-{ z$S?zkPhS_7veV3~hRlb}!B9BpUw<)M4~5&BgTi}XcDf~^w`%VLm*u{&_yb(RNupem z8ldn>{54Ww7+TFXvZK>1o4N_#|TX> zwH7Bc->bQJpj?eB<3q-Ke@~FR zYp0#EY4+>FD;Mr~WLE5#kdtR%4U$JqN~UQxG4?>YN1OT=UXk;^&~lFgTNj@Td;H*R z-zmR1J$$)cPT+Y_V!p7R>7@NnWhFMf6gl%M`^T3A=)i%Muga>dN3-{LuBEjpRt0~U ze!ER@c(ro*$NTM*!SMUY!?b0g5FU~NA%-3LyC1;_M~Mf7lh`VIlTPw4lu7yxxC-ux z#@U~tD$Q0{7F`7HKADQcOM9Iy67Vv&V5|Job>B_cX5~uhZe|AIHC;Llql^mIxn+ zSyk0KfN4$_p<0A{KqI#bqWw;>)K&+!g{}%NC9fLF^(VYUimY3doiz$(aG?K~*1ei{EWBt)WBSc}2CEIm@V90N zIT49aW!FZJK50>+f3-r&^qXdF*ZQWBa?-$&ZW%0=1lw0&$G)Xzb)gR8x;?U~Nt?=Q zxQ=V3P23n=A$1PJwzdxj8I*+j@Th4KnmOoJ=j3XPNrYyo)KW3KjxUCb)((d_SB<)- zzIQHLJEY$@hAsiLWIws=nA6YW_M;(*T3cSy^fLRqFucyjG!E5?t?1MJ={}|?oU=F$ zrufs{blbikx#DR=XVwY}owhWf@C;Gra?+@i+6nm(caXF;bNf_r*N5lG;2SBjyNO>} z@YP>pcGgS&7e5Z&*?uC*HpV{;_}(ZAUzVB=+c$^OJJj9x)ND0GWsg1L^KKbdpy5(KxK z1VN)nm_65T&U}tQZeI%HQ5XroxC96tfgoI-KruKw8U(|7jK54- ztvvXxK5@^{M(GX5lf4ln^3Ukl zIGZel1U7a`Bjh7LSvZMNDa?Y~`-d04W3M6NgL>Vfz!Bz8faEIC`h=%rWrj0vD!^nR zhZ|BN-?5N&ga}o5*u6YFg&zygw>_lS4G02IY0`|wl)A_RY#2gILH3|P5qOkiE~N#$ zCU7Xw5Do;6dp~onbXq&e-qReqth=tLu+&3&A4GoknJFiZ^w{251O$LEPFi!4NIO%c znTFaP2%foiPO?wTq=nNznFT(&b_4;=6KPSQfb>6<)24!bbMj_Iv2DU>}jnt$2I^b8_Y3qZKJKSstwfUb#8ZC@8&BrII_`o zcYO>C%;4j)PJY4q)AG7)z5cRXW4U2l z|E`flj&a5Ey_o0re2Ki4F}s=rZHH>zRNN7U|S3K6LDEgBQhuJQgZM|RRv#sku0o3igWB+td&xSCcy$1@j;Mo!_r8FyiS$LdEBKrC< zha)c8;!RCX&rGg*_gnueb#zLW`L&jHY?eACdd_w2X1`KOi|7w@puhkj7R6QS}6K`s7`;{Kkn+;VlR8KqZXrW*2rypZyB5jGrfFx z{KVkRZ?ZG@zwsWf%*u4N4oj~lzgjpbjeVin0;dPo$x>o6I=Qe-K%5yE)n(j2@X$zeT4@(oYwo5~b2TT!mxTC3= zwtn-np-y$HS0X)TkG>}E-<2&FYIIS}Zgme{42lm_G%3k>Bxu!aI*1mv11TSxb%@zYUjmWT3RG6z%_s*2bqDZE25JyPq5%jM76}o7 zS5iH`1#1D)VT(mG25KORSjVB-x}y4;n}7nllTck&q!vbqiT?l{3Hx@{ zmygX!14Nl-@(L#6Dj%R2ZW?7xcBjomJ`$=>L*h&qtZ9H_U=C#5`}@_)1euAqbpXM+ zNcM*Ewq4|YF4{z1J~EYA-MN)eKHafh*$+UMe;Sx8?5&YVz_{ZeClfYt~Ja7PDOmsv#`BcQ+|C zR1^$+<0Z?C4o7@;fTTU9f)Gq+aGjh;D~I60#sYaKzf{V1S+jGu12DTSlEe8P5fG{s zVVw3A&@C}+7%z=>U9GPMT|-mblwjD@#1Sp8`Flu!O@k@00W_5b5g-9DLQ>SsIO!*` zAzW!lM#vhU@GCB`aNKhSfR2gtPwLPR34n^ls}8#-&T-yW(#Y*&HuwX);bUmO1o4L~ zu4lZxVl|yx=569?ZkVNU}<+{ z#dZ713L0+&1F;PkJhW&K4S%{I-b@l{$R;!{Lq#W`Y7sQFanDxtIY_vmK#Ukamp=^? z!{lgj?BzPdN_5fn6w#xaNhc}tABm&zU(=(bj?*B(&%}f@ClXwTN(XOr&D;>sbpE5p zeKJ+UHWn6NE3atT zh<$;Yd<%?s*ENER8h`R%ApY|tz1h7?(6}ux!uQX*S)3OLmd)*y)l~G-L)#{-Y zg`~Iski2RMa>o|JbKgKQqQUnh7^fFCZb3({1-jZBiPks7f0$bd*uvYin5($F+K$m$$;JI7!*Sdtt1_Y%TE|oF0LGXp=jpA7Jn) z+S2L%6ZEuadYz`sz{Gpkv#m;+30@G)aur1;6r>GCqTqv3NQQ?x(1_fxfoLzRmmSR7$xVG z$qeg3j}=8I2~Y2ixofCf?EhVIx-h{&Ek;^_dZpNd(ek;~eNEQ%H*F?*hhtHcM#l~6BQmV@S3RHWcLNic!^=NQvhTiV79L!yx^Ls8R9jYiYw)Cy+ z%npB)S0T4Qy`)yd{1L;a$3-TzX&fU|8>wGeP4?a!mvHq?RIw>n0wx|yyF0aq3=zyD zgmWF&53sMjaghx`fuQF!r0OGvsQRoHryU0%>Q91UvBU2n8b3Ws+A;^3q?Q*re-ad@ zFx*LCtXN##FNUXm=m1D;sBGrSw`v>@A#@3@vSs1L8cRu#pnjX+4E4OGZ&x4Cg6bZa zY5#PC^}Yv2Wu@Nj7RU{ULlazSmKgAT1q%jbTb#I2db4tf$MN1!N-! zh`#w6-o1?DgF1zL7TXohDP`~gK;ur0cCGQ65-bgsBDl}rK4n#pr+gjSO6-hU(RyU| zEmvhrv4eIWi>~;)FA__|Ly=l6>d-Z@MaKs84?RiYhh2x3sgB`r1sVhkPA6Kh=v!w< z2>mSbnmY^1LnA=(z#%9n6(Zz^Qa8X;co97CG614@m~)u47oZ{70|$RN(x3wM0EY|# z0>>YK@??M!4w|ava{P`Q^;lm5QZ-Qsh2(ANR-3JcNDIEuPlLj9vv{aFZhg3V!GzYw zBnXE?(N?~gFhRj1i6;K$atg0-ZZp!+C}BtJIo)2k1%c!8_YU03YSJaa4m7#m&eW#R zq)M_24i3&r^6aA_6PQ2Gtx@~9BS2{O1YNOl1TC4?Xbj(iI;b=;)4@v!!=or-pW}B> z6F~MCfK@;8!;<@uyhP$70)QUQQsJJZVe_cI2+4k)-R`^xmuLt>fBHexF7?BrAKW32 z!XTMw0IooQj^21(98?cmCxY=TgG4YgZ1=*+tUmIPFO5jYnh_u{V%CEsulitZCQR0u zV4=H=I`C;K$B57=O|VY6GIJ`60mxgNa|qv(0Km5}X;1=d8;33d!sk7UI84y>%Qi=T z^n@FI8i7dO6IW0=iMQiuBv4S%WYWaM=ocGu||Wu-vo)RAI9x{cUbG~>do~@a3%V|Uye1nlK~#a|5~v6r~JPAkMjE` z!}V9Y>c3Zh|Ic3pKta~DvLb^#6H7}?6_pL131uUGZARA5)zZ_tQjnZWUgw!mK%NPu z)(o_+uhK2ICy}kzc_z8#cPM1TS?GwfOgsTTYGP762*gX$;?-jJ@Gp6kp4!R+r#5y47&Mpe^;lgWDHaFUu(M z)elV0k@^-RM-N|ujFJizyMCE=(|&P8JST9d^${*va(&)HTHWF8N}pjPhr@(@w^F$@ zg11gZsHXGfUhMGdc#C}}p8tbX-rM<$dGeI6-_8rnY`zv*prgAaGde2GT zilX!GPxSK7=LJ<9y>J9EH&yVX#wY1~L}PEUt+`yBy0-hjs<~w78Gb_NUWu>Fe4oR z{!C~GS6Qn~QJtFMuzEK%w7yDKF;M6jehb`RqXXUQP*h)zcm=tw2^tkBWy|MRDm{vp zmIfhK%=%qx7jATpXo5Ochm~LGgd6d>k{cmmS#n%kmnJ^KbXvxPi0CPuh?sJhptc}8vSbYpY z&&6uwRQE9U6myCjvI3?t{wLCKn&5xbaiLeFpcDE`2Qno4&GWFQS`#JVZx3bWCUai> zdKCJk4OUM>4f+L|@))UP9z7*g>Oh0xg9!5hFNTN7(Ee%zU=4MM``R$i$gxKLhY&Y_ z)$!TB9)eMmIp2j*qA^de0$2btqrro=&R;foQnM(b1kj*!v)2$-RG6e-2gZRIzO{yZ zQH~UbQX@f7?4(NzzBDx62_}wp!yEL);}}z7pVEq9Z@=e45KJ1Jz=m*;Xi)Ga`C%9y zK#!4@l2XD&hds%uSv`U6jl92FSpZ^{&0TIqgoTj&?E?@yygRvb6iN_welOL{@TN+R z4S*0HevsweeYz%2tfStN^U_Le3Yrw>g`I>bP@yVi(nxLZ;s`lfiJj$UbasP17oK%kOsDG55g#cdQ zuY>sSNsRv~J39x15)2;1e+H{S(uvRdVAY?#bI>}}GdN^Zh135hTfKf0uP;}D+3Jng zj&}QP*1S$yuJs$J~80mabf&p~W$olGVh8WtE*O3bWN zGb=M~z#3Gxja}olrbhZslO$^gP=ZZLsyZVmMNF{%)K^l`m05B%`+Ad&x&BV8JFz>X z401uBXWl(<5`%K{Ra#A5{X-iwib0&7fyr0vHqDNOZg3JKv(!nxjBY(iq5GV((=JPGnYoR){D30TJcj)qanFm zeLn?xS^G8SQs{F5t9?PaS=5x=60fI(p)_WAB;Sz(3BrfJbTu^|*`H3K`shOw`iON& zr_>Hbx0TM4m#G19XWEX;+!rYD{fRx|FIQK}cg^C84bk?Ap*{IjHi>C(o6 zor*?!Z_{TUPM$pcZ0h&GJ9+9cp!R9%>3%M&!=xvW5W5h}?;Z^4z;XUpv}Z52zc4`@ z(k%!t7WKBLi;wnppXv4Xa*Gx8&9sR+)*vVu$7I2!A~c{#4_bzQmPZ63?j!d_lOi3r z;B@%@k~O+k-S(Lj%wou({u&$g`s7aDikInjIb9jyW`S*4X@ywF(k$5Cvod<#Wj;xA zv!8~`XjEP|T!nQpPW5?ynlZTsc6SU&uPNsCUfdbcRP#y_l(ZTS9o6RpKGvR7M>^{cKjwMTf5ibxSq9fb#3-2&V7!VC!CXVd3=;b z;hJ!PPBmV-0Y=C0B`mee>4F%+rY)fN2>^BsI+tSEs6zYkBq{(vWtO%9{1vqDplwoP z%4=9Ipk^5&1Y>s`C7kY?=iZ89F85=!0CGswtj;ksXF+HnR7#f*-{#&}Pa6ckSvJHx zvR~-zGK3k@(0l2EQ>7GVYTyU}r*@Qe3+VcA319(j77pc}eDP8bwc`mO&w%>21!gH_ z8d6EXGr(^tTNJ&S!CR?*;FVff^30SB&akBDa?wA1imPYUI!okYVi8TdkCeC{qJ zVCLU}-ahga#wnzLKlefQ15U^PSz-hWSQL z1@ga8m|{YJd&PDgDCM8W4;q{F0iCc{#|%kul~y||3*N*RKK6o>J`g~7skumq1>so* zetEK?Pwx^CCjMb)3xLkqef5&?DHg_9I!heyh7K2`yT>pwCZt>0wpU}AX$Si@)Iq# zD+Z41(b=Y$v&#eO03d%q$=D{WE`UzK{#J9Bt&?Fwb{Z55iBRdR$8sp65RX7PXryF} zmt?N90UM5coGrsX3p(ZAM0w^En-52>+*FbOAzaHP21tz?ld}=0~;7iaG66e z0E8I{)@jD2C>|DnSm7hmBE(G6l+G7&gOB&&yJ(}`L^`(v6Ux_D2oWGaP`aQD6CoH^ zhXMZ;!j*(929AN?lZKmDfNf#7cBfkWp&+88+SyjgJqHF)Ep_)iOY)07TdUw7Ux zr4yOpEY)VS2}EkILqGYGwa~P=>--;$Xt00$U$3~}-=lx~0X10L#>Nz^AX{5&tEp|ox6C$g zU{jDHrlW6gMMuXV*U&VxqS6d}C^oxl0alP3=+=5k+Aq5ty6q%`Inb7Ld(M zw5%z&Vy&aJO-)kjuhr#^56mYv>7uCB%)B%XuBX6)LeQG82wPT92=a^k#}YxIVMo zmCk*6&e&17v6!uqPYgfd`7IGuDPorHIa>KCYA3ZT!iK9)T8yVeA{yQ?(=_+!sz|oW zjqjh*L4fBja}H(SUan@?T715AjG2$@4xipSE*sxIC+UT#?jJV(LOf3IPy6y#tMLz( zAdo^rgP9E`^!H8QSKOQ{F1IJc3}(IeTelCQs-dU)8~o=kM!RKL{H%KZAhYhUbi&-Ae3d(}+Q!bEEEz?RGTLucFaS?%h4S-IywjXl^y zmgOF6KQH|-`PLWXq_!VFmJ?+y&41s%G!He;kWl~f>&)TPE5Vj~&Lh4f50jpADcrlr zCES7`8HAb^s6XFR@jU8oS`^h)e6PZ*;7Xd6U92o6>)wI!hPlEx9e&-u$eA&P;!C_5 zkEfHwr<^Bcfq9h7Mc@htel60HB0r-pkvO(DRW-vy0_1jA=5oKDbHFFs`Bpwp6~$>V zlihR9lx4s6&+rP@!a?!jCx2&_@Sb_%!%k5us+13M{H?>xy|m)}nzmnHe6;Y9;(|nW zH_b7r__U3A<)wqOXBE#(rk{dc$rY9_Et&Qd^bN9LIWLryTOb*_GffLsrH#U04>H}J zxS&gl{CJD&ZmQ=<*Cz*L7sr+H=HiOl9nEiFO_I2etKXPTws|IRsz8^ABOVoiH)8d7fFA>By ztCgjQH>e~mLG_mD59`_hXUi!!jk|A7HKMAFa4Y%Cm+^-1&VJL)K%*_l^DTv)6ki5z7QF1Q4|_#2NMym~Cw@$#1%Bc}0eDRPpq!rQvZ>;{ ziyd|i4bgJ=_5=o=x+tYIG{0Gewq0#D3%Hyyt+vv{mjc+Mo-LitfW}0N>$@$Lvi{F9})A zn&PuxMVT;ojibZZkW=qG$E}9P}kS!$vfWgy_4C9Dl zV9fBSj1bhuE|6EW6+qg6OzglZ&aqf|F})aPIKMw&Z=4LE{J}0UUT@K_WnLL?7_uO8>II5Ansb+i)crCOLLWgx3h=DcZQ>{3BY{UAvK; zZ5tQ93#qRRVMaDa|Zr<*Z5yg;!Xb7j$Qs6Rl4uq^5)Bh8w2200u z?_-ghP>?^lt(5wfur`M;?1|8C)aF~jmY;Yz2O78k9RcV%ishM@PZEfAvTDraQ=0v1%ZrQEuyn>F- z0DCnk*7vPV$@+1+`o_yvO`7e~ z;W_N@KMcsd(|3mo4>T&paLbGZ&G^sEp;DypF7iNot`@Zrnip&NTDz$h@-1euK}Cww z&7lHL^sbPdd^~$hLt=_N8+myNYj(1Q6^(C*m!?wybZ7W$rk(cXmA>r3a;FRA3_n}P zCOKZ|tc-m4N|SPH$^Nz4#-P+n+5AHfd2=ylPAPIb*M7IXhkNMUFC)wWy2^#_e+D@hc6!tX*52$Ll?t5q#%tSKk`mgDPHb1w0A5A&X#aqpKNXSW4Ywj}## zYKJ;czI}3Lk#nkgpRapX$6=EXv7xgsl^+jWzWw1#sqFNd2S@L~`rLjm&dW>CzRG;v zL4#Jcn4Re$_2wAkp6NasuM^Sk6BT*a&@XI%p$~g zgodQWsA2lVowq;9B1CqE_IV`e+w|qTDkCZ`QTZ4l+Ob zRYA1dvj=BS^6J}X8YwCjI3-mfeM+A0uu(jfaR}pDmeVuuRNfJQsWP*_qU-ArcH^wl z@yfu~Dl_^Q#p&u&;#j{z&}h|_sAZ(UjWDi@YB>dO`l1HyegkOPC||M^GD20<5KAG24o$LLnag_&Z|@64`JV$R_#2VyUK#|^c41s zpwTjyzCw6|hUug2@A2U%e%1-2wFj~j%|m2+($!eE(vo`Csy82t1Q)F!SlKp(o`kF{ z!Pulxv5zRLjDVXjTst{J{8?m}J< zB!q93wapyeXLDRWD5L#aQm9FP#mDg;$Us zk5Mc%r>0Rm@f6|zgS+>BYijSewPy;X5JCuubV8LXp%ZH8geFZymn8xsRS;c>*h1)4 zdM}}aC7 z;Uex_sj2+{I)ji<&q)xXQ88DCZE)2kDETynYr6-4eX>_3g8WigYJTaSKA>7F@Imb9mmyu$)ZjH>x zr5@pqRKa8R$tMuPDrScxnE`@zZ^8ey#{T>G9&*in?%WqBnmEPv^^KBO|tR=B-@RC>#4j^~Sp&E>0)sh?6PS1{G ze`T@0I)Jz5S8k396;h5kk=B39AS!`TESciX(i}HCMDXL(faJU0PH=36 z)A&MGomu+XsK>9R?w^NO9r%QDo)l^;tfSv=^ViZP+*zd^ux7)l_1(R+lRxEWWz3vQ z(>x4{jh>o1J!3Zb8R*MD?y{!eoILuFdqvTXh8omZuFXBQ>wZ+7OYpN736a4!%>*Qu z?ThOW5=o!#D7*BZTU{(5x!h`|oksonL)i3)@pIHW_j0|rI()9Z^3@4~D%|$xHSX6hPPgPjTc4Q!`2Hbt!;OGdi<9)x#Jnoi<*$h6 zG!xOLp+keXKt^1ya&JW#%yorv7IuN~uY|nbKRmnj?!(b#easbU^92j>@6wT(8}} zGpZ>SdCKX&bB!}as|9(Ixiw+-bMe;2d5=kAttDl7w*sc?%Z1q8`{*$iDGd=GpM$Ao zfpZV58H~}?k*b3Vm$PbWyh}1_zgRg9RpeLhU#xnxFSZh&E7{xJ_^#w*Dygor$e&~i zFFtdyrSRTD%a4)}nRDW$B4>0iOrObb{`%?Vt4g|ZZNvFh+wS?|0knTpeTAVEw%m!O z7QXYy+>zH8n{gq^iGfiX!&S|1n&VrhJ?Zr#uNrQPG`Rifj=xd>fBfRya;d3T*0RZa z|7&k{3!J0FuH07J0h29l?*3>}qktKe7(Q-2phIUo`MI~~M0_8tXa9hKTXFvf~e%GLv*?u3*^r2Ulc-+A>;Z6b&A6|ZnX#Dta|7jWFI4CqB{1ZrWWPMB|)v?$q>7;N9TA)iN z8o*|AU?t`ZrXis2+u}su(BgjaxsMz(Zoowr0z)7G5R8Jp>h2cSZ(N*)I&E`OAEq*F zz6(n*V?>R3ZX@^RS&o9SEB%t}?nNIPDx0fcL$+EZ34osqG82qF5ps}&$NC+L8NfRS z1P#nRjWbMK$#u9MNcfdqwAFFt3{UAz=9)V2Lz|!5SwA0_t040!1VvP0wNoO^J|VKUu)^#l+iYYoV8XtvIX7Q3%z_}XVm+Wm1FA*O3fp7#$!4-i znE*PH29pFVHYMEwJ-68vas23eytCst6rM`-lW2ExQ_rc+z0O*GE_ z^EeG=Z(1w+G^t-)v{9`xCQ);=-#FU|EhC2bBxz6u-yM2T|PWEsmi47dpioC zXf#RZ)N?Y!EUE5dM;?XatU;Z!IaT_QQgNYpF%>542tbA$uR-(~PzhWdCaO2pfjhnN z;cJMn?7_iYLSWU`1h}!)J($E<@Dr#DfQxc03+=$HTO`0|775+hM?kRs_{=3dPM=t2 zA(vm<+y1OCPL33jBXKqzC+NnD_c8cim%Hhxjv=>xU?3ir&tqc$+4cS#^%~rDr2G|& z23_xZRcZSg!UIf3`|aa_uR+ch$nW@T+VOW53*2J<`wk6KuXFO&2wNpB#icF08u1$P z8Z^FtzXG?m@m4SX35z+@!v>>Sqqhdf28VcZyr#u#{Eq)-;PJmaNdM1bU-RUcv<1vY zlXM;2%;}DfbX!Ll*cXQ|{q8YlRCz9@SM!g2KuH;NFEJ=<~kCGa57OFWiLt8A!Cr z=vTddY_RopR%+Nwld%~4QW+q)=E0rxK6J8XA3qMbACV^Fl?y2({}v6Tnf z4^{lGII%-fuXZr4E1@d)LnEeIU=FE?lHLz@+{jN>H~iLpZ?BY7a6rn>u zLYp_LwG-5ij%nP}dK*sM_n}qvF>+fCC0)|;`rWAE7h4XCD;iXkx!f4Ei15#G<60Iw=16 zEwgqe&6KV>?JmVfsZD=QMO3e5*?)+s4c%gRR3RbXLrpo|@Rz?|;Y@MN3mR@DhH`p} z`1M87XIEr)(f;XVB~nS+L^7-~$ z3~Pc#hXc|a8bpXgh{);&KGOLCfJ?p&;21sE)379OGz{R7p-|CX9S|jA#r_+Q!}F}5 zg1%aY0PHL-{HEk7Pd3c|v>*g?C(ZE{xDo9B=My`j$haHbg(*@Pes1_hKn&yAk^-IE zZ#_=m7!H|iPMi2dZ#_sR&rts09%{_JKtk;^@r}I1h1vq7YUwC=+pfH&id2EU{*`*j zq`QNkh(Gon%281zW*vn}g`I4eWwE|sJ$~)Vr9;~{-k~8cA_h|ghT@X8;4LO}%aOxI z5oA7%pr2!_Xc6WvdQ#;A*IPtl-`zkVdH6FkfZq{J>`sS%NI{Eqn6V)IGzgnxg;z1# zt9D(rNX3P4n%>$(VxT%*a5kfD|IkU1tkeGIld&m?{a2xpo22+OjGDd=wpc zs-m`q0THm}()dx5FaY+Ip-rgmXdU@nQPGkC$vyiabp;;^{d&ph?4D{FW|Y0=qLnfoxSeWTlYmNt zAn~-@e_+WF+OQDiBmus^FG>EfWa1XzxROH*7IZi)@FU!vhN2M)WR)mEfroi?kK#v4 zDDPNuR*6+2zX}WFVQ(7gMA0B(K~~rx1C&2hIR%`N5jqSlnLs8gkOwN^Pqy};mb}XO zi2$GN5_H2G;FPEp$|9B!pNrMkRjzB)K7O!VvYZUV4%9+q)w&=AE`VELA%mz}pga5} zC%AE#STa0x8Q5qwfb#Znx+^{5cc7SIg(h?2FgpP#zmq!)Chbn+cLAU-(h&4vcl@Mk ze4Pqknr#-@^Ek3VwyPNK=`@WDn`Km*|Lnsu_u|#@iTrZ|dya)2%-p^+4`Ggb>6rZO zUy4uvChzu6LF-5DEuIJ0-L}t;81SOKwrB;q?e(13KXxPk#&eyDFXqX6YQ=gDdF_q4 zxxBI!WOIQ&8x(f1h73M4gYm9&t)Q^;F50|v_H{7fHPqLCxBn&&5du2w@xPi*;4||& z?E0@O_CKe({yRzktBL$!<;VYsEi2G)gYs@*;0(Sp8)(}&k?6Lzbh53Pne*SH7S4H= zb~Sbm>!TJt8g^oeHoYB0VON&hfzQRJW+os;r01fUMQvB9ouLJ|YQg!vYGFXi8!WcF z)(gt}w8?ebNpRI-v>vP}8|Wv|Nr_J946-^G9C-4+`rbJC!1fD&Hl;23dD~DjB_2i1 z64(pDrJQG{ik#7-!t!vTL+}*9Qb8CG`pZ9aX!1w39nR_kX>8l zr1a*sZ9v0liP?dv+-1f5(^6TQ!dAN8FR}F%X-Lzdf|;#5cO0E;>b5OvJ+m)@`t)#} z&%;als}I$sOu@SHu9CE-Pu}3DMW!hy`bj8CLPcSZ>DLvh1Fw8;8mjISEZ3)O@6Mf# zKJ?`NLvoL^^!pEG`me|VzA`ymKYv!f?3{AtB?n{Ly!XoE`?je;Snh! z;FoSn=1vx;_qklG%At2t!3ulGKQ(Q`}gwv6D2iL;WplKIhPm8o&Jbn)rE3x{s&r$yKGt0hK4y6xGrU zl4`x{HFlT!k>T4>SqYVX;@Jtwh2I!Wy^cPOXZYGBU6j??->B6kbpMuk$f7%iocZ?h zp4Q$Umm8TR=(uVdML}vNmt`U#ccFl6lGSln*XdQ;L{z*+)6VgNmR$|9Ae1>x$N2o05iqEl1iQi=#xlIypTfSGO5lbh} z3>;X!e`gF8a*G|a+>yRIFN>pH zgNT4H=C5yfrfA*z$BPteo~N?z)p9la2O4W6Q_N>dDBYh z&VUrJz>K~Z-@aV4Q7;6-uerakR)P$mBEd5-*k#6X0m#HI$bn*;gGd(%Q)GabqyCLQ zx@zMRrV>yD&P{vW*7PaD>D}bf{Du^^2WGfO5Z{baILlpyh8?a`6$A_FoiAOwCuXtM z9%<~I_B?r?HS~asbhzes!CBL8MCToEx%@3k{pui2#Az8EpZH2a8SI6LxBwyDVTv$O zj@kA60K_evikyOXKs{ zaZ_+N7irI72$N#soI%Sw-0<1E_xLiIG zz&41AOqX4-RoA(*UofQS`kr%KxQf>jz$ZSdqKo17GOH#|zhTM?9G@m29PT(crAz!9 zDEptT>R`K>;u;19$#^f6IAy^D zj@+D{={2u^29m(;*xj|WG&fAsH#Av8f$@kVvjD7g=2C#@m1u_@pEy>wWtrbGb?BVP~F`{!#CwgSEFaHR6Jy?3akF@O;0y*__u!my5^-(aSyw z4noo}#J;gdLJoJm6ylxkPt2&P)aj%myF>1e-EF20zW4U&3$FJmBu1ZG);{~>pyld7 z^x4w7J<6`31)YLJ@uEAv7@L0aGNeATfZ70K8mH>G0;alH#gRGn`mWXaJ!Cfq$rOzajxM;cnU zJ^7c_0_9jW#I`0;1bc5sdQ~KNRrfR4Hj{y6FQjf&IhkC0N?dm4ex{{t(~KY#KelT% z2YXUn@sD1e!D-`OAZ%a|c zw}&!ie|~FJ6n>>v+<4-InBsPwZNH8R7no+`)m4x3kyLdy=sG=!JnZE3%)9V%a&W`r z@S)&?l_y{BXsWSRd0?DVI8=XJrQys={6R^@A>+jBCde|Cte_U%?vT{!)~jQZvwyPG zFDQ}H#g2(p;6~hA&g`Ey!eA8LBWb9i8obv2aUXzn3FE@D?kwu+h6_BSKOuv6ZXC4x z$kxkn1fa>>40(Q1s^>!aOXEEV3?};>i!TFsSKi?>2E7gwl7_TBl6{ni71K9ku0l3t zn`)M9VurrIgh$rA&T)B!>$&wDPoTH&c((LvJAwE^2d*P}WpB`?S`3R1*CH7dePI?z`&ko%d{1P#Jea)gbGFqzs4a)xX#R|>qOL^*qWORP z@-;lLkWVAugSZn7YxjLm84(mma`Yh*DdqDyl?yMo28pdaJq%MFU)(}ArhaioZ;OA* zLeQO4mp47rIWmaG>i-Of%5-rIj~+diTTa}XC`MoSYU0jb+>RePy4P^{r3fmd7fXh# zpY8f1x@j`fOSSTknqGv>cUcJ9_~|CeKijnu;JDio2U1Zk-+#S<$#-OTuO2L!z$y@z zh;{JKrK+97NUZAHpU{nmIbB$R&o~0N0Wc{f z*r#Hqh)*#1bjUquYfc=J2!hd(z&&qf&Vvp72umWHaGW7s%X%YfzC?zKO%Nd~t`NQ; zu+_`}VB%Cj_jb`^GxCP+B^pBi=&({vn>3rj=2uD~?$rvF$Ivk-^FSX9u@zlhQ`jWNTg}@ zApSH<{q9~Jk4wlpef@$Tl(~YMW(LTgI0*KsMui^Ro_>pT9DSxHsb=@p>VvVkTV1`6;iE zE1w1A(s2P)2tZVp6J*5U>YQYZV|on3Aj07bG-2(9y6*?TJ{7J`UWeGj2Y%Y9)nGFD z9YN9;fi55EE+N;7CkF#9cR z)+6|BYqbWPZshtY2D+}tEekAz_T2=P)A1d+$W_O_C3gVGD+ zlDXq?*xwlJziFKRB*E*KbZ7V9&@WJheRm#Nzof6ju-7Y9;Bqv0Ne6xQ(c?Vg7mfFx z%}b7@f#cEHwP2Zw$NBcp5QuiPafPEFz-yt4U1k8-B z>F@B!b`aAQV_4oaM;EMb|5a<3)SZQhq`e`#8kTJr; ze%ZF#Guzskyfn9s6EDtP2V$`6DtU44y4IeiIvxi5U*p_`HWgr;`=)8b^L*Qu5irhO zwwC7pY;#Hb#-fw$G#KYjGAYPH@G#i#2Xq3~Xq+esg+9U!c?LX0bReGF?)qj@Yq;Kd z0%c!o>?5PEBNL}?WTrPR<(sQ z?=uHHDs1S~kRi|H@$=B49qlhY9*xMjX?+E58xrnQ?N)n*t;Qnu-`ZzXC;KUGDL2QZ z?D{jlxx4w>t<|Rjk9YSXES>F7@^2`+pvXRZT^jc4^VqaMH7D*Rh@8K-FFxW#w8~Ej z>2X@HTEXQoSnKVcb8_Dg4L(lVJ6U8L8c<y`+@f)Z<`Ak@hlOh_TDod8CnUE)A zv;M437v*2b&(yaFk|(XaiP@870EJ`I$rcOpIwsXeTvl_eJ~Ux-TvWPzNLvd1ZS#e! z)v8i_OB(}pA_gD&6`gkdT8jsEQB>&G-@0Z?k#lx#DqcOPy`}s(idr7H<=ttf_ z{h5%0nGDYi4Dl?{8r6E;X~5fpMPnm2ssbz~P{+`)Jb8IrJfsf|#(4x)32}`2v}P!5 zRE4G4hTVBYGp4DN1GLRTBWVK9`TY~J4Q<^wx4|OGZyFqAoBH_P;lGoyi>(WFcmgt8 z8=NNKoZoW}>j{Iw1ejK>%PKBNJ{Szwvs#Jh^-V>|cx0je-XFsxF)a*kS^}h8T z?1v>VG)Av$=~?vyN@RA6z-AHX*jG2era4*c!d`wVi~uQ$mUO(NtZoc+0(fzk<~Xl1 znM;t3E9X9({4vXfJpQ^Hi08QaWIBauEyx(bwOQSNJjz43Q7}S%g5(DQQJJd5>PQkC zRd{Px&(j>3zT~lT_b*nrYUBvk*zEa0lib1k3>&4Ma;TC7p~R0y{ueouI|56Co&lcl!Az z#AdUuIH5FRitMtDXpO26hHKapg(8E&I~Ekl0Y1wUk|9)aM2+9|w%6Pg{q8ZPx@zfG z(YpZ#%W@aQ36j&k^%DBk6wjdcY$;=5ajh-@q9ks|R0aUq$pP4Em1 zH41x;>7^RCIb|?aJ87fr+a>}W7erJ2xeb8f$ozfefUS%#&;yfDg(u*~lWrrfg5yaV z3eH5kQ6Z=x0pQ;7LqHq{@f=PUJe+JgQQrP;uDy9kw#nPLEvQdS2*!_Tcx;8R z4@k4Ml{`q1o~2byz1~mwC$yJ1*ks=O8|?))nZZ1nlN-!&a=tj>SP=dib_nHM>+n^Yo7~@^LpMxt=YhkkgSf~1b2P^_QUt?oeS9?=qQx_Lw zJw1AsCCMQnAG~l=>@6)VNaiF)b(xht2*ECLAX!;Ev{Ke&*VV<0Zr_PalC z24$CFVR@O|SjH1x2Ww*^7dyIHnoF{=y?yST0tfqwfrZ7I;hBUpXImY{9IPzq>4w+M z%HxBd5M_07{mW$8Ak1j8jA+@eN(fhfw^u0ze%W1Xk^UBfr=Q@SEbg4QP zaB*&24a+{8j@Csw#pN#$aS7Mut znw)Wq$0@3@p^}$_j>k!k!{d)w4B^uqYrLB4A1@AWYMkHuO|9u^L8^*12ifwSW zf`c?o8UO%P_L*ltCCKNlf;3GCiaVrkqVK!(3T(Q#v%nY^Ii7i|xz`4E)klB@*-X}` z@4)%q4uw1l(Rh@9GmIX0=^~a$@5;3UH{}-|ltQk^DL+m?!uvw4%9l+f<00=2mo%^4 zF?$3TMD&FM82Fwu`$dc$apwWKrIzs3Iucvz9bE8qp%MzHy+ZDi`6E|FSzi^W4ant( zp=yMVNI=dl*b|wz^HeBEl>RXd8rpc~&nV^1N*S$yFlM?vp)rUV1ywR~Indo$jElMx zkCswW7e0HOj1;q!Y_4k*muKI9rsB%bmXyzE_xDR9dOiF8$<>SEdF+ds5J#>nYnlKwKzF;1}H3F)oH3hJlsQ+ z^#)z;-Ydo57<0RfF9Ztv5!DR!cz359a3CT=nPosZE5Q z_Yz~1Ix81YvZ~c8Wh_Uc3swK&Xc|0n>(R=g2Y`f_-Qm= z;A{%#s?wfZ3k|l8cWp|w8Q;bbb0I|h^r!Ke5$GGvQu#@YIAgetWX*W1juQ%spM=1# zM$$$2(yS0%F^h-|ggt0q@O>J9VEdFqW8TM!hvFqJx+}&7S@B_A2yNd{7S_o%G%BJYUE;~1(L0SjuSY7RN0j1n^r^LpCIH;jVufR z0M8|f^nKZe)oN_P1KDED)YeUAk-N!3;6Ro!Av>eC5H&8+38gD4yAW)R0+}%D$$H%D zgNFSDawugTDh;ao1-MtPl!R-T|Tb zzGn&Ym;cbgF#5(zoSWD{R=oU@AD%3ZQa15rNplJKGP<~d9Ty_t%YvX%3c!*ZOx-LM@Ze`xca44SgqaOc*+^8MNH6um`;#KP7yd$Dz{g&Cn9jHl&km1WM zS^Us{q`m)5o&S!Pt!2yB9P!Tec_`jddfgHKu2b=bq4NJ?V3&iUoR(F~bHre$2f$R>y}P4N*Y_#FNhpvl zvc6LBeCpqH`S0CE-d+0joBzby{2%Cxd3Wi59HuvKre}e7={0q>vo+5F@6weOX8-$L z+S$p3ZhJ9wmOf9rWrA`LSa#^iiYPpl6zTXLz^l@M>0wdM=!69KY=m z|5NXmp$&2s?3=C+hvtpyE$ct1emei!tl7uoj@C}cl=E^L@tY4EFWB#1Q82f`!c6;+ z^VRZ)kZ@FN_?~#KOQ>!6<@X*BdJZfLHWe!O+_@Nk>DbppUgWN(tT0>It6%Zg=Ek$| zQHn+m^AnH*-p62{nlm5uK5y6|Eq>U4xYvKriOoN6Oue~(`;;5=&kyvE^HtgnpT~Y} zdHbU1>8VP1&^Xx~RV-)q)1$qYEU4})b#!>e$1MTh5ICjtS=f4S(pO>MT`sUV)xFdg z6Nu_m^a0!Nfr(Ka><21jQm$~&^0N$m4{01 z$>-fceWfV-#9AvAlvmsvJw=R4t;p-A+9ON)iq+~9;UT)umVoxbR^r=))ZL-40M)a%ODg&_qal~!8HDro zshe{kmw_PWJImhuk2b=J(%)afjWL?o(yG}SI=fSa5x?3yyzq#A<)Q*k`zE6Fg2=6l zNr0|8pWFo{VJU_b4c1-hf-KHYAs;*^5Tv1Jy4y1<{`^8LQ%^bEJ~|!_SQ1)?aT|kB zNI+_-ZFm_E%M*C6pwYu2@2IhXL%A*Q2Didu(og^b*E0q)I``s;V{Ir4S)I1yb3s!K zl{^-9-ZcA!E&(6{;^R*nQ-(8$#(@9%W0y90JtOu^n?!tH5j0J)fuqrwO4^in*2bqM zIzf>a&f#dg>r(da&b5B9;Dh^Et?&%@$iz@P%j!jkUJ5$HmdZ2+HZ(o?p8P9kpA9@+ zV2L#zO5g9T#5&6)e}v@|werI8c~4aKmNLJrPV?<#9m~3SEb3V9;^D?ZBp+rA4WhiP zRlWbAYlMxksk;z3lBxLoW9KGD#;ni=BPNCXZDWI63N2s&5870BOGw*1?M@^T9|*ND zc%K4iO6{DG<;HDjdMmopD@dHH7E+FM7wPDRV|PSeo4WrJ5aF`WejF2*I*#(sQCoo` zVqVhnd7}$yRf6Wqpsxm?GU9P4w^6isQopJ9YY6rvHNoU7KrqMI(P_dkOh!a%B^m(u zIRLbnrM2ZUT4>HVZ(j$LKnAM3=zHTuM7f8ZGphKwK^MD}>JfUBI<}}d!DHTRQ@>5DX$N= zK}Wm?>ek)$>ROvtHC{mo%YWK>vc_%eRf>G>w3Tia1F~PbyxBXl|8iS4u^&Wbhq%L{ z;j@0GqgF>^7xY8})WZP1tpauIA!?YloGm#OkL(fLI7`F*sb=f&c{Ki4qQ8u7P#i*) zX>?fkeJn9@P-`Zayz%&qm;oyhD>+4{=-Vn!!{t_tML5C%EC||t;+Y>q*mFEk5a(a zIx8<%-`zbyEuR%VyeY--AZ)iWyO_j*IA7E8kb(c7gc^K64*d-TTg!p}{d(-bpVxc- zn?w?|*2!A8(I6rF6ume;sVq6IavhSLwKnCLU)Wq!(!x`021v;6sB7#7$(&$Z3`CNE zwXF6FtV`Yfm#^Ght7Y*NyQh!W$r`%zc!UGaH$DLk^na4;e@={nHv0e6$@(8eCHYqy zt)ue~8|`3kSw^xTRaIH6+vsARi#|tL19GmpXi%tmE}G@)P|hP{lghe(3-!ObXi%sJ zKti_V?db%EGj|_&_shfj<47`BPi+Ow|nyBT6S24ezK8k4Y?XAs^bZtvW$Z1 z;k|E#Ju{6FEK)o3>6{X{v>Ye#zOL;BSx(I(7|&Ku$%@F&@6(*^^=2w+?m};v@RH`p znV{P>QYpz>sE}l*4J*Ato>}%OeP+}75?#&I)VF8*J_WZpYg8Eu+%8ntW0bCfaWccV z$vd2TS?Z?gM)%B^7S9^Id>6|+y^khh4IS0I#tW0T^edO&-)BIR|@9T z^v$#&i6JQ)U595)qO#H+TIirpQ?BHKyIz54d?Zax7W|LD@W3ze^TsSuO7|4 zHJ_!Zq$?G2bLNgVzd@1Y*7lhvw}VIAcKhBulQMd~KJD67tA&AaDYH9Iul za`|=Q!;(y|FKyw+7r8jb3c|${DzUQXz>5wC}5kyOnNRgIlc*e?y%vg8fKjBDeSPC_Nq@Nb)Tq`a?)8p*USOjcOkF+WhO zXjsO&FMI^)F;bf}T}6g$X)1^W#hl;ugj zR2CE?%?T`%H{L#P=gX$i%3$Iw0EUz%EHLaVY#h<2eAEE|?~Q0aF=`;st}pl%+|z(a z3rav#`@DoSe|Z`VX{yE&pe>(YtWa!3>b}jRJ1%cjHnB8gXaL9#PUz7aVtO!GuPm{* z?L~3+k_LpO3NhC58biNV7dBnqI2Y_|dB(38bPDB5Rc?&XIT@s$dvLhdlkj z)X}T>#cgawGKe4OxrTAQH+r*{RJ%G=YzFz5NhUo*O_P)qbT8DMcHPYAfs!&&pY!I7 zotJJKY5SasCZCS}owk@lTK1uOzOz)7PJ=IjC?SGSXxxC^vF#`!DYzgos<`QoX=8P1 z6HR!q+zAxMQ>bidVDC1P^`py@%zAckbcPc+UtG~M{AZ20FHtc}Mjf5~heYQ@&k`qw zgJubCcAs|{!JrSo$Z-oCY=BCc6@m!4a;qljqa|^&OdTQ;aG>T*!>V4)OUdCUEpN*A z(CdVyaIGz`x8|YcADF`suwg494)Dsy;>#F42e?3Ag*U@EG^FGy)k~Q@O10(6mL1s# zUcw@Q-iL4HS5X;@#~&U-Z>+6?x-go>!dt~}N$_K{IPpsm7#yuC2VjVCqAMe+=DD8V z59ns_`wSu#nSXr6P$5vspjd76O_dl1yfloh(8RSumlv5p9a%7~E~-dnttFh_U-lc7 zE?^*B;#|x(`d;q}b-%a? z5{jRIz-cLL>&9X$gl3UR;5CNUfv>4TpB?k=l<$+&evKx^P@yr(I=cec{-mVd4f{ED zX|E&Yg$@%OsVo9a;c!_Mfia+PEpav1g4(Y!A)hfitEjbmI|SY-e&%o-BX2`4&iydX zDTdpGOaSO=&Ypc<92Q)VK<4D%g!)FaZ9JE)a63Ix{$SQ_a8a}M#BR)x$R$VM9%I&}Vas_cG3vy#0>Ax`9b`*3cGg6GZmPg{%!HXOvtBa3ep^XAjroUQXN+ zk`%{I#?hdQP7e_iW3GjZ1pen;{eqD_@%DXGJZ1_hH2HpT%sbU#&{OBD zlNG~qGG)MVNSld%B^nOzggcl>Vp%DcZSfsgoM0DjN z^4xDej(VTDn@g*GgPVqHOOFoAEV1gJHK_{y^Aq#Bo2CN18H>NEo&UgvfkCgGyfim& z@DVI)t?f#!cc;T6dBm{4sGa$z*2-GHmn_y&Uf|$kZb8$!NS9Z&SAw&T^`K67t+Psa zkIvxuBdFGGJ-_`m@8~^nqlY)VynggvA6^F4`giW@!4z1ce)<=_^ZC@Pzk=TXpVMEU z%U;8k{9l;<0!7-w!pqCW%EHRi)55@jo@Hn0y5^=`U0m$!Y%Ogpt1HVLT#6c-TrC|O zU0b)T-MYOzt?3QvS#;}i&`piCp2-%axx)n|IRmpV z`s^CG`QV}3b=1|tj-GC2VZGwgWpLvqn=uFFx1Eo0%87nU?N(PvptOe2;aYp!XBn0% zmEaSzqmqpA(Yw2KTp9-o8}d92k78~H)H)Yw#D!ary+q<%^BH|g2?r%^XK2S`mr-X? zISOPXekkFdrwGAzi-E+Zj+f-fEd?LE+dl@6JBy!7+t77SZ9H<%FL{<83r`em*m;Sv;958&rspyJ%8|HL z+w^3G%OaAKS?jz%FxI_wnA1!#HFq^Eo^CEV$vjL^>I`d6x>HcUJoAn{!7#wC-qAd3 zKU>~#`Q+76y^pVY2DL1kY>k+gE}lrNjgs{Umm@UA}ovquh1Zw5QeRZlu#zUzXK*_1@y_RV&q|}&8ZM4 z@c^BIv&2mRR2+N*<_B0-m8!bIE+#HP#JO63bO@wI_3gYQ4nsZ@jLN46smbdFoLMYJ zT;((;rF|gvV-mB_END!nIw999+nv?|__|l0z44|o710G{K+fa8neg%Tl#;^|jwP|P z`MPA8>~?g+OHC0h*Mx-`M+dzTvgP6+tpbrxv`(^>ap!RJ?Ozh|^#fj=fz5Ru+eJQ? z6$@PXyc;2_Ydl~Y0{iq?1N`RH#JwT#-~RkIg*qKVYZjCXb6e#b?R3`(em<0_*{T-y zT8`$LzzFA8F!jyauQ=PH#{aB-vO3zUg9x-@`!w~4I&Sg_ms`=e-jS+L8L*C4JO?s* zzQ6{>Z*(OD((7^$K~PppSqy>MYzs%7GwVLvj577XD3S_(WLq(XU#myu;5^y3=u?+p z(jPh>-HyUQPfJ3cd9lvv$y*07F1Cp3{S2QhtRooK;bL5=+buJs&Z74nc@kFIl#kOa zF~MoAL|HGJpFwy>{2=I6B8~x#3K6nHsltd?fPj?tNDNVZGOYzbFFkoD@~*iNDXPsa_ zmO#ua=7-$HXNc<4=v@lrhA@UBe}(F*h8-hSwMa)$i3msL!*5~?8CN|vq(LhZ?#5O^ z;R@h0wsT3X#`0)3|05MXQI=AjZX(@Rp;pmX-dZbSFi#oBM!x0TqSVEt$(4h(HY897 z&u*3wKjd-CA1R!*lxEHKQ@av|7Rmk4>%}GW?TyX9tiX(qplcj*z3Q4&$cdLd>#xqf zcT4K0e1fPid2dOS|E51utlabyP-;0)`A&~`0&aS9;!=u58iySr9l@^*me>w(D8`-h z2y#=LO5|w#PGq&PLCUPRk3xbGo)bRhi~bDQx<*FQg)O@5wCV0Jc_m0w9+B-h8-1_z z8v*}EY=)TvMATiHPv(^H-YoUqk5d>QqEOmz_&pN;wNlM{kp@-T(&jI&=US`!uPoR> zkn8!oQXOzIfaj+FK{)yCrekx#I2aEkmRJUMuE67WavCE&t2!%(mk7%%I0N3lYySd? zHMj7Vra&wGckOEJ^1Y5X;U%(%Zr>jq{s-G+^69_CvHy!W*nc{E|1~r9f1x0Q|8oEL zA5f)@j6gj$F*0#>HsV=n3uAkpN*CJO+gX(77@Hec8CTfxUZm}f$yO!yj%zCI;%rK{ z17D<#Ov}L+X$x~kHIJ=b4n9ejpDVf0Zf|8|=xj?jO><5*valK#(zN{GtpA?Y&}#>9Y9Q5#rEn7&B0bT|AjXc? z8H6aYcc9jpF7qTDJ%)D7iphnE&U?bsGA>-F8~Ro*9;EmiK=k5{W(TJBa+jtBHrvwO+! zJ|Ui+svbt*=vCrDjNsS1Y#H(VBZY3@I$bd)N%VtZwca=7kGqoF5>qgNc858joW6Fb ziARb#Itt72NR?t|ISRT7*A}>ByQw8IATS|L=2IKM4XvhF6so!lHRVULGWnFKvv4i) zBc()S>nx1lC`p107Fq_T3a|cY^ibJIoDf(HQ)NI(WfWpiNWQBQa}ZSyrMh%pyrY*d zHVM@eeezfF$WdK_dk_FWo(<+_lRO8JUSeqgCeKsVUC%ydDF_gK&1sI8OtLN#5;ilT z)ip}`HWw0=mQ?X-!DLwT&x^47Y$lWD964Z4JdO7iCOLkVGIRxQp~Q2&8TM)rKI#j&4i%ETXMHVy9063fUNWLo>eEQe*>v{0$Nr&V2RqN%CFBXZrLb zuk2UMg{sY4iAF)s%iv5vc-+-TN`6GO{7@>M81Bu-WeH#h&Sp~g%hZxHh1>{aa}ohw z`3S#Y*jEuN9*4-m-CSsQs7H3t=n6K^b%^otWdL7dqXrv9n6ae{STN$%G|YZgjN5Ah zN`KK7S#=0HwwRf$y3m8ar^hCr2vBl%oK}&IM~fJojYn;rKqP!`zMxWu(8jpZkl$Z^>v}7B@?-XNmQja4%BSM-wuCL6HMHCV!Lr!IeMQ&G!7tkP@zlzMbdT;hq>{UeC^3($ z__z;SrLnxA83xJ4dO5@%an!NO`_nE=T^O z9RI6n4)*|;n0G{jLcDYD@pZPz+WRxF{Je%Y$>b3|V|b;g^;c-{pq+8LW~~vm&Ncyw zp65WYNp&r6YHH0QukAg878wMaTps8KIb+wsT-cfr^GMsE5c4X~e_Q1BT=rkK`2WW> zd-;DLV;fXwP>%KWDHLlXeIrLleQj-emZ^cwnrXJNHZ3bNF{m;zt+uuX<+#|u+`{IZ z-P&cF;%H2_1~1$C#=Ix!9NrW3Ed$eYzc1T17W#UQR&?Vu$7KCFo@?#}FWXh7-BbBC zXYSgJ+L)Wt({-;I8(V|X>{k?^4na$x(MkXX*HqZ`kfN3jSCCPWr9p403kP6|( zRaeLgzCZ&0 zS&?7rnGHGedUhEEa=I{jNgj|}aj1=)ESPzYgM65nUIj44#DG*(h~oePt~#g)+iXVh z6GkQ3_riQSeObsIg%cyBrVMv-F@Pk*W$!~HB+`nwk&rR~6KP$pEcWP`GEth=2sd6r zy&&yA!SpZY%cnM#%%9cogQxFMgJ4b<#?%}yILideU}4$8spbqyDr##|Fj=5BH>M%S zESNSAJ14t?piD`U2spR#TQEjmi@*Yfe#xn(Ss5wW04tU}MyR3CSb>1B@v*6fpQuqt zrG)P>!l|vUw8q+JbMqQHrlO-j8K3d?x5v(RZiB(YRNP-*c~^2FUVxgE3bd>gHfsMb z>fS4=>Am0fP6HBZLXnOkBoL~hcSu4DRX|ki^d=%AB4P_6^cITr5_%CaA}Szi=v56x zMMb5FfTF0Vs3_-;y4GILv(Mh+J@3`tgE4Z!Z7yc!_c!Nf^0%tkf{MUU-5O0<0d_U` z0d5j_@Wvm;Z9qZxYLkWp1GXYi{4}{@sBY?_6LcSp;9O$5g8f=` z-KrJA6^-zrGa8!N`#~r2L@iAsaD2z@DDb+y`NaO?`ylG9&NyWd&)MCsL67cVk+?Q_ zJmzpB&*3;*>dmtv&q{HsMMr!mW0fLp1tg|U5jo!b(%veoOd*KSvnLbnI(FqSB3cip zC)n|1#D4|7u=nOk;ZuwWiWaa}>R-d5=Z^S-<=_XtE0IT;Yh4C4!QU3Anann-rv3g; zFQ?(8=#39{yhQNen$)(JIMr1?6)sI|@cMhTy1H+mm73Ch+O==cuRjYDw_cuCs+yYg z1s^RGdl$5m{!Z+!!KwnCSAyF7LEQs(_4Nho_K${6pbA*&lY?M2f{MlwOQS`QkV+JR z#-6qX@uErG*J27ORq=8b{Uof97KC+{AB1t9&T5XRya*9GKY>zWBm;=QaWb%MevG^^bF&r+BpD9NT zz3?NRqOy6Jio<()bqrjjJ*LnwwIw#*<}s=Q>&v4v;CrY!0V>@rtYYBYp=J?C>{)Z= zX^4zf05>ttE>xr+dOS;bs$Eer0m@&QvPHr>V*Hk%n())lbzX`%#V>ehKc4JE=h;e~ zfXgfU`Ea}U2BtM%d9OQ%=;Zffr%^?dlnf}n-`-;G)`^bkDxk=A3?e+FeTti2YcFro zlrFn~lzFO*cllt@tZeAbZY=dZs~Rqk2!GU zjwA@%v5$#>t4LTsm{>P`#;D9)+2+WYV5T08TY10+Nm&voocSjM^xyB;n{DO8f8DV+ zp<{mv%Lk(lc%1R{-5kI8TbqH{_Ob9^+WfmS6`k{|u)Mi{vFVV1VL)?$MdqSQrRAHn z?cXoWf6mveP3YKWJZ$r^dFT#%^L)LzKGi=meD}f7J>b20bB_6+=rO=8|J_{vf3V8` zOE92-Bpdw)Ygr5^U##ttQu88`#U^dLc9XW9Z)^X{A#Zmwqfr2dY-Cnc z*AZ($B9;OU*_cRb>#Y4{k!>xF0OU5!EXgU}s4DaRFNfSmyf;U;y*PULs%r!AuvzEagCTQ!PXiGZ8^(l`R&>C`0Z{$D(pez%AT=G zIzwValC!A2DamxnhPwL>xshhKbetQW9w%)yG#XD}JzDF1pSJn<1s!3#mRCdeU>rOS zl~P-G*?q8Bz~9*w%^h3xiFuK1eNJGHayZXD zai~45vyU``)=8&qLhbd?puBe=YP4wo^P25jA9y@>Bl!^6XI4=lDndU}80Pt1mtq?+ z;P&VVoCirkL*XE2+G)XvH4oCl9$^dEmc1=(h(P44vUp^DmbAQa0Kp>>rpM_>GB6vN zQ4%)uCdcaBQzCL{&9!(@V6g!)8(bve1vans%$nedLx~>5tk1DX-!!$d<3$1@9?EPk zU>JHftz_MY7VT){T$yjEm_I1!sTW9vhe|zuX;{}x@MZ|n^OVBcm9K6Qmhdp7^2SIR z;`Zk*g!*O)>qz;Q4eZB2azMnuz_fIg3XyO}?r(J&ZmwQX1}O=>PdWzPisr zxU&@J1!}k<@HQZc$NhOiWBlp)S5Te^+KR@t;Uz`@gEueqX#4|=w*{A@2739<_bTtM zt2!DS_0GkriY|zwA_2b9ji{LIs??FW@>k1gEa8` zU3P>aKE%J5ZDQ6zNF^*x?rrbu-bn&EmZNn7EWfmq20unK8txf~aCZ)E2?~8X3W`cx zzKaVR(luN%n-16- z69##UO75LpDqV}UgchAM`#f6`kd_1w=6+1PXFp{4>b_2xb1Nr+w{-A9QVHP%i+!3_ zA}ES}rpRa1r(wKds7Q5G0Me#AS9JmF zvF@C{lzx^&i4`(J8mIwN6WazwGS{K#eh$?(R63m>(^B=b(jqD^!IJP+919+|f#?xE z8kW@Muwp;8q~S49(+_d}J@gmyVK-UZ84X z9JquH^h=>WaPz^HLp;ZnR6O6X6(I<#A1a;@Fp}z}D8a{bve(K25hG&e(dl4`(soN> znqer;q+kePPpY*<_e8wNd<&uhs6MN4yzTvBWTM_6CEx5xq!g{t^L4PIrF+QIbzO?0~?nMD$lrz7hFg)M&4bDxYK zG}fDjq9fi=DzgJCRW7`h?JVlOZl_t<$qyV5 zMA}=p^s!4Z7{Dx(kpoU1ORln(Ua2s3E=_}xJowi!qj$tWg>b6ySs8HEG;Asm{h!KI z|MtKP+^wB9H!#B7-2b{;Z@w=7iEICUTK)|R1KyR-$K(S{ZXo~ldzLvJ$bV&Ru3v2G zaoLs1>T5N1o3qRS2NdW~Z5rj)p3P-uK#V)@cXk6n?o9&d;PCj^17M44^1*}6p!Soe z)BitQ^6$*oUx={vuU|j^{Q2`gABq2G{s$0dEiD@xqOO*%wY8R-8ZFIGoAk>o#~K?N zXcw217#b3@@~SS7w2e(j4Hk`;S&cLsYdspVIfbUBS5{q3+Qf)-m*1%>yLjo!Ws-@O zrnNauFUdMyi%0}!Fo+pFGqWWIEzh%S>l;XSNd>fILc5+GadVd0rep5shIZQW(3P}e z)m?^fo+Vwk?-fFu!{0(X5lpMF`OkrSAF50nS~Xu!)PcN}(Ml5E@l*RNpG^8rA?$=+wI-A z`>NBu8>*@gj7eE+5#7(gtZ&?YNhlP&WLH*UCjj=>f4RT7d}8MlYq7xXQpO7xbbmoI=-Z*_4-t<`LlTW*b<+d7%pgbLNQ3RvUVovr~6tmTyhZ3hHjgz z^@{E>uzv^PStv)NAC=CsOexIrgsjiDWPlIj&ChQ zhR^eb?f!ZOQwm^=$K&c8i3=FW1)Q}$xaRE)iw{BA-IaRc;TDgQZOM8;x)&eI1*jca zDACdHx@m@CF80zss_sODTvP%vFz*g%80qIHRD8`-1dkHi)ZXs;%;g^t!m>n&fRNh&zvCOC9C@l-}{fKqwJ}rhb>4G9TjG z@;1(;)S1Bx#~L_+!J#0S;Otrb(Su683cTO5A#izT>Xp1^Jxg`Yj*$!!G6adJ2I@`N z;f&?mP{9Q^N5u{g&*ulHXvxFdt#q3`wS>v^Tmz)`)^__DpRTMI0iANz1k9mxBJE>p z8Cx|M6TR8s9))(8yju9MQM(PT(FX424`9=dOklWg zut*B-1O%Pc&CLn-&^hXA>jn3XyEG835#*98#bR@ta(b}gQ>b%B$WpBY7;&s4_ZZxl zXLrgh|J-A^B%@N!oKd649~49U7db_Nynw$yc`cxu{4YLtZv>Fna{sd@^)GoXpaTWG z1V^08hyt$9(Yc!w%YPxcemmR?xpf!v>HtwKC}x#bT>G^u^#{xatXu#N_YWK7*1#W= z+cyS00|O5CKIif1W=3n1to`&4nCtHX)c>a&^dGGDUkuK_9)rLCPZn4}PWAOSqgncz zRu0BAYikC#*vG;RpA1;K61}b4I%L{LY_9Cjq$NNyyE1SJcIUi!qsB$F%H2Kf zu083p5zL1s8a~LWSgKChGxk%v;C26_OV%54ZwBWc1}k2RJoK4me_f@{!OeW2pU93$ zX}?3qe73UPEo5tx!>_~lRU{eCBLzZ}npImXiqw{us;)OQ-ml;``xGeF0|vswGHABf z>?{XT*fKo$rEcU-Tl{|Lhea58f+Y!Jgt||@nk+#2Ju6U_uRD+_9Hr$tqZ`7;2YGVG$vLjSSJyJ-Hb4~1D~FKIRN3tqr1F+ zlEh1Q?Q+DpdKY9f^JyuZdEE(9tIqOqJC3mxHo{PEkUk8HExL!4teGC{OsE5)KWn@2*Hmhb6$=X% z>u0~rKlszjTf^9c07{3rfx7a;RUQguwgM!_OpzAitI~+19WyxV;DvIC+IroB^bz?oY@KpOsO(UKb6GxE>|{}ynL!n z`BnKX&7p}E{9Ep@G=H=jx0MpZb}H& zzKJ-TT4G*$aG(sVov?hU%lgcvsgWSQae|;2T-tjQa@QnO#5iE88~`G#a|Tm(ez-z| z1fW}Ne(G@39`haqt`f&#@z3!P@4GlqZz6>xzouV(fq=Iihl3YsWALj! zQ%w#>sQYO4S=|JA+UsXLkXy<7exA|9+arYx1z4q164j{Vwe09=FcrLuNVsHWd#-na z#LZ9u!SL}A^|jb1qdJ1obUqL)fPKu2BlCkRHSY94AzThE$Hiot=zO2HwreJeK>*-% zz+{1_-nFA@97~?jUcRWv8s*y;lhzG|*VQ^YKH-CDFYqYAM$e1|_FPhRd0Ef=Y}%U7 zF%=8R7g;oNnfLg6xCyIAi4)MnI~Z{G!#9{*N&x|hZ;hhY~5*5jyX!9&OU6c3#H|+XHvlV4r_s!4@g((Dc5@frl>hxP)kx#N+ovvqV+}vfG zY&j&)uyt0DddMO1N1$OrZ$RSaEdyo-whyEyFxewuKQGZP+eR{vq*H9rc8n{m=D9_~ zM|KZELmpMKcb0pn=?)VspX8w7@^YhzX!m#1Zc1Fg`%}N@U;hT$-YhyhZJxA$tw)9d zC+$CpuT2KY=7>fBu;d&9Fi8GoN8?Z3IkEUR0PHXN=4Ra)*wH8``n{uZt)jXGaM8bs z+rVM_5^&Z2ReIjk{MOBJtKTG&UobGBMfESsRu3LcKYa=;TfKZSz4(`@{%0cl^?y~Q z`VZOvmr(ZqIN1lJ-q_g1+1b`u$JW`LW@ksUwj+~W{swKkWLepl+dKXSZQGd{o5d#R z(3;35_9aF3nOP<#q+6srB(kMlWlMp*i6y|%Tw}=-0TzJp3Ts~G?|HW>&~4Cao3O72Z1O1 zU8eNB?iT5yu5tDQI~oyKmrVM^^>Z@bA*%`Yo)lM{x)^4zR!P)$-sCQk1c@K6kd2AT zbi;~f$fc<%A1hzY%tYTXQr;t91_p^xxUd0R>}I!7$zK zB{7?UG2!N2=?jCaUzV$d`9XMYhC%o9zNrZ>l{0~E)feNmmnVoPH9-(KydU|U@57DT ztu)Hs4|I?D2gQ4xfk(h&UP2%xN#k9uHP*MtTH7`Jzg|)(DA=V|yZo360TI}!t@vx< z?$f(s_NA52QS>lH*|kJ=`{yu0HhV|>_kD^H_PjQiaB)UiNMXdFwm(CDEo#4{JT4#C ztsZR|YPZ5cz81B#z z_wBUc*#;p*r?|O3E-_aX?nfZz3@Jn|k2qyTn;k(-76sn~s2%(v^M=(1`a!)N$)a!a zY6?%=opeHcT~uO2BL$5D%3iDn4hRn!0>|<+qk4WKX{x*%v8^8IU;P>fcP`SSF#WhH zGkNRui`9-nz=GB*U_e&AjQ`Z94hP5?fP^@v32)@5FEjN zsk+Ax1C1Z{42`+g2pP9j#8QTeKx)*}%XRr{^;=;vwS{$!aRf2wVz(_@= z5gvahrs=RPx1bp@wB>Qw7itVz&E(CU3*C%>jZ-?52IU@?l$x!O??EO=;+_olC4aGO z& z0)lFrdWvieqIHkMyAOX#*$B6@jCpB_?s{bP)41jwZ*$`3^Q-4XV)===`qaUr3L+7r z=8-#}LvGCfc=6nB|Nf_74fySnu_?V+$(PC$npqJCJ~|5=sQ<}y?E;Prhwoa>efZR(Zr>E)yyFmVaP42)J7OjT9e zvkTspyuTZkDm(@}8fT}fp{y0{GareaK2~8nHJhlPIUAU;P<^q5$9~Nnf($CVz&mZ1 zy6P?LR>H`zGTP18!(VP%xtN+#MIX zE}Vka@!g-@Ze>ha+`{YmvB)7s%#hB>jz}sOUJmUOigI?^9x7binlXMTYRb_yg|DO$ z#bu@Fb$51p$2Kl?dnCXPJ>S%Q!a{<}>de*4`{l-?OZHNb2~+%U39u4KD(}huvXYd8 z*=OaC`$qrFhsiFmPc-gHa67lsO$d8c!XBAZvMZ;TvNMrp%xEFnsMK40EQahpcl97` ztaAOT-7GU&L82_idY#Jc?)5C%K-*QUATu+&Ds0}{+4kzmelMvB_>xeHN9xu|FSy~J zp51|MF?$zQg%wYlhJGMET74RqJ{dX4&xS4Mfw*lxUZPVcc z(Cw78^7M?VjO=Q_-f!+$7B&(PD*S(2mHsQ@{Xcvn`ad7-0ongYxNMVe@*m+cQ)6QzAYI1PEixus zSmoCJikDrsy3%y@3hh_C?8auitf;;-wn!IPvm6*Sz6{J+HnN(V{uwVLlQZvS8|V@; z2A5tB7*%D>(JdNAYMLzyfrQx|AYs3vmTW!@;s!aOWlsm!T$O(toadOSTwf)xx528m%ZMgE zx(N~lv542-bzKdr;{}s<9-Qvg4rINQqyqBAB> z_C3xSPGj{9JLDlH_^Ic5FYbnDIaOye%jxw;+HPmZ3Y-&yrQN)9X7-q{Y7;yO^mS94OK=TS!0eO!yfR&7(9?b6+Y57e(&Y zRJeB%JN`%vESf^?I>#?~GW%TixJQ!JMl5pgSqK5yN#l>`e|S`Yv?i|&J%F*~jd)-~ zC??oIgMF|{#b4$U}39%HO!&gp!ZX3oa zN9sL=4wo2R)XF`Be(ta2_Efp*wX>B)(^ciE<+`&G`Ifu_I^vzJ#YTnvI5LxiKgh)o zIa+4bj~C*(`~KRt`ZwXWFZ{tP2BBpizU6oGrk{-?BKX948#j#TdCW)tJPZ5Y7xFv0 zP6Z2}30AAM_2EqNv=zL;8JogMA>Lf=ueI_8q>qmbN1}-D@9sTVloA-Nr$_B0ZW{nX zXaA_$pZDwsgjHnPrhryx-O;S zkh+s&F3X37os6Ggp3Ca#bOduTK#?(Ae4ZV_5Q%e{nVgnRmvf1aMeI<=d3a{2TU zoz0GLh9H@2$ocP1??#c+?Bfvr?A6-U3xvuL;U{t|_C_x}lI2`UYC9){B-OJDK(BaiR^4iZ*DaySss62Qi?(7J z+SU-q91QpXNqC1nHT105kUTzxlEfXR9Q$CVO!H@qH0Igc1k!Nk&Rv-D zX^scnFahS3Hd^4mv(MauHW)gZV0jAtGVUmu&o!zWAtOg+hoqG8M8=231}g?GySrW z>#~7#z#?tSml)pj7L=UlTrIdC#dnJJ z()4FPKS}NJa0F9GT`zB5IYk6UUI7*ApTctAJSAGYzJM`W0ITt4@SSR(QS5a|Mk9m= zLazH5C1LM{&Kin;~S{9K?QPIgqCfQsDYou+89WnWw3)e@D$W_4?kEv0rRZ;0iwuIPzbI_=qg*9#f{ zt4L&kM*o8l`fq3xbE6C+L#A1AA+R@HvxzpTviZ+wlUhSbY(BD+M_+ z*?iZv!QD%J#Ql#Vr}18u6l=P+r85D<#8JV(;6WipBtPA6b#40i%PaZid#7nyBXp68 z6k+6k6)_Hom|WnTA;wj03%`gq>U43{y1+nf{a8|$;7qLB!woXCJRq&2R<9toVLUxt z`Ct?!8?xWvnS}&{d&(97{YQPO!3ewa9XY{UL6%&K!={?i`q;)DpY2dp{#;5d0@AoPz+UfSp zJv+yRWw2*vs?cUy@ftqvU%d`BMqgOqdln2ssb5zZc2isOvs>RAI~2LDp1}3;fFg^C ziT{*r)4Y4^v;^2c&w#z+K|ZH035w=j`Vns%;f$KF6l8Nr?1cxs>?0y#D0nY<7od>j z$y1yOImMA>k@ysP6HsntzLxa!H4>W8%Zi5a?gHyq+7K zlP!P-r$sawj^y1d;&4Kc_W#gFh^~s8wBd2vJZTk?-aYpsVbXQjhCO2TQ)(vd5L-Ha^+rE@b&t%!~RXZDTYw{>O@d|Te+QEB3#I2 zp31wrH|VwT-E~e!2x|DrQRXDgwG`F%O^nLJv+vvC5=S=U=tg*wwM?z$^AdK2E6S(g zeSxqeM8g*~Z2ZCM4J|X7`{oH&7?YGRV8LB|%IIpbh{AChu4+k-&U=TQ3R46Pih>@3 zw2?omM$BF@M1A=q7n>Qv)1g=Pa95uGlu&<{+3YIFUeSFhe72#q!#}-cud!F*Lu&sK zdpt^L&BdBHb|M-6Nz-hF>C~|6%a76^^OR**(7M#m7cZ87Qc3r=8vJa@a|{Mu+#_52 zCbF|z$AuOmxC2@ClHP3M#JBS80q8|-7W5l-TkW$^aCqOjq+5;)=$bt+0|M>sy>W+( z-7@$KAgBNftMR_JR<2}$7tbL+2jQnk0?)}ucem2pL*H+}FfD|vS4Y02q~H|8sWkq< z$fJk_di{C+Z@Vo*hTS$?RnLnsp+h*LzTmsX?VdY>E_`u|FY~8vKlxcZuG$$z@($k? zaU+Zy8uLIO5_MNtEL?JlJV6X2u&8IVMvWEM3KG|*Xh)2v7eNNKw~HAu>^#?}CJAIZ zgAl%ZcKUQE#X?+I9br=R9CX++tFVDz!|04XmU@gXr-M3w_?tYwh?F8)Rjz2cUraa< zmg1PuMQ{th-_ndHE6*^Kc2wHA!6>TuT?xs15Y9sFYx&oh$6N~BlVkNdpg4D55v7cZ ztuMh<*jkol&ufH;U>zd4GJ`Ob;DUbah4l~c+CV!5&~_R%*?d|-x{D3Kj=af4ykT+M z-h(p)X;gX?C|a*uJ}oNc%b<7rrQGGHRH3*)v7@J|r4qXN3@6|Y*G(2RIIKbZ>thr- zV1eR_iLZ7CCH>|C8%T&-nFc6qjiy!?Doy%TV_>;Q0xf*RsDM~|%n!~kk?_QqHS}yY zugJsINCWwPq0bXtkAk(ztf`)SCy+6rlQY~cQzQj1LSmX|EYAT;9|`3JyVvTML6Y+h$%G1J4r{!l))?EMqE5Q0NW$~6}DM6 z0jd38Jhj80bhzuzFrYmBA4G2-;F|usKOOh4wt90*<2)^&_G`0pGa8;+2ISBHr7kRK z0+^w{-phdt`sR~4>&k6Fsei9kZp!o@iuc$rTRrj5!WOVu2{`ND{ptVP?fk!GdH=6c z>finv(CdFNLpKXsf0&`!R{H9S^0MltCi>+Srd6ABR`t30z?>D!rs-;P6YUo^v}F?; zT6M9$R!>0+1%o0$LKXKp_iMVksxDu-cJ<%bq2m`!_2fkPxj`R5z}%45$XAYO`_hF= zkCJ>;Kg1NLTIo<1fi0^?e4amZCJa2Iqp7DPzyuJ;qO{L{9V5In&AUa<-BjZ3(&wRG zB*ubbU8Fe^eJe#$8bo=2}uW-K)of$Xmta%_;H?GO` z0T{kIp3MMVvZUKQ+^O$mlAt110|CiwGz=cGy97^{Gg#PSJILGj*nUB+{m9cC5S2Gf zNosi(1C#n3yIwE?&+@Jq_Q>l+0d$9wV zcbe;5+@3w8LJ`u=Dc51iln&?1R-TuJ?ql~eSX7VIg4#ECqiX2!xg#bVMGduQ>Zmnpvn9))! z3w0FYPM`_GM|n#2=j_Ck*bZI7c%DGgLoMR)ex06Ys|*%i;1nva@8MQw2Fy~zQg6U) z$we(myaFvXkD+pt0Y37o~-0e--g{pZ9Y8!thT3O@nZlUEsLCjxBwoPy>% z%i`tU`W6K3tddl+ zw4+8P=6Wo+^aeRdMJMMI!*?HVuvBo3=Rr)Dl`8@iojxRI^hP^3(wVpq!f;lvX`R>3 z5tKkGMwh*CJ#{JULO-L%4R*%kaGT`M6&IX5>jDa*%;Bp``nGD(%}sYCT)qQu9C}6x znbD!P!?y-qHhXrB6S`r|U4%SV`9-6w^QM6zak1;<%KIGQ; zVtCA~Dx2>pTz5$Ft(iTAvkQb@J)_7Tu@ollgNq)~xj?ZHv8$GpbzU5EJBNjyaMeUA zJ+uxoJ^YAGJ3Ct=?ybY-^NU~3;1`)`CO$smzm_53<~_dWncim@X&+*^PoL%zQyIf? zm1Vx4S`~8|6yDN*9CesiXNo$NlDw)-u?%Mup?nL6+5Pz!j~~}rETd*XC8^F3{)L=# zh~XQTSY-Y+qQYs*%Vt@FHYv*o5A_*Gb=R+SBQJ-(=~O+lK7U)`{$P!q)V5nVPP*5? zhewy8_|M}fOK)x9nYvHUzMHrwXZB%so5_zaqpE7pRTehr?X!zY??xJLeu340t;*W^ zkUy*MWK)2cVh)*yGG(Xiqs32n3l(!#?LVC7 zj*P>TQXR_dk)BW+m@Fx6AYXXLn-*9j(RW0fzgD{rKNDiHw;xdBM zwkb}>lr#J*jas4wFz>hTB!;DqwD8%THZo1qn?VbVbRZ3a(sGy3|8m<#0UQ(0ztU@e zv%9yuggOJWk^sa6h^~2@_V7Nt`K0~VdHWB(J2L%b6hQFa>`q6=1U;9R&Juk zvVWWA%|S^Z2@c>(fG{|aTLU(&eucpYez&H3`bK&O#s-HU{yuO2W_M3c&ip52_uHk# zSFd0Hw}^$hqbjSKpI?IgJ`2qBavukBqJlruP1E^Nnd{(t)Q$tH_Mb< zL$<8H*l>|qsHd$Lo1j6vZlpu5C?l!kx5`QgbR&=gIy#0~Mx>kVWn>+b>Y7WBESbrv z^aPr=eikQJXB$>h1j-EqEx+Xl-1EneL!{Zfs@jQqvZ=NfKcdZLfzlwE7C!y)Q&}e% z`W9nNS4uDG@i8o#w!ox5xxI@VxquA!vE~mgHjo$Af7_FY5P(sNz6w&4k`1zSpVoHG z_U$kVF(JcOp7Ntf)YV|g&JJ*a^V5!-`B#^;127l&@I|F_P~@~uxs36h*$lLtqU8ZT z(7~ko(2c{{vbefwjI&8I59Bd?TC?Tj&P(B zxrCJcsJ%9pm8YVruf@xqu8i&K!lTjXEI)4I6p2qKSkw`@ffHfkFl93(l!`M`()%C) zh!I{$fu|x{^Gli@YqA1iAPdBIxv6Ih0(RO;{ zm}+@~oP9wGmFS6ZqxxjJ3ul!3tA1XErW6!$h@fEI6>y%rS8Js|ag=%xujWQLNU&#+EU`h<~$@1Hd!FZl)h%DEc!?iu%Yi>>Q*qpBNXO7BboPLbw2ba5KybUrA|W>$ zF^7W`RhY&im8)&MuTAn3SW^!0Y|hbJp?6PoL48Im*=;;0Wh-li&VIBvB}3Ei1X zCsbI%nauaKme~EaNEu73j#LGuua^ria8^KWuu#U~A;k~QVgW{K#H+jpM~xb5DA_B= zEO}dytJR^)!fI|?SnbVKJD+uRuu)vhj`4z}qOoW(kL7!ysW92PTdNLak{dQpc9COf z2)Y1PZaIse6u;|n#27K@@uh6;_LR0Gg1CM%GxQb+9KqFWO$38XLSIh1clJQRP#+C8 zo6k8-X+I^HC<5j_ebBJa5J0awRhPaE9J^GQpl|xJQ|`O<)%z9$L#{8LKe|VWOwB64 zZSheH7x4PvxjmQ*5m8TSGJz}w#83t`Rg`uyQCi+`;rgXtL96e-jPLy2JZe;BvL;?G&xsG zZjwjtc)2v5*PXJ0emr?o;B$Xu=s@&WhupklQ`?oU*n2dsjF{)0YK+}7-tDikAo=(% zCq#YqkeOwNX;Q0teD_dyVSTQ}J1$52(@EAE!=2couU2~Hp(5F#$7N(w7zYjKm}>>o zis(~F;t!)Ts{$Qi`6-XY^0o4}Q70SJf?VRlNF$QowbswnIhICGGVqGWVlWf2lB7zn zSRF4s#^k-ZzHp**+KP>ByA4BZX+X?zp_KP5A$9-PqyyA2>pf-t8<}l~Gkos3+Byrm zB#1^O1)8vSSD%%hOm zQlR7MT`BXR+}UB7JhIrrY(ku?u)RQ=OTnvFN$((!yKY7N@Cy?idR-s-53ceS%?J9Y z(K4ZO?%pCP#23n#tB5|BR^AG~ytLS3j2Rf9eM+Q9Iz>R0L$K*!$EUJ}Jr~d^FIDNR zXue?Q#8<)PYDJt5$rCMk7PK8D4h_+KG97S9of&S8ghdT%IYC)VA?{WrPF<Zj3>>x({^pzf$LMq7k%>U71}30*Upkm7cIe~JP*sOf#!hmCK~ppRa+QL4L)mC_ zIb?g=acNLO#*Hv{Ps%ya<71MEPaG%_crz{w=CYDdy&~J_b-U=WXpJea}JzmPJn8>e0O9pWvJvw*@6NEg=k{`4eyT5&XwEet| z=m>OY4afxoVQ_&!TXZ#?Z@H`LMqRTzf{$1Yf~jYdy^OvTOQ2NN^2%pE(muD_eyeF$toAv0{5umKf(QNDuRhh8VK9F6K%;%F{(X~i8FaP z#(h+4Z;fzT)5A(dz5bUXU};cLT~+?BxEiA^KDumJd752NL|h4t&P)8-%;s;LPkK>( zE&Ej#v}L~jb;a3K^r9&un^ntdgnWHkM~Qqg#?`KM(YMax2XzpofSlR^i*Z*C&aGXm zM}g%NhJy9(6lZo``RpEA-xlbVT&^g-7S1kO<$c}Yo6jLItv`GodLy*#B}^-ok_@GF zy#Cqy2vzr4hqQ4GdFbgAoK|;j21stW@O=(qcPFGvQl0U#zg0#4n7SSw!j5kSSNH!tj*fwZq;SxuuAnBaO5+$xsHWxnHw&^^6_ z93m9)#?r6tV7iJ98$Wp*xH1!oDIjK;TrySshYT-&qnQ%Wh{9&Zb0ed~j5b8kHW020P4q^q_1(d%^1 zVRZWlcQnzAy@x>qO=lobUphssmBob0pE6nR`GOm41Eqalcqtz1M1Sb=+a~H2M=n=_ z3aXsnyL9MFWwS7LjT!HBro62MOY~eI63p6W5HU3hAWao*Bbuk8;z$f`JvQMk)KTgy z%0@>yI$6##*3M^?u5Z_w(opDqFO9&qtHdTAdYp}2TcF>;zf9tgeZI+{yPb+YmfQ(PIfd-*Ad&{)w`-X#%moa2R$j7EWBc0hl_eLA}7dKF@LBb7Nvrs``2?ZdIzw&Tixse zKTq+H7kVuvJSp}X3-F@4S>+W2rwLo1bW=eUH;JFW z(A=95@WPTtK!|@=s5iske;H?h`w6tD0pi%^81%2F=HK~mfNBB=@!k7R?{k3H=0BaU z@dr~6CT5;Kn|rYt0snt%eyyy${qVm*lmR(5cHX|7VysQsZf=6ToC&nQ@>crF3nNPXS`#PjlIt7+HQ^Zs7gm+xPYFFbJ=V51zF6 ztjevSx7F3v(nj9e9Bz8$L4qhD#@H)6fjV{YPCEL#E`cz}tO|J{-0MoV>`x0focPgy zJs{3FM$gVC0NGTt9n246Pjy%%=*5s->-XcZ`zmCO9xf9zVYaR*Xe@eVKzEJ`fd?aT zLE}F5q08IzBV6Am)LMfTbFr$7SFoq5;t*k)61?zJ z3dt}==g}8UPqSgDQK+^kE?!f4abzN!j~|S^$W0`IsZu#Vc$F^&Hv8|jX~_`mwSYmv z7k7$)(DD(%PulD+cQ#8H&Pd1#!yegCsnIYV2`npq>aE!$`IJ75NV}_8oRirhqpb#U zvD5W@M5?o+6~DOT`EKNlR}YV%m>LxX1-GN0N8T&;5mim-5p&=pS#i5Tw{|0AqTXTO zL-{l~q0C5xik`Hpt;~oZDmvPk>LZfCB6}(B>4c$3X96Tsa+)o@T<3hrmI&00E|@R1 zJAfg4d%|GLM%o3n7GC9!6wsmFg3ZYCjOu`DtcwHrz4#8q=(U}@xwEM+^AkR?a9I?m zQ3XW}*kTqpzC7@i;=Z^%H|6RELiKhbCi_)!L_`JlsOK)m-t907qqC4+l31BaCS+78 zo4A8ym;}qEz%0FolHR=MX;>onfpbAVnLO1|iF|UgmP9V``g)a%=z>b{ZjoWHi}kv4 zaAkdb_qPm?$oRL5^$xH?)uW70;cVU^jf+*0q~IO2D^V9heXj*bsmNvNWq(6)chRJk z8*@H|Cc$@{8>coc{ro1MLZ)!WK-h6U4doeu!<|X;rXDeOri`SeJ#6=LL?9Yy{>GMB zPvMx2aCt{UZTFp~*SS>}@b5cr<3ml3T}*J~h``MA_#6AYGhWdKtD~kq+~J|gKtX%~ zHY_s)=k(Qj(HHIrA<;M9L{n~l=MK(Pec=9L(iE`^A+g?0g*)%&V;!^k;v2&!PhoZ3 zI8c#)eB@l!flHm|qPMV~4s|};Eo?dLc;nJ3Y5jqg(@(!$^F1#eA2FqP#Wd&HS=qD} z5?I@5e702UN|kT+`KVJ*^KIHr9V$Nk^XpvM3qvCpbnZFD>x8UEqnxB|Ki|C8>^@MeM~f~t`)_?pib_6|IA?X~QTzAOGPMfU>g;XJ+N%~vPp=OfGCnYQ?o9fU z&o5NStatwa&Km0`4L>9EL8HIg4xI-o!j@P z)HmQ_qy*CEl5F-iqt5dE?oEIU>` zW~Bpwy8o{^0@(rX5y} z4Lps%z)a9(K+paWS)d@BMzg0Sz~v6Uw$R*wVoE#E1`tlzKcAETRhGR>$)`!X%T_xP z?Z3Yz156W7fN4VW@!Lg!2E?8ZP6F=Zu**9U?aL9sIy7Ko7sn>-yd?wKuk_3v3MlZR z{5zbz%QOMrl6P+6T^$|)9+H8)7eF%s9+JoJ&yE8kJUzdY_jkE|eCdl-LX8xofHoR8?FLaSWbqAN^~?hfVib*yH-Am=+=yWm()w2S0OOLJ_@H3+-;#pxru=x2C9jQ@-z;? zabPNhn*(DlK?en=hT&0rRl^F_#f+0N^2&8VSl%WX0g5#^62T{9&ve8;XNlh<9oy0m z;|$M9AwfIT#4o7EGeD^qC1^^G?5M$b*4?Dn>h$9M(8HWW`7Sa*)3S6aGh5t#mxt2gz%b4%PlLL6{t3ckF1)m$z{0HM`iaGSr^H^teDKxh)z zqWHGo=JAos<3WJzpmHt=@4Q@1okmcSp#?ec8}TBtI(@|-sX-FR0DSNJp>J=gRXz|# z^>;(M-_6-w{RYt3&BkZ7+VcG2iT&Onz?LU$qxp49?SAd|;gaQ~t z?-}gMSd$r4BvNSE9R!7QxZnrm1|F*ij-hJ^a4{Ap1)*0XdNz~2M}o?N;VU}Zog?~A z^BU?0$s+ggfy*s;tNen_N`sTwhJMWG_u%#;8D`ZP^TnLrcdeRZI_GD{AG@PZ^S;u0 zLWzEt^UUkh8KsUZ&y~6iF5ba@UMyuCT*3tI`&B{P=v(Rgof+^KUbH&lAC?oR__SiN_v`-DXJH?bk>wL?C;Qe( z+bTaotM`4d%B9oldN%^^9oPMGK>w)1$CUHW+_oQO_^a#(Dt9U`zZsd0cm8-QTh{Yb z)^_i$1t+tESGKM^3i$cMsQ$_8nVM@CaPPuh+zPNS9c0&$XC{Dnzz;&zkrLU!WPq4U;}k$)Gp~u+Hs!0hQCEe zhW{{d=Dz1C$DcmTy8YuA+o9YWU3LM6bVdH|j^Ox3&#UJQ#*T2aKae_E`if6n$%+pu z1CwS|Q&Am>PzCMl6-B7oUdVq^<71sGRy*nIIx{cQ%V(y?>dphi-?-QKbQi{&gWP9` z;$@rC9TKjo>6?jOTtWrnZzp*|=cP8T$snz2Uu=tnY)J{r*IgGE#KtwnF7v+56g?bV z4JX#ZxF5Dd$5X8ZD>s}~!t6*3E6f~fx2PIFwZ`5wAgkB%rRSxr0y~7M+AE&K!+tK7 z&I+IMH>OSf{Ys%nx(Ism_2lzDkIeku+h*oZf^}}_)k$C?;ENs!81yMCTYghntH}r% zCwziQ<0 z&8^Iof`!zsN3x7~;Nfn%{<9R8WJj8va0HZpcBAA|BaACLrbcP1eBUb|20~s>Kc49> zCVso0durXPL$tcapejN&y1tOaRT-4Sx4wkok-wfl$A^`IUjmfS2w1`+olWdvkCi@YwvjO9j9{e?K+@$MbJiH?V7!m0O=z*jQBh zXYQ+E=W^bevubLl1N)P|bJ~Dt1I_8*6f$5mV|OlkXMFOvh5cw}E_!D-(X>U z2;oXT7Iv?tS{5JiWq=u!*Yif4YJw|HgKoSv}4x?X6xyD)K)EMJ54y+Al9 zr)cJtBiSBAC=^h!|CpC&)2k-$UZerG#1Bu`;QqkDwBGM$PkYi#kf+m?*4MS!Ih%>VVTP}_7kjpxIV+6*<<5Ft_m2-}NO)Bx5b1lsd z%^zSXKZgNx)I1bUtp^PW*4T@127nu`VdE9$Q9U@ZLr}W_@0NardIg%uT76pbn7vb6 zdjcc@$pzA!@HFK#^ls|ZWBRPt2!KlG3qf+Amt7ApRr_#1#C33;<3Rb~kj0FIy6S=x zqZRBT!_y$(>DD^w)^k8=Zd8M|_HxSOK)CIMB@M&o?xZjB0|)`b`qoaK1D1L9bIHyP z19tIuG*W)nhx^n&_M*0paeQr&=Wfe#mKp!`eN5U_bsMfevBsZNlvt1-tJz1mFuU4* z=tslqQS%ySt?HvE=Qkc&pEXzIsRss=%I{Atyn4KrE%tfJ&#B>4dAeVH@PdU`(?)lw zajkY%hM!N!GgNw!@&nrZcbyb-v&_vgxBEA~Jik^yI#8YIu>b9Ho_o)}rK0CT-ORG* z-MY^!bHuTu1yW_-(`%r>1IASWuM3YlQ!+o#o4xYC_q28URWGqJa{tx{u$rY;amN=z zdvfB@f}z61S+}hXboH;(^x18M{`)72CyllX9b&e%TboYY^!{*9r8i{o;)(Z2so6 z`fJz$AvdXj#X9Co2vk$@3kj#g#H->u^gy?{ZA|5)zFS5_(l>GO^5>W8LlBY!cIyXn z@&~!nQ81jIvfC-mIT7C@*L6>r%cujSPnpU52ZpIpxGt&CrOiQTo+r|BVn`rklU=#` zG|!puRt?9}ZXfWs@;y2RMkQOv?M)s04$uB(EsZ3P+P*Y5Fd|i*bdC{>1SwF>HLH{a zx`f9z>8f3gH2hpwq$qugj})-1bjX|Y{&FcCIGQo-Fy5s~>4X7MFYfUpdG1(VE20a7 zo5;s&w$XZGQt5>zSSn6zLn5_lc2J6xE;G&t-gh3Brsk<77K|sxvmgJLW!5pTe<7YKo z;b0a!cBehMf%$e96en49$0jGl5D}ttns;67;-^G52&vgPh8M_F^Yc+wYhli5S)#se z_OJ(>h&nCpBaHZ;?&ec~olUazv9vyOXh)8Bh$cJmGN%iFcAR&U*uNp&K4*5gCcxh0 z@9P;Dg{IN~e%Vd}EIz3eIGuN%mH|aB*nyV;2{52GRlPe0{W}NN+{X9~=>~8nyPWRf z8}xC&(cVFW?l{^rV>=YHe?q!v9s>QTrGJ&?|I&B&ej#Crl8Re9Ms{u8 z)rB1+n+%-HfRX(mCq-3Ch#LZ02jmzE10nZ_N@-hLzRtF)TOBedqs5{Ge@bl7>?<%g zK=yO4kby`jbmjDd?jcG93lC{{Q*!;-wTP>kD0JKNkz~=ASGGuPv8+8oWWUr>7fQwb zk_~1THYWH9+XfwqHUu@#Tsw1mQWlWo%Tjf6 zYG}^wuF)(-2}YcVZWJGW*TwdKz_QLVMx=$E=RK>1>xYe;G^Zk7OAa=r-^$J0kZ>Ly zie`y7K5yiLH`ThA^+2rkTK6$FIGA{sRT$SFJKdyQ#mMwnQxy@^7*9S`il-siVJKZ| zmoHG>nn;rE5{&KCQ9|=4e>}cx$xFnt&t>`bG`EoK{vdiO{i!n?Wats&d~^@& zEc5a@ltX$9HLHq3t`p#VYNc6+*aayd4nvZeOGrH?a8Qr9RZeg|uS^HC&yZ+jH7TM5 zo%%@-w3p4WV|aj)+i16FlbJ~%{Bb}m0L(50fuY&?M6K^bK|z$r1Z74jdHZr5Zo>kh zdoBpaB2Rlz5lhIWXBd`}t)b~E3a3XB%umB-5o`gSba?3T*H~^WT?gc?Oo^+^>p6Jt zFqT|MUp&O>F_BV0v!dZ)Ad2U!qAF3(Dy$0XTL$QU+|k-t!;XOEa+U9<=EVG29M~FS zNvBrj#Mi=93ws3M&P~m;2>iZ;x$)kIbDp6v2=S z#iX!*_~I+piMNBM6)B^T{qSGk4FVc!qkFwMWx5IiZrxEaSJ}SGdq_!D-e^t#>`;_S z-%3}O^R&WCyyBtIxhGd=T1&cQ{B35ubQ+t0;FiDcsbp!F9X~t#6V__TctDbfxZv zviNx2WWK;C@lJ`3`1h(l)A84@Yxnu9zoFTWUrewY@V_?_Hvjbbvm2M1dSk7o#|&0( zIkaC`B=K`k%%v+{Me>gAdmAp_pJMr8WIAK1SIOv9$>XVqbvM1YXP-JS3|fzw75sdQ zuAjdAZ8%0x>dT9o67u)Xm@E57euSmml4l-%`t1@f{!`uk5Ro5tQ}H?bm)7MYuI*#? z&6*j^-#+9I;dOYaDR33^OX~7F12M$eYUEJb#2E=g7kQOf{OzjLvtac_*6AS_8^k{< zNyGJ*#x(`rX6vYjt*+@)Ui5L9h6@LRo*-qj8InFJ0-q#V*pGf`ml{13uLOpuB9`^( z{nlOwgO+Nxq+rU$6Yt;BA$s-{PW%b}2gOpY9Xy z;moaDH@G6|ue!Y!h2O|5NU-^s-35EVCSQ?r<875k*imzCpS%HQ;qwuxLS88Aezqre zBJ+r3FF;X?4o%d1W^L ztG+eDgLv>ylZ58 zdQ*3%pZ(*`o&)wW{>pm&xn%{=M0fbyyL%bGaU=PKjU_uNuN^f8ylkKswR0l3-UROB zwhl(;PRa|ok4Ju|yoQD!0H*feba*G_wNs7y-%jNJku3I~@~r&Z%Ldf=chpM*h2*8=3WdHuy-*tnX5~@dDr=8^H=~UqP?o*ZpPP1z z8zn2H2XcvV^6(4uF^Ai0Zm9;G#5(o#mSm!9`<~kXx{A*|DuL0It*=mfh=rmKFnp7Jy-psOfi#-Z_o17@we@u zDBfv;`UmNYD+RufRk<`sXVlk-V}+4HnU^{omZc97>_MNvW7ry1q*- zC=JYjz+i&&XUd2lUmT8j9Ic=Z&dn}e0pVNIf8Y}lg>hj5R}5|C0gSl+v}SB$nu3# zY{c^L7S}^8j;YjbMIB*pg4=#|=4@0!xOY6QYyt#=8aYPC)deTK?jrmVSEdjU#JWfW&chYqswd1O*5WM-N2Wr6m*qqW67YakHU zpc#clRdCLyO08o61d^J)q}Y6ru+hk+LIgEJgkmqgy=FB*Io&>eX;cAgzJ>C?#D{9Z zb1qy98|l9O3ng`RajLYb_uZ6;fAe%dyYfwtflc$RGFEa+D|m0OT;CR}*;*I!le}_Y z9=2V%~2d5n47{^RF>W= zh^st*r+-3wdEWe&(u*voU-B=Td~WK!3cq9}w~`&NqV-ymC&`yt`;4T0$L0Ed)jmSs z``1s}PP)DCE@>(Hq4MkDs~;bJioYLxFz8!;VLU6eXbamL6IS-F6C2AP0hTq6oXgqMc!O_7CE1?c&EnqiASpJ zzArDvFJCAqDL7U`5A6PMId|acEuth|Y)gWY8CJ^VGHLly_AWwP^dwyUE1kV(G(eJX z4l1DAi~fEPsrWXR>DGlW;GBqxFSqmKyK{gdKXI6v5zQeMQ&rhN5x8&A1buO_Ywt$O z5k}xbae6v*FO$G`pzjIq*-XBXR&)3tVCo)T?`{Z7W5NlJblYq-m~K?lmHY}zPMJ2w zsa6FU_0zy{>^ih`+Xiud*+i_S6Hi{AL_S76=h>q*9ANX3w?K|$PSojtZD)!g*Ah`J zP}nHN?~_9&N7ZtGPTt-vit1-@6rQ;(qLh9pvjvmMYvZ0rS&LH5QX`3kwM5!SFU7WU zU{Pwb1!9HgBp$h=EouAAG+7S^B@~WxCmv<1Bi}~it-WNw$KE#Ge^^*{-!eBSj?GF5 zVqiQqhF1DC^fUBu<^ms!coarUnhAn;Tbgr2rlFG6?~C#iYJ}a(`8(~(B{i54yv+k~ z*M^B{sLE2z&C__&uK{6$)Cg(*#Z1!;9IJ$htj-UltnL%P^vpgE^$Y58f#DURhN%D} zMUBfZTSiUh-6^gBH0hw+B0_$B?y`bsQVKOlM&oq^djDK(?w7xpqW)cn$-6piZF|-R z$Xq)HI~)uB3;P9>lXp+z9n>e#PyU_r`aLKKl%nDiO97a78o&_At_7wf3yJ}Iy1lyg z8emU1wcG?$cNgQmlj;JD>6`t)4ZO2e1>C@Q$7aSS<|if|0gWi&MS1$c;&0m5{}*ri zKj8rW`y=vSzyEqoR{rJ**rcJcsge5UQ?hbmmw{G6Wre0Z zR#KRkiwliLak9bLPLvC6tPD}a~en%d?ke|t%On5Qbve;c-Y6+>W1l%RytgVpTn zy1pjiC3jOvQ(c5)-UAXs^$)UN9|*lj0fRR*d@4^-@KIdyez?JE<aHL%hys0D@TRnc$Co}+63g|GqDJl94 za!+-C@xIP3wYd-=W-G4ii2ABc0rRh==PR8aPQw&8{Ag1z>skP_2@~lksi<#!O5>kF ztORHj>%A9jsT9KJ7j~3K_59${h^0oP9UY83SqE$r%Lb_7!;f;Vfe=Qiw#O9+pa?74 z^aCaX3X+?cJ|tcVpOhoC7~>(Gr*DH05w7VxQ6@H0uAG|1YIHEdF9=Xp7oBn~LdP2Z zf|D|ekWhudyKehnrdBYBpL=lJVBVI^=P3p>Cfy$HsAtY;&eduhK-GKg!65=-QrsZA z6JQR9p`&C3r?(cx|BW~U>6Xpl7zf0QPqR_#0rv&Gqpg z24Z(`JKvDey;}c~!ufk5k{rR)OipHl%P>h30?>qloB}pZU*Lbup-g0B3|;L)${PHbQk#L zMotq1XYk`Mqg$HIe)IEMRq3%}U%QW;%Fr3SaHmeY`TSSC^Un_aI@p{?JL$W*sEPG| zx3p;fPPd`3O6l8j;auuDrd2#muYvq*bpF-3=qqoSl^LVDV|91B_1`q5ATDxdriuNC zJv%TT`Q-ZHsPpfw>KA&o!tRT|UaK!TL3>#veKmh3%;3=Id-?N>-i_R4W$865w*wzr z{nXzXZGY9|I)Z!^8@7G_^Ky><%}sJc3GwNBC+?eHhhz(GeZ?eDZ)Sx5C|pk#=yZQU z4g7#z-OADK*{c=GIhJtwPta_eeXtB4D4YNWJMVdjYWsh@HH;P^kY2llU@*?l+O*wEU4F-_~C zc}0d-c6zRaYjQeWI&O|sS8ms;e7fYT#u3!Jsks{HZK$mudwCbQWd}l<$r95NL=S)iQ^`0m_$- zTPxyiDMWdp!&2-H+3I++I`VSgeeDd?&bu+qZ53{iB4^;I}*MO_o+gv(ef|}lQxKLNOyf_npc##Mhm)jC`LWt!$Y5 z`|;6PqYtudoUNn*o3Ic;RzkLTmSy^G+ zx}{x{T+<2;OD^*APAfI^{UDAN6nXlO2HFQZVW{& zP%1h}Q2ojcmwqW01lxp}nM+#1bx()L?$1R5Ft$g8i!4E!ASie01VQ`faq3YSbs7rn z5R63OJ?cDOne&)!1w7DZ;g22j_ec_7o#je}KU zVj9fXIDtrPzGuzYh9NI`QV`XpA5SXoS$|QHf&qc>EQ-X~Wi=&72`2~kROSm=%ix#e zSq?qcqd5VDKq!(Uw3EU%Z|OEIztD12DkX5}v@x75NDEYK%Oe>djNd$3niFxN!x*6n zc>#*4aip17B!66Usw}mK3`8A32K1NLRPhv-P@>uDIR%!#qQT-gVfUJ*9yT8i0gx6Q z>Ek~j-_XPFG{Pm|vXTZ?ckWot>K0~K;1-;Ckp>bX>XlaDNpH?@ptoTCN%Y`R+V!Vx zF7Nhp$+blI7R|-06p}O5UdFT0>?v%iOZuukO4}`!Jh~x7%e#?*a@I`DH_#u)njM)mWOLxQ}?{5O6~tTyq7)xqP*BoxJ<^EygzKO!5i7n9-*Kmd9!V?noJkBnS1!_eCq2&) zpOj8YYFUsIecNc296nf#d5efT8@e7Jwk*9G%Zzu?qsp8)jG1hK7mK4@ky(O}3tSg; z5!vh8ae~Vgh^xSdan*yb!HP|v$d1R>u|1kE z6uoCjZex|Siyx~rp2_8jBMzTB62U<2*W@)@L7%vrSvkZi1T(!!a@8d|C$4-KN0bcUZLy;LYoHNtsc`9yxEQ^Q$8(3_c*2QUe}~r4*7j`#H1~#)J8d4_zvE&}Y}oQ@4^5dm(ol_lFBDi1bM*5`0=c zWR3mGkj|X)t>zzc`jwS<%E&z}XU^fBB`s_a*j{$1Jktn_jEnr7;HI87^3L0(-QU|u(q%mF%f8`Wy3qP*i? z-z+B8518qzt79a1`PsNR5L^fjUQPi?Nrl@+1NDG;-PGLie8;>lIJj$GFXS0%$%~+n zFc<*4-un4#io_8!8{LtL0H+&2NeTg)%11HJ#qRQp60=3kGfz^$tV$m4$YmKz2V9W$Xhh_3 zE@`twP0x!S(I8fnf%wZf27h1P;-HDi1CP{->j$?nWz-AHG08$89uCyq3$+whDf3Ad zjmoT4v1FxtH|!jwbuh(2q^BSk{Ik0lZcAMosCfEbTnH#H%qQ@!Sn?71IHjW+>>!RW zuEkGO@$mL1L{-4X=H;0Qa$?`!0O9t}4Sy3RMW$cR1l-UDs0L=i4>X+ZKwXi5!rmUqw8vnU7aGeIV&tWwKe9OaBR1 z`IZGWeNk{$cur`fr>~xWUMi1PA*w%+D1;*vR9h}hr}>6Zs|%DQ7pwe;@^psU!PoSI zC7zJgS{Yf2i5-Zu3-_`lYa$0zow8$4qbPcrFpZ$dm3-5X@7^4|d?pmQ#b~TYef@s( z0hXY24;)gz{MehTSt}I04Tob-TJ=##Ln8+dN0*FKE$_8tQjl(6oP6exu+mN*jYH{y>Cu`e^TcHqm}b|+p&h@U!Oe6Z@MrYt~kGL=?~|6 z`z$@mzH6~_>PgU@v-{o)RXAGs2X^k8JJVfZE)f@SxuC)PTR_=`e7*FkY_648Gp$xV ztCVDMmA6j%#k$KKs;7Io%4G_}7F_-?TK^#Vol|>Vsas_MdrZ0{^bSS))F1PvlHLH*TM# z1*yS2Bet?coL5*9Q?|{6ALjMGBqw&T`CcaZ;~3@->s*U`LUM+8vV;xUVwLz#r%}$* z^_XpL?OR;7OrwlKM5_Mht@NxGxtEGoX&EaVrnzb19t!*0p&r#LidG0hLeNqyjuoDt z`2+uj?;BJy_Bnronn@PVdG^VPG!9ov%Z*KDGWeHX!Hs&1o`h1E>M=N`vO(iBWB;d@z59}Jm-N{4r#HO@RE1%I3f zSuU+?LEXg|ghyD3Z{W(rv+)0oNdHw^{>S;ev-xa&H~^?f0XeT7od)pOyW>@WqwVb* z^$*-85W7wX`cYS?xjP6EV7V%>Bt8j9UIT3GYJiQMlh=@&-}sk2|Jhk?yVcyzXzyU` zYV+Nj|AcPtSlheAO@JJ-vrq|)KLhgo4`KfMvHZWnzW#HB`7b*g_yLHtmN}VB&{89i z^|Z8%jT3RkhKA<5v1_8Sp0 zbiYsqii`WiRZ$ic1+}z-%YJ%OOH0Qa5NYx@ruB@DN6f=sVIa19_j*NS8&u|}CYBy6F;dr+d2wa(L%o%Y3mxn&N~m>QT$(cwkr&JWv$Ato<9tyxw>eak1UBd5 zx``Q8Q?gMaG7S1yjm9Qw*8=i{Xj&7QTWD;$7<;BFZ0m4$iq-}DMMTyRL)~y zDvq2M8t<~PTWnRV=Y|9iEc^hlZJ?bnoai@I$UK*p|PQ5i5JIe!Yco^O~d824Mdg$b2>az#mSp3_tG**Tgh~|sxvw{ zfPRQIHuWASx*5^jqHWjWZH5vQIF;~*>J-`jp!4Er$IZ)5SIZ>(?xw-&r1%%Pwy9x} zumi|cX)L|m{tP3!Sgm>6jF(Tz>n!51UlS+re|3>L_g%a7PE>x&Av0jsf;>nl=Xj6e zcr{Q2;d5SU8e>Mgq=4pLBXLO9J8|l<`u#Ws{!HspsOpDP zpF4@69iMX$->=IUoWJV0{Ylkb^@_}WhvPv(ttnQ0GpEGEZ+;rxcXa#Xhv~dqo3DL4 zJsz#GKmFilFZE6Ns>!p}l1GU-2G25UoSwBm0hK*UmgwX@^PwGoN5TU)!ygUU(WTyx6G`_2pct?kJV3br_&q8 zUX1t+MD}mmYDS(O<@7t9?<_oR(kuFs%YHpxt;idjfaFj~d0gIJ^osRv5X%UylqPQY zNts%CceOT8PlKge-e9d?$EOwXf)cH4ypkwtp$U*@+r=*XrE6zNz=S7on)>8DvV9Ln zzohb>74WN&UP`B#<6x}1){IL&>H=1VJhoUoM(-rCL5%@8+Og)+=RlF^3a^TbLZ=Hx z`G$}9W8*D-kgCIFT%vRdI1T_dKB5X{g_N`2QuD|awHZCR*07K4YF%^8XWG0DpWC@t?iGw<$7?JDx$lh!JjrhZ$QDU@I69`DsOY`Iw4=#{*m=s=9hN?DU+x0HgFmU{uW4He~5tbs?dlt zLuX2rcCub-7o^2%q!TVKr!f%8rv{Nwl4{4f*87=a+#`p3+W(@y`?M?Y5m@0i~Vq`yhKvhh1b(4=YF- zQ0#re$UbVG@$PY8tf+PZh(>Nuk4$BgrF=c@(RC1}I=q$~!K(QZTFb z{XBMok!7JEgS{2!9ftG12SRzT9=LGrjIQ7N=h81MoSR^KT#bbmS3Kj&$ zAadp1Y>4RI`%43He5&5`iGFrgjy=-)&W@#}-zjX0ZKwQY(wfu&4$zlK68ZrZ#;HOn zwe*1+xn$e8A4X>!Gu%MdX>l-PZ_XsH4fuWA@tOpl2Ip>K7eX^v`ZI<@vqW& zG`&-^z~U>85(#%APOlWJc}t{NK|u}@Wf@j%#w>y7Hs}ZNNwTMFqQ11uTZw{Tue}eH zDkyUDzxAM0Gh(ZA8~e&z=vMq)S|?C*iJ*$1TkQ^jFzBSa1)NVkR?$N+f)FPnkgAm(fsZr9ZKwzZIxg}cj@URm5pbbP(>a^G zaJ}pg_sa{+3t4zk+5AU)Q}my9v_9+oab`dF zqi?Y_AEcrm@jMM(eQ~qVwVARl^ziLg%)U9!mf-3o3z%`ufv%SE%N_{YRw)Z?O^Dd7G-nb8?1jFaZy_2bQf-kay8m}jLRgk309ZcpuNj-`Xk*hel zJYwNzKD%Xqy-IYGDS+JK*=7(2W!KuSmzK37Z9uDSqip^1as@4xW09W8)eK@nH(wYQ;)< z4w8YtnG$Im;i?imdsS@Mg_kU8#_fT#`7n{HR?g(fu`(OD%X=qqW)rD?=+sSWCBA`z&#A`LVjbs5>tRx$3II?057Bv&|RSPR0m)* zdw@MhKy=$W=sQoyy?1`oy9Nfwfvyuk?*fkD(Xq$llM7RT?mphRhaWxucW}u6)m8k@ z_2$pt0LlIIr}X|mx8D5w9^SF54_R56>1mi*0U2u&DUnFR;STLy!nvA-T6+42lJhI_ zGK|T!WD6kM)kH1()2F_U(376>IwZVs&mo;!y=W-9%&TT?VnWx@Qka)MY{FECtFo@db?5 z<9R?1NIJ(9%z2JTmo`4N+IE_^#;Vv63aSMWGF3BX+r&DT0hhYn3KLOapH%N8pts#R z8l?jwAcdzfoO&`IF^{Z$)lHUPD8>=5`=1;vGH`f|WK?oMAA>P!#Mr#_w-iH#5xYTu zS4R&+2OtitCTCJDs%wWH&(a()h4*|(oU9bG7=C2&rOJ-_$Jh|2^4dB#m#~^k3kYzU zyDzA$fGWOnlgasp%ZWF>o_fwFD~UfMA7dt{U>CcFlN16qO>$a0E?zdg$VgWB8jrZ* z_F}Peg+gPKuq>s6CXq}!@&`DLO_juFlZ^WDxyH)VLRT}MOEc6O4605G!69$tZj@rM zM`lYRg^M!=kUVm!B4DYFk0*IdaWFP{jtE)j1mTyZ5Eg`nskcEY*5H z7y?@x@x&z+9bC%u$?rHKl4AoIA;2f@-NqrCj`KW7J}&&qAvfTr+;eAiZECd)IsK#9 z5etS8mPg%LMu0Um7>UJ(%>~t#{9#JZg>S=&E~ONl>zgYfO34CaH_tVc4=~~* zoY_gn1x^RF-_&s>e++t2l;zjMb^ReDj)oZesEI!nt1PTiVdT-90mfugb6eg-KPGe= zoGB&ud}ibiz$D!~aO~83^Qw*S)--W_TU}M}`>#x?fe!&{=(8=eMF>|wII6GtW@w-0 z@MY)lHXsay$8)@?G7O}&9c0#v%J4|=#o54G1eMO$C}+k^f#VW%)btSAXOi>8Fv^%AmfDF|{I&Ozs)a&y%n1oo6tpcuo+uID!ANRgb{)*gDz zxu=rfv=zs2RWbDo-ltCR<(YpcdNo)j4IG+y()pI9#`5bx*C~z8gM2FQPJVbb`|IwD zLHO*KS9Z6P4c=5e8V~+RuU=4oH{;vZE5kUH>G~yC;$i;wCbJ=Ki}&i)fv^wrC#Qbu zkGpgIB%U6>dga?xWU}|_$owB=*bj$e>e|e%M|-D)kFb|=h1Sr)U&hrC3)Vvc4mfzZ zBDMNciN1f#{y{&}kShHcR)N}{xq!7xyrRzEqv7df&SnZ`CKa;%N*kczk#1EyeC#*e zyMN@(5#qeCcj)!b;l@;{^~gOuAugh>uS-RVuoUh$p2oolU!IcO@*m+r1oQPfy6T@S zrNc|v_XwFK6jLQad#a(gG{FcD=Vu%P8G{dwtUGDzBYBG@Qpt7)ZTZvVN+^M5hUpB9 zihKf&I@yW-c-jz0B}qQAQO1f@DTQmY3B8sfvezBjMtm7b#K@A(KD@;t%v*>kaVZYh z+@#Fn#23V0vw3@GOeKvW?baU;1&*ftKVAiJ@U#M>9SG-NF9QcEQFcStrvwEVGV zd*t3iw>`JWw=JA)$>L(_`9EKKDK}iaXKwgH8b48O@$o!EmAWr`JcG!6MS|u>b3;=n zsvWWgv(AG)6`fp_k~+I_V<&mtq%nH?L>v9H4K!bI)$Ls}mDb^+0VJ=%x*br#_gRsN zteI>$dE^NHdmL-BA2fv02JcB1HGpHwyS~k^)Bu@W2cb3gS#&LU4a62p?(*V|4ex8 zZY|gE_MdhpDFCu&_b|{y?%gRr-Q6K;-kBI0o*ub7vpeGWCsy;p&WPhq3Hd4Wzht}q z0$uNvkl()j_~HHL`?ZbtAHS`Ac(?Zc^Pj@}U*lc>j|%f&@~m^v($Yjn&BPMmgP58o z5={5+Ke#K;`MH?|#W@*xvkEhEbxmz8^`PmWV379xx@INCWV7^Z*L3N08E#RLy^0#T z-T7v^xblj+scJx$O#xX3s33Rq()*X5)8PQP3k2stiAk%>KFcbroUS&*@7In>G@w~F z3k!A2T(#9bhlm&fQA%+=F)RFzn-Ue%ZC>|RtMnm*ccid7J^}Ns1H)2+PnX5k`=!e) zMA?N(!$`cK2>2e`#$zv~D~4>uTeW&z-RF~}Oyf5)FRWEr2!OK2e zEfrghU%jbSUs|PS*SuGbjDoYn2dDj*QZceGyM@$=I=Jw*IZq=##|f-y3y2DPwE_nt zJ3Xh+@_ic~X+F2UsXe3S54%8EUdDdKAwxL}hK=)8c`* z(SLBN+=F#g2&TwK6eDEVDpa6(gNE?-0(!R#YBC|Mk6k!RadKEA-51z;JHqWemXoVk z#iovA)I6e_G^*HSs-`~+30?g@)zUXA(eHu?XO1+FmHP}L7CVpN+i*8$j63hy(}mdb z{q)BhnaO%o@EJ~Ae}-ys{`*{Dd@O=}6ia*GXIGu7d?e+Vo4?w#j}{H>kv7(g7FUIp zYT%K2YS0s^@7}a*Cu(R;*n_1IZ`1n(?#2$Zp9x0Yw_uBYE02gYaUtJUsK{qP&KOb7 zrXp`Au5xJ}HUW9VlMlCy$Gs2eAF|-$upA{y_ki=Y0w-uwhS~>TBS=2wHTlc93VSmXuA&-qg2%C}DXk?Cjr9CC+XY7T?x)2*FPss-I- zJ#}CfoZ?H7ZG5Sw^%o>lL*|GwS~ND>3M{R+KSL1$jSO*x*f>Hg1a791?w7vCg_K0e z%%8x#C+rWNkCek|uBx=Yvm(*ct{od42@{2wp)UmVtN)gjBY&2%AB|Psh?Uwh9e1~g znd+}~ZNLF5UYhjfRS|JH);O;93dQTsYJ1m9*v<{iU?>sSNQ$gS4*@VdLN3>S_@r_; z!_qh;C30Y15>dgsaQvQ2uGefc?_n55-qsQ0GFg@OwBqeOOnT&Le>Hgn?{2O(*R*f3 zqnBpZ=MAK9M#9V^`4Z5*+Fv|ieX!=_&-2d=@=N;rrdkl@O%WVVzZYbx@)m1mxNBbT zA?;&%0QVfg;mIXXKi#W*UTOm(2uE~dw1$NO!<3WEj5X)2 z>Dv-$a-0bYL>H@Y4TJ?g%bfxSa~`R)`g154|`?YNNC-HkP%&fAmo&c=F&_1Z?T zGjnQpqp!E!$qj%zdAl>Ju^AYi8Guh}yEdw;AKZ&}LVl^9u@X(oM|E%q=Uc zs;g->#GU)GN@BC2ws}#3d77cYUG4k#b3Fi0!%Oi!o(P~Kg_ z!Ctm&=GFiLno*a7y%E-~}iiwE?8owFN4dvXpn4jmteMczMuio^{$T?2nJHDXX83Lxf#IeTO4g z>#*09v^X1Ti|3!A6%K3f#WN5!9U{ktq6d_hZBzGuYM@Z*zC*0)HIq)BS1Tk*S+Si# zT?bO9I%Nlpx^v*MNE8aSakPydDNuBmyEN&g!=hbP@WZm$aotjHglGAH zWCP3}k*a|#O?&!TN3*fT;@Hj<##xkMhHb%2Mx1xqo_c-|E0NzjtvLOuE5Vn}hZJ;p zADs7=-TK#qs&XAnW^Ju&TGJ#L+x26hs;S$T;mgzHChRcwc2b^OB}O!vN*851~O`g&t%C{`rTMgAEmv!UDen0?l|X0e7Wv)*$@u?K$#CB zGdM|!>}uk_Nj=HE;gi;|IdaDY#iQI43Z=PEW>?bh%+#D& zVCPhM4w_UNdgO`P%F6^fglPi&j=j9(K6huPrpiwZM{0k>zB=Eqp*`u_Js-bV3PUH+>MxLto z;NHt)en`O-<}UCw|I@kzm#Dm?BM`!^S;BDhb8NguPl+k}?nRwMbmybp_ZE&lWT%jm z=Id#y;vFZH`o|yo9MiZo)XrcBvaky^CD~MBeT?OiZSJT!vov&Nfs;Is${lFncc z1i}1DS`;>0<;Q(hpNcL^=A^Df2leX;EA*{biz5dZX!0bybXMv=%+DBLy-fzi05@e| zc>b%O!XM~!1oAZj8r%8E1-GMN0FdqOc?Fo9w{Oa4{_Ir_0m>Z1fyp`h3N2^HA+?&*QuPH97Cd^MCV|_O3AhL!NhZ*VtJ0Pa#>*bXUeKzW2D2F)`M!u%5Jang)N62hk#J#woAN z1=PP@B8Nv{@4Y>OuMQ2h50&WCwddfs7dUd@eryF(MSO5+4y#RVvcHIE zrO%zw%Zr-Xy0%zrUlxopj3$NGj2`05wDp=WV*!U?37NGbQ75xps|eKKPs`_{ay;7* zo-AOOKk&#!SD)b=e_x-7U>G??QikvXqxGjcalTYWf4RiDwL|JxzZm&h&pMHt5FlW5mNKVhYTefTHGd=?E;T82vV{0Ou zAxf=Gcvz8Ni@agYPc4f?B_wuTdqJ=Cgu37d^jg;TO0k`?wlMX5E@W7Pyt-CNPhQlu zUD`?sM^GRV({2UT9DA@o7?`4?%K=3K<5n-&@=GoT=1an4BZvzwKb!HgO%JnS#W^RY zAK8|boO4CbH@T?c(|vkIJ*CO^Pu)C@ynw3Zr0*RwnWWcxvd-J9y)f>?${*)!rD&>| zME)w_Kx9tS>L2L$h|+;>UA zcc1hDNpM_ua;X znmp&DQ18R{>5+N$zy2p}J~2-!zGqG_YW zoW?UW1(3-Y=~sNCn3T+FnrO#5X0 zZwgv24ccdUUK2rsWuK2n1qK}y#u>@!s~YyzYr9(&EPa;r2y(*R@GNLu?%U#v-?T-R zpMwH*%NQdU3t9crfyV*_TB8Un%gg3SQ7dyDQVvW@ml4?;E1N~vWIYXe#xG{|HfOlR zLMxC0J^p(Zo{y5L5s}Uj9uE}rDc^4*w4Us3-6GI~8s@B@Kz^aZB#lz8nuIj>AE$rL z@2MHw|M4bNyo-jujgHd43E@p0<|(S1^pN22ERqpLzALE`A|5Sr0 zbV(Cdp-0FcBf!sZlqaROOE4>ZMEEC}tSY0uO1iU2BC2KFO|BI$LkEV?Nv+x+jyUlN zyR#o-GFkLM-BP1I=@Fx2r&Bh_iLvBsb{V}q@0tX)V*&#ulU zY8e^l5-oNF8Yrl2c`g=YPLop8g`m5p$I3C^ONjEWo{AvUpFiAU;fXc&F)OeX?gszQVdk>;#w!rnZ1sJ!?$)PFG6c zx4IN0o@Ulr-1N`^xlq5o2f-!B#Tsk|`1C{rl^DHyv))6Xm!4qyRln9G?<1xRYsF7Y z%vKaw%d62yJk{q!eJwujrFX|?<%|hxvotbCnzA_#sh_DgfA&0;MN^I&)#BcMFO1h2 zdH8mvn7(5M%e^1?xP^>`4t1lm7luXS3VA*-sXta&B$~L=_Tge>7&YAiFqLU6Hy<}V z=hH>m3R7xTCMYORoy82>C2~Fom~|Qy4JA{BJ$_Smk6yT3=rytCPZ})BO7VS zdaQp0EdgW(M6$wZNGkMlR&tysCk?_P>IQo1%%h-<_RxA^MSzLqodU69`*iHLu9+TN z>Sp=z;gnfi_LSC%^nFiLz>%05a!O+V67_A4rma1W0&}9K;%$>jb4b4TI(Q`1(c`3g zaHs1Vb_YjGFlwa#DraWci$6>u3mmFuapy5kHAR|~CUF*nBFP#({giJt`MM(HX)qS_ ztVS)$-&YQ@V2&-b2gmu;6{)$9#lSd29{ZvjVlK4mF;|K;{>*{`j&*?#v~>73^7`VX zpWmGkIi>A&_4x!%vKUJi%yXvI|1!CPy}qpHOsUqef?3EC%s@E_ZLdRR4dLu;ERv`Y z>cI|-7%Z?a=rutiW>;($XwOUWR-KS*u02^}N7>GBtjH)%qiY>rGPX?Dtfv5`uYn)b z#x+;>*+jNLP>@A?oSNJ(b&aRz77+99JH*yT=BFT!)w7T+M?#&z%yEj<84x>857$tx6WfeH`d^WMX8FFLsgPg`| zzboXx<7mwXNCTQ-Z5A z^6F5R&T!R4as!A{_bv77Jlv^+`+V*3J3zb)y4UJ(B9sSZi;qBMSOwe?&fl=oO1>Ih z=8raHTTbq-y45g5TRXu9*Rg8ZFda6Q!M*9SSSmmj5u&Fc?(kqK0%qiNpdaK3*g#HA zu#R1RYXZJl^B@)coW5rz535dIsuD|q6Aj=(moi#YMNm(O*2F&Qv9%--Vz+@X_-Peg zvUdx_f-qS1=xuH%a{Z1>JQ*d)nOp)pP4PHwslNkz9PcjC0q2||4T15g<+^c?7J<5UkId_KF%HPb4>zlVVTqDQy zvo?XNl=w(o7USiDa%IH89aAEg`q=$b*dL)iM1NYHz!}!ucE<#X)HN~K=>Z9`;ZU|j zZ0clCAd+~KyKU(K$1!T8xS?6TG^2`C&WZ>alTCM)w@|YcDk&CI ztI%{I8ApMho*m|8Bfb zAn9vIjdvOy0srz&d(;jJwu4|_E8B_us!GoUBCu<701CV0<_-S=rWxke_d6RBT2lwXp%DILFA`!nVO~#}ws&PquLclo+31bKfqnczaeZ zCN$iy$**s0ZnCu?7&usW#W}2t-+lYJROnu6}Yx?A2_N2NjY*8Ae2VnMyjCoqFo?d5aT-PagAnfpuZS^7ZgV{*gN zR(U^8)TNyqyYbK-mO}Ng+TWOgahv?kfgKk!-kSav8vrtm0Ezgo^OnUScq{h({01`^ z%-{)bh=+f6`^Xvt;(%B+f(X|;&-w04)el2T*^jWKHY%Q%q(|OKVYaf;jjBqqN`8LX3Wxs9&kBce_y(~JTC?4mwQH_+XMzMS!}V`6z`tA< z@yPow>xBmb5c6WRIgSV#6sjpV0pg;svWI`^&`L(LdDN8gs9G^4C|sLs`=cP-HM2>P zQ>u&vFnkq!uzI}xP?9cx?i|bJ*Yo(Ti=}#|6{!}}6w|9>7FZ8c86hcLhVBRzocW8J z!nmZ%f`esy1MO)ED(mSd)jZ4ercv-N?+7e2>0D`nZjAk@NH)*g!}##Qi5^y1s9eOc zno#XzuIM%So;>Rqyp-NWi?BJ&-mWEj(Yus$RaJrN+!0ry?PyQEfV6mVBenWNS+8L*L71cF@}35@#TE9qP0!<&+nvXQ$ zBYB4DO2azcAk#?hQHsWhz{n~-k{t$XjW_JAn+BDO&Jp4*4Q}@iuBd?!dJa;$kxyTc z@PrQ6xkX6(F9*t3UBRnHaCX$UJ&Xend#`_!FVw%NrgwYf*ASan%;=-Iusyg45J&RQ z8)^~N=Xyqe$v1UlO=Oef*^f9sq_#QI_g*Ofs=Wm22t7MJk<1Z7P41CMIEEFyLIQTdyyf+o=YSl8#34G`J3N8dyNt2Xusl3iN!9f z(m%RO)ke+k9YZ_B>s4g&L~X=jI3m~x1zh~MWp$K0M$OcJ%wlNhIL6q+aL4OtUQ16N zIaEXvv4ZQ|V61riqg27QP#SO5&A5r>d0Bo2w_(=C_2a!zxQ)PorY2a3(tlGrJVHvM z-5b^61KCQG5}Y?14;44*^i*qeV3p?N<+Sjs$RMnma_8X@l2~)zGAxhm;XqQ;JhyxT zcegDkG@4`;$>Zc%d?ZT`b96aT%4IZ$v2t-fTFt{k6_n1}S#Lp)ZC()g@!%<$M#x-Dh zKQOmHD1ti)ggQkfJJ=oJ6{#Z5WB6m~D%xfIT^ptxR7#X(uLdr%1ZR1XqO~vHf~Qny z)mkpx4GC+Qt4d@tNFPh1@&gIA_*gS6=wDqG0sy(~0lfdU+TKma2D&Q#b$LE=;mB^* z2mpocrept=H3HbBf`Q3-N2`Hg&fTsGART*qyPa0CE!26}^MI6*(w5SSmYsm?&VRKp zZ{MFE?2OQZ+bRtJVtu2#>DYfcrnb|uCtm^g=YK=Pb|XdrC-Z-~;Qk*qLIZNGv&)95 z18f-0!h-e>G>nu7M4|r!4a?j{!=hu=X*+0Gv1OXEp6-1^BcuDe#>tf(g}Y$bXw~(E zq^MXLz=aLu+-d7&&dlC7>YK_bt$4D{gXw6;&sSRvjXu`R^yC z5BhO77B+eveRs{VQHs2EO-QhLFVB(I++)qJ@7(me-I8tfwldE~>5Y4M++CNOgqOn& zHoaw;Q94aCIq8WdqR(*%m0sd;If0bY=r`7uu)xL@xq6u!u1NutSHqV21o?ptJ(JnH zER(?k6))q6RjzOLxu`xnB%Z|81yC0$@ zXwO6W>ZgFf0bu0cF0h}s!Nc9k;{n#-VlBxa{dq0+`iDL6X*>wYfi%K`c|=s0rf z4##01*jAfL$g+Z3)1gFnwta#214%!^3K9{KhajVVGVjLC($O`W`-cuqkIqBXf2Qw! zq@@*yKe0h;(Rkd!WX@hi4W|%C=g|$bD6acU)D*+v_nI-PhO1IAv!aW^mz2DJdBBby z{uLam1piSAjSRh{eMVIP$YyNU)EOB)dwgx}8b{*h{(%eS1xh5Hkb?8Ff;B5xIPOfr z!pzk0WCg%8aCFG3;aBIt@-EG5Z#!z3?wU@hYy6sCKi~B0ICMYZjo!cPJMLYIK!+375(>Npj> z55k&OrsX1d1`GDIINQ9ylg3%v1+5YX7LdK$Z`tlFK`&M@5FISg6e0KA%FRNkxNJ;^ zQz!=u=CuNXG92i1)qNs}RsmbDRbdhDNGm!G!7j^U>hazOvmw`4R8y0xDzlV8em`iS z*#kZ7XPxATdVDDnQ&OcUp>@gAo%6wrP{PbjCn>jBOkPO_snt`@#Rr*Y_{>7&lG&C7 zk2^&AHG_S1lv^VY!6n;bmh(1|m{HD4691)Xb;v7*rvQOc`L@=pv;cxz#XjTeosA4^ zO^c0_uvBN(8ADYIwPazQK64=!3#v{;;H=##1 zv9g;@6;@}-3HU>jh)IbU)w*x&O>mg$5Vp?Yie&2LkupBllMrR~b8&IQn!-8)@}$QM zbzA_qa0|JHGlY6D9DPgepK#f~N&Me%84y$Q?@i90S9ToHQM=3Wzk{~{`g>R6F9T)H z(fI&k1{|<=$8n$|GCQvUIAG@&H5HY%?v_$j*8uCa?WV}>OZE|EL2tAo1GT+x3vzKs}^B&D@-3 zYHnn-+YXrrz-6}Sc#AR%s~xy3(_BwmFFID0)@-C>QB-JdVq~au@BaOC^V{ut7CI&X zSTIKcWKj3__f$s*5f&MGL;w-50aS z2og=;3UF$1YT=YRyxKT-cV^Qpxc7O^(JaHus&)v$plA1Ef6elEe6Vb+E&cRX;nHW# zs-xvy){|dTu_8FwgfnsH92H!NgS`e{rzsyPft$} z6AMAC1j=3@Ze>@xeOmQ-lM)co1qQL(t8UG^S*`7JX=oJ>pY!{}2K7~sA`Y5wpvMJI zoRmDSW0+`xrGTf=ku2ZT`pF=^VNeM%&lZllxCi6%0)^mbmR^O0mh{NT=|?-n>$<5E zz?|(HWmgdeswFa3;S2kc^f2wFTM(1qa4^6WEwQJOx^32>HTXzzY(AfR>)`d3u zd~Us)hhz&g%$W!~7uIy(*7CjF54qg7KhJb|G%}a3v2LCpHr|M@?P+)W9sk&Pi4`T% zdaBGmF0N6&pn|nl`+LNet_*VTXCs_vtu*WGD$hcnd>u0&ojVGpI-q-xvUZKVrk-m^ zch+9*{_QCnjR^Cp%~??9QkO>fIS6`vkicWK_(Vgtp*0Jl`YY+#^e&4H&x(()b>CAF!fr@! zx)gnJ-$Fk6jErZs=v1H*w8FYnPyGDdlfI$S~ONhj2@) zzW6-9h>)L%^tG@DLlo4gv}TDnJoIRs?i0PJTPkE7Zx9sztsLTqzm#LYf5S~u+loc*oPpm{kn$?t z#=e68V(Ia!)srQHR1k;*jRiTnh@MWdQvL{bcI|XGR}?x8?oS)lPvMcUtsixmo69Zn zS_NxBuwYzD;qnXbC{cW>!#(-3&I-*)PBJ%S@dDa01J7-u{w^ty$1?)8#ICPEhCOpE z=S-tVmDxhJq^YpMv&@#HS}KL-4y7NXU&~2Kd@Aoac1+~mA?xujYfN1|(ZO)`p)-j^ zNmzn~isQD4`tG>bM3=^MX_W8Ss+mg$4&}Bkw@1vSMeelwywcOpq|W)WoTr)`hw%;> zM=?^OE2Ch}u7NnUm~*P1;s*6EpyM5N1JuewV+jhH8Q%B4SPAtYIhW*Z!_kaG#sUur z{%eExsb7j;yJwi1wV=X9D*V60Y`ELZ_Wd^EE%LRI4(KLE35}86#ByH{vNBCGH@^^R z1yO|fl=OobNjBAfh6!)vwL-%Rw#$ZOYvcIT&!SK^RSHbXcN8v4XVz+u%b4etL9;Ha zM_N06t}Z7+3rMz5q385kPMRu*=u|hGhU4={G&e zKnl?3_`BPq2w`pFr=GPxmJxOQ7m?%1Yv&k)b=;Cx6TQZuZIFCa--C{=3DK zz~cSTjt$%O2tbnWv_bD?hXSbD*|;6CPuva;y_CKk846(J2|(*)DbPB(>+=FI^6lcu zf}JGq+V=W}EU zU$^mJ>ixfmll?d4$pM+y+cjaU0VZskl@;w@9_&1uok^ZRDks_On7lHr0RMG#tQxHa z@Lv}flhV@l@0rl=r(3mm6auzuz~A-g&oLe-w(85dV`g%1`VDhNAKyEXU0N|xMIzw! zbYo~n(RPh`$+s8k+h%|L?zUPtGObcPS_kBss1DBH9&(&E3d6edLi0Oto47 zXsnjd0Y8PRif*&-%t921ylqo-EcN~J zLnH6qnS+kGH4A3foh_TXr{$J^NXV1YBfNyKxY72Ub`G@EbDex{qjdawjwMI<$^mD$ zzC0G=fZSUjD*LF;dpcz1c`)@k2Tz;j1fQ;ost6%jd*{m?e%+^v`I;o(%H4K5p=UGE zFh8)NI0!8j-1Y23cH;GSzkjEFUm!{HeTu0)*5%**`-roLEAi^V_a7gmzs%83|MoG@ z>BVEN?|h+!CK_E>af=UH&Q1|%WpJ^MiYJ=NY83R8Dec_AGIMpmZ72;2Hbh6j*F>er zy23O$F*gk=8U*IzMT1~UaLpMVrB1mbdnFe%70Ql6(^G}k1q8M%e|>jhaw%XbQeewN zBs_A#FQY8|c{GI%1v$yfz+U)xie-PisTz^vhr!a+_O8WNT{EKKrSlJ3t40R>9$ubj z$1q(_g0bPv0V)`ndrp_isaG^p1?mfd%D+-@MJP z7;P?rcXj06E;&4FI(7odiM&_)2U@d8Q1SOzb9Qlwa=x^xbKOkMF(G`yRXe{>qzt=0 z^~O6_{|!{0PA7gkU;E>ExTCfkqbODXjrM5VflqN;y>nw{Oc`c`!Nu{D#Y$bReSTwF z?4;vAKod}(vD=T8-zykxPRJFxhqFe0kyeHZs#^|UzTG6~LJjuIqrP)%=I+c@VB;MZ z%~ubWkw#ENqJE4eOa_S($=+zO(A?db@NG{W|fnY<);E^9a^ z+ucc8s{q`MWSG)05_p<~NUSpuHueYxL~)kdeMO(hIqDz9Du$)9wpUA%<)V2gy(|VO zpX>*!U-GAyhMcJ-8G-R$*y#5R&Q637g`XA97<;9E1&ci3$EseQ6HCmPFgo8Rqh~S> zHnL&FOW{=E6*>KO^x1t^_*t$rY%(Mf`l$z*=Va?Q;+v>zjI-+NJlUuuuVgAz1cz2f zUa;osb7wpcYRyVSJ+Vp|O}E9+*wmPe{bDUbwYD%gS@W1SZf1Bt5+-O68zChS5oxiG zWwn14p{>@OnJM%%rOtK6_888MQ?%m*|C1(GyNh_3?>cCYY5RaNs^h81xMbBNGuoaS zv4;?HP^UlC*XbgLI}#Y`)pFRBV*(Iy>tjNCWFMO(?#F+OmkG7F?Bfbmow#qTMfiUk z>izzixbj!b*(IP#>z@JPfx(Hp!J~h}=y3_#ZCWX5m1&uEyR2J5F|e`UzOMh72oBiA zn&?34=wG#3+iJhv*s)tJ4XFL_*rT1(`m?{(9;ns&|0VT+tNVY*Xb-5puI_f!nXa0} zK0}(NC5>QdVq*8VW6Uny%&N@FdUvR|G|)BJ7W-xsJ*%PutF&}IJ>$E^_l-?VEi2md ztn^HQx&HB=bG@!%dVfyZ-EFnk(>Jkv1q}A1l~!gZx;im5!{~hty2)*ecCTlDZ%q$= zIM8P+s(>@StlIqqc9p}=FjT~ym+(p(cMIe@B}Wmy={1rO>*(Fc-E~?wQAEwm?^Wt? z;S+(HR~03!9C15)`%}Q)-bgf+pY7!NNEbB?Fl(L~63%fAHgUK;(@z3a7Uf~Kf z4PKsIfyE`)b*TFuy`GwOu<5{7+|r;Y|A(qlzc2omPM>#@sVf>=`5F_vs(#%VC*kh+ zLixUUvYPv_&G7h5n-f19zH$qm)4T62D!Q-j+n0OQ(QzS{krOH=k`uI`ZksVnv~=~S zs_FJl$8LucaUFLL^9K4KNsmi2Kh*)BFKvkvGWpoN6lkNTcK7eB+$MZcltmK)PlUL=fkDud3lNn} z7IbcWQ5FQ8?5hXL$%$PiRLabjcvgX|=sodUn}`)3OFz5@->}*l@*aakAem>%?awN+QA+(Q-$4a>lTshm= z)Hzmp8nk>yW_3em^Bcfo$-q{9VFo<6Z;mSl`G5PwzfklQ=9ea9I_zM4SN(I6!S7S6 z%{RhnThJsGio;>8p{9$ku?0LAIcb&&goz4Ys$Srp7wiO<=ZkgF>)&7TbK)U~dq+Vn!0A z)Dq8M&xKMRHBwT;9?8pr88crBH?b(kJe)Cwi;bEL6*Bb&7;KoZRa3hS)wAZ3hrzkZuNFF=T_q5`ICUghXlx{>1Sj4ZjZW@MmM zaw+QvzPrCSa)$(FSanuUo#0*L6{D+MKHyMtOh!N^O=Lzkqty}>g6HX5m6GH64(92( znn)A!(%g7viV|VO3Tpz-09Fc|<9b5rollaye#Fb1D<`iW5HZ8WDc<@2wczg z!GV48k!~OdoTXK)DjC9~BP4~lI=Hf5(gRj8D|LOn{Q<5*GBw`=$|h?r-y9mi;ffDp zGwfF|P6?~S|KlwG??C%M`#*N$T8``@bU;?iw&QG9;m-ub1Mzo3>8RZ#Mv?_r5i zRd-E6V^wPlu$|YkA>NC#iP1JUPaDp(GEePaSS&WIsGhOC-f-iIMSgp{rndff^LAzW zhmUVZ5xiC_;^|_mvl43030E8awS9F1i4}0}sIB-=q5c3Y*U=B!Mv*Vj^NmNR9hD_c zIgZ~>RyAltS#ZW)7uW4_czS^(b%$&L=@W_nctTfdg~BV6AZT+=C-OD1Q zO;Hk8XHYYI?2zc;vFi#=8OL1L2K*EzZa>@#Bmb(gjk{AkKYU1Xh$M>%_}JAEJwQ-- z7CdB!DC!6~F&xZ#K26GPyi)zvkt@F_dO<$(P9E;+jjhWEWugLo`sz2o*PKX>;mT51 z$35e4zpfwV|5~}m+g-$(YdU4ZyM0kMg`H;*1ULjKc;rlTS zpw*FLX9TOWx?d!EbL_Z+5V}lmt;CTT;$}UrCAPlcZ)bD^0POdM7{o)vG6>UbAzq9{U z?1Pl6$mD_X8uxH7@bZZ$-9D-rn>5*RY%4`bU%Lk>rV9Kc5KT?|`daD}lL{(PSVjhm zZV4VD?t&@K66&VXGdMI==@}p=D#1+y5-W37O>UG5KHH4|fz>LaM+&*yMybV@ksyfl zhYMCqmwDk-xdK6IRC3|9%dE7DbcibWK(?1#34%2U34$uMYt+=hCPx=5U={e-gY}qD z0!tOr-s@t{iyvI9HzYe5o(t$JrS_mO(rkZQe>} z739bYFtz$0O2OJVavk_ok&6aNVNWQyN`ZO!CWqxA$X0LRq17S1zC)W}daN52-N1MIKonaQgu_-DD=Kp^;u*;D6mW}hgacw z1~sJ_YPR>a`pZaM!A-1V@t68LvK4+*wrs@#EttGGIz;+&FscD5&ql9Lvw2w$9hOhW z&b?6HV`?@C!c#=9mGDm8Kn7KJd8^7~g+o~r4N4;8iO%mMI;%J-9jd<@_SJBYS1D3q z-g7eOgmfOUoA52orH>qK=N0g*Q@6^CZ>c$@D3x(fompGGH@T`g2P$BCAAUl*e2TqK z!Bq1waXZdM9!Y| zf)A5*!zd6qc{m)kiVx8(jl`)&2o;PEvz(Z{x9CTPu-RvQ2a%~5&#PkQF5MiYCwr!v zZV(LPhJDnjHze#3koIyCDI=5+yqr(rj{G#X6@~(;|Z3>|?6bUJ!ND`ZiS&VlHpg6eqJ^ zjl*{d^o=d)eexACy+}3y`>PxRvD4G}L{{m1H*2DNzRjcuNq7KEbSW zf>Eh#b%Llctd~Bq#+1YOe0I!xA{&e0jGG0Ck4Li+A_IDev`Op5ae4?V_eUtdH-o3Y zFON!fdF4Yvq>J@pS=SBY;YXPqN31G@^~pr3l?hCEvIlRmd%sKGhM=9{EdRa!2=*X! zl%+rm&OlGzSVCenqbNq;1~-e@a8Lfhs0?mx0BDazKlSf-Vzc>Af%aXR{qL3!`vZXU zJ9u}O4)kzskJ;Ya9J}9NQR4r~OxqFRZQFNZNz%@wz2hfq1q|Oielp-v{%0f$;40hI z;k)+-@6oqI#QSzcc;xXb0Eydmm2F?m$C$guvj0Vd|Ifg<|K8yGU();UpMVtq%UhWbrf1h>ZQILgh!!oaw_0g`+si7h_e50`KkOeEZ0zc- zt7xieyS3{rqyOzKBNPoSE)^RPEaoyAZrprE%5$Olbo6U)D#IbYp|ko(}{<{ARVQQuT8Eujse~>`BP~Eme*9-SG@J=3%Fd2 z{HW!vU!I~x;a3rfq;;u%2ZbZav3!6G~C|dKqP7WYu9TI}zeDO6S-3LVvugdLh z`edI9UD=l6!L3G&jaxE2jcWRCB$)l&>)McPbP9FY3 zRy4!YzEVg*Rn7n(#`DY8=Rmz}<$NRN-4oTNr0^%EVy&D9Q*5<#Z_E4&QyHGH_Qmq| z-#Pd&_ip-^O{I(s{PP^Qy~TF&ZR*oP=WbX}a_a`4uScx$C*Q?Rep+e}j~t1=B>ivn3X9QsYs;)zww1gxXVnwfw90r zOI5;hPY9J+Ww#@$@*#N)8_^hRGQ1)SNr%-Ot6rf>@iOZQ%L+B#QTMjGDZo}fOuj+F zr;vDvE=B(RdCkoWd!Z^R9mCB_3_A5D8!mzK)|Pnd53Ik{M-zkfQo5`;cm>$;tbS&S$&a!| zL0_s^$n`Rb_`_+80V)z}6|qRnUB{{zmb9?w`o-DZTZtL{*uWCx8<&ZDMvfR^t*4N# z;mgs~5gx30TQ|YUPYwCmEJ<@fVrkPiuWm!}Rcxau z=6SG4B2@fkIEF!M=`&khKLRVXR6>TlGlbwd0`HiyT!xYvry3x(bs z80NiNkT~v?cvNW_rR@!jteSZG@tB<+5~X@~8H8zSI*LmQez|}a;}!n71x=q8v5mh_ zlwKCM*JbtA8&o1*NM3X5VgBO*TRTy}tS@Q+Vo{CYX!|2cgrX97$A_E48XK|oJPssb z<-id{ixL%}T-vZYBkHk%|C z)>8Wrokr~rPJ!r7Nm$G4TE^|EFM)EX;^Akdsn7y)w6Q#b%V7x(9XuuHBxrud=?R(= zg@vR9l51t`?|qmkVKXm*aY58`81Dy+JsrRxer(@9Q95LDBAN4BXnF|N9rGN^BKs|a zakCx-Le`W**_uEiBb7V`?QysR+a57GYgIb(NY+dPL||m=EEq_abpsJ?S3vwNHN8F? zVD7~E;~fJ+1%P)i0k|pYC5DYvWm}{FAL`yb9_oL8|9{P5HiNP6jD1aG zpFxa$O_HLLCQBg+NzyipWZ(C7>`N+ANUE`hgrt&GW2aTxwDEn7-pe`XbI$kn`+fiV z9Dn)8e{OTl^>|*_{p!RXq&i+;r{{m&z5f(@1q$FPK!H3Js)~myr9tJ5C#Udj59pH1 z(^}C4w3((DT3$kKmsMN`bWau)6+|Wi0q1$_`cvZGKsntqulPJobBqotpNT=iDKzeA zHrERFKCes~HwB!#Ca!iUP?G?Y*m9R^31;@ru~0&$NxQN@4v(uRAqfI(gvc?KqQNn);}RxObR$e7DIyq6H`!= zYjXb?$ztWmVX_p|vZ4!0I5o4%j@p91c`Ua$JQgdf^nvXByVEn>CO2MYT3@_xJ^Uw( z<%?B|)}2L1>$F(_mOs-HEp#)&*0bl{^-BmI+vFIWxJA5dnlnWApvhOB7aa=RYHAO9 zE>#F@m0}!!*r%hAvSUE+m;c-h!Vs*P?Tbd&qk6N+5MH2YK`2FUKT4R*zko$@ZSk9};er-m~c!>|TTvUzzc`p0NFBO7$dV?RL6OI6_UVIU9 zlKAvA`x5txaC(1?Lw5YWa~XvnKH?=$|N7=7PPiQWJn_`m$=PlC>eCh}j+<*9oUndY zo1UR-y3Z&)>^5!h@c6Bt0y+0+aUv~U?cYA%E!>~Je>d~g*X5+1+u_}7XMO_LZC%dJ z{rtM0(mR42JaJddpF+O9(}JzSD-j8&ccc2mNk4WjN-%of7?!Ha7!lWkal+oK z_J;xMzUff)s4_X?tSWKl6uVT%`-1V=Tm|)KT)U@YjY9n^)*1TH>g>IaGH5>~2b%yU z-|U!Sa^kMGs-m-%Tc6II6Et$4%l&#lEje#**|+`YW(fL2Nx}Jt60wAOR;Qx=E05}M zlXe##SFB|->Wu_{Hc>}MOfz94x zM3bpk#jpy=<-oZn+EpNk9Gi=VWpu&6-*zCcqka)3wFw49<{Lo$r@@eqWO*39f@Lt$ zi5Haj4D*w<WRVs@B za5H0P3MGG}YIa2)lQLi(*L9+??W^9tMV*r+(*a}$ z$K;FZdMO<*VZIc7v#5-|!`u?5UjW>x`b+5fUCpT-3qUM;BCdITw*@xp@`jU#5hdmyBUIig@ae}+OMb6GoU}yor;2D36n_4+JNDh=U4%j_Ycw{8DnNF&_yE$% zDjMU;d3X)0R8ufUWEu~BGoa+pR$`~YS!EQvIRw3^IK3g$&HiW#?KQl%SQM@5Ox!;iQqZ> z{P!JHt}hXNl9T-3eiLYCDZ@TPvU zYIb=S-mME-VLWQbJOybQ$t4#ohuS_Ljk47~5I>Pl_dD|rz~PmR{5^6bup8*JH$tQ2 z)3MOVEYh5|SA&@!nhMz$J$G8f+ftHOUQ&x?uC-`^N@gq2(-un!bO9KEXPxKrCv%yk zwm*2z;+kyjv20F*+31yN#rJoRY-!F#1a*a%jw}$?0O7%XMD2dotq}BpTdEZt+=}ep zWT_J?6>L$S8j_Q0phYW|(!zdLJkH)Ja&F<0TK8!Je`L?VCJmtZ z`&|9^66T-h>fibDKXiCw_TwN36%YDj_5)0sfhTGX7mbn2fr=-VTu5N1WmINm*Jl55 zsQ#_PO;t6m7de6QTN`O|4p+Rjt*5PhprdoJ_bxd2!CBe*$5=V2!2bh^_Ll)F_7YiepIXcKkJH_p}OWOACJPH~ALk!VEbl)iP0jLk1u zZj`=l^pnZ9pcw0yfq=9!PU*Y2td&(=#_4>U8xsjOX6wh6PYu;Y8HRq`Dv|UUvsK%Cidb+M}LSSu^&jR1H<7IJ@5Zyq% zIZ%z|xYfk_D{Cv#w!&%WK{aNQ!V4lAMzulsSwRkUlD&FwKUn%kMsW)S#*CPQrSJR> z!AE9H7s#|&pq^5y%+?>;JFB$no=|sh;(D5YIZLVNfEv$(57#%5r7hQ~{Lh6d?97V8 z=S;cc2kXb3I?JZ*62d7L?W^>pt-0W@R6FlHe&?5`v%v0(j`}oOx>9|k^=Fj9+U}i(f^2Tj;y<4PhKsMw}&@Ved@j#A_&xFehbWJ7oEE5&iBazL9c4_OI#N{$e z+zxtcyLv~?5qO4j=Q3yAEGkum&n`{iym+Te(hs_}96Ub5exiKtLy;Yt-OgcK?e%XwT|Ugl>U?poVt)WWV=}2n<=j5ejxZ;TxHG|J>KYZ5%FHRrSadN zqj^nKt+E~C1c zZ>}zOQ&~+dA~;5suj{=6G#BOYMHmqJY7=^T;yYk6gIYSGgva791AHM0&ZX~N!_3>j z9CKgtw@y9tHXw3j_!?wyXD4Jy#Kj^+NEwU8OvNWq*CW>Y)jlYR<5IP51VYI|30R-wYO*D9;=uR2*vG6bl)n6+jo3Jz2G5*j~nasoZZ zo_OpT|KbKjsdaB$*;gH-$BS^$1{$|>RtpoGJ{-ruWPt-KaJ3*&^ep5?F%v5@mLCCN zO%mg=x0Z=jY5SY;9oLIw$t^pGcE;oDo1X}ln?!C(bfLZo5L|{Fdo~_o@~ysTSQ3Y~ z!yjD$a4xHAIyLtEA$T*TtYN$PS3GMgy=HsAT?zhx@8qwL!z9hYRTqF^tP7il5M$B+ z6btg=D|h4=fKo{7Ro-*V{5GqHyoua_P;4;8K`8*1CFLWcla5xmI-B|-j^ckz1z!Vj zsVP%Q3QF)81#$dm&pQAL1!lLWw1Df9Au6I) zFQ~#-YT$v(p`BV^4z8z7`zy}i(LhuZD?IE*2UhE8vdS-3IEjcgb?CI{4dKT7pPChy zWzn$dn`I0~Xd0*k+~$1(Dr7=D*V`I?e&R|ZqHhW_a=>DOI*%k!A?m_(2XCF4!yS}3 zUEBUUfF?P96Z?XybF76BD8ZUc2p}7ahPcL*eM0?Xa_rw~^}i&?{!(o3-wE*zI?K_p1aJw2aJw3WjyJJ5&~b1kb0b0q z2FAO(AKv9Gc0B^QX=9JT>-OZs$LuE)U|M|RnR)8pR=;1*FZ^Gl;{Ods8q{hd7Z>|2 zMq9RRGt$v9N-#1vcG%Er2Yd5^G~?ouLi>!IidvgBBn|sE?XG3OD_5zB~j{&c3LtowrdplZdY_}A5 zDF|QUFMq-bof@zD6(aZ4Q83NTGSatP@1v^#zBlruW54cXkC*bfUxS%w!IZ*^%bpGyS$^_OR%BDzinsXb}xDu(V8w~EWSNLttT(?2Algu`1} z`Q5+PbZ9SgraO7S;8E57?SPtgz>{O|@Hf0O#2)BZ_zke)PHNjMi8&b4^Wb%x^wZ>@ z4o-gm@>!=KwZ779TM;dzZoBRrlXb{IOkCiqQ>!BCGv5z{Be-*>iPktbF!` zf+(@7MfUNRg9{}Iyz?sHJ=>_Slpyy#Q{lX9a`nzov)kkHG+mK6_IlL)^E>j=QSZc@ zJf_G2ifIf&fM1fm(G9;$wiD5gh&&r0n`lv{mY9b^hz}~dM$zR9I&akOCwq)OeSurM zlv7&#>@#|ZO3f};R&{aP?SJyZK%PG%p>CX6mKNx)RGEc2p;nO>XrxwMRMs4jSo(O^ zTvT*+U_Y5=(xpN}yloJm(mHRS8Gm%ttqrE+Z+ICk0*M)!1|52sE zK9c;tk;koCsoh}v@@4=ULUt~M3IxSrm)4BQm@KKK<#oLD>5E#hug*CYUFKq^8@M#J z+wb=%iG?%(_{Ck9yX-we2msF*HL+*Dn7PuoE6?OmjrMR5`D(=*1q~)1NB9VTn&-K% zN#BZ~3sE2*R4KdfMbHKK2?b;Eb;|sm?MO*NX9;9Tf&ts>xct%QXXYLlY_A4c&k%C^ zmmgLD+o0e7O>e-fLffDDX^yzF!owUDyI>92+w7|htz$ax{L}J%*+!ijHKNhHYs7;$&3-hyTVl!`FO%O? z`+S7GGP=L3J;bz-+VM`Wdih$g4vD|}qZv2v^!g`(w@fG;L%G93J==RVj&CdZ!=SR) zX2ZR|YW!B9C?PoW!ytsrLd}oy$|`m!43EH%)N~8dh+6vgH67fh6bMWRIMo~oVD^OJ zQu>DR!>5Z!N8Z_Jdm=-S643vs(;Nm=q{LsAB*W~M zvwYiUmC8eUbx*SxgfC^W9aPBuk(zewEKc<}+(O-hUxYr^MXjEqSi3dYny%dggoz!( zjVQPb%2hhWoX*F@!!0FJ*9kp0?aizJ>MUu+gCC^Z5Eo(X^>kblE?VwzXHl%CDp?}- zvD%R=Dk70AI;l!IJP;i%HA~3|2}N!_&E~uHz;_F7L`jwh{4ZgWLnDp*AbdpB;XWqv zdL%cPY)yG@J?-Ce1HyA6#yrpqfNSTzAVuOCL4)3Mr-%D44klssZ zay&K!Ksw`wyMw0rul8B<`LY@ECf*qq>^>i0z{##q^PGMwl}nXHg%iPBp$8eNjH6+L z*l=~gYwcjmHtASjnfxFtIn`HbTUVPzo~9y~p|7NlEVFi+lMnEq%8RzXq00TNx8*xc zcyQWP2=nJX`!5Gg0U4$o4$H=DwZHvV@SeR<-2ww&9>?81e=lfqDB~N?%^b=&I06DL zSN{z$J(+qEWQ|ifu`jTsy#X<0f(0%x+nteJla+h1py*OzaYGT4!x{&lp20zo-!vAG zoCXrduW!&;Kw$<|xx06CLzVvsc5ggAbBN<0jpcW+`#&&Q{-ZE2FTY#)*LUatjr-N0 zDjS2UY-((}ZJV*4o^gV)g~^60XFECATUeN_jJDzsOnWVAx^fDyG+u9Vur}IecL$VaV^Es!XE_!0&&?0qoXV`f+~6?k zU}a$(Pck-JwZEa)@hZAx0g4bxciyMw|A2!2mR9kM7sRH?+0!dB&BCC%7{$eHGMy*5 zA8whNyEL1zmFvQphkdRJx>*+S?ee2tl9ic;jCQw5MLWnU}eJ6Xu9zFU8I_|kTe+_J(v7|MKA-k=VSC(=D%N3e4uuyy;zCE#j_EIzd_c*_zcf z83bMXx}Vy=jO3#Csrus&`4=&Yy&;djGLO8^nkhObx@NdvwbS>4(*?d=H3JuJruj2t z2P!(fRR!xJ*(A%-MP_21U+f^2!Mad>VIlE^V3L_cjl!8P|7%Zq)g>ec$bzdBxyksannBz>$)S__D)9|G=*r2k=3ubSzOyw=Slujt)8? zD{dNU)0m5r&}sRHmQA%D6c&_M4@bTRizJlhmD+r#Lm$|jB7@t}dtpjGVch3Y&}$cu z0>XU_UO8XB5NNmI?k>2tFBUXt2Ry|ECzvv{`!$~kVNz=yrt9IY(DHhZ)LSlM-VNVN z`X+2`08x>OiKptsTR>EH;PUfQZ>ux1|%1!h0qY)~w23C9BNTF7SJu{Wnk6==C5v6X)^)2c&3v<(0Q1eu(E6|9`Q3<+ zl0sm-(2qOhnLzFqGD6=yOjJ;np1vpBss?ZVLWNOS7<|L8pMl}e-K58z^u;nW%oX#% z{E4|C;cHx)=2?+YGxbX(0F%jzIA9F$gYSjAPfT&++Id-kvEiN!Tys;>PDl6JCobH6 zKi&bDj?fiLL2D`7*GhUNw%rd58(l0u-j*fM*FUTfK3RP(P`u;drqjUg48}OiGqCa| zY+&h%A?swUToRn;L!G4Kbn*izKxXd~U8SNtM(DDAWRwoOgWINt^k)Ex#vJ8pMix1oi{u+v-2lg*^EtFkV3~pjety% zQ!IoF`C5qGu%wDOdh=;AOqP5=E1D=q2tx9D^izSBZY6*>1i&!yh{_5VK7V$SC%Hn> zi~{GG%x(9OSs>O;K`=x%fIyKi#KXx@k!31hCTsupnQn!U58U2sEK~~MYZn|g*|0%qGb*8~#OmNs^7dY&( zCvp!+KcjGVw>DmpLCK8?IvUH_-P%~ij5?F~$0}yrA5X{|h3QJr2p1GyD&e%KI5BIE z(t@MaSMO}N;LdB!-G8Fb?s2v;yN7yu!811JIr*Q_XP^ZJhcTD_q@(=H`qsa{WOJ1E zU#rsp8tVLVfD^P{wYov*cm+Ns52B?a>yhfmE1A}eN0!L6jij|+bYH6LT5P0zUm89o zd}>zh^b1}2-cl{=Bk+H*zOkQrW9gTM?S1JVF1&m1VqL_K|&V3tqoy{#&>u>U`yKpcU zVf=#|qx%Wp)o{B=*=YA?LNk2d<{P0Hw(k}Ap$QphR15hD@EQ8nKfm=@FH9w;t#Q)l z$igcsw^I?u(~bV5@uIQ3V2%3XTz7pXOJsQCP_KDRnBWZ z8ZoW?t=7&nrmw=^{=(e2st*Gh_Gl(qayoKINfdfxiZ+cBDqc_PLf4j_nUC%BJ!8!) zk2}4?z-~snCP>^NTOq2|YR^ZS{S@{7z5wO(UR41@>4)o-N6e1(_Lq~Qnf?n!b2#() zQ>P@v=BV0;?;Zu4qYkN_V&v;il}(e-f`zFVORwbPyVPaknVIEFQE{)nsYT4cNnNa| zC|gvm+v;qsb}`d4YKWTB*(MPmJt48b-0xN0P|3Y(OBc=J-U-Y#yi&a(S=@(FP}8|` zeY{?sr7n2n%ELW6_|smlIh)c(N5$W@Fx({ZnS<#!;oJ(>2#VeVU~2_TtWY~Jx_HYS zSx;R<02pRWqXVsdy7ox>!!io_7EF;vzJ<-iPdC904#U>rpATZGU2rV>l2WP29yJt~ ze_nn;~*~JEkulY+h~{0jyX} zP4JF^&QS|d7pMiyK46hY2*tVvh?&@=K8_f0fk2#K%T(?Q$@`YLg(`ShfbNNdTIa6! z1~9n%bwSN7-P$`%K6%K#8|}uui3OK^Ilh|2A0w}mqDW*PpTN{G<5hik49ezedEign z!c>HKDNY_3J(85+BWj7{@hmm~gSz^|ylI06i{gzMC>@>Uq9c%}hJ$0UcfJeg3~mFH z+g=#K#NrQ7MO1kluN_b-nq7Co3S^X7v1sd9BO>x1kF+BGS3f?pB;JHqt@Mm`a)7l9 z77M;9K)9S5Al%w`o2#B|D9(ym4E@2-*N8Rg@-QIeLHhxQu8rp#RV+Q|e5<+X z-z(`T;_3@1cBvC;0<6Qe`nG9@vlz17bli&4I#v$LR621BmDp_ zlUCM{|1^K=Dwn}=FgLI_mm1K4&;s{~@Dzw`5DO+ifM7j=OhRmj z+1nG_Y(^|)jl?>)+|+)cVn0OFkX(?;-mLzY1&42HY@2wwkbgTYuA*l*6rs?N@>0}U`3 z?)vS1|2Rv7<>p2XG#uQkZf)zmbsKCp4{e;KK^7^vU`a^0Kk+T7q-Qz1w2gjolf)VYmv~~SoDZhJ2wjt9IJVkXA*r? z%*b){a7Mpkp%L%B);w7PrfcgVfFNn10$1t!ws$8kAi!xbUh=rJDpn-K4|2gf`r zK#cebKI+;`D!x9~^oRKM*N#P5vHq2r0h2D?rtRv+RU%K_ysg(s{N`m9wVtg;ZB@_4 zt_44rTlpkGE700Clo|50IeIri^Ip%HyB}gJ)$9nerZk=4_5r&+ObW6;p~v29K0AYS z<&-Ajnz>uv+2Y5MJC6IvZzBmbL5#0Em4bfQ4NK5_=X!MK_0c|`hLC4AVaP-EU zHnBOzKYo&)GUAOck0~w`6r|7ms-dKy_gpPoPm>TJIVU-35vO&eN#b+S z%Du?cGww2I7iXYnTRmSzI_JoQQ9fT${`#^E&p>qvOT=!vvR_Cexu{RRT+=f$-~aH% zuB+&UrrEhC^2Ou3yy2M+)Mu9jO7eD~>7mIQhpuET?^bMnS9fi;)u26ONXg2XI{?cA zG<0B=KcGf*0;Ze1=9rgHQhzZN0V*h)`j`7{Hc<7-y8;=?uVY|ZPeWEyt$Apvm zxlJ*anGLMxa!9=SXuaoGd@avSH47L7Cj-DWun$%8?{_{4jkl~I)1F65;`C3Ztyaa~ z><{`0vZX?aGO+Qr~aQ#~_;QLSJa(zL1IEanN7<>ooV59FIAHP3Ji7>w)!LAUda zV=y9$}HFk%Q_19qyh9uRp3i_WQb?Z45F}i;!SvzK5S93+Z4=; zMT@bT`p~gdq{DL3`XU3V#b&`?Jkf=a*>F>Sw0*?^lZUl*(|gMRAO^H|N>d>MBjoQM zsdSeHs;nB0h9tT`UTcr|^AKsFMpF!VY#H*nc8s>n&SFt9HlTc}WL-6e3L{b(2r_Hk zORNd*&(gPE655K;MIXi=((E!vAPxGuwR9c;GA@&hVOi}Ka)ixnREOMrn`U zU;{u3YD!3jU0B#~l!bS}G#i7qV$#qqYzQI}KuQ7-gdPhj1*)^_$UXWsXfeknhvDIo zXS+%fr7D{ZLQ^EhKaw&~Jvh%1x?CTVYu`-wF^AG^wtCP^VjoTKK0N_WVgASG z;(zaz{~M<;K}G(96i)abr0_frDLm(YlEMjplft(UO}5-761QZS+JKC)->C2hf1|<& zKva0w)bz}3hE3t~?9z(Se_@3$)tj2kLNSU@y6o;K4;D5$9*4*B*%;bsGF>Ol*Cj7a z${=GxGvCn_x1AhDyy|O(e&}cumH5fms@A=LcuZO?TS3#pcgL-{@rk(kCoMATYH^!R zJ?cx{mzP{Gtbx6}KgC^t>A8dYj$O@plWR&b;i1GE#k~$jSK)Hc`rCvw^jn0VKeaz= zebB}LBe%1x?M42U@$RW-tXyT$VDA%>sbgL={J~#OHQqS#+P_VoUEcAeqU>bCBkbzK z#_d*C5&FreTUPwen6EWQGxQu@U&{!-6Wp$Cw`{9i8XY92d2(eCM$aL^ZD%Xrzmzq5 zUwbNS>xc7jud_>v{A{1JBXGQ(X`~JN6q2_~Mp@9ihs_W(;FmM2-Z?~PkW36{-YLp5xt2R*r0spz69`66 zCexMI#757+;!u7G$lw!fs=L>TnfRjaM}A4jKzTo+XL9Xij`6|t=S0oAypr4;#SayQ zvQTXt-`*mUQ-0*tUgcCKR_G9OS$t0oxkc`KX~~yR!_;yo=RN(*8JEB^+y2#)HC63g z9&XeUdK9iUD>hI)rnt%o$GoV{2q5mdt>#=W7UdRqxmBQb;d1tu?_OCfL?$e$^XkFZ zge|#OHMRTO{AEa4CXxZy20ma?$>UykHLg65P<6R29qnB9XD&N%bf1N{d{Ztk#%yC1NH-1 zFT3_bC;YnmE6_G}kP!lSkt8>r2DLUfo51r%i7UNB&C2z0`w{&X=mJOcz z0l_E?&|r=|^8E*YeR4A!fbs&%WQ^HDq~O)YAp)3_!Mf-JcYH<$ z$@J_G;XOADVdnwzBd7_k^Sag0vN^1K{R|cLtg?ET-(;Nrah<3JFj;c|4o5>Ud&($RBka33d2qu8}lqRRZWI++BFMryw3oodaqPJH@ziSo0Mk8Ve@gl@mPxg->-Ph)Gw&haD+j5F-F4lErmypr6}{3PJXz zMnBM%b9XK46fRRd4f968u>?bbn5_U0i;6U*&`WQy<8^V}7&{gO-8~$akU_@uW)yQo zD4W>HhZ{}s3R!~j0}22So(drVP#lE}nN>B0`ciOdXdAxbPV~>IY3bf^Zg)F^g{jeK z9E{3B&kMv?n^fwd;@G@lOuKEZY!IV+x<K#xKFrh@=n4N)Hxv1N}VIteqxQ^h% zYPZAB3;X3!a!m;|xYdrcP!}?n9osQ_%PeUk$O1%uGrafA%eg)6cut972>9Xy7P=<^ zRXkn1;jlozlmq_<2uxb2Qs>$MjLq5sZVzpF_(|-X0y2b(q)>}~QEYfAY?RG7li!$1 zb2z#@@M!U&ST7}s+lmdr;3z;idd|?VD<8bd|(u>c8Ps& zH@DuM(I9-90+X<9U116?S2(E#Qv}&M7L@>nF_AR++x<+Td>ZEuFPx@5nc~go(nm#u*Qn2X7C_hRonJE(akxC zH+D2`#KKx{^xV1wPF~;po$Cf!;X}jY!(h4UA%{LP2C~9I^Zop<2k5`f;=iHczq`-> z@d5h3Lh3;vGt2K)f=gZ|#xZpA z`R$iXlAEWTtSu(LeZOPr==`}iHO<2BC`v(Qd*os+0^TQJqg%K8Uh|c*9yxaGNkI@1 z-frlB>}~@b)80~f+e+y zo5JU#vy8ut*0i~7sqJTNJ?Z(YJL`<$?qRJV zZ^{qg>WS@Ivwow+28)myd>AZvW$!*7tyVVe&X~JM zc~=%V+9ek3bKu;MnyRv>`O5Jfk-FK$XQrDY?7Wi&CsZGqu0wXqCzwQxPOT@{M6{G2 z_-OvrH`&oBcQ#Y^v8s}?Gb*k!UV8MiqM_4S@uKX>?iloWi(Ir~L0;t2e2h;pOx{O( zC~qb!OQ>{PLDZ1l6ho*^ye9dFXZk{^x^iG#d17{}f6*O4Vkt&wWp*JuN2@g;2HW;z zDaK!3Ox;i?*~l~JyBoB&4rBCPz5Yx8g!-k%7e*SFpFhp#y8?V4;Ay!2DoUgAmc$Q@ ztNmIxhl>XDtA-BSa-t3kc)&gXae?_=Tn!w7L7gMBtNW$seVDSRD)db?g*BOukd z*=*(B(v1UQu5)dYu$jpcQH28Gl3i!HFQ*t@O$_S4MNpgW%4xnge8#E@`}+Q5v0Xh6 z$z>9qF8m?h5{dM8u{4$Cb-&7kS7p<98YY+>pvs3pczokEbqozo17sN16K`4V)Exo= zZ@MGbxhU`7;LnMD4S}H!$pS1u=o;=yykkAC0{|4Yz|vG7OPh9mcABx76dhs!jf3II zFuA_!Lwt&QsVC>T!nc@XZ}pAC^tp^4JMt<3EHboQ>qIY8sv!%t*}W z(=AJEDgs#0+w0B%Tn?+F#HVV7XT2{M9AN>)IXOee&8@Un)?paElrxjU%#kzY8sMA$ zx9hrq#c@0H4zE>dcRC%uoT5dB3aipSiF`tdc(RWEy5|YCOTA+cOrc#>2NYeVnF5-4 zTAm;aBG0CYVuz0F;2~TXYR8}&l~zcNvn<1zhrgL7I@-}-P!|if8kMohqa-Mh--4TR zIVPV$#ZXrHMVdzxrYwuORRKdhlnNkS0JsjBE<$uxO`*~-rW6{N=WyJ%Yg8n9mLad# zA>f3E`Vbg-ZckaT`D4=nf($^h>;y{mO9+vA-4ivHV*TyHui(&R^!#0OWhx-^v9E89 z2M<*ok-OO{kWnU7shyaH$DI!8TWKe+!$N~9R3SJJ+`{H6rX=u1gZyr0nszzJ?~cEQ z##d0G?&AjV78%iy~nZP$QW2g(0J6Z;>>bnuP)FE03>uuu>Re(oP5 z-y6xYq~G`SGt`Z$R&*W*WRg@4GR45ER%SK`1+OnC27zLY6_wY^t6D*AudBZa_N9L> zWOF1PJgIjMZ)D0q_YN|}K=(fW`W`=X-&iL9ErGIseCFm@caSCqj(0ga8WISG z35KS`4VqZCosBg)jku+RSXyjqY7Lg9b8LuYbDJw1nph*<(fBt_%(w!iiB)VV1H)xR zlS;eJnu^N}*RI-_8~nzJ8G<;mp=|3Sa2~sKa5@uYiP=1~DKw1NH#AG2FmdCb88c31kU8DQV&soQ#Cs8g>jGP}(v_G}_K55Bt>^m8bNG^Az zZrO!V5bYLDm3pb#KlZeoLQt6V!sy$&6sF0ThGlx^JWNlMGTjc5b`WOrl{@%}h?im1 z9g}u;3Il6HCr{_-{^6hqR`rb5VT%Gm;%- zw5O(?`YQy^GZsmm8)TXq#+iyzbCr zZ=+nME+zT35|P(P1bSmqeQc)ydp*S_enCNrU-@YT%{aymWwaw-buNAP*+^&4=DZ!g zIYwtmb`id77kqWL_|pCI*Zo=)GD6mROI2&nxF0&Z5F$TU{QA<;iy{nE9Yj-$N2%_N zM?~?Kmg*T5?+v=Grgkh-9_FB<=rtf^6dg6Ubd+g8RIjz1imX#|t8G&cO+hTax_AtF zVE*Eo=8c(z)_6gtTK1Rty$n0D(d(L68Qs1sot+1h6HzZF-sraMA{|k;a!r4GJ)Jxd#foe0`Rc)0##_{a=`XczzP;8j@zE*$%{sXINfpaFbuEJn|QI z+IM{vN)GAFm4P-|VBy9}dPwy}aWH6)xXLj_^^oqO#a_x@>4MPB+sE*SpU^0*w{o zi+~EnE_bfK8NZFE5A~!3)38eAo%WWFlx@jD?+O6O{0l+T4y5{EgNdLHu>+~eZvM%` z4psNSk=S>m{eNB#%WmvhW2#hDNxkmBtT0>i%{BQ{fLsNF759xE0E!=!Kt0uUpJ z5|T{p#GefjmBm*ctx4_Ra`WhD5vM?SBLP@d#7!9}8xUvZhnsHCI0!CN_ww%~*tw7u z_B@D97VO}iEfbO*n@#AhMO#ixGo}4mhuxiK*t|@Lh{vKDX_2Pk-N8FB3%gJ=-hoyf zG1C9OJwSlcA@W(^E{V5H-f5L4z0KkdrH>8M_%S2QlL`o6!<4a05FEuEvd%ls|FfREG*OUl@GqjvJ;~-0?3pJ0H6m)*x_~dCsm-- z)cUo;0hlzQLn|6Yg2;@U9(cp#l5YUN%i*YI7$$(o1<+n2YOAvV;w8)4s=X0r!(wM7 zO+vJiEKQZ)u(%XQs4yIv8oX-+;LT-m*|2%s)28`bmbr9K;G=C7!xW85t4-v#Z)No1 zx#Y*e$N-ZHQ)NMLu>f3x4PHT*a5W0;)mb_tLWeH%eH_9+v6OUPUbVPwwRcM}VcWM= z3Su*=ZiTmBs>7~=zi6z3H@Dwe>N#XCqzRjp~&>Cu^4NXm4j}PA)QL78jeF+i`T*9_(M)Uvb>f zVQ151yKS8Q6{y2`<|a%~hx?5y9Xo0_blBdCziGxF6+%(4%Ji4SNbOYJ-a7LxEm>O)F_M?77p(Rsh%hHVWbAwCY9xnrl@h>9`-J^mO_Abvw~RbpK6Z7~kx|>%FE!AJzo}RpnF+p9A2OC9 zZ{GCO?%FF-`B1v*+qmvn^%|{9@pFrxE_S$QpN%g!5^-y6X0FG?S~_UiXQ&`vAM}&_ zSYCC!aUzWoAZ*t}u^%gy{&XaOpm@};?p|*8d)8G`?#|cW9pBBAim53m8wlwtIT!FF zLJ?Y3J`Zd+73glUYpjy4_gRa@JoB5qHx!ZUFjx?3n|~`q;jNvqcI_i`V~cIhzv6;? zuklYiUynZd`F%8zzExOD_&~TB>*D^EXOrPOJ7Tc#vfH;m)7~GRZaKPcq&iW@sY%16 zBXH(mO}hBhdOe+&53Rh)AOnw;Q)&DY7bwAtZn+1JUMhmI>HV``51e`OK=e6Dy*L*i zH=cLFIaKScXqk@k^k+(vxO1el+mn-hK1X?VJnYkmym?dW#{=%y_(mHlKgt2=CSKG5*l74ZXTwZ`>ub*U>E@)|>lb?OgQ zubyl^fh}tmX)9t5mC36%F~buut(`mqM|6tg9Q%(W!Y;lOd|WlNqu_n|Yat_&z$s~$ zA9WWm#m!c!1h@Ati}<$8Hjh`3HaC##>Ibql6m;~cATA1!US(dfm6GV9!vR$)097@q zuWc4U?r`Rj^PHptq8d2HrG@N1Ug9Pv+zM25zZ4m!-{%0Xl#Wrrr6{TA$A)q6eRb!) zc?noS(b$GhqfigFUgcWWS3dNv{kQZWVtp+Akd!d|mq)v~b^NyiiHp-!#*w3j`EuD2(Z<)7S&Mcs%4$PLq(k!C?Ft7h zW^Zz*vbZ#?iVAsEJVHJLX-!NlwPKY8U*{jLJk^g=QpK;n15j)#QZv$0nxr2|ppCkN z79Q5P|20;HHx&Aio0nS|oQ;LGR- zDEix8AsC9KN%LUJ*G_5Wk?;yKV_WyWh#g^*}!jA(B?`xEO%jf(_k##SZP0>3y3Ly#fhToMR)% zG=3DC8c!PJ4@+f4DBAcWelVYjzYgUgP%_)3_CmCn^h=k(wuwi-eZ&KX_$M~{gq)S* z7r9P5PhKxAF$fpfD---43UI?|SlPu|@zXF-fe$f!V%jhd5tqE-lga+4!7qZoY(G&! zs_~O%Qy75_k?=6brta39&n0;F)^wN*FWr!K zs^Gtjc|+rCs~r|!{m=4zh;s#Z4gxz^&aNRYZXDR>KPfb)8BPDK&|ot<dim==^PybE3(nX~d!}MW!TEYwL{M>Z}cyeA%v{@oK~0F1etl#@e)`sHgYtT~l%; zD|Z7cw&9X*fzWNk3NQ)Y**7ygQ_ilvIASwulfPk+KUufv+*x$8DV$qdXF8ScXik3(S1PxiTgVq*;#XfZEyzxs9gjoL4p)nvq3#IG97%O_$n)BRzOF$o^vJ35 z4%~jRve+wOpVMm?x}mglJyG?kyV|?G*EShujlPQCpK|@=`Q%rp1m~VrGd@=ed=(7Z zCwnGINPL&nFne}8Csl3Y5@JiDi3ahfJlcE~hB%dRqP?|G}+mgr`h1DM)BV=IZ?ulcycMmt;s9)4P&Wyo$4D zwSQy^9?bh-y;PwRbZ~dF;Ve!}<=Dpno%y2WTi^Eco?6L!k=GL>P{W)uKVK8I?a~d^ zW9r!-RU_k_F>1Nn_h3BZ!~!rfI=Acb(>hbn?*R+- zIUy7FT6xo$#LF)~EovOegFdUQYPLBs*KjDyM_lff&R%p@W+JQ$CFP{DDf7Y?-7btc z0FWU<{x>%zGwQ>Sz@~LZr~taY;Yfb{E^m4(jK~Ba(-?9`BmMty_g+y=?rYcgodP5w zgwQ*LUd4b2p@$x-h^VND0g`%v#Gmn6oYyRi_P0<~3{3s(&N-F|JCL%|>mY=Ds>7_3AfM;?2 zN}`D){sapB0EHz$tQrVEqf^lRth%~|4YmgGtPL5KQg*woa$9&GCM8=u zBch&$suh$zi{8K;wGqSHAWhI7{?BiQ^xYA%u=l#$6D#QX?U_W}ZuEtX-$vS>no}r| z+_Os3ge%oy&32+T(q9&|wZeaPw4xY`N^clF0GBVcV`&G;Rc*an(D6q<&a7}HQkmQd z*lh|FA)$o_I#dFeO7W;9c+%UVJxA$$;VC6VIF`poda!8lT07Vn>KHaUhh)u%)zeB8zZJ?v2on?hcGI$VE2Ha)-Jcyy-FMGYe4&r}oR=R}# zECK=VmUrWp%A>U=8Ov(8U=7IomxqL7XQ@AsJgUrk^|*UtOmL zGiATM>3@^;{`ZRe=gh@_rQ#YG{7rE|U)svblu$yjBv@Ilif&GA?y57*BCVCL{&J=Z z>$r@f)q}XCu%o+nt@XU7xHnc6w+bvhgDV$c>zP?u!*g?NSXJGEKaA-%1J3J(8L;(i z^dcorcsr|%0~*t$zZuid!IbwnU8dFj9nT=}D&t{IhHLLB`EB-Ny*bch_2S0*{kk|q z%VGI3uOik7JpJfIT#Yw|MmKz8l-^yXqY6a3Sk889SC;E0pxgG}7age~-#H%EJEp1U zYFXeQbjw%<+pMrsr{ljp)OWj!Cr8nKpTvXKEBMnm8UCzG?ORCO&qn7p;`}_k;=Gy* zJat*ujOh8Y3qDzdob~T8kG;P!g|n#+CmRFdEsg{9(Qh}YQG4&-Pu_I{+_VFy3FA$Y zZ(eWje_K+xTw~by-st@-(Kz0UbXp=ksk7wLUVYD{Yg-#{ee!I0`Yhnsa0x2Giq(1A zg_3r$Pb>V__Ydz=(t;KIe*IkGKR&zZ+#Gpx)tCR>B*~?1wwsk%QrjIuJ z_!2u$1z>_?6}7en%`!;-j1tm?vcnpN{ksi6zc&g_B zd)7@lFxZOLEV@D^D(+B?$|}q#&5+CA@W`}q^S5WmrF;1=X7h{A73Pv z4%5(6TXx6Sc<1lW39ahMyR1@OYP;W~yn;KRSzfbEtC-m^+Na6vr%2cBl$OlrHSp%< zgN}D%F2Bs@@CS!h^bYa3nGNYOI4whFxD5bdcrNG+%WBe*;+}HgJDEL?dnG%3N3xSz zWE}_zMHAN{W<*2haiaAF05IvL3%OiWM%aT8m?^jf(d?;v)t1$nN@0Jq0>YYfms`NX z)#=l~3Toz;tSaj5HhBu%+_z)e!<@uB0>I9A);E?IopMGfY)4aZokv>-g|LMd0H1J% zi>_fPN|grDl*8NB>s1kk(3nDb5Jp+Cd_arGWGxP0hlsVrEdkgK-EcR+t_qPny-5&7 zP$2RtZ`%1elCLQIN*|oGNGsoW*=GcE&&-{|ckp@MwFbYZ7MzC?x~a6ncD@-yU2e+= z>7~8xPQwNHnK2gJUycSDcerX zD2qj07_(*5;!gQ%*1K6P{5mC~2)tVd*C`x*8Q;IyJAiS9r^!!cGe=rJf&-_vD}uRV znjWuu7q5bzbjXTSm{lelnBKnuoXr z*~y1vL-i@t_cegPdNv0gvZHxnK+8vv z4+*1z1ys1L0L2x8(xO1fnyi6~Ow;gr8{sg+TxU;JQ+FADAs2uOomq?@b1C45+vk>l zWowY#;@zdw=~|-AP37+`s@HUD;Kz;Fk->);eDSb=@ zWS&){gBms&7b??)!cxVn;T}rGANw#ao>YFUP?m!{8!cI#ohGiVu09ow31GrBhN7`% zklwdl_v$2KdC*Yv7ceA|g05hmU~p_O0pan!_7!sGWP7wlo;2u29~<~Kp)OCOi+K~F zXasxx-tAnt1^CX}&)iFRkMR8wkY|qNs*0MX5A=L2N@WJw7>`4RBXJa!GeD~>XjhP! zPm^`1dm?OmIjYrP=8mEBY)64K~Fk5?2onRq=+?&HfTt% zsqh~Z?f9hCImtCcx*8me2G3n^YzllEzE};$x>qF_1Zl4#z}kB|z_BULFq<>f(>pQ% zX1Z4c-G3-AI5YK|;rVY&=!KWF|2ok9$GN*!wEACeLjQT~{_zz&djECN3Y@pFvM@I{ zE&bR zSY_mj(0hB9Do3H3dysZ*sI+l+M`w+j;oHE=M-=y-Fp@qrA-vt{P-OW`^Js4>hde0n zl3IyZF^^0=npYFtAxGT8r{;1zh@j$nmY)N^lGjm7Mw-1qEoBi>Z^JL_-jy8lP~rJX zEDkc4;WXxI!q%|3k}P`Jt*7>}<^KK3ce1(0qW4d+yed2G`yTAh)$U)f6c_WBJ>j#p zvY%_bPX3zqu^~>;fm-#*YhF{^pC$L&7cBFb5K0GJ0!G!Jg%L}sp z@yW@R$lzr=VEVcdQELjo>-{qZtkmG(+Y}8x1dfUizBfA@v_`ms|p^3 zj~`&xH>)G$aA()+xl*8Ly;L?tY)mICU(+HLwBisfJpkRq3nTbmO`--&0OH{R3Q|e4eV4kP9_u|EvLSKLF*{F|0aP3RV~&!O8P4v-BGT8N+baa& zfSt6|OM@yOmuw(%y6AVrE+LysJ+Kh$J(K)aRFx>20|^QbLC9W z7uP`TV5eYA}#jh0H;l} zh+ZlBHZ1W7rPNPqb5FCYR?gs{<0KBs!!4~-@l z5N7zdqxl8#L;${jbAWsV#SPz|C1-D-s3x0abz&}0#El$vxaaX5GG0td`DSvXPoG2P z2+XpUL8%R~L1+M1i4R->{SBqDV@90YY}y-aD}V@-C&0bf>$UV46ktM{G*Lv{##w%L z;DIt+c7&+_dGy#SBnGFFNr5siS2U~e(>8<(Dr?9ECq@Zv%)vHiA zFQqkleK?OM4@`+98X-4LfAb*ue#C8L*&s=&RJ0KoZ6i~l*bxexh=Yprh=`;7s&dsC zBA>>cFbwAKA*>PkSACCNWn4mhS%E8tF|*J!m)?KS0N-PK^iCMIsdU^Q3%GaQ_@%8 zgEPSqq}*C?%>v9^gHz6x)mLl4$KW*%=kJ-R_KrUAF}MqS4DP zILFD+#@edLw4}tk%m$o#tjaaDv2|*22I1M4Xzp$nG{-B6G=fE0H9NYH*>khE)Vh+B zvqsN$vL%?fInXTP-C_uij_J3u@~rw^yzH@Vo62;m9d;UVDxf78U$?Muyte+vYc5!I zeo1F_qA(ZG^k}Hyvn`;!n4VP zWT|Kts;pa1U46Z_%==RGxQN0!I&>-RC}3UsWlkAIp{nR+|J1A z47I$Hakz%IAS-aYZi7rfV;7CBRxe|S-@Gni+v7~n_m#J01y5(+@-n*E?Ua7jZe8l^ z{{E(o?HZZghr)w#mz?I_E*l9EZvtGq)3UH?I{RR ziE>MeueIMMHmfEwAC+f*Py}THWwT055@`;Z|Oj^JQE7GT6;6! z)WQECo281#Cw9EzOO3i!WspxLQaU7J>%-RRCC2A7`q`8YpmTq-`p5QfJK=hp zu#30$c7?ayX3T? zQYOSF&~;~T&9OL5dfP`16uO>YNI?npTYjlIaejUiq8LnoT|DvS!eEhfjv{qjuX3_3 zGOM3#GcVK$nA1ky$2zN3%TuAZi#0uMN8M#(K4`FpSd@VDZKB);fSsYeK>Qr51mNoqJQw`L^p9FVzy^8sYM1qoj(+ zu`~gf)Hp32C|YFh_OZTvKp+rz<4G78h#t4M%4M<>^j?aphX5~@O(-j8dGKZSZ3mj6 z{N-o{(mi#+c5Jpp+>L$u;;spZERKo+$s^h!RFUxT%WTR8otD!sUNj2465!|;@)+lL zvZ!;P4*Rx1iBM@KAfN`o!{3W(m`%a*e00{0`tWwpsB{tRyZGXdQhYa?%j$m+H6o3o zjTmgKLjC&<`u!BZ5#bbq#6f`Ea?kXy;?~(BinIClwuaP{D-1eZgzc{!BVp;#JhPI5 z{z%0ro@$K4LJ=1SVgj^2(?kf&vjvF-nj5?-5*FD4HsKD+hd7yR!cByWNcql0u)c&o zkOBC}puJR$g}5($9a=d;<05j3a}0so9|bUOLv+hVuizl80~YmM4PSo~;Na<6AN*b@dw9HYWeutx)=g|K}7py zy-0Vxj?4h1No&}`JGZKEZEuQb3_`+aX7MgDtCX-?*#-SGFK$*$Wr4qy9Y#P%7%jo5 z%goHabv=9D)uHDllz+irXSeW)H{`Zg)b&zV{EWf5siUlC1gf-wj-b??N4ggV#UFie z^ctv4;&$!x%@f(jawqQm$(~9Q70qG9E^0|HDBUWNK6ycR8Yy6Ao4+(?3|7T<6i0Wkub+tI=tzV!=wh+I!99{hO{3O|wMn<^_aV zTb-}e&AfSaubTF~CPC^G$%RIbLwx(B`r=M}{Ap3nd$Dz;k#A6ampexfy)2F7n|ABS z;hBs|3zc|m59}MfpLuBE=j@KHo)ed2Cc9iypVg?!Jmufxp>^E!jzIJT_Cb2v@$)j4 z&+uoppMQF1Uo|Q8@<;B6cMnVR%`c6AiCS9B$u!~rvB>`Vepc$^8E0#)&tK2ZK0EQV z)hXE%(yNI*pZQ}ShK?LQ@yyUK4d&0N+8XP2*3~Um`5cVvI2P`aDs$>*4NQgi#-i@NUcTy)^u2aNIcpdR}$K6v*!`P3Qb1WBhGxWtbV6 zbF*bx&<~_o)2t(LN(rUFw-?6(rnd(gBsa*o2WHl=2kRNhSuZ7O%CIG7&7IJ zEv$6eZEC=HrBjCL!M#5IvL|)E0gz_CZXEiQ53m3=Jfi8A=_8;S*}@LH{IUfV2I=-V zoo{Mv56Ek6ULbnk<&phU!Jh{CBH??>lkZN6>z!~{`a3%)iYdUi9oaDTMfE0*?DW$&-~#I6*}DpIyFwtt!u^xo;D2ru}y{6%jfyyLwoyP%Jl*xe?f!P+%Mr z@NQkh)zF9E(vheTq1P=_TiX)RazE;t;3vKic-hqz?3P|>y@FR1p4Q8Eld|YvT5}=( zehmK8uyC7JIxV^FOvocVXA(w8r4>zg z+rAlTov4Ged59bP-NEVXh@{dLk4I1U*&R$nz_?8fawBYHpFm`q2nzY58 z0-hAO26j&raeLx2XfKmu2ejb#i$oVU9e_#`VYaEX!QC_iy_!uHi=}YBL$=0QBQ}EL z58LfUm{3I`b^X{z>+Ho~F?nBGH%Z!!$xaI7sjhMvnh78x!2g#QuWR*H;%!Bl0O2cD zBy}2gKB7$QM<_%!pQHN&6t5AWR}vFE0Vz9dV> zao)!5We6%1pehsas*A?>D;uHAts3FwpLww`eEajLz3AJP!_8<*8%n$xdMm0mq^D|; zncC1gX^)tKIi$nCF>+!#2+`E;>(ToY4jd6jpIW4E7l%rbWXimZ>3REFDR2-isoGR+z+^V9{MY#^@kbTl1QaiMTkjpIQzUiGZOl-8OW z*B6&IS5$(A_1gGj!&;f?@18Y#sORP#@WFUs5afe_{p3~K8oZc6J{UOuI61i*(faqc z^?!OZ{`lX<2LmtWf33zjYhqkvQc_}301`XFi+L5;+2FKxF}tpcF?cZ>n-x^Eog50* zJnMosc6Gt(;FQBZ%kfaQlf4C@e{P;>d22e;q4ti$-QSXY9h7A7YMu}ot!QL&-X3$%6v`7P2 ze~$On5jo)M@V74gyo*jo79ZwS%|{i zLvrgbDd7{cA8Wmhamq_aK01aN_w&jlnRdwW=kJ*E&pQKQW51*2;yt}7 zLKnK$Nd?aNBVolTkBru1wocGG!P}m(VdSt}v*d-pPu?numVu3NlLWnX|~BbZ)?vpXh3AS?cyG=#TfR5F%ws=eGuG_Fb@0DIZDS6{O{NI#W8JpsW`X4B!$HOF-#q4jZRQZj)&*3?>hkkl193nDECgS5V{3phw@adM{+(!${$?8F zN$(T{FEQc&n#XYWK@w=fOCwCDM`iFO1qzvIICe&5Et(RB$ zFTrHKYmPO+6m{%lalg9YI3jIP^Uxjts4wD8c53ViGIY9p0{{n(mwl8EBy7`h5dOT~ z!i7hHmzRq}HORCl*JHHWkGR{XQZn2_;L^(E-Eat*A`rpk`#J6r7Gx-YddUu{FlN7> zEpQFddkLZ#V)KBI5od5ENK11wS2P@&_7f89lP6bN%ulB9d6MA;amDBcFS#F6JOM|X zy~r81h(~yUiNOd_G^<||63$y^>9R>Pk|HK{g{Dee#O?GvLKoEnj;i`@;~V+PtiWFs zARsHWD@B|Xc;w`2PY!>tG-o%Jl4AH#6*EpqQFiAl=kfY><{n{)cmgYjMaCW=ai-mK zdGvHUE<*VXG5;K{S3@xsD2HkS2d@B07kxeKBNt)Y#iu2AhTU}G=Zb4Lsb>S;_knB) z*tJEnhyIz{sTVxyvK8to#Jkil@N}f8H<6Jkn+xktzZF!-K&%r9Sa)=hCXeOnM~B2% zOG?L?ij?vxfuB{ouIdTtX&CzKOv>_GOxiUDNSTH72|2bj^r9{bm8iR#ej)rM|XAM z>QnOHbvZwMI4du0aCWYD==n_jU59(WCHV#@$!+U73qA8tl&|spo|J8uDz3jO-Slwd zp0yi!QAxxTwxMiS-=Rs+$1c!r2S*^&-ES9)a7vplvNOAlAxA#JVl-SxWUqD~yoO^A z@y`1>?RrFtV!2mPduR;;Q&u~~SJW<|Q(2J}i@4j?Q?u1oswUq3OV-4equWlIeK)xJ z#xdA&#RQyWmIzB}&a8mGu%D5rJQ}t8Gv$_^|F%p6`cdw#h%KItJKo7YKrQsKwyrys zyIf_sc+3Bz=zcSTk968lqN&NxZ##UZR8DTv942^QdDB>Y*QPR}{GDxQ)rPlSmii0C zPS(3+I|*OrzUdL*TEubzSxE8RJ}+%#KjP_^q$ z*V)(SKRkQz?46bOLHesVnmo~;>*#xk7H9(RY&R?0Z9nR9c8MXfR(vE}#P;EYskFWb z`2wst8iTov2uy?EFwx-VJGy1lD)eCY`3kTK1#DGiO=iHaE27<)7{9iAT}83;8tHa~C2%p(@~rR;DK& zXb_{wMW|l9@N%rIF@tt+;yYm>N(=#plV2x-b4TMEJHxB;z096_dHp@L00Q*ICWU7 zs~M7JHgx>(@De`qy1IP*N6m%I>&*b7HU84Xw0JP5wrpGY;a0v2XPr?G8m%}Jmn5al z%^hMX>}j|g@9QOQ&WmRBW&Oq~!J&fLojXh{a6bWz(a`+-ElG*E75qB+_1B>|!20=Y z@0n{8>MCwsM#EGKk2r z9KG>JTIR-7Ay~H~9GmMN1<@kHJb3LtGo4hWrx}=3yqJf#eTWK$H;uwVFcbP_PWWU; z=?%hXwMwH4cqAPX_+kKAbb*GmffD=V0D#Y~U~x(`s2R%-t>P0jpU$dh(Dq$_x!$HC z{%ts&t|U#xIxIpCC4VUKX7ivw%mRwH@v^CG&0vfE=WZTTIs01|^%|9JpvhMWV1^sw zUR&;IHX|M~#E1_GD+PxpNdDD4=$m#)z>L{n%Z`4VZV~RFH!?19cgAkrurw8BHCJtV z;)6q&Aqr!Q6ebE$u~ztf&I~QIT+d+uBJB-%D^A}o+pVz>t0H_3NU)uOCSB4(G98aN z`GXHJA~>~M01LAB95>wZ%x&##Ja|u2Lyn62`p_1X-@vVrXa+)aGgP_r zJ*d?*{b9P8z`hwS3im-=b`o- z>W=f{1<093QZclV1m~|fHS_mcP6x3_jh!knABiYOizDJeOMGT^tPs_(@boiiP8p9> z^Dho#GH~I~JoWF6@t;Fd-m7^oaMA+oG41mE-8BCFpuBn^|5Y3k5N2 z=W$%(>WWlGc5O}`n5wQXs{jX?uT|By*3`BA*)9e#oxjcM!8Lr>Z&D}tpgcCX>R10J zXs>GV|9h(IziQIrpP!Nq4gY#d&USKgv@T3DwK6R+D_VU@&T#_YlJlIL*KF#ww`9s_yq&>s>hsctijjhF7P$E)sX%6 zLX8{=E7L)7Ki89yqjpdDTpQ~XcXJO(BpQ+=t=pf*OgVAqm2<)8kvx@M(_V&;;D+OE z$#}tY5!akabvU!0&0eGFsg7H?$&vBSV|(v-Tb)bXU*)W+p+MY>T<4PYJmsiU_BQY- zIru?!RdQIpi}BMTrl;<{_N9-HMw-J{?(G&@e&3g-?#@00Jw1PLX!C-GI;SE|Y)6L; z?9xTGw@laCV3DrV&P!T*I~q|U-z4nETL;sl`DAXT9ljXVDEsiEyx5VD`g6#g8WrPj z2@e!@-@s@|zFg2Sbul&iIsE1AQ^%-?!gXW%>@6jN!J=UE+_AZs$<{SR_G+W{X>2*rQ@Eec! zP~Pmb_oQOHOzsnrqEKZ+nQhXK887ByFp-K~8fAtzWSTg9T0<<4IEi0Q{(j09SR%-Z ziggpFbLN;~)iZz%fJVy@;To;dg)1o%#jR)^b@^~r2!ew-QW}%K9?l1I8sBG%bv}Em%BvO(mgIT?-Rr0@j6hw z&Ot3RE4MP+%Dwvd*hc=zoMAQfL|HZ;TJ%ZDnf5R|yA&SAtEYZwx=d}>@O`qU{>4us zr&@r?J9w6MHJFihMnCm++p9Mwu(}vYrdH>ex&an*RdE?Wf2}mZ3JWGK167bMRmsA5 zd;ES#rN)_wuAd*iU0Uf8tJ`aT^N86Zw6|lOn;qYv3fjmhSzN6o2awsgLHj!tAjH5@& zp|EE$CwPSZ6{^r~WZt!1X1!JC6^GE0=yL!Yr}}GVgHt{JYO`bu#XR+`&&cUQxM%qH zwq9ddte_ZLk+Q=7#QeL`D})S{_LYxJ{?s-rsHCLh97z0<3nO`2UA#_>jX#w|p@I=A zh(xZiwSSyFep1Z}LLkD=(YHFyi8ab(QT8`H2GA-#C10ae%ontTkDLpq-H#K7s^o5_ z)A~x^jz33OdXn+>WG+Vn2VKYGt;7$!Od#<>G-L*f^f8s8$iv|u7f}#IR;R={GFS_2mHcl?((8`%hIKM zl6cjU`hG~8R<9^sJJGAQjN7TDjvz$}V9|M*e#qwnvf#H6n(QFe6P-GwdqFr%wBOmM z{HItbRTinTXkqYZKP*QtUiGf1P{Gi9g-tV5jI9h>F@%{3ur>>NJ<5mga}X#v(mXnF1f_m!~J9d z2HREn@!b@qo>Y1G*_SqXIWUEOqI_$sjeg_^LI!)Rz@nP0>1HI`ujUYgY>H7m#7R=< zrwG{bZmLl{({DwnTqMNW=X;4bUX<>ZF8ccXfVa)4Baf{9T?^{m?Y~74{+pT&1D`AP zep}U`BL5>^z4~zc2YSmJ+;!X)36eGa0@f1N!PGTm_NrSAE=(Ocp7=+?`j1h^yy)29 zZZ$Y)Q2`EGfNnKdC@v~yf%&f0g{jpx@pZ7_w1(cgd9|${SV1&qc@o{ZVUBkxflKJe({{E!^ErR~4CPMp_GZ zk(`JH1=eOI*2GdLr&X)k%+`+7;Id{_d$?QDoItDE)DpC+UGhu7a93XmvEdJ^nq+56 zaCf9x#=FOuR-_MQ=dH%8dx&jQS)|%Kq`M?rA}zt>x}~KPSS)_cAg#u$Js(-y61QEU zJwU};`QDFwfj`%_T~w+_P683nTbS zLi%aX&a=ognWdQ2s*aWxBh zc(wC=-@B*M$dvmX+GO8q`39AexA3c`kB|uy7hV|~e|i^ftf*O0entIt-#L=Nrt2m) zFWDne1xgQpqcEHp5zMn7Vvh8O0h8<3_s=e+AH9C#vleZe}{t;X6>;wmG_Q_hEE2v7QJ<^Tfw+ z^YLVjEl5GPAXB11L8DfW>FbMlc7Z_n4xO0&D&@l>@(bFtbqbSCC9u;M@S2UKd{Jm+ zyxw9E^c?iolqsVym0f@tVJ7Q3}B6lV@ToTPZ6EF1Ni=v2^(&+EpVq(|J$6(&JAgVUfaD~o9V<}XnVWNp%boW+w5+Wpp1%*i zKJd+=K{Kaw7LaA{zD(&Y5v9F#S6qbLy(%p2fst5166-eRoHO5`>my8r7i?dMS_xml z`BNXB-@|I|>^DK61#vgD*?dOt5;`%j8|e1255&keKd0OGgig#d6eDoJWC8$W9k+&V zn{{Y9y#?-*dc*5%oX(K*WR-ksI}XW&sD+br%C;vC7M5B3A~+yzuT;T8D93fZxIeAl zm$?V_SY!fFO5(3MQ6^9FdaoBb$UbEHDq>5Pb|PxyL%00$FP=_gwqlhpj-uwqz-6?_eChAFE- za5kRtTJ{_>*|9+&db8% z;l~GY%T#rPN3`zB1zgTz>adz*dfb_c7aQ-@tD_H}a^FU(QehyV`_oU$q=Z{p` zSv-%o1pz4yc%*VgWZHQ*{$iJ9Cq)sMu&p#ifB?7=MX%jaWU@ly#DfC|NvKStW=V@w zh%mxG$F@39$tSUgAR%_QRNgT0U>ZdG5EbUT#1t_c4T4r9K1IQSr^jN|0ya2Yr73T$+UBmVU$=vSYuk4AIP&GV>-Lp9QG;oAjRs0~HY!`Wf%TQwvSNew8B0p` zC|Wf0ZykKQ^?vw5W^du6$i2J(N641t*R3NUCAKgtOXg8?NV&E4(_`pwlcA$E?$?qM z@WvUvd>f`BpB`xnyO$ek*6oif3rfD8vZ7&P=D$EA@m0p3jA%RV(sEBhb7SC_%Myl# zdz4b--yD(OwWW;$knPaNy9V}1)o=B&*=laA7YX2KsEEh`P4bC;c*qVB6;Oa7KSaRl zZJ)Fj^9)>Z?-O<1MF9Y$E--llQ>7+TvDefCcbtQURjWXS016c?nod%-H9(cqXgak% zz=M{uV1#~GnF(Y@<}ag$*mlJH5Q3PI!J~BNSDEJd9$k$X~aw&6w4-k>)ID6l5rKv^PjNQ+;BqcB_h5c+pjmAyMKwnfoj#i)a6L<@2$hMiPC4Cp zEKU$T;tVNH$TzMuho_~gUmZ_!yBF!YQ`+AdazYX8N)xK4XrIvWN0Hpj@AGL ztii|;TiGyKb^gg0W@WVu9?>Qr#=zBQ35cZo=L;6H^x~3K>=3Aiqu(g#d+9z}V(KH> zoSLUQYdr|KiurwQ-NplO{s^yuMhbKCCgXzdXTqg3_hn(}uu$0%ZWmNh%?=)F%v{fT zt}w$b^tEN-yC0Y)vR1CPdifqPvuLFpPD6*+H61@*daoNT2=DCfzvZ5V*>c`dM)sB~ zx6i&J6ys~O7n zeSB);%}=shoH6z=oe#X5qwaBt-A|TvUcB%RjT2mVRGSS?cz3!+J%(TJ4KGReY#b`$ zv(vX+YZ;ODIrUW6@YjJTG48X?hYC&{+q;Pd|9bn;O~= zUxd|NE^N8}t^zo-k}1+j-0-pe9ouFB>b5HlhrqjhuWBhga1r58iwfA?DQ zV`C2LTPSl|f7IPheytlzzP9}0t-CV$iI5ie1KLRK44v2j)!4hC5b@MK#r467AH!_V zX|(RnL<20zSe6THsprHvRq?hs6|P-?J8uOjLop~i_Yux2kxeIcR>1cO0&IP(N^}b{ z*2bF;bHXcCB|a6N_aqexE^0^u)e-Ly9^!)1X==O~#s*c_6@X01ETTj%#g{%{91%XR zHIEvA$(pQoa|d+Ts=&o#}-OB zoc4qHV|^jdUYWBuM?1SdQzhL^E1ZV9>iwMI?eFoxGc;S!ollnFtY$OZ3TrQnw`!3e zGOtXhE4Hdg!si7KEKg%AMX!_aWMaGSR=h_KJHyccKi?ohkz>rxm z<)r{oYy3cvNBbQ)`+)OVL|cuwQ*oZS-aU*a4-4YsSUFaOl0BeJ2x_Mj|3?|>f85K5 zHhCTST}S?h8V9bXyTE%HT%uUxR44wPm^ytf6MRahGV)iCWe~uXTn0wFz=^3rm{<8Ah;5_f<~d}aOh zc{j(Y8DK!>d0&q}$BBk*-&%up^Bd(r2A4s#05>1>z9afF$J*T=}W}s=y+>H{?zHh|7dvmu{ z>}a3&#y2~ST>^G(JJ|lpYq)ZNUCTEId*m7JxRSZ_{Uxm7V)5p6$4emXz`1-_Yn~ zGqr6{04ab0yknIYKfT&haPwOb%`TIB(~Xi!0+_@@Xv5gJpFhp34)BhD$+K(%C?{ce z%FlD%u3Mz@x>Kd#hH$4EN#V|00>Wha*Xb7@w@gc>#ze_e{8jAup#3I$4k-ZD#pmEc z5+fnGU+qvBIV_n;%06b5DhVlIJJW(?Vp{`auwL)W+DT(}w2^=S#KbNRc95fi`jCASs;oume zapk)mJjwgw1gb~oGJ-{6%IfRztO~xvezLQKoHIaBBHTwuCoK&XxaxR3=8S)Zpt<5)~P`dU-&1_^zWH)D7oe zfj)GTD*_`q;l5#F?h`p4>7PxBw5C6QygL!COSQa|5_& zVKcV*J9(Um920Wthm;CLr78-VaR*X;5%PY{es{y&>@A5-NJ%X;AXb0ptQo{o*!i89 zRN;um_)F2wVnUcb1kBa{+?29dYAFc7W z32sCyPYQakB3CMaCO~_v^Gj95$YrVO`g0fdc)JPRhhVIOW>Os>ToHsnLusj7z~0&a z-~;Z!uJ;wM1(*z^+2DsniKBdm$qN;mDpkeHzXBR8`I{SPtW^2JW^tUCx(|DNP=1Lh z(ZCF}ChkqSJn`;)duEx*g=tr^sI3a)E5yKw=A>9@nAa*NPB@V&y-mDKGSk<=3*|4q zu?(J9Sg)b|Qd+JS%i%ZnjIkd5 z9H-A>qbZX((JkJC3Ks*gD#a@0Nv$@{3pR|z{q&3G2>9PaTp~aK`1c=vHMsH!hPYPC z$Xmj}GV+>V4Mw^CX)0n(f0NeqHw}z(ffJAPRX%m`TC}=!Z7QNNBdZ#GK3>(|;%0E= zag7CX9VAmXHgkUyK~~|^*9X8HS8pGf;{xA~@87!p`yl?u%HzYw&;P&r$e>^SuT}UT z15p1I==%Qc+vi`ue*IRx|2_Y%`PG|1!`c+@`sX4?~lW(EVfrPexmDVX!_n1vJx#U*8&^k!N0ifAfwWb!iaI$Xr6C;03*oyMEj-HxyGc zaa&_%ODw$Oq$Uwh=3_tNcB9^-K98Dsb*P>FZa+<2nrm0@m(DRYH%xNwpc`iQkb>0A zER;q3fBkq1U;uDls9SorIE*x~Jr1*!6^Ijk@$IA^mA zCKs(+I}MUh6M84~Pz^m)6MAnVDk{>XD*+KfQA2|CUIPNsJA!~plNE|eRj`60h9UwY zA~vj?C%E?7>n;17@4L>Qcc1)9{^m-q@yt2L7`KOfuKav7QVa);7vh0uQgHlP#}pJ3 z@e3y*I07UY8?=%Y>xi2!mDeX==&4#j4R1Pr;3;}Xu1&q(n$^rgm&j=)-4&O-e*H0$ zM*)SB1MzaW9M3zLTj%eZ(%H(C`FdiB)2!ah>`Pl{8C02qmdR+~u0Ne&G27r}9mmrr1K4#>a38i5q(2C&)NJPBA3qo} zH!!0z$x9$ut2C28EQaIlf=CTaWOQ0TESLE9dJg_V zl5|!HBDWYYO}0$6H-~NPqI_gnF|oHhsNvyq(w=HkP^FKh`8NtWGTY-|F_`ED1dz+(o0EUP~f8GlIYz@XoWSSTqttP#zQg zapzi^91V0DVnseFkAfo4zO_Nj-r-U~iL=eDLN8ABLjwgA#07>}s;voRArb_F%nUO6 zLF~C91wjztP}S|bTvAU4&qsJCSgnvDgiKRKwX9@%;8=$H&8pYp>>8FuBr#H zG%Qa>tZ#;Jdu5eLGQi!oiyGJ`k1l?8+8l9NHq~z712P`dkF1D+@45HL;;pb9@5`vM zLRljE;GH(vdGGr_)y%}nd@%yKDRctLc4Mu09$-T3RP(0qCzGNZyieZ3HRgUFSpXx&Kfyq zgFfP2n2KFq;0Z92LR8fuoK99sT8X%d8RLZZTqKXWU~8qC!C3c9LOxl_Cr?oIuBxzx zXom4T0#A=M)$`$L_((|jYUp4iTwpWsb}6rA9m(xUhn9v|=$X|cP<(;6X?DCNf(r>6 zkszog4gyaLTmf_3D1wFs#VP8_$tgk;Tv`%g$YbN?lK$$PAsp8M?xO`a2_09$k&vr9 z5vzK(NWf!TM#%E3mHLZHj^^Gt z8QgRt!L6Jh@lQa-zu-VJ)t||zaF6_3%$fXq5gvRp=>#bWh&e}|&5k<9baDS4z5m(A znOzM8oPj%aQ85$$2%M__w2d*rkM!M`^X;46!=2s0sTx32jPJIQ0H7!UP4Rf_-ZP*T z?9pRp*cpgd{TEQw?>qI|wbj>e-u!>i{r?cJ`X8$Mzn?&Mr*C@z6{V~GUl`9tmy1j6 z0mO5KrS)$Pqy@l}x|FC+X*0%KmKIxP=Kyr)TSk8v851n3I*S0pGXR6U|0fJm*8oue z>|1j$8S}S{EuI&YRZdo05{-3r;wc7~?3#7cZ!FutSoryCZt0_kV;(R9tfT3DG|;3aPWsS~L~5%U1B@2Y=jnmL_eHjB4Ljt{h7h4U_t4Wm8pc5+}Cm zD_vi#AdJx;jh?_E& z!y}dm*wP2xva<6=Y76G(e%4`@sPYmtK4JlU;j6YK=;E(JD#jV&MuCP(-MV=n8LmA& z145BoP2(PcS6nU)1r|svD5x-`P6+i9DlW?VRn05Za%M5)mBl_+fDkdQPgAvSJiVVL z__=muhYQtvv*16O zO$F}(Ks*H}yA^Bp?(+_(vO2g-`jwsy^5sGVE-L`{bky2P>B7grq!bBb5~VWTebte> zQ%HRv1x!OJ)cmqvxnHMl#h3^2W!flJF*X?^2=Qe&nEh&YkgRXW>an{a>5Kou3g?i9SR5IZE-(`)}n_xWsatJHL{|FsAE zdBQFrQW@=+B`%sKp@kntlG!Y&g&%e8hbOBlWGw7``+vC_MMP@`*uSdzK3Vt@s*!9| z`G_T?(bMS;q+mda1knjlyE8gvRq1Ee~9$UsU;USg;K)haGfPW5bUG$ zvAt_=p+yyv+ZXa~UjaQUgH>`n=oVsz=4Qd!q8F3;^BFh~YQ^FEoLhP8xY(Tp6vx_m z-uwO)8q2GtEdrklddc_`kd8IuamX=^3sepo>B6eb^C2WFL6tR;5#u>C#JRyr28)sP z6aq@`*RW*@!;Wli{l-=P{B5l%qHL%5JG zsg$|Nr)V<*M8qN}+^2t7hh(+qPXCD5_C6_g&f{Ft0?r}Uq#!O4LU z5pOJuQ9Nk*m^SgA#2j9Bf79znmh=yxla!AM^O!m)CPqso$l#znM=?X{1-Yr*;UJjo z!3D%#rxfn^YZeZSCM`PM50t>0DuFdO%Iak?Fc}f30@Pn`$@Wl8S#D%<1ALj8j^<3EnF(|UL|sE3-{*wzJ*t24u{%A+ETw!;e7T$ zkvAjtJQh|8K0RtYx?o=A+on}*#;T0u>y@6Svz}#7nv<rP1HlpGR;{7>CpUAN4 zZz6*~hw&wC(=*Q$FIcBN=oA|Q@R6-VnMf41VUAEdhvoJ|9a(aw%ct2+`xDD?UC*tK>hYP&)xd%zszZW zdBp+X#c!`T89-9S75z?AXJl0|(_011ViRTqXjv<8`UZGZyUdGj;0FF14asZ(?fp%A z{@p+J7>I7|(k__$b|&h1H@EfQ?c4uS{Qq-q>)&PH4(L80`hQDPtEv6fZL*u&$}-fw zqFV}dn=t8+`OMr_jro6@+hUe*ml@SCV_P*H?f)^hHIb{2!!d8*R}8Ca7im84}cnLkGM2OugviOqZm z;>5Y)<1~!+Um9GKlUCi);$YYal4HRf-f=H_nhs^PTO}c~*ji4sqmgD$s+C=Dd-R=D z7p@r^=XpGw=T5@4MyW$UViJ2d=FhxpligJLV!t28O6@9nBY-0j;x$})(p?`kf1aId z7)P!^+7q9bn!utK^03jG68p36r1zWft6(;(X|nLQN3C(nGv|)a zdYtBF>w74^31SKS;A_OM`mQy1(@q!ha1gN-wjabIvqHWSJ;0wQA*Z|jm8|Ka%LfrQh8(8`g9>Jy z7SC`sm6fM+UZ^WG=cihxD0@n zi@c?wFE~Xqg)YO6T}Ap`zT+D`?LTJSN-2qyC_kqE!`a&u7Otj4V7~F!DWL=>CSvQw~Gd$RX zjg?jLr>t4PDz$4ZyH92z@d)5LvxXP&PydJlqS*V80#v+tQda}*3y!$)W< zo0`F${aW#hU@C6U0e&Z=E=^Tk+trw&(344bZ96d6V-*rh`BrU(9u#+1FfB<+=1tJur(3nf|Oxw=dm5ciV^#F#)&sZswV}BN1@fR!|5} z>Lz8Ub%6Ims;jDD4*{W4+`;wP)+xo#S0M&S&imxI+*119D6vl6$tn4oI#oGSKj@yr z>)IFdXm3A@a>VOHjD=!2o4e7br?RaT_-6$X7WvkOhwm=5(7Xd(1h@4Sm132drso-D z#^htlO2#s~ zincQ$l#Ibv%e}eeyY^ym{%|d}lM#;#q<=4+_o~U4HI9vL}?;}QoS{fMpUb1EEKeV^i-r9vS^bDXfZ~% z_LbS=CeN&deYWWQ*R0qLrw22}5~)g~ViWzN6srF~1>O`B$6a?Q$8c8Mfj>p5w-+Avtk zXgANFxzdFH!l#v0;4UX1-JlpL=IW6@s0U ztY$#m+5?DNs~57_9Sx#dH97GY3YlXOb!PTrc^9!K;y6zZWJr~L6g7Zw{@%p@@0{bi zvpBPL?9W+z7mN|hoW)PX2k*inflkohmv8`&0i?J9WhPT;03jnW8Q?Yp&hg63>?*)H z4&eG<(1(C|e4I(6+HE_TVP?62wv%Vi z|BP0@oPYB#JZk@1qW@tY{~r#?0AyMJpR`D(bDU^ky=zUgwIW_75DczdDY*=wB5Qu5 zBAab@o#T!U#uO{SIj(PfxwfVVr*oBx`TRC&(sl z<{c{fXl#JZgQXMx^a)p2A(Va#7%DlZI%fAyHCw901}Qk=NnhugzfT*W+O}<|nwMI_ZsqiTX74@|yJ50Lr zwW0z>NCb9r<4}#+sXGYb3GQOgy7Kx?=#ZhzBY85?+IVz6;q7LfDfD_6p|U3QbF`hN z^t7S?;j4zv7f@$Zz5yY~{Z8F;%`8N)V#0XRo z^yTB=m5z6)?6~&m^Ne?uoq)HE<8zWZp&TAuAEFUgM{nFY7-tbuXRvkfyAVud=lLqH z2tvsXF7<9^qs=&EQwS_u^}}yK)96}&2Mb=QedsOBYjDC_m@s(Hu)R{G-%<{cWt$t& zxU>v$oYF%Tn~r5?PJ*3w!p7v}rgPKD7d}r9j5S`LUg`R<>ceW67J2bGgj456=&2JO z+&pm>p)a`gOU$w|gvWKyYEdDyzKqjl8w|&$;y1i9sLTT(0TtuU&O1w6lm-jcP1VIk zPp(l}+$``1u%&XP_Bd`k=}_Q!GG)#2T6)|V2O0ndmvs>ga8Iv2e8(#f)T}yp`C|@M z#5ktfIT;|<=x~+EvhjCC*Bq?bv2+qtBggv~a)<6AFqgXx2|Z_BuyS`rD`@eha^HtV zR+;+kiYuXPbc2I^?O(41?3a?=GB~Ijf4*$-%5!}mdjHfrp~BIZE88`B-|MTbV{#Y@ zwAaS4WP2)@D$07Zh7eZvI`)%~JMy^G(@&o;6mTO=?2HWQs=`)-#YH`=czuF&Bxl{!~fZ41l{T-s5M%)2k;* zjz!y!nmY4Pd9&(7jd6*6sX21z$(zv=(+Py)O$&Q0oIj`BCgBmaq;_ct>6mC^c@?i9 zCtu0i6UJ%8Xv=tj&q_8FqVT}v<8H#rKT99hy3HfzKjLzBlP`GH%ylVCIEc?#{kmqg zN|t(UzoCp$GT*f5c{=o1(oc;o}X`3PL z8QWX|n72{q}cK@o+mP*(#6sJ@U=^{iU%XbhAzD-G}5B+B^WlG5?7 zu9&MV)L5+wdU^Qr_OxEo5m=*2uY2>D3@1e}_dAI%3&3!k)1u!yxJJJFuK>KHKXwqM%w9{t* zZZosu1W;qZBF;RGC+(ibQ_C~5n5|=Z1%I+3i%Z*pX}Pj$7Y|tn1iAovGc(ZD*1^nI z-|QL&X6D{LCcPOzX51Zl0Pv~+ciQhJP+(gAhXVhn_||`a4*y-x{qF~c)U~so~wi9F|CzPX*2yabAk1p-><0IA%4|30T`zM!J| zNiEaC7Eg)fbKhEvmpSq|d=~2*+piyqno$IiO-gS^n`ch@K>cMQ6o(e7ww-cjI^(35#nOMwyYht+;aetb8Ur*H$N$jjMhPUdK! z1W7r@`AI|ULz~N-n+xXFl&~}6pNU-b_-75~UGCWfUc5gFRVu9zqYp0{GnND((sqpv zt>b4Y1LfM<qGHRC?w5Y%0UW(9+Je0eYRdOR)w_=qklT08smjN9-KIB! zF9*CeHyyyC_d`<)Np*~kVCxn@ZIcQhx}yNbPPlUyNbogCskPJJh~?UK(U^yn@rN zR2MZ(8l4>hAfQDXxO#h*A)HQ`RRD|he%NfUPFB$ZsK%b1L*q;Fp{dPQdt^kH?hC^y zy25@okP&{~V5&@Yj!mY4nGQy%v;sumbxd^Hi4Q|V^E%F(Z(irT%avzi$9u-I zVsZiC0;0Sx>)w`=%O|%Rp^rWlRct&8c~^L_D~Iw&sEy%c=%U2^t}&{{NArm~(OW); z4z+a{y4apH9L$fA+}Qc_VP47M^U^!NTXGV$+%LbS1+5u>U;bln>-Rt2(2{yTygNC* zn!kDF*YNA!=zt2ck@d?;Ln-=(oa)7__A6_kM18mG@AQAjly2Xt&1ZSW6?>PQ3xaR! zb9@q64=2p-MmyR}SL1p8}Qi6o(;=tEp{tjQ5J z(nrIG3O={KzvQ!SE$rw!gra!!7+9Hj;IkTzA`*pD^cPP=l}TsS`68*gaWP!jGHoz8 zJwIzPfV6_NHq72ZMoY1Y9-1z-S-@zF4YROh5ric_dY)a420~w%OvIMPUfOXD{0L#+ zw=JEv7(4E>nFU)*6v<)|CzkK)nBS<3Zg*!Yc8h0pgd-fT=d@f>JYvr<*StKWb-N|K zs~q??(lP7HWtdMivA7Qh?COWOM-Sy&H&kb=9eLPjI77890$OyZp2yp`!dwSbuAC;) zWL|u5lxG^)T4BzHPm{%6r_O9Q$zC1+TUiz#N9JLMIU<~rRzbPS%J0FV!Gc_}0d0k! zQE%GPD6L)?q}?IwhRKt7DU`_}E=sDF)p_kd)u8+by#_YgzfEio&LpN}AN(80nb}7M zRD?1kUBKM@51Rt;S z3V}c|BIxN^?&`H=w&tEaYDMK01v!SqTB2z~V^bp~kD#rgeJN3ua#K%}SXr*AjFlAU z=i=ss^TCug@i_*B-dp8FO@o@+<{8tLUCq|e$$3zqsVOCdW`#pQ8=&`WAc@zXKj#o$ z(W>j7H4vkQ6TPf5(@ZRUM@SvPFSGbCvRE9drNTTKq(A#SfE%ur@Tlo)Fu$)Q7tz9( zj`AO5MOmm0=jDV|m{3#jsv5(?*Isvtef#_hrMKnERglISpYt9%oKgPDEzvU*Q@cM^ z=Et|_y;__-`5D!Ko6a<0tYsKKR zD7UkSxyp_~bDBUxo8Sz#FtCZEf`^b|b*)mDQXb#p@Zvf51%#lT+XBxI;tf(ECJ^v& zBpE7MK@10hRn zy=z@YKeY#;0Sk{nm)R1|LU#g}w^JU1BteJOQ@({qjKBxy;|Oe$dx{(7gpcg+Z&dtX z-CCSy7{U)09qL`<5|W%B=oSQ4kQVKKgj(>_eVB{2i*|Go^3oCQPfmsAeJ<*I6iSuW3EEk{U z+-*EYIb&%_5I2Z#-_crodb1!|{n_?MwMUhgKdQv+Ie57C+xyCCj~=&Jjh3XTl~JqS zk42m74-+*-)y{v(2OY!he5NhkE7zOI=APbq@;!q3Er0wHRDJ=-zrR{$Kh$@9>HaKg zukxVB&wxnbU+VWSGQ#KHZ&|8;Q@1#qdMJ0N_Y8h#!cq0*+6&O9gx;>nvNNgWp4&pF z`X6?spLw+@30AH(L3=Mas>t$hcn0Y5|JuVl_plUP;%90V=Z-3yr%Iq=rJC8j$7 zo$JjS=ap7t6`q}xQM71scxE#u4xC(^+(C>+rpB@)XLC?URN3T;li01 zAFslQybs%(d1Ok$uqci*kz8O+c$F&3<07sZp$>UJEUTt&A}M#RVh-lwaDO$6ywQo4 zu$IoUq^CHKc47sMwssUWyHn3%R~sCb$*cw_$nglz5-}}PTqSB!!GEOG>IMSdIm8|j z#f#dzW|7pvQBz|lQz*uGMVmq(xYJFj$C4?z1GD92MM=sitRgVXe@R5DI#=p5vH~l(1wGYw3wuxU@fCo#YUP zwI|HEc|-WN3-OdG!OrU-nIs_NDlMg2N0e)5PwMEEg&*&o_klnsx5>V&S^=>#LTD-= z(k!@Fmz;ljQ?cK!C4W48U*^M9r8T)ybfJ#O9x@3fZJNNnkT30nm7qsC!gUF_BxSt? zg|ZlcB!r4mv^!49&;P-wW=A)0{vAB|Ux(`7NR8iKGbVV_<17H4{O5jqx1#L#a{F|2 z*4dbBfTsZ{^d;tIyEG+zce9;Sot+0@uj+TPSAb442kFM<-rbfmCV2AZpPTLBKbX|# z@xj}ZfXnRu)Qg9Y{;ZfJkd= z+gMwhXsel6>rqTiDFjnPLz`WZw#iM^#@VRjbaaZUt8@06HJDidNw2GvJX5?j{!*eE zrQ1-)tfoc>hm{c(cWLR{4WoW2R$V-_ZKPqHR~Gwe@nI&Z>4xu(WJoca4-l#K)1mIS>e)nEYbu{*}=avqkx;X2V&}WwUoiAwFKxCQo}l@_;5W zH})L5n0=vYD{L^US|)rC=S*0KYdU&l)5Ze?GJ83e`Vc*H##Gk&W?|xNK$G?DOU>Eu zH9(mQZNWBA%+8ha%c_q|Ju$;=7rAc*30yt8!y?~(t-&tE+NUk6{LC#7hz*3xB!K&1 zNG{J%jMny>Y2P$yXA}4AEn6j7Je)u#Q{iI9RfH^P{CNSrgT+zmBj-q!L+{&@y~Dt! z13~p@PdZGZ$_YwF3zuhKJYV9U6biQ}XAddVp@ zFIc&>26{sgY*zVnsQhr1w|;g9el+DWM?W9hG}9${hZ9%_6tKu(zxtRFZv;FKw~z=N zMb?E?6OdQz^p5BKIvR*X=ae1tk(alM><{sFm|?%<=a%h?a`B@;pwi*mCdFirPUxjQ z0>`~L_-C(!*kg6vk(YwKDK&~hv*yHvbbbB0Gg%Pi0Ql%}oK;P_h`K-NwAxqD0hlKp zTVGYWCX!XKNdO;!8g42zT?-dMvz`4qM4EY>lEYse~jR#9g6`KJs8%piQ+~dL~M`%>5+Kp-00XDX>&t}A~5BmCQ&Ih={ zf*o0Z%(S#W^LSFv>EP!I{sXSty?VSb3X`#8!D4B*r-8=Nlm*iZP}w+>-!Vxtf{-v8 zH;`XWk04+ls|fANIqvU{ALqOl>&WxSux%jY>~miD({Cz%W8V7*25t+B6WXWJ=hoYJ zuy(=sAwwqiYeU{YArSES2QnZSE$G(u;Ge#kbdBj)B|1o)HqpravN{tD4lcmxHd%3- zBe`)+BnU!;Kz4?izcb2yWaeB!J*bgb(K+#Q#vr=pv-^eU%EF!-U6m#Kengj*I~tuW zu2wj&zgD{QW?{{{yJk?nec+eO;)RFl?QfMnb3S-^HE-gaegyRGcdP-2WY(L?k5mJz z5#=lQZe%=ByQOFmaPR%6YQA>`a^r%xf9@#C+M4~`9xFdT@_A*juB+tLP00&Yce!W! zzOL0~%>0~xjWquLwDHPzCbaqer~4*z<&R&(gpBMFlNWp6yuAJme(nCJme}g3IVYZ* zH{tSEFQUZ6pWcB8?M&a>%NBPGyw^VtogEzZs~+=+kl4=?K8h%SmUFJb)Wx4T1?#WR zr$h)16cN`%ZgsL=ieGGp_noxPA=7wG7c`|!miT_)ausV1@^SguQ29-~ITOpMvL~Ib zNG3G?md>hyviekhn9s2X+vb9hO-Xw_if0A3cM_o}dp?yn`^mJSXPue6^>n4|N)%GB z?+zT_D_;03O4S)0Tc@ zqLt&bwlIczwI?Y`jADk?r5_wuO$e->j);d-to^hRThy9a5UoSDM(eee^3<#+ygq=% zdRV5CCTpo#TP!cad$Tau@05T^of&ucs(^*GLh(Y3J)3G5RFY&Wor)R3?$e692W#US zNL4724z~hdtKb1zyE*U0)nrac!_Bk2WP(?%&jfk%Xb3}&WIG|_0nBBdP=?u(2CqbJ zRvNi{s^?F zUO$ppi#m_8*{?NhZFn`znUABI*6O_P@)MAnI@-iuJp7T^-z&_7f$g{FpL|MF%K!jT z`4|4mWtR~BXC(X2c5h}Rdv^hzc!HGpTdtWFu~@(tei`tG0lx55K&!L?p;3R?Hk?0z!kcucNiF`2X6z8aA4gHM8c+bEn?4s`}6+=`0CHG`rl8ecXfIX zpwrp_(K+>RLak?`Zi>^!m6__9nibU*0$SZ{W&xCnUZdDBwK^_gPwFj0o!a^$LsK;c z8DU`_G#5K38z&bUEg*(bQ`0jZECTepskwd0f|8tSN=--w1p7t7ni@t7g+zj&pdUYf z{bXS?dx(>^Ftlqtl1DXPf~T3JhNEmKjZ>MP@VrL{)x9aP&>fRxju{Y{?X+-S40|m} z04-@4BwMdOcr@K5#e;5u@QGuE%TU=^oZ8|zMQ^)odCs))XSk#VO$Hn=1xVAj+|NK# zQZFZ4WWgQyvs$Y}+QJDFsHjpIdswAr`|BEac1(YrEj)VrMRO1wVO;e+Z8{6e4Y^Hs`x*~VL=X`eqI+RVfh zTHU|n3N?fFHYz9}K+qfSUsT#23%V4T=;wL|k44;TA%mgpTzIR=GV%csWIMLWv)8cN zt5^nT zN+vh=DNIqz#K$muHu2C-dI4d2)O?U!_Ur(69cd}6SkYP_Cx6;=l*-8k9*8(5ha1QX zcvkVs`ACD-h(nR<_G6IfHcdXw0#qrNU^|n^#+Jv)0!Ch#i+*kH&PC0VH+91CfzhQw4{3a{?78voNu|;avdYfXNoum^L?Xh=2RP|mnYV%Uv@pro}t7l{?$dr7$i^Z5;eyy74qT;aKUJ-~Y0dIqF!h^u@tgfPUp zDFLyyg?;IpRNcT(YA{bZI-&FC9xkYSwG}W;gGEBCxJ&}{?bfVhlgyNeVqxnGsP|EZ zk}-ihTIKKixyqt?Pa3YU8e>i5&N6E5)j7x1ryPI%tFzd7qYNiwU~W2BCH8T6tAO9^ zzJHVx&3m*J=h#KuGlCfRgR~r|>grcL7G|DTydrKYC=7D`YR@S5mK@q(pW#=J{POV z`0*=eRc@me9^?}l3>Lf-UgIK-Z=(K`oSSrku0iU=cA%D*Okk2 z5!LbWT&0mQ$L!9=a-BJ%1t)k~>OHNX6)JVG(uJzd0Y3OquwQNt&b+8^%B5g5j!zGP zGO-nX|B&!E^Y-7x`L{9ytL}f8w@-(zlPhzDTLsiqct_uB7H(e{QG zL=6ko)GK<-DcZ!c!P0tnirz&{GnKg;08Q5v{b8@7C@Un$%Z6g(;6!k<^YcqcDyg>9 z`}K&x9R1Q7&}9oim+^)Is5n$2=K|r6sY=gibL7XU28TU+Yf8=8&Qgb?@%Q+Fv zZDJRst+9~eDJLMQgde_p&Bqb~!6s&UT^q?d@#0{=KF<=IOCBFmwb&mxm2w)EMyty# zBLnrO@6=Ir6QO>|S+{!EPt<)fV!D&_Snn!?3&qfkfNc4P}#@=b^Cv_u(jS)ni%>3`@gLvmzg_oKv_;=Dc>P%kDc%`t4NcMLd4gP>|- z8;Kc``uGF-*+LJ|;^~?{J5qH6P6hN^B>L)?h&;^TV$t;pI!f1HWW~M0{ z#ud~L;ve7i41X~4h3e8(pW~ruk?3>?Dl?yHW?j@l7)(~C1X$ZPT0O{)k;P>S?!Xi` z1E$coK=ooco(7XFMawu$@d2JzMpaI>RefP*9_)^5Xk}q5{Q!za7%4dBBD;Ld*FHe+Oxm?R_k=&D}wb+#=5^vuivsDa|)+zIrM2- z8n%}erG>__ARZ6So!}{B4Gg>~!H=W-@usw+g1e{~#K*EG%~5-cta`_EhlP-Z2^%2j zKOcYzKhOkoi?)c8t`>BF=wME4St!^(U+n4tH(Ndx&aN~`0O#0)>c{DkF(bz`ib=6f z+$7M)?wq#HMU{?z!T=29TK48a2}CjVmiG3g)3>g=g@=cuFLKIf9={rOeTJk{Qmhov ze!lt1$>8Ot*#;M}gD?&XfNIR@&?2qf9^Q%Tw!CFa-UMB&&xNR4O;Ef+e?S; z7m6)6SQsk|7W-fA@+(idQ2LtOe6(AU{aBxVhIr%8Z!_F%9v{{XMNWQ?PFhUw+~_Qb zi+Xh#?wI*x$T83mHWc62Efx<*grbk299PeKG~0VT{?qGhI7#dlRnQ@^()M zwf?|w0Pp&i0Qnk0TulhYA1a&;z4h*s59RFI>_f>kjPBl9x$>hK=%V+-2aMkn_e6bR zx6}Cr7n;4+5=uq8f%Pnj`r_sX8+{nRB4q|9)mvi^@;pRLL=LQ!kS-C%@^k(8IG!Zc zyM!1>vDvqo-XB*yd-1#2QBp;k-cL^|PmWi)om8h6r_(6{M=tlpM7e^GWrD(wiUU?y zs;9t8@WikE{0D@H&+yKN_Qgr(6;;5bW|QKJu$97Zy2Fsv?uZL|9cT3&Tl%LGJtT+~afmmc>vbE;`HJgh><@&X^1lk~9fcQVrqX1i7*tG@k3b48DbL0yZjv5`(-*7J zQq8`rWYmn%?d%UIGt&r3PE0IGs#UzzW#J$srFKGi2mnn}OjF}url2j!gnx;z^5_zVa!)2Q9ZygUQlDZkUx zox4G*Kl&%={lG^1!QI_KdE)-_Kkv`GUhRJf@vDE`^8NpgP3-qlTgTSM##CpIsg1r4 zz;#X~0_ZE-T{+INHB$p<1*&HHx`j2hd4LnF$=nh!ZMRa2^>p-@dfWp*rR(a9lw>jD zLMV1LH*}PZi=SUaS{7%tx4#C+UNttgF)RT+HUsn+z*x@EG^B^wkTB4v&tE=4KoB?^ zN)&T;CE$$p{zg(uGN|4;F^kK@CPZ6$E5)-~KvI5^o!nAs8NT9T;NSqnK6MA2H|H>zXN*#{k))PF}C+;P;IaMjL8p0u^vE*(bt!iRt zRmNR+pbUzM$@Eea9jm%p4V4%78!l{+M@E(vb+IP zg(qWhncX)n@ACW2cB}Shr?O=;Iep(CpZqqDzbUwO&$UIWN>g_+qkJq z7O+^nY`GtHd+iZYB?2TReJR~(&2{A+y&M9)DoH#OOPc3=3OzM^;)#t{7|W@Fa~Z_R zes)ejnItZ`7z`02u2*9c%OWq38r?j3gG;9_vz6|Hj&VvhujMO;z)?bF89t)qx=OFY zR@VjX#li|x_{S(YGDNW03B8jl^UTSFg^PBBl5W5XlpON0$Uq`2^g$2~JB>p_NSO|c z<9T(n1lT@=n+YVr(;R0)ix9XoSg3!aa86eDxCSJYfOLvwGkk(vME5Zcm6bm24M=7~ z!PvmacsF-i#r&mwzstH#q-U0#xlVP}UIJNl6^5+|qbvlp6PQ+Yr+cVAsv>{~LB60x zW@#N2QEv86Kg-6R^-GJ`()TO5zEZ$@GS8Btak;52nN>Iyc|TH?3{$mx^R{ik9b$S- zQjSEqIp+}{s3VEbR5iwwrEKUV$M?jsg0w)djiA1sExqv&_KNGH*FA|wT$oK2*b7MU zMoARgxz`->c4XX60xX8n+WWE8nk2_}32uta;$hHXJ10Z1T%Up}d>pv#FwLWV@#|qH z{qNv3C;Hfql!Yg+jkH&b?+c{eAFS5z=tb=dY_7PWX4E|4>XEDv;&M?mOeyL@@%1MA zH+YX}OwAAN64y5ettb5}MI)wyZZ>}^EIF-u^QKi};h9Hg?iNMHW{12uGja5_>PLp% zuaZ@OqLSWeJyx3ZX)%9c1Uj>KpG4!U|M|n*CO{(=)3EiHA}brUJu{=pz~p({cgtskz4B%J%jLISKUgks7=|&% zj%_iX_U;6}JD;B-zK}lIHy`)r!d=l9Ke-TEkkO5c{p_qYX0isqF0Cky4ZQf7pPPoZ zXbqK*n`(2IzJXrw3>R=OU$&t2&yS$Ov{K7TMX(YqkZ~$NdN~)8p!jnlCBgb(PH@C_ z_fxA0*A}1LJzTQ4hV%Rb){>8O+8w8gZ+n}yoJ!+ zJQxLr*-Q%M=a2!QRHmj<@~MMp5!-+Yn1PMA<`Q`6-5f$g*2Q{XT_*}Xy}+sMl4TV3 zahm(dQu6&yxo1MqVLsaQv_jj|F?(48(ZZqP$PPi&lHW@?r2v5_&& zI~M$8u$>&AH-Nmv6x0%2_Y}uct`>X1npANLzo`!K$r9WS^BNf!yr}=weEx)E-uq_!BnwjsmD>!#Civv;--f>HbE{0sU~n!>_6rBFXQ&V zYBO^Vb=nukEHpd9oRI+r2M}{+iZakCy4&#m_lz?WPYE2GFYV6AX=Rx?)l5({jS0gl zX3{qRR`l=fH6Y5&Gcz+l#T4aXAV39duYmv+P-q5B$K&^&{oNGyn3-_~3Pt~-QZ6zU z-n?G@KU|vsy?V@kADe+2v#u_4JpOO`O!AEZBN)!W-WZ=-R0H_8EgLPZueP+dQu6*$ zY|>L{Sxd*ONQ()gxlm{x6bBq7C?YDUq*p~})|)gmUYonx{tpND(}D~YDPa^8v<2Ll zL2wv^Ph3`IjaGl~{HfEji5a3g9LQ(RiAl|(>7*aup8CR*&L9?Mo)5pDqavk9ao-9~ zT&5qiByW30P)E{4UPrFu2Cx?Tr!D;w>riEY9D`xlVNdVLy^`{dSKR}vtYzYsPx7g| zz*hH)$*QQJHrs;_!1#@YZq;NT)~(5BLx&ILCsoxv-AT<%q(5$aarK^6E<|22Q3<0b zc1WWFrY0|ABwsq94jFiHH5mXC7ESe*F&$MEI{D+?>vomiKl!9%46y8qG2Ltc!78H*q1!|LmN`7 z!`bqUT;H881YUx@M97D%oPk;@2=1A^vP}mMQo#_{iziyitY0TDi`UX*+6%qoklc@6 zJqB}oq6XN{-HspR+!IA0LhpSwBl}<&81%74@uzWU(=yHCSXsl(X{dM=2yI@p-8um0 z`{CQ_>s(kog|!xrYRf0uN5~0E;|Xykobnk^tVK* zm!k0?QwYRE3b2FcX{>o1&6K~t)_`VIKY`pT5ZVN-h?3EM<>hG z879}|Ek}Iw>x`1mGlSUAQb}SHlM$WN?raYMwwH!j6J*`p=_ga zY^twUj^whj;YdFjN>ZY58{QevMgA=z~8*(&YY-G3DHP zkQ^l3)Z}=0qTwM;me}zWWBb<2`;A$O)=aFokwO4rWh`Sa zc!BMgERFWIFXC#0BQu(%OYwcD_mqBEwBJZOu9(tduV;Sp!}b>A@?Hb{O8Jg{_sePn z<@GW7b48{-_3ho)$F7bW`%hkj7MW?6ZaF2rJ+=Hxd##GSWqGwtA;Ib4ne}N$H)-y5wUuKNaHW>L*2J?N`L(-_~YC4 zmKfoVJBlXw{&!(G+o$+)M7sj<dK|CV>{`hJNWnud~QgMZ*symmWimv zJZxrud$fvmQs;CG>v<}nQ@}Opu4Bdd!i0g|%+~0)2KOvl^^GKm7KsNTk3?}qlvT-= zuhNw{f%^%m(IIj0$_NL(Db*YDom=s5nZ~iV5hJzltwU9PDMGB?H^}b@NQ=$;qD_he z2Bs6cN)HRGB>ZY91$dz>#!OPAdB0v5I5HkjiIJGH=dCHm=9qy+M@brHHn0(__PcS> z&^JBDJsA-uhzG2+m(X#{Ck}sKcb3kOk(T2%aGg!FTU_6hqkIFDB14Uk}4o>A5v4R*+b zNklVyokUM`Th3i^T_I-4eS53V)id? z^Kv4^L5Z~)e1IaSr2(Qk}s?N%(&&hAxOP0}D9)A|5fqquo zo$ELLl>EKI^f;jR;}7O$X6YvNUP+oh8va-I``v`hWfgR9``X z9{*O5(KAw^$G^1+>gxOP@4_7Yw6r2>UY3@AwZ1`JeM18f{#I5{j!lq>>QGnIFE7%U zlMv*=G9!RLEeOiU#L6WgDy^VGxK*I9s99CrxLDV`C;3xZvv~w*94DHQ0SW=%15}@p zjbB2pXDz3)W~naf9gPhdC#0`};)&!OoYK8Oun7#wpb7LPbIXg@;fZ(A;d8COoj6Hw z79)j}p%Av_IAtT5v4Uj4%Z`HZT-YeC#Tn>^tCP}Xg902Yqh7lG0(}yx>)|?xMqnuAPGxF@L9$hv7=u(mRrX2#emTP`0;oL# z#;%@W!e$U3%p+|X(Y*}PkNgmiG$*+Ju)&PphH6pJrobrqjlNSf7_JUy5nMRy4}r5{ zwvU3CGpx#j=f4NX_^7CNAX#vdn@61)Ob64&+0HLVfXm)jfe_igZWO5;hDUBuINWkB zus}LFnJ_zoi-MIpd;uZKmk-3S&Vz*vc7cgE7dtRVeyeD@$Q&Wxm4}B$fE+n148`Ex zB=W(`E|;eKM9{=ng$g0dpeqMBX&{imm7YaW(gXWc^Z}5SXD)9Y{zc)hI)DB1pE;IS z8Gp?8lwZ;bba=q5*gE;T?6WK;swxI64LmAesgVTnDoY!9Mv>vDLy9Al5XNv`RS--Z z{X{CAkdNv2t#otoX$*A>IN6%FKDp5*=LG_3fiS?0k9c;o2E_>w9T@H$G;0!DyczJW zOU}1d7JA$COp8A+hd-FF)gE;V$&NaOCoTOa$E zxSHN4%t^``bRnMeUK>oaG4S8*pE6qV9z+>jVY&O!XQ`gT5`Sgr?sll`r)J5n%Y%nR z5Abh}@g8p4yd`(_jN*fs;a?x`_o_E3PRQoQTFtM7|ZFDi?uA< z&7048zrFWciV^7za`aa!Q6EUHU7C21E|~JAOYZFZi?2jj*ml^;F0_1nU7mdQ(3|L@ z@IxC6jkiNLs&9RedRKp+Mg4vAV)*3`ZEtmj-|n`&*D?_}oVK;u&2{zqz(tXB3fu8o zA9^)D{ZTac>bd1P%Qt;z%7Wihk9_FcO&;Tu|GiUSt9NcY^mMwec&W_0!o`oqX{zEI zU0Ru22Ufq`{wkM3vNSjeseGhYk~$GdLoqP+i1)r& zXmSy1T!xn9(aQZ=-EM2Wc!=G>JawJ8iYcET54<<t=Lh!XO)uBn;!#_SBjQ7ICaKg)v?_pL#Ti-nXJB! zn<`wt%jM~YWxizJJ}}Zz^5(6)U;CplUM!4nnHcSNC0{_zbI85#tt~-vAnez=f+pll z23n>{C^---%-??~YjRSYf1%-CUEA(yO0mb)B)1qd783T?LMlQa7%DKosaCFi^n|j> znCX11Wcc`e7)0aRy$Iw9vBc^>0+Bodh!=_)bu0kkJ-=o1Q^DlyN%yk^i(3fu%$pb! zaqH@SJEQF)5EHQa=bGmfV2Fd(_oKU!DAlO#5~-h6VRM(DHq;fxM+yuWX9&N~J8bDk zbFsj)_~_8m0ZzS13zpAPslVTuV?nWN%m+g$M}1xrC0~%Fv|l8RXtQx(Qr9^p##pmF z5aw{50ah0f^y%uh=#%>X!Qh?4nKix{SzhZ7rep+fQv{=T`NP;B*AMgWOr-|0)u1DB zhb`>g8D;!oA}*5&yiLmu3XUUdVX`7K=AHo-{jgesG3=h>6%k(DW-#lJHT3u@PPS#U z!Q4F}`50wHG;nZYcqGK`#)lh>$mY8;M>8hmNF@P?&3}D!|1+FMZ)g8=IPIVOZ=mYs`}a`FrF8m)*1Jk8@ybwU~yY~HWp!3zzO8a{#rSCRS`=VpK{!XbqoB*KL3xF36eC8JD zljQ)$>z^i4{>=ja&oA%)tNLGn+^g?d;J{|-zgyr&IYvtOGUe=o%Bozz0k1bEH#N63 zNB!x5E2Q)Q4tRC7hMctcK@Mg#D~6RB$%tg-;uDfqs<=}CFtY3FuRWtX;6>(p4*26d zV7{q1=n7Z^GI|4OIL^2={w0mtY z`#=ob_6V?*OP22<>Ned1PYY0;+*)?^uto<#&S#HMT`B#tx8K5p2K#Qf0IHO2e5JrO%=1AS4dxJ80AuBHOHZFZ;G=*l(WH!Oa;A zpf&hCDfL5+m;GAQy_g8#V8vEq;hLL)U-#=dr%^OkvK0h6&};Rkpk|z@weLbFJ`&_s z!u!!>+th5cSYnRQ)Szp1Yjbz7k#a^RZ?++BYmhlhc=H}B>*WU4Fq=i_DEAp>@0dfo z8u@@ZK(qx$EpV$^F)u{E%Jbc)&z4;k|Od-Z8hpwj+91 zf> z5OXVl-RWfUm9MwXng5owJBIyZ_Zym>>DK3|EJ6Io*wo#=P4$2pXUa(d&*bqu%SQ?ZPQJ9TBheNGdan%5#b z_^8_%5aO&iCaQ!@2vu97PcB%Ea;|g+8U~o5<_u3c=lKE>cgvEF`C--UG^SUN)OoS! zI2{;cSpqkS>t>5>??@Vk@1ka|kV5$Mc`|FrmgwUzwD^FVMQ?3SX_9@n+>XiSvN=2& zP_FmEYFkBNz6J`VJxDuq=G}?_cn({LcTJ;s0kzZ7c(A}wf}fD^hd%Tk=3yc6GP@~ztp#ILq@q0OIi zTec(H?YE(KcCIUhdnd8@Xe5zV0)lO-#_=b6l73p$i7QK0hozA%S{^hhYPzg_Z%t|Cti&Nfgu;TMQfVuvJJb*C*g}^Or_3UZ}pkGe_G&}Xv*!ZN^S1-(zD&l zN-fih`~rDq0YWT+>e+Auys_GpVt!5y2mF8qhp=&h_%SXS#HpKQ8Q1lvDYs#TbPN3K zf40E?krk&~;I;w4gZn=SUhd(*0qzM{;C^v{BJbbe!69@--h+tb(MLsNi}nj%Kxmx4 zE1F%CoeLDP>7rax)>;OPrBnl5Y&yh?PQPxW*RfmL`u~*XKO5Qf4YPrv$>F^x`1=n4 zX`cT(rZ)3v8K7VP(-Zvvfi(XQCu{<8tZi*&Mb=g&TM>XlmuZTzseys@ey__qT~*sm zM_F0D2(ZAdvy9A|%q;dTa6N6knE29oZ37*%x>}mDjFb=uhJy_SK>-WAKvrB#L8rft zY6uwM&n)P2Y}K1W$ePbLP>|ziK_lqBuFnw2HiU&&T$!+OsNUzx`$t$2EmVmJ?Cwz! zu{)5O0ihLQH2ABcPrF1!1O)Y{g<*F1K~9sHVce!}D&Rh~y6Qd35s}EGuc^vG9;zi7S!AxMTCSw%p`H>4iq$V=%{$Tz%?D7Pk+zP~_==FpAmxjlr+qV&(lC4guyoskSk zn5h491kd|RaNXXAvZQH>gtfWTfac zV$GmykL0T2cd;P#j2t5WAnk(4q?KIi^l|0r+@X#1E+xTuQ#3RZ)n1K6&`jy8TX_~KrJ@M z?5>Li)*G4iw#RFz>c5S%Sk#hvkb~w>if;*%+rO3<29m~?UMJ8uI80=E;D^~ekE!slGeCV{o{D`%RwSb&_Xt= zSp$Z0c|H1G!Q}_O)ztX#_4S;>@P^qs*5)7O7CTl_ug~2H|MBqD1wSq6qKhBOKiukK zJpZA;Hvi(ODx2e12&Y8!etyD!{{Zy07{OtLlg639zr;RDQ~ky}^Hh6xr#40J;``O@ zufMHG}Eu zsJRU@TE$>KSy|>hh6w40kFFk3>gqA{^%{l`DvwGlz}SzM4ks_g*gp}5KC}z*mA1w~ zG^X4}d%G1&$V>^M5g8+A0b_i@mBI145sv|csjUCWNzuyHBvVmWxE58s5JXYIxhR}p z|0O0>V9X^}cULxgCz3fF!|={ON>YL66-a1sG;r>MsDFE;2-jA&5vZS0oq63%?n$jK zPd!pj~@}J??|Nq0;#DdQH+L!5nN~--O)4s9vq}ut!3&HfI6aae-gw?_#a;`?@M??ck zT^P4V{MxH`RqeCBiUEzTyaCj^_UFIr>A|%=x4Ro{zzF!*;2!r2&}e}B z1r)NUXBHpN@8`(r+|7ThdabPNzoP%W1OA^c=>H8NazLrItPUSG(NZ!wtf!?#CZ`yY ziA1YCrM4ncRJFAgw8^S^Ipo5+{47J$W>fRMVwV+JS4%f0UMZ!IsBKzbM>bWE6X)Z@ z01MqH)(Lh1?JO(bF<4-#O#)h7FU$e4u00%|qNSJhBwtTeM1Ylv0R#bk|M3$9{?5pZ z^TjC)mPiXdKauEOQI(KJObN$?Mm1VfTo~1!a-Z)9fx~eIpZEw=S`3@2BJsuA13Psw zQp`I-p8L~uK{D3^uhahVNHjt>iQm-rWF(VBhzG~?w3vYy(O>mRxxrHwQE~=eCEtSt zEjJv*G7~^i3EZ{qcg=UCeV#}}@A8j^2}?CUVPYQI;5_3pkeK~Ml+)F)3Xtqzc`>B0 zc@Y+;&W|Cqb}3GQ+3mZJU`Zydmbuyd!&OzrFI{Q6IiN{U*{jDmxUGL?$l~iEa@xGE zh3rV}VO1^+in50qVO+1GK^t6@n1(%6NRn7#xSPy{mrO^!T7N zNib~AHIJ3d5wSVIT-|+PibXMHlXeDxUm_JYdnkOsZGG`YtTKl`!3q;XNHVS41VzP# zD)f;wYXRO_#3x??Jb9Y>kiIm99u8+nIPsWD@Y z>nuDjynIOaA6%!e-R2rIV6090Oi+E&Z7O(ul#3S%%kv}ndG#t<`*moUET@}5i!)w{ zP1}5Xe^VC3V*{N$D*Gp~~Vj@lCbB||;AAdjOasqq$uFWx1QgOohlAyk0T0g{^ zPF`cWamRKhK4>8*&RnpmSZMrf*DdKD%Hs>i_-egQrWJSP<0aZu>aHGR+7><8a=hF0 zEGtTBI(ggvTWrawz@?_FJE`AZRi+8lb`@Xz(DSrB`H=Tib+V@BoBGG2q+;*J#hcd~ zPa?j*(~08!d9LfFrQ`F+pAX$%-Vw6w-ZTp%!?v_V%Czqm%)IW^zieRr`}1Im-1vtw z$wS)P+8H|CyCd_p13IiSQG!9=b7PK^@4VxC@I&1F-npRXNyi1Rex7}_cH_6z<$^z2 z@7-C6e0TL#v}5JN*NX4z(|zGhf?wB8>B3OwuB@8H{@`7|#Y|*DL~T5M9@4>seVB%{ zdTZMbW9Xl*o;;W9g8N~UM;yjm+TgPtQFc4M?vXA2ip4LY9b*Rv^s5tC9R<5AU-t$1 zZK^H2OzgLOoO=Cz>*Z#MQQfNHUGX#@h2!tC%p*W4C~LMbVcA)>!4auJL}bch=n8dO zy++0orDE+(Wcy=PUcF>0nS>G!%iv-!)^<&&fKnMJOiDB!k(GmOonn_DdFOi1Cr`Vs zws+bl3bw#@DVZ?#Y3ejoShgH%V4sN5bTc%tUW8?K^1$TeCZMuA4DZoRMp`}TKe3Bl3m+?#>o z8p!Wptm6{|l@am}66e3EvyrJcpw53r$^RZPbH23S?D{K89!nn`{maPyJ4#N+a?nZG z<>^_qz}zU1CI?8^K$^U`tgV!K9he&hUbY*7^O^2t-~I=W^X4${vVFV%At23nhk^bz zoyawEe|}wk+&5-W1SlHGrK70%=BtH} zoao(vs$2an#_1x-9_BVZSZ*kTP&DenXR#o}k$=sEq0u53ko^1+!N7a- z`vT5De8-P?QBm`whZq$Fjs(5E=w|}Tpq+uBcoQGWI%F4?A3Ise&T%tUxb=WNV}9!sQLTESM+&imTq!AVMP(KudBq{o=3TwbDg9us!e|5w0-p`VqJFG~ z%?UWHS4n}yvO(-#+k6U!a~ky}I`-5$E8d-Yx7xBAM>3i-gaZqa-2BW_(lFOxaEvIo zOtfjAbChA`q~4nV@oE>?XWka)gJ$Uq_z&po4SD%qKYhK`(}Zna_;gB*jZ+<>C46>G zwR-tmMc3#v>36y;UcARs)Yh0nHzSDIgf6ZAuiK3pW#u2o zJ_-bH&azhi9(i~%J#lv<+U(@*o#h*8m~ZP&luKub!s*sOZ<)GWmvi_~J8hxfG}CdJ(qD*<)Lk$p2%sqp=M7ul1q2a68$Q%qlMU;K-$nXziYIrc=R#7cLE7wi^)W@a!N$&bnJkna@+x zxNC)&$Ktg~72hJxSNoAO-BWmG^CL2#f*@$LB8M=={(_;t03+gr@-pKYiD5S3%`3C# z$FOlA3CTZ(13xS*RkaJ>4C8z$Zb7XS^$e7rai~vHmVUq-e?y)Onno@YM1+sInlu`Y zB14@Mg%4=--itBXL6GZ6m{3R|Ps2b|j(PRE^G<=_uL!&eyOF_icHzxl>zwYTv39FL z)BwilV$6AfT%}R&%sb|ya~^0Zv~LVZG*C;a|Wv0X6+#`ScFEvAX- zU7bTUhvp|Z5phq7t9*1ie+^O5R+&^owv-XuO1FMe%;p~feX1``Qr8eYELz?c`iwas zYp2F}NfB{yBm!=kFd?-b#ZC_2RJc;*sqWnk&H^X zW0U*va4r5PP~p1hB44t(DUt$pX+JNv3?sJle}hg*iX{&4NRdxPWgX;ptxBbO16I+0 z?=kOVvG;9eUo;I|%_K0&c)Yqdtuz@W^li!TZ8_MT+pTxB8V(tMUzw;W<56@rJE ztTaya67-`6V_^cv;M9zP%TmYM@2VU)x_-*e-msHfVGt!mn0({`QMZb6{`hNo>@+D5 zJLJr;u{s!sC>?+@iICJBpkk{Tre-ZB)7W?c3dJcQAvK~uC{!f^!dn09@fhjZ-Sxo~ z9k6yKXu5xdC2RhJkWk|T$EwqXqg#wxMAo&yqbQBAa{Gqk+#n>kuvreVHp2mg?eSjbvCoMga2;K_J{uTtfD+ae(gvSqM+ zQo&z*>jxQP1&tw`YH=uVl&#SA->f&rVzf#FCb)h^9ma8DAZ@TxPruHvLTa@!8|{sc z`$I~yBuiveAPrf7Z#>faA-A3we$Wng4124i=vtY!)h0W%b*gi*8+tD>s#*|<84!E1 z@nmziMPukE8)KV z*`3X4XAr8J#QNYWQ>kpiAyz~t#o3H0PpSKIQZuRFm)k7E%}|@((d;MGD-=9C)L*8a z{;b}R>8^aKEXOJQQbB>C}ytTps6* zX<y2F4*`k|OHNP%IEoqt#s=&Fu?;ANGc^ zx)G*)rDsb{{;)~FY9v0iSV@Ml8Oo2frG){7>Ni$3j$T>T7gs>sp`X#({tgHF1x}^f zjrWtJlAzuG6$o~}7%~+6ue$rM4a-jQ9Qpyx-f}oALffwrkHxz8p>; z^9G#c{XlnG2Axg058T)v38inF)OFD-)or%{)J99oK9hQnfJF~>(f7RnDsatCO)oy) z>r(^1F_7%uZ&m-3d;D+V?*IB(`pc;v}Q!;+HXe? z5$R(bx-;^^;1J%WAZ^v&d?Vq|y`a+|Jl-YX1Q??D`K{Q^Z7~r86DMr56FX@()jK56 zLYtUa@yO_;X{>#lJdS3aPME~?LtqD;*gxjG7%)Ad^Q=Fab%i{st#m5(fZ2(88#&gQ zfGZ4OjEtb!#nQtJKfZpDTTAe(60JF*Rq|!c%v|D%e@bu*k`{sNOSs2>b`50xB2pbA znJJ!r9uKx};UN&^2dW_B)+*nFsjR5*xz#f|Kf@l9fLvEFM_?RV+vFI#nN>B}N#?I{Mq5+24jj zUSk$_$vXg((jHySvZy+CASHm&Cx&TjH7F8YnQxR-=8(!GnPWu2^S}dKSG*+MbQ|i$ zMApQjQr;>Dzp1fx%s2p*F&UDy)XCUrV66!iqcNU6yPn_JJvRB~Fr+HNvM%U_v@eSF z$|F!k=iJ@eR*%q(=ZD1)y`8TcALDs@m?=VW?3@GAp}A3ugQ*DUk(^*xh3bh$snf7gE0HEwjibim9OUpY)h9p zcfn;RrscIh+n86koG_epbLS0}^@X2Mhw?fF=#yW(kBLX;(TlV zgUvPmbv7Jf#2Tt+Dy!Tg&E1y?P8ds`neI^qHD6s?nN@hCc;Y@=ngt=xZq)fqD2!3Z zJ@&}tslx>@q~(Nrzvx(JpEnBjYc=8tmxZsIrtJK}6f{k2>szJzaAcY2OqKK5=FKw#aV!yoPt3cGSb&3))+pcIj!;m5-alysy2sI1euwYAT$wh-jaOzWpLOzz=)XR-7G;Lb`3ew5)grAzSUj*Q{4blIv|$9K zmUtgo8R(i>GzPzSN+;Ru&?bN;mg?y23zIq`&kK18LKQEYF+-g-rY%N8DHYQLyZdz2 z>Y|wv#%Cu6dLczR+L39wrqsUQW@njEV1=Dq4l5Diof%iHQOOoUP4-A6rx^Tj3G_*T z4#@Vy1FPnE&sXp}ldW}BiicRTCt=a%QN9@4bUS4+G|MA@F(a2`ebE;}>;aOy+9AaV z9+_#Q=T)(CskSJAydV>n^FZQ7aVg-a@)*8C0uJ{YkQi||aQHsK{(T+b!rO)uhN&aW!T?FwuASf9fmkp>%Z zoBF|76V7LU4e3ZG#7b)=Z_XH*=O82h?OgsZWP6`oNzZ^e9RKU#+A|UefB}1<`?7t0 z@9i4c3k9~l0b6-5k6n_QUXf0z%F3w)8rOhkmr&d2Gbr@XS5HG@&pxtp&qoI8)_<$@ z^yt{^!->Ud`iV@3RRVitdxHHpuk!Ch`QJ4Azdn@zH)=L$A1O`eWvR-M%zzmbL&Fq( zLmi!cU{+xcUQJKOs0aXX5R7V#Od1-Snxf1N_a;!}Qo3~1$}20349j%1)rR;%SQZv8 zKAaR@wYM+Ns1)FD%r^j(bGX?y3 zXjpv7y#fs3z5wBN0YxK>Uxh}H#6H=w=9=>^)UiEe%oHZYY+N?E;E4vo1AQ1=2vPBT zuXJP0gJzwo#iIG^j|-3bUW>KcZ5#kaxV$|IMUrS4;>d)0LG=jDz{~ZBbgv5Zy;Lo= zNW)u>%*y!8bJ=?{DE>d+=4tRJsJ(II|Hc4f_<&n{6j71K_8=x1fdm*Ie&$JJCB{~Q ziU*jPxYX%!`H9q0{N>cSzHTTChG0Z*_60#xUUXbCQLLy^U3s6Ir*v4NeMH4f&$mh) z$i2lfPS>AocY*xW*uHm3o1LkCG*(Y#T)X(LZY? zp4Q}#1EtsJf)JHgh}oiLRwK><2TY+*B-Z0q5g33L7v!khcqC;dc0*@b*aJ4y zJ<7aO5-s4I?A`Tpm!cK{iaf`VuzX+iwbgYb<@}rORSJ{c=F6k-6x_=gHJ<<;Z}8dr z!*JHRVH&amlUNd>T<`r_Ox$F%2qxnjkS3`odg(Q_*cMa(=Ix~<=5QYxmMp*c)urw@ zDq*wkOd7F4iaqoRr+(RwN#s;@(X;PW$9aabPt_OwK?8ZXnMNDfNnS@uF$H;xfnb-v z9OHEDWN{oqs2hHrk!)nVRnN>Dn12LH<1%Wz-c&JJa}*YcdwFg4`jf~T+!oZjcIB~`yj&ohv|k4Cj4d63QU{-+WF zU$K4}JI*T?48*Qn%DmTM_hq}ru(x3bED&k_Y^rbrzhwyV;;S39I^&aal+ViU!dym_ zm9Hh|Dp%%&%Qv?uu%k5%_5fC^Q-^fYr$U#6?uWfb^{kNy5V#hnN=uVUnfM*0EkJQxU}+F73%TEs2e0t;ZufE5%SCPYu*FN5+JugfD^6RUyhwkqu6X$fk6y(qS3Vp3* z<1Zh!n{09$t1kWRg`dEX2z5u)_%GEfc+KPA*dM&LwkkQlkfbb= zmH3UKtnZ`XFU~VG#5~Mq_>{ZNR#7N*M?6wp&U+@c*GB(j9%Mg!J z5D-A8U_&v+{1utnma_LyK}!APbsW+hF(R5BGK{io6I$n04Y^dQ@LKA&SfLznY>K0$EcDKHD+C9i|7lJRs1GfR>b_9ZPqEbh|d zGq*<{e$x4*_)?i+gGyl)q*jRejEdGg`F`JcU`0}Ur~i`U0OI2>BHnNkEyA~I5xjBZ zfS9+~MuJr|ukEnpSD!?NJL?&7Ez>E}_$rZk8`GF}9Q@fji|o=gR(Av9SGFo~>DMKB z{&paNm<8of<$u^KFIQSZV#t=U1r=nh1#ch67h5n_Zpi!H_q( z;af_XqDwX~ zTjt}Ja5f-mf8rYmg8`}yT-pHL5(sPq6{>yKH1M`f$p)rU=tPd<(zX)njs1JOrvBzX zzi@Z$Z++7rxyOg@($`Xe7#OgY^7jk(UlpqVq}u=Or477r|L>_$19tO2mQw!h(k?72 zF0lY^>|=*C_c-jR!&zN>+7nVnPexPu_$&4=64-f{4 zf@oI24-@W$^O50k2W?wm7{z{Q)hN|ZE127Xqq0bi3_n6?1kpf)c_5f9HDVxB(QSe% z29~%^uH;i~e@dSXRXAttQ}6sE*$4tYrLUi#`-9q@`Fol6!BSHE43=0woG$;VZ*HKm3@CpaxLUuZb{nUhak)J z6A@k+%UU6E80_HH@Y~92xKmrpML{2$ItQ5!5-^X#&?%FNMwRPCv{+C3ntkNha_e#b zZ%CH`mg4-2Ft(esoyaq%b>dwkwOT>_;BPz`QHcf1E&}Qwn*(?pWNu!FMt+G@<4doz zpm4-C{*Lw7P1m_i)dvwbYDcY=Jy)2HkQ5VzSVUz-ouM-RZtiIea*v{Oy-q|y7zU8| zNa_2siR5$e(Sn*>B@-7xSFjgmCDDB0Qf;ofd8>=7jSa^-HRb3hBIAIxG`kHUT`bImgztq`A`( zvk1$AG+81=Re@{mO&@4Bt`I7|+H^YLmK#<^_I_?r za05p}kJlK^*OfWqtGDT^fmUaK<-A#=lO>tV~ZrZk#EUoO=PGuYXQ zx8HS@?!6#;x8j49kLv-iE0}BiXOIv8Uv&NaX#RDYkP}=q>%G2gvh?768v$I)(92$@ z?IfcsX8A}9Q0DZ29;;6bUSA>njE_Sh{pA0s0UxL=9dxzrFm$jClm4zVczo zIUh1m1-q0LbO+YYGD*q$_$s$5LnD02ggG=)oIvJgaQ$}WrWOv5SpqdE%|?nyegAb+ zYz?0cf?gM-%3MhQ*n(sccWLD@XNXyV^$cGYPD3B6+U$q%r3ic(nHtQyHNyC6^7pRz zhYH5uJNb39cG!}1r7v%coWjXJUsCmUzkLfhw>!?bl~4Nq^_EjkXwdBsTN5_qfs^0X zCDOhjHp2q6mepaMDT6%eM{~f-Z(-|7rJ2wu@;3FSzYq<)W)amg7>l^8-%rcI#E8ub z+;_958op|d0iC~xy4s=2AGL{9&lc*9;;!Il*t$S-TUH%UcW}(tJsUHI zfLs?E^xt7RVF5WStvKh9kx(NL-m0CttS_e-IS~ChB88js@TAGyK@s4*_PLVBBgbIO z8NkL}T1Y>yV?xa#-pF2aR!n_0wj&NMI+I|MZ)I}NwpP}3XgMj+x(1vRyDO6|E2=)* z-C$`M&pkJFA~3kW^kht1VlN1SmED4_Aq==1f4IwBOoW!n0ZS{ely8d*$}k~?nIMk>&AYcJ`u}>Oz`B$JmH9S zcqKQ|esUqtx9~r6P~9r;@m84gf}Km z0HkV!3POiG!YPsvtXh;(S*6H5;6WsbaN#2Li{A~$TWjDCOh!i1< zm@8oaIsZVaz52YnsA9M^*Q5D3;5{8G-6 zDHlUC_k!EN$|#+l1!y%84NJ|e+(TS878C)wus_jR^iI{@z{!3n3>f|1x1#B@WyU?LX;R|D)f-f!iAR09vgAT-N|!!_-toUS1_x zMO)P{Iva?F8Inla#j0AWR5i6?T~bzFUB0TWo?(meK9NHsjbxUTnx;`)Pm3v`4&5ET zr`^+ESKNH#UQd8CSH57}nTsF4R3rjE%+!DnJ5+bFXD++J_bl!kntTs=#6!o>O*3J!& zMmTzZe#rI?EpLJm5$j8^*HY-pNfvgx??K@HtjA)REE1 zqrkvbC)E+8^Cr8-!xnyFEHw|2faqXj^74<`cr$V(>^oxZq4c^4D7t3{-%ki=K@(Sd zNvv+_q5YRX;7WBikO=)dWugSP-fEAQ7?10jCsu!a1wHW}fI&v!G{`}iJM>&F_y+so zui*USEP^B}>J^EmXj7-!-#3H~&yXeEv{Y=DpI&6i0GS*Ast$m~hzzSIFbm^xg3v>t z8@S77kwc{^3)Pr@&?o~&KRMrP#C+Gp6oT|X$A&!yn~k^Lt;(`z`4q)Kn#(1GE!as| zWjR0!24Tm2xcX5GU({I&PC?!bFpRQA=*I}6+6{`YtWjyP2|UylwZ_zKkuu?mWkLX( z^4c;XL>RRSM~cD+6k~azwN;jLH2nY;b>5uPVpHB|a>wz)q@rPxV?zolpH^3QGxfW4 z?TEM0bIL3J(6b5aG$e-w|`;*Kj?ta9KcX zO`T!;%^;*hA^DIZ^F43qE@L52hRdndNvF019$aq@yeOL;z^_DEIWd@xyk#DsXkhI$V^EMj)HoK+mAeRgK< z&X7{DzsC)Iv@9U-HQ|tlY93Uf``z1xypg5_=W^VTSr@4OVQIL zq7KKGJ&tkT&03xB7nGaI<=delve&`hA^2SNmJ!9)cZraN>(P$V3|i#%)Pth|l19VW zT!*TMk|ES=w^AbS%t)kUD01v%T3cSlyuOSJm?dFzFr(#Hijq5z`Nq3t#_5!MIMsoS zgZ48ScecuKUEZ8QbMA265C);MLWncOSVU!h^@VvJ%2}J5gC(|)0U}5Au*s11FVG9* z;=qI&TiYpija4CddFp{>+<{6VlI2eSunDcz|-^!BsY8M-v@4}b^J zJ?l*RB^^oktbzCMxWv+gq_U(GYFZ{8%t6Tk+Rsfz#m&GZNfo{N+*w0^1*g}l=zHKD z16@7zP8EHUgig48Ff{xxz32T})#BpPqq!H47wGGw|5>d6+mjloRsD}YsR4D?1p3c9 znmUIMYbq&eCTr?znbOrc*VL43pijuuB4|+o<^M)s2HO)p`{pqhn(PgWjQr>ehnJ4pWl8#$gj$;^8<=GMO@&OD?c5I0V?~i*ain3Zh(52v z+3uIhsfB~5`$7|)zOV9|x|vR1DlT|9422vpN{9(gLp1$=+`aifln>wkeawQv7-KBi zV(d#|>|?7jwi#PUrIN-PQXxsDnlY2?jeTeA3`t1RHr6OfrIJ)*Us9=5D&;WsY8urc(eE48+2v%cE-S5|{rPipt3__r;cB3o42e{R(rbJMP60h>e!$dxC zddyv#v$sV&*s>df@Tt_>_^=t)W;Z%hRhvU7xVayyif)1((pA|x?D%MEW&ov(=N9ir zR+C9*yR#4HWEK>Fez+3HYKhvgMV`Q9XIuSzfMGExLMLiacUcJ*L0gsyM zIQeTg8s;&fVe5jfoXRN^!l1eGtInP9x#vtj`pgs|1^VzHx+-LO8*jUy9khY)rfe_ETu3ka3(>@GL~eSaVnmrwG!6QVcX5 zJ$yHSKLaUp=-Rn0%$I<)i=w99i^dlfh#G+oc;lBI6WA%CR!%PAXHO0NO1A=KrgcFq zdKx9waJ4%5k!ivHRg7H23`EQ*E%?I;?9z;M%gPy96@k;v5|(Oj#Detlo{iuxsq5HD z(V@?Exv+M_8ARvyqIWl(ADFyrs6B}4!hK>}A8dsUbnCJ@P0d?Jmrm#cZ}T9;+M}Oi zP2OY#V?=klGn(1xCv5KPTgh78L+g2ft8<*s?&YXX zWFY*$K9{STtEn*jh%^&3C2{0%w|z5mK%3X{_9za`ry{8&(!GEhfZHAV=j*T;2BGd$+Ble$h zQzv@r(#|>E6%{n}(3FH~#5|wxeY@05@ShCgYY*Kae8gS**fHx^%bdIu+BWD{>IdWQ zTzABzFVacFRZ0$wArrJRi-lJ}?8uN16C`$i8hmTL7)BChQIp-4lXpy=n27DcYx)c+ z@o%G)Y1ms<^Y>g%DuQ^w%s856-gsGIhvQSJ><&A3_YQ+RuCBpok8P;r3lw+&QPq&|U=I0k>zCjwZi&r6^RqJc)hAi4~6G+5)1wmR&4HQBt$T-u!PMJz#xI7>wL zDcfTj6zz6IeaeT1jgw?C#leaSd?umT13snOj>a~e%V$)TMS3J0YUyIW&ao7Zx-3Ox zG2|&paO~A(rxk;veC9bce1vXl=rUC#d06dCWRLw$%|OuxPg}|3q02@}j!m1Q2L-W|-=aL50tHtI08K^y_7Y-VgqV-P`vHxYQ{a;39oAtH! zALI7gsC;bKp5GN&f8V3mfh6ml9BWysV{1^*wR?07c#qBnm)o)Ne+K5?#_e?{*_s~b z61eMq{zlKA~TOXB;3oAJ_`D?SXEy2Rj!TM&rLo9gNPV3Lg zP3@hU?y|TxmT6o2pt8w!tHsp>10&OKHdk@C-_UJ)3uW*PcgoK?o@@x`xi5ax^JU0T z=wuv8L{UIQ;+u7YQhNkq=BEB<<|E9$S8m!5%e6;sFW}5R2KG6MGIwqbjVf#Y^r(m4 z5ABiF6jjG56^2sb9to-hSzA{H5mNKKiIhc$l&gJH9JAW7CFaV~efI97n^~0+00QWcS1Vj=Cwl44@84aIR=aiA=JuPZ(xFt|CSyJi zmzd|~u@lpuV}o$5wroY5+P1^2t{KacWMp52?@7DDrx&kYe+cD3@4q;3e5P>TR^xnv zt8hX7t*s@`1iQctZb$`&Y59v)`r2gox0zxQdAK?y9GL?++D=K$K0J<6Ebrt;I_7x7 zbO7ICpNpAC?ayo7TBOD`kq5D=`d(?{x`vIzB}fqjPzK2R1x^IX&jn6mah@)~YSKZT z^VX?$avF5rEeXqjVC_o}q_Asb?&O6H*ydLz`?7*M6LCJ*oc((<=2QjwIZ-sqbY^Es zJ}Q<)jpL0&qw;$ue59W_Fw#i6SE(kq(BbBUQBoPzn;gRXwJkBOL_V{lvt)W6(7DG+C zTax?u6weUiOp-@#q8>nvs^06KxuisgiONwsuzDMc1O!eA%o46RF3z{cD8O;v@OdgY z2b)S7k6kM-6b*l-$J)#SDtjEh&Sa6y6yh^k39yBXQ5-F918%SB^M?G;D^xfGJ5bl~ zn(&Un%b}D_W#3j+u8U#pM7SCGbOG>{qty8}Q9ZyuIXE*H zB7g>WwEonC{ZVd~jL0&{C;))7sP(@@aI*K2JEVtzsTg|0r=b3r4I!~Ux9pJT;zJp{ z32=QQ>q`=fR=UQEHZPNAi6LWXG1-x>2W%_l+y*B*l7bKV`em2`lpb%_iC%Jb3ICJja?O&t3nM<^ zYEH8(gxcjYt2Trz-l$T85bx+=&~7Co*S&gSD;}y6jh5IJMclECLH2q_OfoNpYM67| zot#S;WJh1oGw$LtyLV?g9O{-bzSd`1X(_aE(q_l@F%_LtSc2oEP1YhcanqL%q+fv* z>37Rt++fDQ0_$fLFMotseM!Yw74hajN80qr_R-~U#GtRDyYQ#8p}D%8LwV3U;DPReq3sm7VRR&qXSy`m{k% z6mIff$8s4{inS7|OnRfNST^D&90QGU_A4*TU47H86!I`pmP6pPjIzc%JaYAH6T@(u z1{@P{!mem5vDRqEvm>c)w!;*aZvt4N{q?c!8?_YB|LpJnukyS;E3dIT-NQj`_V5I| zEB_Yee}t<3xtinm)fqH*uN6yQCB42V?4>>zq zq>#3O`fQQUZgKdvp`SFu(D&aOsRBId*WAik@gXjP<(gE;CD$!r90U&yV;Knx-yv?U#m~uU`*ao4ug6NyhKbMXj0xvUBF8Y zX7nqYCGpDOn>E`?3E5|?-K>K-)r5-)n`d=vhjw|LI(gIjSY6ddv(?cvF$zr>Hz#tQ z`H3C;?;p0{vQOB&Xh?UFkpmn9KRgqAUHm$SO*D0XxhHZGp9eIsfEcm+i=`^=liAEc zqKZ-oxxt18q&eWVVbm5r#5x81=zW|sk#U9Q+%IPUDWlk%9eVL}2 zj0B_+>e?>|@on@7yhP6EOWTH_$HL)Kie`{^-J(oTm~3}Rkc-T* z;!#XNZ~zHM!^a7mr>m`a^rVk-gERJJPB2X!2bBQC!Xj(c(#nY33D-@jwiE_(kE0Tu zrV%hWq}Kxw03Zh(v;0aqgbQK?h(Z&gv_5%^A`)K$k&Ejr&)+>yEld(Zge#d=b8}UM zgnCIFzV^Tz$NZQtyNKCJ+KW{t9!4X6C3<>25~fLe?!M;d>5YSAW+CP@atWk{mkeYe zTh#P%;Ycw8k%R|5)Nyn1b%%Qhv?Ot+^edCXk9l$+>!}w&UMljf%g6Qd?}sS6lpd^j z(4x*r73F2pu5<-B1o$YKHoV3p$cfgr&Rs;$Gx!Pu{q+_Cc6a8AVpvdxnH85K>BNSII zq{`Q4o!8;2OnUE;E2G{*0_uV=QzJ73tP;MZp{dE@)3X?u5)s#IVk48RLqiX8jy|5d zX5<62IOKTc$cFv*art|H?2JhgjV?sCc=M%0%HffV$?ZWfgV8v?fkemAg~7$8<{!Z! zsJ^{rOwN-$37FBV_9(PUw5WR2=5h7{z7#O5H#VHi;<&tF@Wc`NFa(gx+-9q zWIVay$Rr=yiBs;BKMN5pa!Ga?JYY%G^$n~HOfq^{#s{8z4GkXVPweOso9jz*!Mks? z&SP8<5}Aky$7htI16FZKVuCwAR*5O7(=e99f@*k?O+*Q}cDSys>{m>J{19B+DF<$7 zRFdK0zd4J8yyKb$W#mbIQX8ta73N}US@5G;O{0RIAyUHES?A>A$|v_1?an=>;LkUN z%&@5zV;oe})9ZeuXe_LTa$4f@5ve>1p$c&a-@*AEzWJJ+YjysBon+qQA6m;hyBS)0 ztTcEV92>vOPSSHkk^L0;+LI+02^&r-beS%H=pk7@NNI0IGKVGUN4P}ASF_+I`|<`_ zbUC=mo+4hp%6~?2+eTOGURAj;!Tlg}&;r|`)JsnL+$&beM5`XlV)CDiD$VL4C6FHU zc4bZzRK5$~W9)B!cr1tikMbP29>4lWo#pT5tThG+xXoTK)A()WJ`@`F_vj4PS)Qh? zS-F2_o)eQnkY@!b(tpm)1#5I|kPrs0vi}ZYfz$KV)~??Qef?(dElz)X=Wk!wqyGDA zzOaG87eh~8f`l+orNI`hk#!8ozn`T4UljT`iR6E>LjT)UcD6m)G9N7LDJ~}DlkL;9 ztFqSi*cE>WVSn$j^Q$>7_EzRBP@an|tt#8I^DkC3HU3^?-~6-49srNceKWHxb1TP* z40c`p<4((~zgO8;^>4pp^jFB>aU^Z(y;8ET8{4b?h-o-JoT1F0<`1L;3caaimQ<@4 z_2?<)Bhh_aw=EAN26tn&ZS=*g;GIQNcXn}HADtlk>Qn6DcV+WXz1!UFtv|3dlHBhd zH%}?T*n{$noygESo!1rTe$j2SiblYd1x{5JCvB6;(`tQo!0Lozr?gg$s){q?=Z(F` z%XZMY!-F&-mj%1R6@}B%Ai`PWxj~E-Br#zy?65mNiRzX!;lEFQNXyR!oEyF zDJ@UO-m*fTO!BoyJ}P#4Zv%gRj|gF9J$O>tOn2{m%r-@>zIFDso6L`Sl)R97?X$gO zjLa!WDK9SRdaAVZ)s^po&t}|}0bB`B!+6ydIx*zduj_us_JHIdK!Cpwa{Aiu_(hx) z?_x*=2v8&d;#i~>sR`6f*6~c5B+(lsBn@ylCs9xe6*0AsNQsr?b+zIF@DxIv0ukLA z`0*`4A>m8+;CLd=6c6xiX-)Su#g|qyc+9`da#tZ5%SOFXefZszN3;#9{o*i;?B~0; zkK>7H_5v;)d*?=nD^8Osq5g3~@c4vty}-kPT=gCnC+|o6;>HsZ<2i7Cc%2jh9?)?j zDfjfqRXR_U9B!IAOUhM0szK#112)KZTj!=r)WFIP8gXM(tjd*ws%~e7a`ND_yU9Vl zq&UqKBWvmm&mLm?Odb9tdNvc;kMCvnE$%4??Sa>zDix)^A*pEYT)X9n!uPrp0`+qQ z?JmXb<5zC?QPqIaQW(5d{bT4%CcJ^rdv4Zewv(qWhNWOy)P0bGd9G|J|sE}gvW2F_}p=nz4<`^&Y#*O{2E2HiW;-IR(nRNR7A-}GEV zeVQOhBfIyM$2%yFZvohT*1c%pA3r=Jy@jd<_j$YL zn*d}eU!W@U&ES_z!KC2$Xyo>~j{6F3gxr#za;Kw0EU#QnS+@F$;g}*JT7?JrVsLp> z+xq%6P+!`3RIkHW7S0Rf=IX8*~uFM_qcaZY}@ zb#Etp0t$54Dz#o?I`S<^Z-51$Ww;v?d`x=@%hH(^(uL|?`VGKzhC3kC|30$HRZef@ zypl=?*EdFbKQ;WbX$tisiCor}ISQ5@w4byb$R7~Ev)^AU3rNwwgRPdHl@cDzZ zWai`4zKFX-!(l?As$?l#Rz$;cxkp&ha?1rK&ZxL16xevqc`jb1+14KS?S4V2@5da}U+ryr8UiLFf3oqPvB6 zbY38R!KfEZs(vlc5DRVbahBjuLwmMg$nf|mX1QI>@(k6`X&Gzq2-~$8Zn>=}iAU*v zjjMj)EQ<6hz?sx*i5eYZe*4gA`}1fL@%pz8Cu_H~G+ArofI+(F=_F*_Nh_6DK^ zvkbYNM>qgT*-M&~*#gegOHe6!N`|PEiXEx05rt8`EYdP-BOJh`E1DCFR356UMGNqU z;i|+kr5R~5CJ*i3R4Y~`4Yu1a(HI41d~3Eu{k7~~_l5nR#aHW>=QX)@*&h1a7X}tx zf^z+*=yJ`*eeO^7^dIgv*gn06@{CI?S`+HDKWS;OeL5!}?7D0$DrsCBsKJ}_nl)^# zgBq;61hpC*r9ni=nlJ1hY3V<8mtX|z>2H+hv$awBpAaSg;tu;?uhMIlu=NL&>wjB! znMckmEXo2+++}v;%Bt$>f7DzyfhO+aV!O0-{4KnN#Vw0;+tzD^po6=#tmZ*w?O*+t zy*XrCLd)&3@rheodR}Cgln+*d?rmeE*ch{Oj`hYVS7+-wCRc&;xf9Qtv6UIo04UHdzRuB_Ua!{PWI5W?oHjM zniip`-(gkxFvo&1ohD{2#*|Ibl5#CwN=ucyv!&hqu3^9vzpn7X(JOBbw#)9e2wJ#n z#1eLHTkYCusOPtft*gW5NO$o_44J0I`4g%4l0@_cv1P2Mg`OiQZ<%jVi6x9fLJFDEtX1iKlf-}s^WypML= z1b#m7)BD%*7x-_T`skbp8L~P9*Sne;IPZ_ykM9=A*^dz%0Ekf8kZ0U|vioK!XP#ei zfdB#o9P|hoPD+WD3713(sVM_g7#}dm5rl6Z_DI0T=v(oveE>iJcu+e^=UA6?3hK*Z z%qm<@4ohHKq9{;PS=#yXQ_44%l`~w31iup_`%X*=qC8cx5{1#IiEkMycwVIJQDI_Fo zPZg*mywOgj&%61?}ZhJ#Z1rO&$i{w6S2fa2iZZ8ec4>suPh3qX>w ztNkyKg0kO%hk%rm9I7L4j)OG2`ldPDIO#5+B4``^Sw$=9JE7hC%>8Xy=XVmmY<-wl z7|&aF*hS~X;WE+oYQ>115ieuAqXI8y!YB1#XLE4#z_@ml%vheJ2=PufFs3t+Gs@B_ zhIvx72w+s6cq3X4U8_P4bTCnsbx+dgX0b+Fo)f48Gdu|ch4XWn1J2Fg1)=qThtQwwD#!}r;$UaH*z^=!V*>v$Kph))sRa8BN3Uj+|9p_ZUBsjpO& z670B^sP~L6NzEC=FBXljS*%SYNln+*gJ|0|Y=mm-PP%8(kF9BUY)Pu=wvIb}m7%!G4UT}xcWX;(f#*kl%m3(?x&iBkix-8C?*KwTi zm4ivD3?-(thMrgWR4SOUxoMMrPJmw5IK48b$$&>=5*5yI+D4eoPa-RNi75$eM<3NI zWA$36%~?dXoKr0g3J{*}OHhoS<11&yZ3BX3k9^mcH3zWdlK}j{V5~x6-vRePrL1nD zsjSz2)oK!@`EKr|V20YV%Jz{)0+$oF2ND!uY8)T$`7tfC)eaef73&+c)e!qYllk)iJuWT6<_aRk@{-9#7(x8p2=~Ra51C zZaVAK>n0}7Q}_zS>;(cK^)bRFIO&mOb?Pkhk-jqR8JkbE3SNQtqvjrj*4 znQ}@STlu*%IhD5A>ij$cEuVB4cg=NTBxR$mWP5Mrq2k+#k~bmd)4o_sS46Tw(B!~K zvZ8H5L|v~^nM1aW#YVrUTICf)hU}c5B3W5m>7|#zP0951a%>58GSsgx4paQ%r1yb6ToG+p1pj=Iec=l;$Y?*i45nkE$IB zbHS$hyFAB^5URg0BmBsszK2gEdLkIOrzy51m6E#0A9u*5|HS;*`_$F-?#_MMsGs`B zY-#f@H3k-I8%#TDZ75L1bI$f|IdpG$U~z>}QD{{qAht-0-4_$Agc4%j_2V&{ zofR%)e+;nZtB2yKXKFp&Ym>FG++c`ePWt>MLtExSUYBoQHZ~f@GHWW)UEgyq4YtL_ zG?Xhg%v>1rd!vXFYz^k{-~1w4(fS->Nvnk_vmewgoDA&Zy%y}!7vKE!R1#mAttNpd zbM(o!+rLhBbTp^#blI26uQN;Jq?)2@SDQq(_Y(77CNK{5e0+;js}XJ;?7EE2KMuQ^ zr;Y3E`&F)0EXYjLq>?1>6}&`FrHydzZ8%-iWMqa5QHSdojMWWVO(<5?3c7?VUU2et zgWeN=?{MVF2!oEtQPPnxe{CNhB=@K3wVxI%EQCbZx{47dHbjCah#Sm(u$ zVf*wh>I>Ei?+sBK=$Vb=*`IDoTYaa0*rHiPjj?T>KPmFUgF*G?`CyP@L@Mn!)&eYw z_(L8%{3(@hIciV^@!Hr)`4uSB2qyve#W{OM=9sr5agfhJnvkaLVrrDhnNdv7*cOYANaZtCKq_gK z=utxQ#p1)QUMa(%vVvm}d%#ji!J6NRa94Tfcu|Q~C6Npe9RgecSd!MRyG5&(RYVgr&n3PPs_VdWvy$yYt@V1Fpu`g!^D3Q2O5 zcowM`O1R_}LV~G66Do26%QqU5ZhXltCSaT&rtP6(UR#s9e@lRv2#utB&v;vQKjoNE z6d)kxktw@))L7&4Q(-_r-W=p<5-m}G9&nF#|KWV}cekxZNgcug1MeU~7aamzrGhAc+l61~-L z65vfaxZZXRlZ^Vz`@Ak`XJo@;%a3BXPRDzAqdDu{qzP%emozl{GJWp~N3|BWY4;JA zL{qm|{P8(kogUrz{v0)_eLpp~$+LU5 zqD{J%@E`nb2klzM=cBZRlhEZ0N%h!XgrXe*%DvG;m4321tu9 z2C1ar;Q!lfo(WP(^VS-#^NTL85B|-SHS1MdYku=Ji`!Zt3>^G#_1|9G(1ZP#pv!G7 z5cW^?TL1V2_^1BMe;NG$qtWdzOxpkC^*lKA|EB{wiIBS0wAi$$fIuRHQLrpBctEct z|H}crpr)NcC|cjp6B;_I3+gMIoBrv5o(JB~^ZO>JSX;}h#NHe9dFnks`uO{-oV==gdr`6}vKuYKCt0_{p!xzUB?k-510PDdg*Q5+lhyJ~jjT#9 z`#WTI7zu@`_?=g^H`Y=3R-!Fwn@xa)BeUTzQ89Eq|BmLe1DaIJGG5Q8T79lLqy)VG zvxthJOR%f#dHcCce9?Ud)n;eN#YVR5YPO;Gv!m(5_7s!MjxJ}>q3Yx5mHOR>nfr5c zMp_(qp=Tas1)kQ{&;Ojw%ps&2Id@~!eH=b|`I{o(pT;@)o5YXBpKM5VG-X_TRBiIP zP5CVBOwZn6Z|;E9@fWJ>;ey4p_r90pS%mg2jyZ&93x?=MvY$XNY`vZH;XH2RsqM$? zZr)@q`L&1gnVqeR`1W;Mso;&3rSF90Wubs0NvDE;tt?1A_Mjg5$;UeT2Cze+2c&ZL zhxG>9@iXq=1F=U1W6LOdm_0cou_8uv*7;SDz>No{R|c{1-!_-*#filb)`#WL2i$C=t6kqqNcF~n1JNqR1x%sOO{E5DZ&bVN&-B%tGHmeDYWtP zl_jSl2UEk6rPZP3r)-&G6`9jlV~TQ&xN5Pz5#NhZe3TItK}JSrbTz7}K=+c?gT$$MW3din@Jgs8#S zHwp<>ClF9mQEKmwny9maVGrxgWRa-qyBxu>yZO@SC(>-7Wpeglz96z%8qzw2D3HFw z*5r^|1U8ftFEQN~hgWs4*_x9OKPB=kg^eVtKiDgX)mqj{rN}z-u%Q&F**CV9*PT;x z4IS7WcMAjr-o>7r6b%p13dJZOS@Y0@HnzT|31#pjFTVT664s!cJufgHYWf+g+`Pbf zK-X$BR1su9G*(Y>*yw@}Mm7K@KYP8cwxw<17ZbVN-kj7Jiim zLB`cO&b>D|%j^b&{ynCA4T(9|8caO6b!<`Y#j(@(9x)*kuJsMqaluY1Cn|JYLd`3o zAvlX2>046NgM@xFRy}Kt^Gg5Q|jFUS0$^n_|>O7-w0&=LSOW znLvGD9pXSN?;^GM(I+}_pv%Nb(ib&GD*83+itWOT>9Tl0E4Eja3Y=G~M zS-|mQR7~6e>dCk9fDq17xVNlZ9-$!3;GDzy<%%lH`k&u)ZE9Db3l+W;3{}o?!!z+Y zyc;2W_+{CB)3kKCS%QhQUaC7NiUJ-0Py1eBD<&0_wh+Uo%cW^g6A_uSor&DVJAqwu zX&Y`3imau)kp?uuxTrF|q`)q7Z=VOQNj~}l4-d5E=2si(-N-hKxs;~FQq#Q7KI*}quX)+X__Hm(1@hI&ng|Gtv1 zH(sWnp{{B0xwyhLEcklY`HWZ&}~D-?+6leS^9S2C+eR z`M|@qYL4H)vnNlvPlvgqYYX?e|4ZZAdcx~}i@_Y!;NK6Z#QJ11(MaEjMAFyN(ofVk zHLzN@vRM($O-)Tq3|Oqf0-}`-=rlJlx3H?WS$CR~j8lkY(8*>DhO)_4sU=`2yX5aw zwv~mc9?9}%JSkS6NCchc#4gZjUP`PQqg$;x&8_mUCg|!LFB7k7-G0NEoPp+bmiRt5 z-B{;od9-4}w*IibA3j{nnuKQj>fs-4z0A7p^xo0XAkI4bYC5S$3i&0u%pqkHE&0vE z1UsQ48KGX7G+&HXWWW91ibMKvJvl-^BLOYhIBXzu&i>Xg4v`&WpE!3#Gls$Xg9$yvXrl&$SZ zTiBO|7xX=cWs}VcLK|I8gdU4zDt#IsN!ScRo{8ZwxkTVJiUYuS5Wo!2y_}%g z7*zu%_Q`Ss9AT=AtAlFwnjHz#T#SDMHJ-h$bI>5?jV5f9x!?q+xP+opkHqg) z>nyIJ;8tryZVXbI#nddJkj^cX1>FOY=5c)3i3AAICC@X1w-XggtMhETF#x-Fh8o;r z1S^9Mv`V{x!u)07D5O(0l$|i0;dr^RQ;+3L-#4OV4Z9c6(4TfE?qCE)W%&&oa@{RF z<8OtlaI-6hC1*z%M;rEExl=86R1}#9LtK4hUX3!!8c6fWZ-^fXwQ#9=H&X-NF zdy3dV{iqkR9j~PBNV+^Qm2Fr6HZFd-+Gjv%I1WoX==F_bp2RV#_vb6aHH%#UzBLNF zZyZfP)&lLXAW7T@iEZ07yI{FJA??1N`q%0OHY^AMu*-Tn*hT{vX7r=WTfZm@VScf} zVB=>{|b6|=t zK71XLHV7S8xZzC|toWd}=rIonQmR|jz@%G5RaeLvJ4LXG7DQA&vxbAcuk-+N0xFPb zU+hSiHm+{p^`+7Fayd2qkv_o7-XOkXnkC-ADkd(CF)bSpMEcU&p}f>)Z*eZ98Xr-gGjfVi|37~8YyW~2}TXxemJ!o2FhxXH+M{XK9pPC0svvFKptxsJ!eOKm4H!R!4PKRb#w>z zd#JZ^=?=zVtIA0X6X5$bb0Knw%JZuAoON3m%+{czcoToM3eR^*r`B#B^}#+%qhZ9} zr4C-LR+_LJnxX&BAwhtfjL5bZLQ8av(hrEW11szqTlkOa|rocO-iaNeV{5es_0(k!)re z2oq1sWM}2Bfl0w#d1-mmKf}c9>N$ZKuX3AQN z*8g1!?0-WH`!8MohdlpVW{P>fQDKo$em)3HsaOZ5)Y@IFzf>P%{}(VNzw)MoO=@vR zXNR$Q%dLuhc3ngLZ(>T@8ZpJ%I;}4&uWM|)_|B_Lo9cd>0g#r`yhck|vToM7G0kY7 z`1y0{dsO+JCm~PF_KpM(hE4_|QWc<|X`k#;74?q18@gylBKKW9gv|_Wn@#LZNl@2# zhs|_+EWBgO;gB+ePif?=o2r$g-!7EbD4In{UeD1Gt(3t#eVFKrkiAfD2SF)f;K3s0 zo3o8xN)ODq7Qk;`bgay*eeP|Z26^JH+^16zvU(cw;$(<>4M(rp`%Y~rfdJpC}q zm3Yz5H>3Ue_Du<~rzQ8(`Rf3VHIv*;=B9M1H0iK6{ zr7{tMP@;W&ZZHsMtg1E~w@sZ{p8pn*`r0*Q_4-r;TgkbI0i)ld^$(0qiU zGE1}MRNMF9aBVDZ6Ckv7^i71Whv`A6$*;UoLFB>+0ofwGcQ>+afK9zL&;gcwTuIoz zIYblPa1fq*rg5$%vku3pM>7PKuYIR--_}WmJ`%q^jUH>ShXyjiaNi>{arko9qC?X! zFAR*+gaLC_W)h={fk9k7i&$|rWq3~0a`Y9aE2QJ?OZm}5EhupwE$Zd5k*O}$jq)Y03w zdqQcwh#Z#K&;lkbruRm8-NeJCkBc?E3d?RKcb0qzM)1(@EBe<|n1=v?pQ^1F1^r++ z+GE+g{u<$fzV{l9S1i5-3yCo;2)u*2qTE{TKr|kvcJr`216xP;4U+yjYCDwQRktIJ7R(|wVqR@5ZiOK})9*QNKc6_6pFj(L+`a$Rt zsf!Q6S5J7+cCf7T-HkUb{;TmS?t^W;NCvK4NKd7`^XsuHgQus>lUyL5%GE-NQ*$@z zU6_Z%UBwCdQi^zOqIH}lpE6VLkr07rrHNq{PJmyqwi3O*dz*KUO}b$V<(-*4gLf>#VjE^1IZG!L-7EshxtFDbhB5^?Ohe1Gu&`zg@!wB`hnpVB- zn3DvOfIz@dG{Mye4m4P$ig1&7`|VMYT-Z)@j6@99&nb?Q1ZkPnlEM0Ou~IR4%RVvH zCmw-p6PVMjsf`9fJGRVc_J%S5VEgt=K$1cem5kNmtD*4l(Ll@zN8+$Tm(9Y5TcprX z&HF3X0sym)$WH+Tt2untfvAX4F3$^AH?cVt6xZ<_W!C`ptP_$>e({P_hb#z^1E5$O zo{6$9RXJV3eOxY&3DBWr@En%H(igiJV{IIjp5x-t3ztOD1Uy5pzCu4JHbnDV=sk}k zQr!QWIoSIzIN9I$lfN(0yZ1${;ZJ$DQnPvb`uP9ffD-%PS)Dh+SUz%Pku`*h!DNkKLlp2 zhn}pdEXX?6!okc+dWpTW}6Gu(!7|HZUfW4Yail5)I4@t=H#ZYby&g zGgHH2R*{*N73dkyF|^oXebM$(!{vq;GCsx19vp-51=Y711+31l?&5-0PE|o&ePe_5 z7BhV^@kTs3)}TD?Zf0&#&-etZtn!t;HT%Bx1MB>j1U&=%XR8+NTeIzxKYtmT4V-v! znVs3R(=3!bV(S~LWJioeD70>Sc{}k}+KCrk_4|m)E`L8sxIXaCXB@`;JXw*n`iMVT#=vd6pHEW&Ci2-Etm1T6o+8iE5V{!t{9T#f zQ|)^-c$jqgNG)GO=Y^lz0~rNkmY54YXWk?bU@T5xVavg~+H+4SWev%oS zL7d(2>CgyABk2CJU?|~qtUup==f1G5qjdESTf+j`i0SG>E1zm#)QZfEM^NOqk^LRI zb0Swve`MS^wb-Lo=606dru+Tf>mQG!@5=vL`TqH+badAWABDR4$5`k?H+NT>ulSJIzuhuTigVsWBW4mrk@rp6J^ zn8@YcukjC{FTAwlH<`USS0pmIvZJbi?-q%a95t<`sOtJcem%12N<^v?!RnqyXwx&y zATc6XHTo_ujB3`t8WCt8!jJmql}K|+3N|NQ;YtvQhfNb4d-+~_C2}I@)`AIl8F;h~ z5AN}%f%2L(3gHIUPrSU>Dq>U%#?utw-=W+beTb*;${TH@t>`I0pxQjUfgjp+9Y7A< z_c+Y?01f@9qj$mMu#hK!yuQ7C;;*w2F89~2AF#X|@u#Rajoyo1zv zsc9tzODwU!N{WN$(U}2F+&;`0Q3e(!fdiJ^XW3A9!iif=mcj`He!228(Za!`-H+U0 z66RQ_0Ev3Vjb!a3MTOnml!EG!6m7wJV;*whuFIdQGwTu(_l4{P#HcZn@CtRaxOh1y z5uqS1hnF%YvrFu26W(YO1fS^Q9>Rj{yrHOdvGqJL0#JIf#9+oM@8ltI6iRT9R#WLr z1S*3AqmTM3%gZ{v?kd6KBf|jnGDkhr8zVc*;;Y9pHp9K|<|9kg1i#j&U;VEx8XVpRjHJ7M;uAOH1B5CJ}57s~^qknCy z|8zwv9!;Q$n*kMf)CO5>H|#wyM~!9y@b=Pfg8s zIrB5jwglzJ!g8Lgg|aq-v)Ds6PKWl9@x>KR&T~&!cC~6=lD{osr7|_V%dB}tS$M=6 zmriJ@GWewb;@XR=nWedCBR%EE$?2M+SB<`o_&7Kie<>A99`IRsnQOV>$LSPN`=M%< zVzD#XM0c95{A$aN8}gC!DPcRsHhMN6^X5L@o;I+tt>RPBXl)g0xLD`g`5$A&7i9TY zxEG(O4V+nV`uaL7lXC}#;W0wU)3PGeoathEV}&MAiB79?;v-e!4zh05Be**!BunWN z1iYe&S~y}{L(1!!&pC`l=e`8}@F=;XX44*H2_JG}$}Wia;QO5>qV1Gdj~SvKryWCU zlQ(8?;_0~=iYeRqnWL2Fl=O~h>xyi#J;zl=iwa?#Na?$(DP_$?zU_dp-y)5FQx^_acJ|A>q=0}V zz-by(WI;t45>1tjw?o0gNT@Q0024B}2T|DS{lZCD1P*L&hRFiZ!m-7mdL1Kt!@D+k z0j?K+c$367d**@oQB@p zK?6jM(N>_{?M6|T=q|3%ZB2b$C`43nu-(n8W)!5azy_(P>?Onp#DH@ME!xwT%tlEp zMFRp=jL1bk*iwIJ@Jjy+BHTiT`{A^eX1?VE0FRA3pwqF(nh)5v@cG*AAA*qQyUt1) zv-O5wG(lbX{1mJ9rjIu95Ukkp)tmiXfS2dCmG7^Jxyyn)2f6pqQp>MOmkKQmoKEn5 z&E4f%yxD+Y0!S1jla&JxrksdVDv+bXP7C%4(mVyqBItQZr%eHs(Pwm_+=MJMlS{Q5 ztoUV$i>SBW`ZvMeXisHD*C|mJ%>ZN$m9AslUv9lB{MafkNVlzG*EW6;^#%(VHspYS znyGR-+@Qeo|KaXE!#ZZLMlh8s@5K$3P11Jb0A}S)|Xb6#B zLa##TMNq&3HVjQ^B49;PBOOFVR0Id*y#h1y%zf|Y+3&Hx-Fxd7KkI?(TIYYQ-;(uq zfqI|aA*MOag~Rcr9t1ZO9%?U^6>@KT2-RUqmi>#pT}bjI11i87UOa2Z9LKXFzZ-OY z_3_QVJI7Tx72F>VNFX)5#UEiWczEe+953Vg?^*#NbXaITwp@T1 z=c`c&5s~N76X|;$=5TDg9u+*y>}#L=&1Otj=Yz#(ChDMw>EeCbc^j%3)6r1t-=+F&+%45nKu;M`xgEc$gdt zBIw0|trq(hCDub6CMm4n{l-d6={%TLB>Q+zRCo!eUxysgxKZ52h&N+n{bNsx+%&J` z2ckn=0{SmYm*M~&qUMN4pb?a_VOKU&)lngSx!3bC1!)IX0 z`q9Ai^%FJti2VBP%>SI<`tQy2`nL4?#^qnKyt2H!`0LlNzh&@0@DHGEHUgR6AgIjI z@h?!B?V4@2wE;n8=Egnnyw?gP4hw9Y*okyl@)`wIiGKv zZOL04t?z*MX(RAH4cg|^2cT`X=zbGrTl3KNk*$@55nr4aZEg@-rdcImckAKjy+gh` zwfyTMrtu{Y?bcD=ZtP8|-hja`iCB!n?J&V~jqdApW#U_>7{?!X=_@B^+%trDe;b=H z$%)d$-VJ@P{yJc)ssAOdsVo-d-?ZDT6U#wcnM{BlO4H|}rq)|LVVBQ%nr*U#Pr56Tq^w6vZuiZ+v3>af+p8jG?2vnO?g7uy zCrbsnkhJuS{Gi$I2UOkeSHF!JtqpVjEsXhn;=JQxTz?9Dw7Hyvgqo<8%p^tm1||B~ zt0#rnMZ9*;@`(wk=snsKaFi0TtWlMmY@nGQA0JWkTe9x08e6w>%bHe)6@2?iq`r6z zCtVy?aXGtok4Al^9HkAV(?#!#8k=_rQqchLN1<{YEKEJ>NyMA0l{5wb6UO3ofDHwl zkxY(UkA@H`Q3#Bj6YxicGcvkAh~rVb%h#Zic*xzTu82?K#^m}dx5dY2^J_-pL+WoU z&JhahzKc^@SKEg)=b7h^Smsl2H9d7-nH{J1AzKvC$`;7j6SOo*lwnW>+0?z@K2LX9wGut1(vBZQq!(1U8s)tssz zxpNHw94UXx0J8-j`5b3luU8xNpgIaUYV>-+=Or{wDStDr&j5lW$2**PT79G(jTH`A zgx6K4zw-BfLvDll!?@%ZRU;uI-jJV1OEI#fb79be%@XK9yH!7BG`^^gfl7UF)tb z-!1@9A{P)*XF!pzz~kRTJmte7$0LT~a@`M!4-zrE!_!iw0J^``3J<_xp%maXR7kKozdmf@DG|o-+MHl`pcxOu&XoZ>L0^J=J9$nIMdjMdkf$t=~-neic5I7oS zzb(2RzRB57@xpd-v3Z+B914IaJSpt~T|5@IS>KeFsD<)QD4Rd@QP#vna1o#hZ^+o5 zCTdNFQ|Tl+=hGIn3{@nMjj77ntY$htqH;(QgS{h^`9~-jNh7u`uvjQHX$RdYq*_Co(-_X*Ko8%F#4#99 zED)?&`VN90h{RS&_~nP&=!CaA%fsJ^T@XflkK{Vh+)v=G23mzY$WV+I4lM7kgZVelm z)^53JM(z|V67#>2V9*?|(N6f_?)BsK?!DpQ@%kV2X(m{o4hoJv%Fj~skJli(8x&&D z9P>e;u@~bKOV*!=*CiO_k>wXQu2H-BDeCIlTYUZft2^Do?dOkQ-RD0JKYYX&U(g?e z$7>LB0^YCJ<}3M}lmEpZfBfJ3W4;Ri6`}qs%JrYF!k`2jgRD?++X{4ZM51wmu_bAZ z6`EydXKPtNvLJB^EedQwdt8-mM

l?Pws3tbyrdwhjw51GCh*YY8q+S!-*-<=ksm z?I=c0HZ7n%HZD)=&B-t78XfDlrM<}ngVY1yGPQC17Gtw-w#`KDbd+7k`0DD}f|pai z@@9ngFv;PtcJOj-6OYwsPH`nMaI4=2u7A3C)!$MQ4pCyDuNfnnnHQ?BmlmZ~bB)ln5a#?m2p}8l1XH|UyIVI1BdTQXN+r^eJiywmiJvHG5vvoQBQ;(AL z5G_4FglNtjAL$*`(WQyT)9FGj8z%MZCV$^=VPKFMH*u(Qn@j0?VPcqyT692<(4NpI|ttL9!~%-tZ@d6TkTQ) z$-hp9HO-Fg2uz+c(IkABcwc!e=nws0orx81&q0b8T`=7uRSLh2dkDO?TGR;N7kMRV zjKjKj_jKYZNuMe_qxkDr7pB7f82G8qgV8?fQdvu{G{-V31x=v0mWoegGh*|TaBZjq zDodSRr7>E}w)E&u8`AjdDN7}oMC=w_6MRzB9(9#y8q>!!i{mw;m<+bcRHA*N1153= zLp9_j=q1%fdAaPd3ReGd>4}2bNDnx6Y$Q%CJZyG(D*tz8)i@_{OF*Kitx`=<*cf|y zI#jR6q&mWFUwnXjUUYUqrNl1HpD^bruS!P8Vs z6<*Gu#x%{ZtRl?l)QLt*5Bldj$Q*`ajkt>@6|yN^HnPSez&@~2m&Dcwpl9d3Vyg26)=F+lZE0YW2&A9+%uzgiz02lvF)nJke42(>H9USnbfR&-DcS)m~L5P&%UyZq>`yQZH_O0AP60%G4X?Ndu>lb6Gxiup2#d19Ae9meRZg;CGGsEayyFEx zCjkfo9bEY!!%$=fZuZInY4!or2y#bmfv@Q47Exu0j~mWHMmXzgKi}& zKk+m0w+&!in$bIr!BU(uw_Yqf@!Mg>v-o8S| zTMSFNKcHyYhDt-*)JKXe4W{h$6Bo#OACH#gZr-8r0obVC+ElPxFoS(i%9Ig_$stNn ztHu=|bN!a?091%Km~HqQ17XR%7hkI+KvYNQ$~7j*6QRg_XM#i+qjz+CNY*ST5@ke& zAhGzALMH%*8;F#&aWyCi@6b7$+9!|VOK`Wr>+Wqd+Et}n;S@pY07S^03lSqSU|*#n z2oD}q#E@d_(j<67UrFKn3y4_X%_L^D!$lc zs*gIDC4n?U!T+nv%pcD97YoeSU;YH;-}>tnzMj$o@g@8^^V)Ix@8Rf^{KsSdcE);_ zDJHHkK9OH!0*}*RJ`2Q`Tr8>wE$})IbR7n|mZok4Pt?sfJ8$3V203Hv78txw_dR^^ z&-*l3WPbT-bPWUgKjFInXBP~nw7xAbE`9&M#RdP*`b)F3C0kmMEDDQAB+GJ8fUDO8 z*sh+|c=cN2e+h7TO&cq<6r_!Hm)&l!F2B-neO-a?@f8?kbwA9q?d+MDEVb-=7gc+? z-fqaQU`>LTY;O`<-*-#_ur%uR{+QdR8|lk0wwJvUkxd3ML)4D7E)#UF__DOx;f9U+ zd)s>RyH&36{RLGe%_Yr3hgcxH-BKjM?d8qsm!>nC;=AE*=sbd~prn_~=hMPsM zy~~Gh^&EbnWL@L7LF)SZUO%TZZQ@cVao8&lsKvGdS!3=h&a2_cuj1Y79-VxX=Qq@$ zG5f^ZZs=}%uK2u5@-OXxh?>-ooSUEOp)j9jmC=qiHqf9&R8!fOD)IxjxOMD6-+O4& zS92P%_E_2OQoA}+0Q{K$*)r1hEDN;!FV2uZQMMRF|JK82Zimfi z8|M003yJ5J&!ZwvzJ2$2Z$x3DzTXG8r@fUO3d2V`r>EXuIj^mE{>Bf)(k6{+ z2+NBBS(x8x(5?tmU|tnLxEjo>oY=(T?%dsf6zLQD?!3T$H*Ze`A5x)y;g-XF7gYSh zx5d)#z9@+SS%+_<48To1J>sa}wiJ{8@0)fHAkf9p8($vYwtB|Sr%EX@qhM@*I_e`y z5R6e%z&#LR`zH3@n(u_rebMOR%*V?fm}I|_ES0pbYv^|-c`NE_%$0_+zKqj7{)Z08 zE>;(1mP=|>MeMR1eqB5RevoA))-;W$r}i|Bn`Fk%NTlcb*cX~yj5gM&Du%|u-Gj0` z<4W(FcbC*$`jw+r`{`%+F3zS);$cLOvPHtdDZE{Ik;t0m%X#KMv3V{p=FFK7U?2e|j-nu+nv9>2mrUeqVgZ(aq*Ot}C6JBx=M!T*}IM#8*S zJ^{ku8md6U2H_)OiaFX>A>f{2;;H%y4x>-so(H`EeCE^$OQN`6I*|o{_U+s^u91WG zFf4$)GAX4Yyus%82AI}C|LYtQol*Y`89P6Ve{)~0N_b;N?KeOsr!u}|+F6b+rnYqH z+r16b2}O+;uLrcjT#vkF2)41IeqPc#$=+gG9`)Zl(K*^5Ql9pTo3ICa;hH}JFd z;TmQHv5wNYrLMwzKgp9}jzaBdYbR%`{_PB{6Hp)`KL|kJ zIh;pP8h7U-JFlka!nSeqj@PH42fFr6N`8@(#`Xi-CCE@oaL$QAN8m;xg}p*VH)L?& zo4`W>wCgJBWRj^Zq)iO@IjZ?&i3HDE7(Knar4#{pBf-Z7NdPjTf`@D&crTK8O*O zwimff){G7po^Gb8@)k%BTAgR?>LEy)7*Juj2cn9K6waU{t28>5Lp}@neI%n&NM*DT zsEZf1BoCp-6x!y>6!zjm1rr#Oir7fF4H>3D-zOCR03%nHF7|cc0VbB+AB@XDS5(2R zOU|Uos`nqKc0a_BJXlg)bn%}d+XzZSsI4GRq|Zi8I1Iba6Ipv8{x_b8odbUcdi{ZT zZCY|ICcT#4S|6|C8{mH#uVSD1EsdYvT8~Mu%|Iuy`5K&_37(<(Oz!mo=$hI)>kq`> z8T#6Fex2#o?FV3;2?TwDFcDCId)EYb4JPvTZv*`5_1YzxH}QXJga1T|{JRqW=dNae z8cZT>+q%_`wApT}In&;rX>D(1wGEt>%*oAl1QBA{=~P-N&2b$eW^YC^yAZpXdDY5< zR#Zewv$8ZXv249(l5S-WGQ?;m6p$e{@FzozWS-ugbNfa+@7?G0j#Yp8pd*cH zMKX?NnqSy@nZ##^-5mp97=vezx*Pqq$cO^JLQ-nqNL!KiC@epdw5tzjyq3lice0kfB41vtmlO^%cD@ zy;mQ(H|f-z4vvRI+-B(uW-|rlHxH||KCS7^@n$FY z2YOEKJk^@C-(bhZpcmcyj#4a7ZI!VJqa1U%;^#vP%qB$NO5LU#+kbTHyBud_4gH%( zLi2iaR~KK2{V11vKs)sO+N;vjA4VF7%#Vc(RV7|(C@ne`&_I5x7dJlNam(!I>W#s1 z+3>MLZSv$$NEI(K^0PpZkGx71k0};Gbx@laHhdSo?S*mjv5V@hbdppksW|2x`Q8GUdp!SQ59=`Cc^a6LdL`(oXwNX^fy~o^ zQZ{7G#s$A3)gI~oo#&Nk>iL1Y8VTVEEwKkl0Z_@A49FfIby9WoPE#r*Y-(vsrbrDFdk;;q-&<*!WT;8xpy1e+$FKBH=`#}X5* z{d{RvQ20~n3Tyb--H$E38|;6ScoBNS-11?yWGqONfF)Jw&*`9vHwB_C9fS&x7V3V&w2iH8%KZ zFpj_8fBfAKD&o-Nql*v`u+e>CW0-qsm8LtH!DGtSM_xeqF!fCmU9hBaKWluHe#z(O zgM#>4ZhMJ}I`<|IRYkvIBsweYDr9M0PZ2tO!<7PDdVG|DZrob($bNH*G7JeEwBW+< zb1~(@nkf592-NLhd^a`9E8U~S&Tb)h^3JOEF=qHUQ>8^xFR|aO8u=% zTz#v$H%v@e`85<2b#VqnG=u?NP_yq6qr;R8X~eVhlH0hVQlHe3-iEDFSVK+uI(xyJ(W;^o;Vp zLkqN!TP^i&k|)kMY>p%gCIFpV#vzfgoT^^pw#JBVtdB{dw``20YF3~LbC1k4S~{E# z?F*Wmg);!bSUR>FUwm@Xhb240$<7Ku?F=U;lJ_%_s$4Dv$u&DJ7z|aM-*kIhD7-j_ zjWr8z#l*Tvzan-jSq<#(d65})?4xTo3@?WaA5J+m%|j&9J49q!qoi^q1!4`mcTVp~ z^dZJ1$X9vFs|*9e3^L+}$98i+N>UIZL%_NjDH;NS7cQ0JzIH_F+}XA1D2EG^9Uvoc zbN~Uap@>rG;AAa1QiKImPVcdEaM6^E#}$|TSPGB`8O(KZ?#D=Pe&l4;x#F0g}VQk+4whA2g^?mYu#kfS%Z|2{{n;3e_M}b9|~Xv1pTv~ zyf#V6$T|mdyw`+%{c)Ke`^w_Sz6y)4tx-X5t&LyZ1<4?MJ-_n+jAC~_7yw_B9}T_c z7n6tiO8)p6Z{+nj|3Ud*Wc=UAVE<30y+FUQ{tHxf0|N&djbflhp&2u&RHh}>)YM^3 z)%lb#hja_;5^LM?ipol6CcnabAy$jo2=#ev_Vk`eP9xbHqnnCeN8rqsK2DX*GB|d>+z=lninQ{qdueryv zOY>=jn{x+K${%H#goUO(QI<@RN!CW|DV^MzoM?UKXMv}f@@2)=!1=3XPP-o~Zs7!` zIb5G}l(#jHd|mT3=CU(=wbO4l;Kt<^PGI|fnJwR|)vCi_V`Ife>i3l$Y`m}L3C+8E zml@3r6*p@8cCRe?o$LrpXUn*oJy!M@u6$cn+Jau*o-{vD9X@k>bbG|1$4-bHCv>~M zOdT3Fm*0Iyep{?M9(Q42`r(3ch?nHi(8j|kAE6G3G5uAK zN|p_04_nsMX;jC{E$-lCXQwr57>^%%Ssi`G$D=z%Klz83Sc>XkO%3YC56#*y-7*?= zzlP&QFW-D)s&(bjOpRLo6#BMEL+6hOtwyf&rH3(n`*+N4wh7G%yjCcZ_lEw0*gUm zG=XtOW84d(9Ri)7<{-g@_U!n`CXSyA?n7(fKBBW2R%yM1V= zWp7S9Gw;lH(WB1cD-?9k#A0f*Z*LpHBb4d^wSXBe zTzdy|sDvW2i-)r7;)of0MAH0u59a5_k@JRh^WDdzHfAtj*edVU5gGs^@}P>Ykj|58 zN&XHA6cw zgx%l6+(5By(@{O{=0jr27|>?U%jr3YZ)GAMvpWrshQK)YmCLe){&6S&Z`7Rc(bwLo z*I*;Ny~5Wp-~5slXw$(v`MOR2Yd4F1=4=|s{9GHD=3_tqWPbhGX0FP~yOdu9-pN7Q zSM#N{9QXQY)_T1P+?8HClJhxVj|NBnrhS5ImTR<6{*nA2?)=|m{l7nw{|)^7*Ru*&5ewl!LXQ-u8or^)7F+rv9+*pUiavZk%oldUQKutABWOBh&Qm+%)qxu*y8v30iau(4yZaTNrJLW}04bx@?r( zH06A!g^&6Errwyc$>7vL;>vVu*L`tW!^W9`?X1*@*|3fq2*l>q_J7(O_v7XSUfA?HZMD3Rc`y+cp*?x zu~WCN5iuTvbXO1F{Quvo@8jd`Srf~?I%*@sDmhLbV<6~Pn&%Ad*iFW_4Zq9JiKjaZWu4 zbywjayfykUcuh@A31Jb3(PwUi1;hZ)%BIRU`sJySeL{P-mLET(5g0{-yT{d38g*%2 zs%x22*JHKG9656p0ErO z+EY_G?Ds^i`gP$|jplc%?ME+nWaTGRJL6m5lLmGr1pl6;E*p3~bLfwN-LrNt)U<9a z9&xDQ_$*X%uQwb)Gf4P3rF$nf&V{rbewgpK+R!tb&uN?W9C2uodXRVgi1b^n**h|) z(@Vg4DOuO9Y)#tXQ)3-$Cg$~Ie(}xmS~>&}=l2Mt~8f|bO9J_4Q5D*$=ggdpP z4U+r#A{VKhv$9`Ik4`5;a?&3_xQ#R>9J4 zj-C*tSZ}#9ELOl+F|o=3FC=7DVEUr|G*`>z?MDL?>5%>&YsrmgL92-(zen*vd@LQ;zXxTT6+%9J z7D=)tQQ$q3pmWDVB$pV1^Qo!0900y?pl}6K&wy~rk>$dSG{>K2Qla<}uVNsiZW<{x|@^NDj-3 zbPTSha>`yo^tsTRL2m5#>b(c;wu{AI+b&^Cjzm~W_ttlACV`%QbVw600c6CwWW|KFcn<$ugJ7;W9_a2&DlA48vSz#up{;t_gkjp)6`Dp|Y0 zul1)voM&94n2D9Lm{2dQI%d_DsxQf|!qq!5*_&*1?+8#bw zpTz71Th!0{2VSm`#s18qfxFe~2L7))^*?1EtW*F0xcC2jnFo!!si`Zth-qp-bFpMP zI52G;C=}Pfjk;^Pjbn+U^SV)YurRf_5Np6}q?kDt7C0tT$al={-Azw-Xll*_=eR(t z{_sz$Zfco+KfC1mz1JYl+l=DiJPg|P{&H}K%hV*AX?ek=&NTVPq-)x{pTFLW#Y@XH|3lue*O^=0oR5xrHr zvqGc|E*NNSP#UkAl5jAwP>FLeRAqB662#D3STV{@4te+sf*oTO*|t|huSL{Kr5w*X zIg=-7ix$0{lXLJ%&*A}l7r)h3>Xs6%^gY+Iqi?*v^jUr6>PwqLj&4uE1&`O^_>V^L zkAunEdOR~(P2%@&kQu_#hpICUIgpoj>B_p+bN3y*uF)^!y6H)~-i~_;JGJ9dk0hDQ zsJtBd)}UCN&~rJ1y?B}BkkIl?L~8NgyP{YPlcD2>LrY6@eH|M;{VL^$ns&aa8>|j{ z>&QGNm)zj{+iN|Ii~g65{3f#O!p7q*&Rd>2&o~Nw6Pm|$_c;GWuei`^LEbl2)jH@2 zp83<{`$JX^Jtvzb8Mf3Nak>0KYK(&C^j4F}oTY?lLVslmX%hcM6svQinNAwmx1bci zB}`p8>i&wrwq%PRs^i8sZ^FG-Q@6CJKS?y#pYc9TI``cr%uWCFL1S&tMN!c`i&bUD z;nlQ*Iny^!CFUJAT24{j`-^!fKj4RTR-EC`jGq-w|FcVQL>jKxN})5?g`=~-TA3Yt zG~%qHC9=x1BS;kmmzL7~E9K7#?pH}kn|;UGdG5ud+!{orv_E=}M>HE)Eb*a98+1P4&>0;4fsAe5#0A{upR_wp@ zx|S93UbeL2ndar}v(Q&5H>d7v94KHE{vlR+JX!OKTE*n}5#z--y>TU(z}%;MgUFyM z?)-+iK+-;?g4qf|W#P}4Uan~9t*X{WN6ocMN%c-gzYDu_%(%MYOhf$P;ejpv!oPtL83qg~C|zzez%mLl>dPcYC(@8oMTBxvgAjcc2gE;?YbI4t=M zYcFtm==X14(07RvAr#>|Ejia!_hDKgV=SSNR(y@4!m(($j~fgT<@+WKPCThOYIoDQ z8PAvr+JtR;AL;XY>mf6*FL+hQGA{7p`VlOwR`Nc*O~8=R+)el%yJHvy$BHh3 zA0~{IGY*OKTo`bW4qF`vyJ_7gdi^A|4S04{BobZlyvtfh4CKoI7=Yf^x@tNBx0|-k zLrV^{{Gq~wYRyC9PBNH+06mOuzVoVK?`^4i~DN6L}=Co+;+c1Lh1~0}D;}4#1~1 zN!7(7O_42w&0I+Nd&O5MESU8IkXvFSg?vI%aJ6`Z`aBu_HEzYx;W7Ph(=~txVhsJj&uqF zi|*Ym$bkNFB2nk~O+kV>R*;J8w24Tw-Znyqf74P`yX(i4@zB{UI4Eqe*nsVwU(ont zNl;+R_9!d~V7(-~0S9rQdFo|`>QpKwbl$mJ9jg5MA|+pw_>cSi|B`%Le|7&mc^(EP z&-u;leP_Jre=0vnPWju^uTO2B3g>TmfXdIm(zE`noDGUUJFOgC^x#*(O0R>yzOhnWc-1nW3Rsf*IA^ajpF2=s=}XE}END zit?#8{H4w6EJt%2+e%00wd9+NRkDLCh)uD|2a|6$#YJH9t&2>dg5kIPE0x!;Iog`K z(C&dln`RCUX#-h#JyX+D{o|Qn^zEsm4b?2(#LQ~h;ih5h94mDQEf*g2+RE*5m7a;p zxV?CY*~zt?O>wu?G@NqRaXQ<7d{QOx>HM(7{&(QcCOkCfelpQSkb>B{BXze;1grE( znm;zL&7)IJQ=&>!Olz-chU?S>W zF-}%XK`?jdPInpdlDNQ$ipldAe8UtDE@d=7-05;;+w0?7Bo)qXP5HRA{l+mW@zXDP zl^@~(%+B+@s&0F68Vc=sT1Ds1a^_z>|5EbU;_mIRQVW>m-(<2Y1t(Fu9DIe z*y!#8GC}-|%<2hYjFPv$qiQVS$P5QJadyT-eN@e1|L}|S2QMn&*sT#7o7i2%&f?r3 z=#03%L9;Oj#GMO$y$jyo+@e-E8>u09&SGKtK;{zKQz5S?XgRKUVy6cCK;pL3KDnvC z>~@x?#a~ygXw=iwFfH($RX2@{4vgCypA|TJAfn>&M9sMc?2E8VZ?X^7YCWszDTvjr z(J~2sbARm0KpCuq5Z}@hP%HCnk8(qsx~WI)042XCBMNo0^7^*mo=pWKZlTI9(<4As zP3mI&tLp9-u5D0&h5gu+;kN7`qJjrNIEM`v+BADveVd39Snh^kguy$Oq`OmXLN%98 zgkt3C=U3a18Gz39UAq>TQ1k(9eYigMJx9}+j$h~jg65+x_giW?qY?Gmq3G%T4t0?= zbMuUcQf32fHL!`7+XMw+@?5xah~umJ0cYMxd$))2uK37DEPxL>q znG#jiP_HKeg5mfZiN{XNco9bSr9olYn?{-wHy^*|>1_sx#hoDF&VrZvvU=%FJ7H?y;R6DLxrhk6wzBx4i8JbBybiH%rk&~IqL`0SQ?m|~FbUQy$-M93;c zKpW2xhNDR-)-JABy4|u-$C(o^56D5#26OegCRQW!RMbWs@Kg=}uyetNDkj~A=cI1c zd6UDw?R^0=ng`2EJfwasL^O=iB2~rXYcWii3}kH}L*P}dVQ}{x1*|tZ3I_!}HX726 zhlw4OMnkv^0UQTn>CR|f@iTzN<1HyOHrU|NYzHr2$wOlI1qtL1InU2Na54kpj#K^a zWh-NRv-?2s5L>}UZ-YY!1nC&wX#@^$61qh9MAUb9kmEJd2knPhtxQ4p!K9aFEj~d zC@kQ#KN-NPL*kx2m!T zh{##s!c8oc@CTi)7;`*I+?@+RuMw7YU74~#`c4ZDg%qkN7P7(+Gvq3-oOLMZ{yBzJ zBay=G++4N{Q#NO&stk{-pGC(VP4gAlOos?sx<)1& zk-;7q7ec^BqCz+@wQx#zMrZtK{St*gmLTG9(3t22|H9iS0n4w(@o&vb&-YO_iS|{; z&A|PXl7Mp2bNH>Nhj;=Y0$6bw4#2=42JL@SVmrqGnsXqSK?mt5yY_^6?u!6B*lX!? zhF@S5i10r0ui>}#^f@0B`lkRFf|FV)sb%Szm0n~7=4MB=GNH3$& z{-T$yQ@mLgW~ruI3NM=GQ>p1W6`9r`z0A7KcCCg@BdtTcN%@tP)~SUcz3hI;y^6IK zwzZ`JjdBMhcpH|2kWgydecroHv$Bzl>PvOj{nmMge0JFvD#$LIWW60-`Drq~oHj?R z{J8UyJc)I%RIfd?6i;Oe_f6FmbtV*r!baNF~;E93C6rd<>+Q z9X>OpqM~T(_*3vky$Pxw{&*uPndi()QwfQjecm+wDRXK0=B@Jp;l^%tJj2*@)JnV;w@HrXq4OI*LatykAV5 z-4Sgv$Ebj3n<5jo%WI@g6%7+)ivvA3(qd_m!e8Uzh$2t49PL!y{ zC`CAmxtZj>VJAG}mY22L#%qKrUOw1f@ghL5CXgLnYF%FHC-bztI`7LQv6wJCdvwQ) z$q{mx4|=?A6%nX*7mCX94n%6)%kfr$nSwE)=nxzv|o z%_UP2ub?3SZ0Z)TPNiJXsT=-E3B1}Og3P!A@9pe@U_x?4^34f5j$ccrrZEczsCfZ` z%lBt=Rdfh!B3BgE7`$3;@&xgzJdP(ton+W>b z!W>zs+B2gOE3+bW3PEIea;`kI`hS zeAzEv2%FJo0NvCSCu@bP2z3;)@znufN-J_IPy1vNM42l1kY^Z0Is)!%D^;Dl4bv#=dVH$l$-oe1HCBT;9%IE|ZlB#3JhC~TM`ww4 zZ&AoyMPGc2;lh+_K~S_st#E&I9)Sg4dP7gaqXlvfT!wB40a+YvJCGPxJX4U)Kv)d3 zjmNX$e&m#}io>l>zc%SWQFMqD_|)ynX3AUx1a!bCo+q6tc8~)_P3O-NIpPKALjp$A z5HVyc?A9D!GQt2MVoEm`d?^GVP@{KnbOu})9|UM|A#flnVI)AkGCuBrDkN!~-6^Su zkAxLYw(ItPfNwlA;Fcwpo+GECifU-xu(cQ}jBiNz(fbxjd{9&Of-F!QZo9|FIz=vz ziXwyqavB~$#Fo!E37H=GFQnL5LZm>tLzntorLb7WG4{#)y#jm269-zSD-nXLUvCZYC6#Pm07b)f^*4B5e)s>Igi+!mMOry8_jVo)q*}Xn!4HC;hI}B#n z_{6gQ;eTGi!6|D{kpEA)-Rn@4FKf#h|5w(*^z{C#j-3s*vGXlRg@qQy`D?5)Fl}nL z#wxq~UsbStkX2@Ru?Uo6QobDx6yr5q8NZIrrRxaloOE9>uW_^Xe- zXnS4n?zFRA>No)VL5k^*(cJaO1FVA`{JRc@zZU{AK+bKSl{F9R-dMPonE=+o@=(9p zz&aQ=a@r8F2SE@pcGNr`x^jQ0+$EHly;cVsIA^RQ-97j@<6e=g!H=aIU)75hb8-Ze zdbarX*KXYt`D*$7f#+ApDt^h-bjPNh%Upe_D}g+PuXgHbJ~}#Es!A2IpXGB$ft!bYa5PD_F2G`F2i$nHeJ{0F0}mV z?mI;x(U$jG#9o^n<{rOs=fkn|X{VM*O`-mRxIK&}k2vDULdFlu_lM^T z@#^$b0XpekdQB!>BdiYhE;?i54FSnhz^PcgxL_W2f3%Vks#s6X2Sty^6q1B}gck*T zPiVEA?v625>cW%8-Cro5Fe#zMB^C)w`>wL0@R0|D9hFdUlNq+JZ$=-&r0cv1J&xzY zJ8F{5-VdEp!c6Yj<9E&$^H?4#ue!eHmOPTyU=Yx4mhqw2qA;jp}hk+YUB_AfX?62g6WfPCuVMT zKcaI5SRbcJ`VJV!(Bp{uYV`I|kdOo*sG z5!UVLIob}#WfOHD2<#dKVQOjv%p1Vx8&Pmkq54(~H+U&Q;LV~ev`+5yoIFAl#sz7j z;?2Tn_(6-vjvUJwbgpd>_gJ5@RS!>ZrJh5626G1LUqLR0Q6YOI*sZS_El0PQk`8lE zKa*n1R}L4>b-xl3J$P3OPVCqtn^I9VmLNRssKC9lf7efk^ADcvfun_KEte1<8e_oL zQK^(ecm<2|<1(^fAS^~(*4oS5+-9K{O?%k?k%_KSHUAvzde)XkWt!mxzgCg9ZN#y!a9mAs=FdVXxov!Z^1CTYpbwl zWlqso4mGc8lSBc;;$^N6f^@a;x+EJAI!uRy?(7dbJ_;ORLTcbCC@*ei;ZGF-GN}!J zZXksYZ?`iZV89>mtb^jTAR->%3EPzc73M@}S0%Vo2cvS;!8$fEdDl4#^y|Zch-#r$ zm&@)OHua6iN3o-q!q`zNKSmKab@FQA60yabtAgqCl1g}ye3Cq=&?qf}R%HPCeo4oK z)kSin(_lurF-p!$t+HFwtafnma0y(g{L^wR={qb}^c`m{)b@mP&8ix{#@N2j93soO8ZAtz};cWjE@i8%Y>eKr$#~01hd(8mT zH3T9k$w_|dEY(FLXM8YGQ%K@;>c-!MDVi&>m0G(^4x!QhZ>Esy_(&uXq`HCc&>}Rh zwIUHB7(#|y3niPjb)(MkdC~X}>_q!i=_dM=- z__BXs_@9r?pyIASI{!Z}x}f-&U0W*-MLy9rX`=w+NH%cCvg+Q+qxE%dJc@T>IF+mWmQx*qpJ(9Y47YU zl0Ml zpv$Jw)nx4eeIs3B1%qlD_LT?Qdn5hOr-N=eC+sn`Oza~*+fQ-( zRYtZJWUa>G$K+fltHrZUv|L9&771)oZ)E^$r{J znw9!NIpKKV=h2&xTe`G^Ml}iTMMu6%ZzO$sl3kbvyYlmlUE945*%SL)ewTRGsXvD7 zdh`2l-#WwcnO3zeKmP#ENbUDn-9U3CZ-5-+L@xb*)V)_!ll#8?{iHw=2oM5dL`vwP zh@naolh8sHu>pdHUPJ{%1VjxXAYBN(htQh_M8uxZq^W=ndnh6zD)uh#1Fp4>`<%1K zIAgpw{|$FsG8oK!=WovW5mUjdi80#Q33iJbllr^!-wT-M0;pNXkdXsyQ_Io7jD5y35KI6mJcG|jk{ud+LjQDH%-@%E3BR+sD#As+8?V~cW@SyD7uczrif_N z&>q*#Ue{ci?$#1+2n`aK5F_$Pu&!A%KE4ebBrYc2HQxjc`V?x9ofQBH+*V~SqwRfW zP%mtx-GPo8jTR0%ZtLW_4uEE4zapKOWlJKSLfPcD``_%H0#(q9>x8D?`T1xP}Mt4(-E6@z9jX1-0|$0<|cUQDWRP4!Rf|2oD$>8Q*{CV zuCK0G+A+iIvez&|$Mt}e;Ra0fS*Zb9OVo=QZo;L#J7Zs@?S6lT(ftBSgESp@K6n#Z ze8!Ald*Cx}_fGKFlrXcu;MdGv-sN!e9AL5teRAM}3+_q2>Hgf6 zyY<;s7v#5&Gfe=TK&Uw4cu`VFA`dUMC45#|g}v(+K!k{2;vGHr6%A~JVb!HwmqynbciCf*J#^Qt3WkfCmf64)l8}WY+N;9VEJziQ zSF1OyE&^auRJ!?hLJJ%q3HRgs_F40haubZz=3u!k*>%hwfT-s2*ubqdDE`}iAzg59 zO_!K}%xi~;yMnyvE!mez^(TIG5G-R{nMWg4sx69`yS3Ud5qDt-=$$M{77r#nAZQ%a z*^E(~Lb|`EBi0B%>$i;ktCzjvOaC`%{+D3bw#Xfxpf$aMuL3XO6@1k{Z^M66HU4UF zF_MbGVY1AVoRh4Y+?6~S=tzS|jhcG!N%${a2J2hkWANoGLswV!x_kS_`v;aA+2CXF z@=NeaiECw#Z2JF~BLBTg_MdVF|MsXsX*Mzfu^J{uCieD5Iy#Ij3uEgQX|}eqw6HKY zuB|}uL(ltr)yUlVEr@ih$ZQSQWnj_-8pNI)_4{Sc*u=%WL33@%(DFIO@s=m{w3V-Fv zw@1T0G@=U5o7LK3uQcVH=PmwmL4rL;%Y+2B=Xg%j?p9=W$~g}vPd==_f_j!|{^({# zFXYLq)sH%-rzVvZd(w%>R~*{SjVG?W?jl_>rte|x&bav1;S|d9b;i(%nfHsDIf%X| zXBH2BobIVyO6{6T`1;~pCCNOde-9nnUHDiJDO0Sm*oyapI;Z$V zq!$}ZCMr@)o+dXuI*d+JQ*S6u;f*}^N$+b6c1lbNruwD6-*RUl?Kw7pkyDus*5v9(~W{9loTBLB&Dy|Xq zgmeL3J^R=Yx$ax}d#Dh)W(dS+5VGmen*N|BNYybd5Z>F1c^O+5=lQZ8HFrV#@blY( zm#0O8jl&|I_mWL6nykpDD-UCzO*dtD*wGC)T8#Fz$Oya*jA#J#QUzAx^&e#q0-$zEJ$#F39DN`cJmuj0hhNYiU5 zKehG5>{b9H$ar@$e}>4va#fwAJM{e6I1Tk4N`#E0e2X4xd@n+K+Y|jHRs;bb`3{Jz zKJ5GmBhGA17=QN8?*71gEWVq+zd&s0;Cd49@iel<^>zB1(<+p^UGE;N9e?=qOvGJ` z>k&3t%bNG)?!|W}LZXxiycnUQmbyw>CU@D8!O-f>+srVOVESVbew};|aLy*Q3XH-!37Xh}|!t%2{$@Vy4|rtPK|(x@;BqtBr{RSq5SL=Y2wAT=mU8OU`P)Q`1EEk4zgXLarznM#1*TxNJ+ zLe6?dXG`L0wg9%4O9z+VAV3r#U$&TFM)HRpHRcFw@K0bq+!srmrD1D=J#{aQrON_& z=1GH)CAcAax5-q#$pFOWV%1GKICSNuc*UOnZ;JePr~04F)-p;;w*GH#$NvelWuPLPnSn`dFof;mVy3Up z$ReBDuPCxTl}sk(kj&ZUWn?QVxE5MuZe?wM$`Rx}a~YdmEE&|!42GFyX(Rts=`!z` zU3!7vSlW8}Oq;#6nW>8%!!pg~gc+3z0-uX32WFpFk%y=9?3-`ekJ($18R;fhEG?;B z`n&}u3;s3X6q}E)2Uv{N2L`!E&o_M>kAM$Kx&f6)!+{)?>_by?dR|z6MJ1cgD~(Yc zlt0l~-Y+hy*g-01hgD2`buTke36I)i%d-E#z8O&-)3CQ5D|M26J$*uOm8wH`HO-LC34a9M8HvMLCtw=wXwulgr+xS!Kll2G6S zK3eBaf6JCc+Y{dh#kcl^KQtzoox5|d+ZcsbZc#ZnJ*xf6*47xOsnU^1w%uuA#+$s9 znA&~42akC(_ff$~A#C8=heee0hEHWiG5*Vnyr;$7^ZN6d`lrW)+xqwD!_>d@CUE?t z6pxB%b;;}h(wo@D99^Y~*OK^jqKYA(?DmL>IR=iYtlfcCCaC+mWA>}YO(>_#)qs$B z1K$|hZu423Pv~q-O7%&}cb{R~w0Bcgm!h;U^j2m%)}6Q!o6k=4$U~{y52m@>c3H=~ zE4KVV0>(q2huPXv03?xgJ=pNGM&Tq5oXH9_b67 z+?*i0NNIU1RAde7f@T9^m%2}YXEVGMK=(O>h-1tM?1if9fiYQVB>W*AeJAdOxWwR; z16}N~?M@7gugeQN-(OV?6XMHqbuU(2_e4`L@FRfehxWh&1QNQ9%mp$=PY3O{Y=f{{ zMMe{jBQDm@N)a&e{3ZSxk8jo@Ia5tQ8!la{LIOd!xOZTLZIvRv3L^&{dL=})7lzxB z){W#9-N!5GU>@-XO?JlKFk8<|Z|0M?Dz}*ySd+L=SA`!nY8sd_V4S?9%~7)fJ=_5k z#V^~1(C6alq7KH*ABziWNJL=u7mRVyVZI|#gm~Iy)>{ihT7>NVw9D0l*x^JJR#NQx zyi+C5X%U4u{iW2zFxz<%(2v^j`azh%LB>;~MDKNpztpPu4}oCffi|@5J`{THN^9I1 zw8Eh0odauK6CSnco0w|3M!FiGf^EacRa`;ndixo>|LPQ~S8h5;NUUw&Le#2i1r=Ir(|lu05Nvn^KrD+eYPf^#r?>e z*bG#KL=sOwK~B?uRV{o{J;kEWFvS(Cu&9SyF924pL$=7E-|b%L5|LP#$fgI^EE#?? z;jmn2kWmkew?S78;X*DPAJ)FA5phZ>Jk?#>0T>4F9C<0g*#XPlDGgl> z`8w<(QYHQD=rfc`3aRsh5M2bGd-TH>p>V^)Ot~4hJaqE0-nGx=_!c%4-9T%^0(6NK zp|pyxf(`E7*1JBCgg4@?y+zu@kD*nu3!+dl3YbL86LZ%p67icq3sV>ntOX@oH+~ek z#>p3lf6M;@&dYYp(c!XedNn-T;SQd8G;adFet%Bpk#B6|r6MLKv`Z~3bQ=QLw;Jt5 zg2hE~aFsY4AI`LRnlS~TGj>gqFfUfez)nH5`BWq4g~IsAr-fO;sXy2tvz zx;cFOxX!od*X5tRJWhF9^!7Ql@7&XPy=Ob@kI$h^@C-IGWxJDzmdWVxt0;dO^D}vX zbqJ?LEi;wA5}lDKKYy>l)S@BqMx2`MfR7g1ZDJ}yQMres6@DF8mGaBz;Eg1+&Sb^- zLLIV|*t18tnI*b~jNdj92t1oCLNz<@&$Lo7xFx>Uf=kMSc##6gJAEho6Z3mXVB3`l z5*BD#c)#KccVe8>R9jH$faoPna!l0xxn9#@JRee&A`GT|5^Pgw@s`wVLJ>S;w1IIF z>)TV9D@>=07K#_u>M=XQN%asNnpFer*Oy)-jBN%J2$TAck2IRDJS zj!;&vOQc?WT_V-fQBJ|YE`KaYgxBZFu;s5_CU0u5+dgSKcVp0k{!^n-Dowq|4IT5h-YfuO89z{FCOm4Etp5s zGusvyxzeMr*Cm1vi%b+?_2|1`$S5~WTv1LzO=yF3xrX+EL7LO|2n z1MPX(VC+iywv%+wG9lZ+js*{Ku zj4*QCh6i!Q3z>5t9veR+c{in7noP&H67=9w%=O15sbvh40r}4+Oq8)wpAFUk`bqvZ zAdO4tt&@^{czrYO!^8Me?=F1Wbh9=%oxv0D|E1cOiW%tAWXr#vXQi>XfWH z;E4!A*MnP7Uc$zHCdC8Aa8{2^3&HS}EQtO@FLr{NvcpHq*={n_>=*^xur9A=SB3`KjhZ|}AVIvhJHRdnSx)hk(9W1&bH zlf0Nl5pXh3nWXyLj$NZI(BRUpv(KzwIC;0Lq_n>sk&Mhvj2`Kax!a;hismvzzz~-x zS4}s4ussK_q~?N$ZwMTPQATSq+LLxj6^N>0F9|MVlAwaRg*&`R6E5M|h(}H)+K$k$ zV#TQv^BO&p?M$g{no0Yq{PbP^)d+({vSf@NN-3jPLruO>9H&(tk=?B}rj?@aG^9b#R_T zWR2xpxxls<9QMvJF*PySxY5MY(#Dor*!&x=(Mat$+eu|OIhr$UE@Ut^nAf%RC6!rJ z4GoWslwav@u4^kk*J(@M04BN^=4p;6mLpwb1vVAeUoMQ)KhHnKZNF;^I@m_t=H@n+ z^m+yId+oRaeZ^e(w<0?Udv(R1aUr77iBw5tQ6U+n0B$v3Vf4m6&JHnULz@c&jb1F> z8a7ccJ~E*8+`_ErPev%NuKa z=GzCdE1f!B_VvAOx*u({$02iraj+pLaEY91c7#|m9%Y-yv^lZZdOxWF*~nos%QVm1 zeplb9*39zZX0_I>au3P9)0QP^{K*WR(iUl>wDlDF96r#Y)PK#B53zMqW1f!Zq?}Xq zM(RyGkA#VoMs7dZQ7j;RT#Rxr<{vrkayQ4=i3w?p`_OVJZl9n}Mtt!4(Ds8b1){Nr zJBGRzE==}l8x@^BawKE{Q7>_P_x&S7Y}Av=%}?18I|ACyC?5Yg_MuYkV?IT|a8fm) z9Txh?6ELW%F?gk4&I2Ia&yxW|8;;Z|C4OytuP817(D))s7YwGDq`9CBq_`nKPt(!r z=}DKBQ7u7B0-!r+40R=o=%cSqFEQ1ORVKC69}(1YHbjq3vV_`UJ0zv3nzeukI1_!y zU3a1;y@1D~7w*Q=$i=dE58I>QT+LdDHqW%`u&3GG+VTx9#FUD)od*@sA^>Q4O%?SDNLpDMl)Zurw`h;$^|vTp0QXG>umee6Fj6oWGDA zeu$&Lm0K=y`#W(dAb4=Gz8unZL@$8K-VQ$>EgRl_t=gvg~}0=eS)8HZ-?7}qZq6U4ub{hmtF1hl=1!n>~jP=%dJ3ncbD zirnp+&>pSq+Ip8+9b%6PhdJ=s4);zJ-^o+JFm7v|nEI%Omm`Hh%dU-hRkrZLHMdpUFYReX6Y`pw-+ThtQ(!q6DK8Hdt*lR5Zwt2 z3EvzpVY9}i6B91gnY{^1S_n8SirdtOm>h4(L<@tk_-H_*MzEKS2z50d)nPQl*dmu_#ML7tt-9n&4u8038k0)aZh2PG*#*hN||l(qfw3{ildalJQ9FfjqcZ>z>!3U^Rv zyCLh!Bq_uqvWd#fCY=X?#O3jD!duK@)vbgp9#1_wLeN`3R3mjfpi146FnJ7ReG)Qt zQ#_Y)P+-Tt@u707r6eqJv0M1^1X;zGn0lhiA0fVN3coWaYih(R@O1!ulHdqCRN z?`-vDP>^{e%ln}Hqu^Z(+SVgCCYET$&9*UVN=2R>`kOiX6*7(3bhtwPMT4yYN-w@c`p~| zjSM^RQQ353X#>xpWcg9~npt@+uc5T1w!MvNWoqJV%h;Iae8SYu4z#elb3hBbmvnwA zpW1ZuR6CVIVx(`lym6!5IlZe3%yS5pdDN`EyWc@LM} zy2((XXtVZ(e9yeKt-r*YPHn%LKjJ0+swC$HkrQ-8Au7HmWxY~Ps_v-_ z2kKN-vF6y`kIs|cG?w25waj__(7;Tgz;Ve7e!CxZ(dwu}}OXVcxg@@OaAW}vfO6L}9tb~qJcyqO1eYOvZqHdegh1r3r z;x&ZP#yW^Wjn-7@HEy0yxzq=IbBgp8VL1Gd2oF+mk!9PE;nKpZDnS;x>SR90L^29P z^@#&#K(5&!vfNjDvVuLs;a9H3yxd2DISA$p3o1&Vw!M^>B$p#H1pAM5$e3A`gsNla zE`KS1--9;2BCE}N8*tBxvqzk!+ucAQuP(E5`c}IHMOghP>wP}LBb7^}G`@|Vy9Bh9 zh;r|RxDsqX7TNPT_4$#gOqe ze9;obW6E{$uE~}~4akl&)vZ!y(%x!lZ^Xy5Qo~Iz_&wS^YwM*}r?mPB-7DByLo z^r}#_hW1%4$ehoB)^Wa_3!U3G-UB~w%rowFFP$T&g^Db`dAg_&G$^8YFNFL!AUDQd z;@l_E?x$a6;)YN%J2iQ*la=O=OwW827+eep+D}l+U3x)6d;7JTYMIvjtOaoKX8NfY zcaB4P_9%}+#v51Pnn54?l}Z;OOMNgl@LWRCm(J?nE0Pp))-KWO?moTqzGyk(2>;vb z&_-Ad5X%!(3U32`T>j+f{62~e87iKKe9$iVS#nSQ*&Kb()GpwD#rDhJoiwmKI=QhI z0SM*M6a0qcD(P(sFTFVMwHbnZw}7kRckJX}Zn+_8ncZ!+4y@OtJdVzGQ*gR%WrAxF zL$Y_O!EjrI%@z|f7p2M-pyC?Pw+X2G`n_gHo#091lRG@AX!t%3!m$Cg#-V7*h4uF9 zIefiiqm^Hf0R$xHnq>*z*4ecmtCpe&U}*rnHzmliMQrtT=`}1vKFTN}MSAiebE#nf zP*mYNzGI=7BrT~5yeP65%9KYcEukPNsD}BZ+_n(_hWO$x9EK@8e_Kd;U)c?bKo6SCD4};9)J-H$$4;|NN7Y;?P}g*}pJEGE z;%_Tsyw}wu)LKT?e)iyy+@{i>x(+Js6my;xZ@WHTr;^^|7DcAk91R_e6L{b zIUYneZZrkw)U9Mep2J;3$|Z#527Pg)Zj|#$58Kv(u%75sWstBA6K~Va2FR*%X{m0b ziBi4zXE?iWa)-GclBOcAsg@Z$w*x;6|3@7AkEFT*H1 z&kumF%9kz=@Oy6b^e*?FMs7a5KKgKF1LP^F%J(KFm#a^cFaM2O{qObo{l|aZ{rZpU zBL7)NW@MQgS*^&k6~){f>>?YPRT&$ZZ=_h+6gCwt*O9q4E2|*(R1*fJD}!NZQrg^O zQ&L_zFgR3WeyOLqbeV`{WoZajk{Kpx)Dwmj3hQP;anA6I`AV}J&+@EV#~aRCZ8T@3 z>+?)ZC>L~@msJemk1r%54m-&f)!ep-<3@jZnDlCOCRj?&^EDB#vO9Sl_vDDXHOIiF ztGCgbGx+#SmLmAVZ0eMIa_7ddlxlybx{{KajHNc=Ov5$yo8-9(9~JO$D+)u(2aYz} zIV3VH7BcUK#8mF8Z%R9SR)namMx-InY2uh%5UZ;o;r zuYEgY?bzti>ty70+**EDB<)ZK>Q1nitAWSKOGmDbyw!^#Cqb_ryVQKitd@1X@e{y0 zvRzD4=Z2@^(wBxnw}M?x02@d$>zkQY*3)v3waAW4^Q5b5H z3<1X!c@Q8N5NIG}s80?Is_wKGK^so6A))|2K_uEEn3I6W?}Q0MVkYnqc?B*dNn>{r z#!3?>;GBT!ka#Gg3isalVbyazF!R?q$dWj@BF4+i&~u7>+}_xohjhM++-k;GOR!4W z4#fjtbk0;ExzgemB+*Bo$0#N%Sg%E6Ku;7R7ljHsv|0Cz11fBXCLe#~Zp`Q|V=r1g zL|IzazjAOJ62|ngWY<^Usj_!bQ=ZVIql$#j*XkQ8t(k=uCO65IeCD(LiWF*^Lc^-n z4QN==S#;gb!u=$dqO#`?1;`$d!4oF1+Qh?wUg|l+yem3+q-C;6*{#CSi&D(u1|Q$ zqlL0Waq-01mt5{*mYB&8?$RMi^HKHFtNmKUMQQ4(ymRuOKPiYInI1r{n)bQvX0I-J z1_ZDBEKDTW*T|_48fnyKiP;Cs)%9)s-r|Clp12=8hJGBsQ#g7*&(JD3**Ks`D$mqN z&04uf^jv*6_mJt7`Xsd0UWVR1k=~jsB2L-)Lg!)Aqg~2MxCzaK79$nM6lB6{clt!s z^k;1)9Re+=C8_Xm)V`NKuPD>q_Pgv6k9WlK5P456%G5NOm;3;1u=l}x52gwa7YUCJ zcRoIxxL*T6OP_kN$10^_W_(wV%MeikO?wVy8hFDGo@jPUd~F^$>OEFsc~u0VFNKCa zz4`6eR|Dd}!@9FZiZwk;B=v2ZzQN=UXPD{B-UZHF!5dd5n3qr^}nx^(#Xy|q8< z(3%O0frV!if1WfB5GnYj4s;y!d2Tz(MVB+Tt3lWjUJm4eFFVM2KCXMCMcKghxZ2B` z%Yvi=unAM$QFJH)5QdiAS+b}q=Ckee@dJAvNZUa-&j3ee-g+g=B%V~7!DEfqBz&d8 z0r6fCU)Gp|$sMbeovXpy>EvRpi6p(G2B?&SaJ&<}t~8iR6+scadW5 zLV8O^M)%(AIS*_i&o&qN3F-M&~=)k$?pQ{_0z3fzr6%wF~I0&xTD+M!%i(AA9pyukFHNaDv-9S9S?Ifx?Y4& zons@~2uxihRJ1{wqq)z2#w2&A_{ImqtC+}cbRck&!F4JhA&7064OuNF3C*0MrK&_k zz*aw^V~%Jt&40Besz8b4+Z}29;Gs6FQ><1SObCg~PBQGRd(}*6!XmHk6*zkZXi~aX z-C3MW@d~f5GWn9QUY!riwFs=$tR<_WLsOOgm2-yCLiz>mTP*L;YBJdn$8VC%oMc#i z0{H*rpM{WrUX}kjnyD)+4R9gkw~_7P6$7qxEq9Uw6P8!H_9lhyOF3{b4eTUGFC(JC z_3f2fGAPWc<*DhF=~-3alk)G9R7qLO?~+tqLud1{HeX&rRDwo!57?7BcVPewW-oi$ zyy0apyKk8lJ$(KCpA%hRF#CTrlmEP!|Lr*EUlUy`cJ_Y+C>lJP|0qc8Qu%ha<^5ppt9ml8p{d1gw0jd+le%PKVcV&9gC5$+UBP-)&stTbB9#igM+V#kw)vZwEh3yAuq36az2+@h zWI~d@F0tbK*!z2uikqS?$pzgSmz1}0RD)=BG@VzRthl0Mt*TK~zh(Wa4hLhl#OZo= zn&?G?7PY2;rD<%>{Ck}-HNH;H!C~?Jwl(uLS?`-8?%&+f62M;i*fAPXEJAsh`Y~pb+|dC=PHR^?e=mnpYRd zjL$|M*t%Y}?CB=b<-|`FI7Fq*`=2b>mbwvA0`UE9y#m|-Zz5ps`6|Fh*3EDsiDG6Z zJhXH&H6xC4V4KQw`d%BIY5$WT=9pr}LxsLwd`J5I{rSN4dRsXvCE`CQBul45?L zsB9^fS4LCF0Z0N0%Uu0)1;Z5zwraP%P8lLi(n&xbl8*N)JaaTLD`Gtrs0CynotRDM z=!Kw=nh%f=(Sz!-w@XkiKmbI!?0!%Qtw6au*H|Hzkk4t`4#`7=e+_1Z?mmPPotF$r z$ST~C>atB?=DrW4Ao+q{UH^;W^Qf?62oZ_-1<%bfTKDKw%g?aYH-ifRyf`Dq(=G;pIwXvGEP}wzYJm3{Y~cz4>SE|tjxH0I=)4-%6RT6wk(OhjQ+dqe3=cVdnRm6;%gm4ZEHD1}l z(zU(T>d8MGWMkQhTlc%=M}Fn6y#-dTTDn*5LG_0$juo_oV+&sorb)zo9bPY!fFa=m z?Z0)E_)W1&e0@^yR`tL0P8J z$M(1U>q#sL_=4YmJS6{(r`)m)1X&&00S;w){hjApc}rfVL@&Q3r-Ht9WK;&Izo2h@ zoKXnAB{P^{8LHy91ZRSw>%6*raMrP?88ooLiR|TtuI1!b4j zix>=0eEME5PbnoWdDJ_ z04K5si!WV$3gRivK{{n&Rn1u4e+^`xG6T^UEmx+0EnPj9_Ye`_VQ{E14~^=kUXzkH zY5%&I!yL=l_dIU`I?y)FJ4hB+mg^&;@<8;(3la-%KXB0g+o7_-w|?zOH!AX1h*p)G zRg0Ypm~~sKtq$5ND~BQ_>`^D1D~$Jh?=mR% zD0KzLI3-I5bsk*M+s%Fa@a_J`X9}r@U{jx2nG&Kvhv0kq38(&IxGP&joR4IjHe;k~4yGai0LgnbX?tA>-rQv5fZMy5ACVah zd))|6d~{ya1PJd|47dkhwZBh1KuNQWC38%<3NVWj5=Qfo_smQ-WZGTyWwg#vUvf$} zV~7W?KmbwWAC%G~EU{}j@r4WFXw6q4ET+i!w}{94fd)1{0WQ;*uOTacV#@|CCylCD zVMA9~GJ)bF*o55ijwNXxGfsi4lxWalN;O5CWVu!MQW;`_zAz!^?V^W(^d)xnQr64^Ve%AOiW@AJCr_?@GSK(a;wJ)&Q$}W7JFJB|Bh< ztyu&fJaNP{sN`vUaRw^&PFFqa*f-SN`n|iS5=)KD1QbrHE-af}kxdNDgqMvHYS$jn+iLCRUS=ltfKX8tr)SY>4TWT@av+@NUoyC6DZ*7(RPHB~vx zi_W(@L@?WB!?b*akIpvFZDMo|??F8ik$Z%J?`pTIz}{eUTbA74buYD|HitdmRG&|) zfy=HQ_EnR|-6szm(_h$JxC$2w9XeQZQUH-#|b823F4^Xm?dc*E@1bhDVSRS@qc zsXAsK8hd+!-fNHWjzAkZ;>hSN^#gE;RZ`y5cRcD-bcvo1%#~rTC!E=%LTg;70n3KW z$xWL`ZB}=Fh-G&^TKoMVt5roI8~T+0LN4pHRj_L{W{V!9E=Fg8DVFjs(FG3dF2P>EeTQ|&x*Ck#q2VP>0 ziJFT6ua4NGZ{E?RJo9O`xFK;gG^%mALEVy2 zp(7$#dt&ghsc&$0@Bx{6HG=waPI2HFgnsnqV(cJX)#vH0;C^;JR zarsNZxBWZy*#~v}we$2`w6*!tEF{ys2w} z>LT>CEDxSP835+PvS`-eQJuKPeLG^whw12KqdC+apjM1H``mmPYx(6i!lo-(B3y}C z&Sf;~-AP!NEsNXzWeNf2zV$NN`nvgJP5xp8Y*X6FGnSCm{o#4`ayer115tJG7cW`r zZLqKr-|CHv37g+;xzi=|FIB65QT^rev(sL1lyiBPWP1dt`e2HCc^=#Aw>X=Y@Rd~XH9ILqpV3Y-v#%(# zr&4k^nO!lvYGzK#;&heRn^8b6#?8OD7^WL@2Z~r{`Jn1gZt8nj$gUo(wYMUfnj|we zCb_hlf>eyntf`;Bem)z~^eYhGj@_LRX)+iA+jUZbiW?m5%zSz^9d}j8T9`>AZz16= zLq5Fr%u=CdMYR;Q)edJ?#26iv!KT(ym~tM51rO-bp&}wY?l4Zy^XlI9nL|uwXuYhgIGl*S2LUAZBpCft@7>B$WU&lmBNyD} zU5HxYvraS!ef5%=^7*syTOR3$jsl-{h3W6Iv-7Ub=EinT3Iirg?Ne_WgE<8`&^6l+ z9q1e{bHW9`mOBNR^Dg{&>QrODc$~jwc|jB%x522dDU_e?zLcq9v6lBsHX|Q9ilAJ}EBOo05P& zrY=G-iHM|7N^b~_@=m4>o$o#LbD=90=2q~TB$B_QtI0jq4oS+MU3~>Vp1ymK0lr% zruUxm+bm{sWXH?wL$~)S?v}qb861;v48|429I{4urV53^Xr#WvoyZ96p80$H>s4=5 z4yvi6*?WW!pml=rCFhU2>GZrMvVlnAu|Vq~JGB&awOOtF8UJfRy43 zWi03fO4;~i(&1t1LS1d5e0N6LjuC6PUZAnouj|`9=Sx{;-fvWe%`dPYqhy`JdTVOeD7GKXL5^={aa-PLM%B}Xc^%Wl==z_nRa4uy)5N$ZR{ zsrrSNMOAXx%BodH8#OLzI=hak9iA9?F(=8|9p$8PDGE;Ffe37K*& zAH#D;`9}VHH-!&^Q=joKhoO*vYrTV?1OB$&BUi?`W4&q10PBCs)?xdXxmaL;JnA3c zonDZ@EC$o#Dd|<<#m~yC1M_OXp;#5{<#Dp6mW!v_uC53_4|LpDc2L0R_%iZxC8;(( zG;(|BIyeM+{~svEoxdITKhFLCllK4RxUY1q|05iC@DsrAFYt4~A0sHbx_^$KSXtzN zBPhldWfoS}VCA~N8k|9?v$kz(KhySm2Ibt!3`%2nQVzTS+5p>v+tW~Xs;=XV^&c}R zC9LatR+`$x!MPV~vzq!ThvwGPuXn4>bPX}baa=akt&l3-E>?QSi~!hovvbYl-m=pWhOKAjkX{1o3B;U zS<*!glx*ig0WIFV_uY&Ek7_GM%EyAs86#~t%rnYCQ4I&(US zad6&Zqiuino1p-zz~g~*F*Y4xx#89-9>5a`c$Lw>sBfH@z8mszi^7Sm6Bw+x|L}f1 z-&XTPeq7?&u=xAU6f*rQPG*Yd^=y-nbP5j=cSecUx1;@Y)47e)3K)95IiD%^{>=b( z`)2zu`XBle*!SawoiG&fFU5Au1EO#3QVyP8%uhpPT;IThD47%qh~KJa1dL%g(_SR? z`c6PtGpvDwwIw!)hhu~y_JHI%cm;rr;Z9{Gu{(N*#?%;;1UkOn3$777Fui2XNm3tS zG|prvjUZeDxhX85FoclE}{p2#i(NAH7c}7nN=y z1(rqJ2yqH|6NONK>nw&eRI+PAdSKhex09-p-u*Dea`w+A?4OY>*{h$2@nJ*?FWf&> zRq4h^h+Kt^d{Z?m<5uMh3;TBZ;yi{$xez5!?B*v&i=M_3Xrwae1(Ju#RG`NTj?u#bf z+h_Isj9!3Ht2?CS?yF8SsR3hN&oS-b*KMUJ3}tfm&X0Pm+<-b=IK%3Bm%c+(_&ch! zzgMh*s&)jl9l#6TJSWu|phV-$FBr^ki)exOcnIMQ77nO+r3fodSBP-(lQE^f65Lnc z6PqpuzJ-Y9S$DoEJkEh#beN!J$A|=r0gcyoj)$o!=x|9(VG=RnZf)0|?n7@gqScZR zS}`B(?{GI1JNc|{06e$6IDR^9iK`-WeBs)riAD+Oixis=B=W}oH3{@s!Zgg{o%kb8yKR(J!aPlrbh`tfabIH%vifuOlHrQj-Cf)3A)#wcAM= zyO#uy_6nD?g80^l5&C8H1IP<8J|~kY^7d_QnOBZ`B z5+gL$kB&)iHqj}(<-zWaFBOX3bnjG8`~!f&GJR`*<={K-ZEQm-I|zu(A>%{>4%iuqs9^uUZI zK=0l$?EhA~{=HbLvXJ5lrB#V_DwUQ@fB zWdm&cPLOS2+qU=q!AALO&uVP^HBkGSc<~2O^wrecf4FmN317;hKkuu`kjOZ1$7uEj_4(o1UsJcdAgP4ZKKY? zVl!?SjTRxh|N43w4Ew&a|I2UdF*rif-C*8@}g0AV1!hygpUuX?qJ1Y5!l?`0gjY#XMDX4EI5F1^fa3b?$ zna-z^*4M1qCCYKvdIN}x`!Q=X^{49~ybi?rakmt)wCYUuF#Un#qvUJpQ$IErVQ6Iq z!y(?-$^eU8b*?UL{R1f&9UV|E|V zoyM{vUS|DprSz{Lqy||=Qi5VDVC5e!7>QsHHpry0swT+Hny7lgSxn7DWbSj!#qx_H z`G$i>B6*&}uU=NA+PZA9D8gjtNO{)w;&MHu4P9)oaZMtNis6zpZ(plgX^6Bo+j9{A z;znuayS8Iea>{`+6Rgg)-;U?LZ}p00Wq+$dgV{_7N?aRC_?Cb)jm4Al>9v#!)o`Rl z_-S;-h-dMaRvwsv^f;b|oOYJ;jP*f&rkxh8kgdwUivPrcxUi5;E3B@SeH5x;OBF`m zinH+6YsAovE+&yimaANqjy>lR9?y7HpXq^Ikygn=9%dP-o$!{)z=hLKE4nW)>%}aE zyu;48WzT>rj0m5uv_*Xk_vF66{DJZQNqOY0kXXOf z(tAqAF&rNB1E8&9?n|=QyKU=GIWF-Ylb)5Yjqu_9SA0Sxc!j$|p0I@!Z59mX`hf(& z`2JHTx>t-;DqUbTj88ejH$%H%NrJSGBdS1(v5X_)7W1ano+TTU`Z|0JTy;>fnCvJ% z&wT7+wqe7`CtgadJ6`>Dn2UYsDd_p>BkRMQ`^1lfBG1Mzs;g4SplrzW7e%+uJr%{7 zpr1m&UcY9Xs=~Q*>D7uoR8v9IJqbsAlG{czl1g2637qdojLz4i#c)M@EB(Pv9dvodgko5g_y|PSB9hr<+%GQnJu@QktqmN#BDyZy{JA2(6y{ZAl?|jE8Y0pjjx5WszPPYl*YrO&u2Dpo>_t z=-ZdXWl`%6>NrWzXZ&%9LEI%HdQpQ7E>ctm47Xf&<2kG?CE0^B*JoJxj|7{j@W)-* z0>{ysHX`ukC?5R2VylGN(hE$K-NW%n;dG7Ivbxn261Gzw86Mx=T(leKZHZD`8lcvy@x|dr^phA+(I>^)Va0EFm7nb$+~g6` zp>*!OMvU1_tgTH7nf7r4XO8W!Bl^F&>i>z0@_TCX|8p+NUuODmIks(n*&jK!G*cad zB2IXBvQA;qo{~L4maX!4maUGmlP=%MvH|IGZT*s}DpP`-7$+Mmhzq1#H1ep>u&k@A zWIJU3k4Rf~#aNn}ga9W50$RThl6(B^(bJXf5z53U{@g8p zy%K)tF7W9Lvp?GnM<8H676u?J*$F19!kJ zZ>P4qX|fuk;<=Y^1(Ku34yX~_Pg!cuCfqr5Y126>^OS^SBI2|2sU_Lzp)XXdsYrJH zL5Ixyc0SL-6+Lo4VYQQ5bW~cT4AaC8Kc2gB>ZAf8FTy}yD{fvb(3h<-BwFZzf0i_I-wQ_d>jVG|v!Z(kG?Key@zQ1xXbS}eiQ;qY z8gv?vtq>qrGLo2HNOyv9ta?>|tJy#-natJIygGH9J0{8X3ZF;7fdCzuGK(!PKB^`W zO2`8eUYR33FS)w{X@X$h`{whR8IxJu8R{8+LTm(DrH8beg|Vcxq1zZK=j52+V;gsR z8kB7reYpc0G?q=y6+;KpFWG4%onV|@BTI1bQ%!dlhtCWQbIWA~jUv+Qym4l0Kd~Lh zg##yK3r8J{JCDcZgm|01c(e*~1(&RrRZCygEt8XxA!f0<%nZs@3199dx#l64z0Be< z5Mz5g78IC!uzm26w1j8KBjnSds_NVa$B7Os`azbmRq=)|4uY|h-ab*JK>Gp2MAMtj zmi!s>ShkCI;|DV4>@97 zxdH0CUB&O@w^cTN3_NdZMqCQ*MlXPP!_k`_XeM$R?cFDAB5yLQ&4H}YaglMv?S;i;lKnlpUX&8Hb_Dw=ujG560C2b_#PUdRZbrlxKQ~RVb_X;eB zs}W!NTHb=lZc2H@zH`G_5~Y##2xpa8ZnYAI+FKi(h((l(OS6vdFCrU>NOz~%=8D^P z#R@bQOCIsuCBDIshr_J3ET(rgDy*gC3fms7dz7wiQT8}ae}p7$-EC%NQ73-kQHK;u zLk|U3BFm1pCR=z}F!sSUtHOHtosHnwxoC-D3G^xN=VZ*CM{J}R6Nx|xK?f0O{op&2 zzhYv`wZc_MM-)0aeNg%=`{ecY%^zcijD}{@9+?`e7};eJ;b;1(Y>^CWiT=k);u|P> zlKcq`%WkA-KUVZ^bB9teKq_mtBPAkE$R0G8D!uQk7WdpO%6vNBDd8BKDgcBDQ$b)k zSa{eucLOW2#s(?LyvHO>fCWG#T@%7aIc$!G$8jaB{jsS50sg-ORv7(nn;QR;*}o;m zf1^*fHP-WAyUxJNb*XY;7w9UboB2uTPlXh`$mU1K_<=M>7*7g;DIR zAV6b3z6ZgWU%sR=7BWjKUR04UK4G|;+X4%f?oa(1PZp%`OJfN#*c)y=;Pv-j-CEr- zUEa?&Z%NKXL^E(29tlIq$KX-|^Y`Zo;SwYoi2qFQ$wSoQy;S{@>{+xOP!CoV=HxwO z+>eqVKWHO#V8e&2Kf*zT)tl8^7e+1IhA!J5l`u+tj8BFgOyfkOwi?~?TW(c5doJL9 z5&#sql%?5(qfmpfr;HR%Zlv@@V)e_G%a!k@{Gqf zB+XqyxpXZ|qJsLCWN$MHyAk|MHwRs5%C7Y*la^2!lf8CGjdY8 z?cCLqpIJ;^qew}!T{2QwTB;|4fbB%WxjbR6tP@GD($a-)M=8ZI*k^8RR(^C&=)$~M zptzihIGXg+ZYDPHu&q(NVgO`TMyv=^fS0l*?*g-C5#U=_^$&iM(nuYN$-zrIm>h!e zw=(B4(pxviqsc5CZZdM(1c`&3X?3{FBV7JnK0chWvFv;+(Fb74Rs#zerorEMxJSLp z-bics(TZ&_{daa}Ui`jJjhCZEKZV5~w21TS^ulz31NV6^m0$6hv*kKFJik=VFw~UM z*sVY~1k+;3RjUQ{z=vRGbf%2T8dNLas*5wvq(dZYCYG<=d!mcvXm&9nvK$kO_pbP| zLa;!b5oKI!Y%}aV!ofw=U?L{Pa!(y{52)G?;yZPuw&n?BHV4fc(=yxAc5QjIN?Dzj z&eAl~a=ew(S(09-BkFg9*`WJv{}D}@AU+saZRO;#n zuu|k?b(djyI{4s7)#S<6iusXKHjrTKnHz>wrvdgL$220l-jH{9zeOE2zy#56+gKCy z5z|??W=~xiO$cI%V{`DQeQtFAM(Ad72w(kN{@pt=?Vhe6as7FELroJWx6{1lr2jFF z_jQglZ57U{ey7k-><>=&Ln>Ay%$WpbLsH{qU!4F?U02k%Yf>-jjF7U7DIMfP=V6b9 z#W~SU^CIIuDbGJSR*^5 zwTwjQj~#~lzKvs9{*;xFT^n(;OB8JKtOM;aqn^3UU@I>q{+zbH+*;50LJl?_byDVu zYakccjPA*%*q%0NO;8f@6uQT29q|=4tmdXleA&F}pgKvFS^LN_O;m~F_%ZWyZa-9V zks4cslCnki;l!8lrkbnlSBABXG-~~i9~LQ=!6!#ZtsKYfqa2H_N$uu$Ei)DqGNCx8 zMDA(YZ5p(a&uwSk4w1m59H-DRUjow9JmR)YW4iki)FZMfkruTPN#vTyvgx#4Tx1gv)Rnr|V8M0SsFf}$U0T1OhPb+~k ze2yL=N>1sM5V{_xtzP1xG0ju=b`qOgNsB_sJ%aj{%^Q00zR|uuTO_hVO<4*YNFlFh zTH7x~7Yoq2dJ((NC{jM?0CiQq)~)kKGQJR%$_FvY+;e-3kS z>Won1zb_(ORN-7>Jm5V!#q+&{BozRP$XT0_IUOs51rHQ|$qP_DwUR>dnZDv5sLn=& zvnhwzW^}Bm7v0gWlz4Y6!o$;DmCP#$kv@3>nlskOdeSu(ct=VqX8j#9`{T{}zYyv_ zLS{SBa-i4s`@Z~JrM*u_o!q%E2b{eUbbcpZ7McPu%64pUK7b0{?sX-XCa0F>7yHX(F7TL#>h0f0A9xE>hVCWQWFgMm0Xu>bt>)!d&i z)cytG!RaK2uH8t~$b1Jd{xxP*|1>UUd|CDQGdK)0ul@%$9a^k}L z7!;fn$;l2!q4-2(I=dbISDApK|>?tDv8Q6AA;ZfBy2B9VAz(U%rx6?GzPZ zGH1pqbQv};lLkA)Y1Z*ec0eMcD+pt(N7b>xfYMP4;uPtHv~rBxGrk4Zyv5P zO?=sRSbp(AsFaGFq+akOiV|=dFPVO`o|*Jn#T_JyUoK7KR6lWq#1YYyhk!+Z%dF3d z6gv8jj}~vcV|#V zGpTMGisaRF?Dtc#=!w0+Y`USO+*(j=nb=xJfs1CFf*?G>fB@?xltiNCmcFLDf&$h6 z-L9B5meUENfzAXXutb?=V#h=Wz_Dfh*x%V=Y(dNofi9C;P9zuz8W2 z*8LsFWSh5Xx#C@sH&tVra%*Q%@FCe&>5HXEZPfG&L`RG73^=M@3SEUEOx8fQad1mu-MxXmZ8<;r$+@Z zHj`u7O$J7;?nWxlr+?CU&Z)1KcfKGq^w*u-)mPZ>i#C_9slIjTWDg?O6btB>>zz`~ zo~7Ps8rIN2dw&En8RCqfH&C6lFex?&&8X8;bIUMbVnH^k)L4oK#QaJ@*hf zND8`w5_U2UIp>;18|NmWjg9tgKKm~8tXl|0VzXIcj}Nw2!P$M(rpxjOwP^OXp;0E6 zCM0*A@r%6Y;C~|1^$|EaO@{A||D`V5SgVvNGfEx$B3+-sofe}lgJ`f$aVWw3D&kdV zt=zIoP7}$!oGQsziMyQey~G1p{76}+T4k#Yvlvq>9X(KLdgC2OsTz572NmrLq~nUw zvb=V8F0);t;5CtJ5v7x$EF!K9)%;-+90P}r$3oXq!lZCt z_UDW-6jjijR^o2|JT40Yj+*+fl}do=ZEodlWqbNJ7UlQq#&4Rp+i}`<0sA)@<@Z_n zd}2^AP{7`PvIg2;Q89S{(EI8RMsz0#wq5<&ey=VAa^OunLzO@WyB(O^0D#`V56W%# zh5)(VvD4dfy?WQgX_3Qh{A)Q*(e?R!6ro(bdw8j3y+s0_f3-azhgWURq!m z4<|P(C!p0B&Rv2yc_nR=&YXN=bxp&JIXy1ng=KVtmR{;)rirPlgb0cS4*K@}#}5dM zg;l^4J3S+cKXARbO%>B^Dq*SzSG@DI0#1mq@~M*{h10+nvBq>VjYdY}1hRvnZ!9v< zSVNzZ>JFd2M9Fw+vzm4U>@url1d@feH)6MV2jTn1Se3NAxR&tCy88F5$&%y@p>8yU z9u6|@qPv4=k>$lNI6B>zklqv05nCby&XTg%3E~n$aMV!dYY6E1aL8NNLs=!*YFb*u zk#W0ZF-lZ6ZRB=C`&DjFI6ud?{A4l10Mt$Q?tOSE9mxVWf7ctwhY+CPajRU6){|mU zZk>F`@hd0}*4B&G87!wKB7MK&uiriRX1|G(UyOkW4S1U5=MCtK?30fZ zw-HhYiZEh!ulb$6a$-S{NKTwZKY11%c?i4AVCDH$Hb_UgYJfC&f#UgtsTrQ1c(2|{BF@=LJ9~L3 zI)-$XTBNR&3?SGdfq1#bH7`8oo+kp&V>wM5L=rha(+&smdnadfI+YA?@o;D`q4=7^ zGNy;$dLGd#U!j4)#wM$sB@ET@Hz^7e=8$p{Iw`!M@N!OhOp4nK9cqLikVw~?zI)R{ zT^hPrj1SnJsJ;G$T1k>+!c#!pb;OmMy`6(sIMP^3X*VBYa*xps{L~;-5`rkBn&&R( zJ?SUymdd;mXAeSr&Io<)|I&kQ1SS~}E$@w3EW5W$NYEgi z^Fb+7rRmK?=Ph$S;^h05yh=Ph3>(Yv??$SHL%Xmf=G*><0bygMYD5|cj6JdoGW08M zeBOnHPzM5cqN5atyDh?891UygI(pa%NkrHj=ECvDzVwg`4#h}pxS_FSzC3C&F2spr zcg57LHbhm)r{{{FzJKrl-^`bP+NhC5tqfS!tsnAU$gh5MD|Wp4wPw5GIIb1*%A2lJ zbA6+P*7b7Z{MG0j{OR-v-EZ^Sb4lMy^4PzeFH9J1dp=cMEIG4~RetgKT=b_4CCi$f z7lUUS%iTAI8usVuX;I}pe^BoobH7XdXyvqdFjlX<^(~?(aPx5Ro`Qk*Ck|lrnPc3= z`Z>+#d=Xn1=}ZN~jkF_=e|*cZy2Ptbzj^h->ykTHBR)JFN`zY2^uGSN`avx@X6B3j z4_PD+Yr@3r!nr+*i;L&y)Wq?L2lRiUS3|yj7lodPMnds@XF)hIEzRJLL5U6;TWfrx zMTPcHjS;K_2X)@5-^l*dYLuc=3PiEKE%u|buT1x}m+iEXi2j>XFEHp|<~LQXOT3~V zTDZ~8OLVpJ@z#bL)BSOau?7-8q@3pI3{!lslBx_|e0EaVi+@6ud=&TNW^$jO zl9tJ=q)0S49S1A4e%d1W2438wmTr1A^a;$$ry+8W1?1|>DbnJ5wjQyzdY{Yw>`qJ- zGeQt_E4d$Rq@Tl+5WE3WPfeSa6-t9*MG7%{s63t%S#kEN!x;xG_i~5O1kzv;5~m## zIhA9FD7{E6Lt=ued`Hrr6r(J%LYcbO?10Z4maX*^;taz*wU1G2H`+MQ7WGl^R4x6I zgKH=E#Xuf2VnEikdKn2||u&hnCq6N3LMtNm{(y*-chxAQX4+4@tcw-ejjj@pY3+?G%8s5B7QJ`2>e z0e)Hd@0vDnSk4Cy%fCBY04W8iX=mrw&_`svHpuP_h?N*J$VT3i2O zy*O9ikCF(#vo8kCZDe&yLp8-1t0yFd7a-Vj7xZ2ICO{VW=tbo@J?VG>xJ9#ZozZ*@ z+@jr+6V5^}<<(I^B@YX}!er{GM)t#Lay(++NH@`m!i#>qDt2>bN#QC+`Y2Fi^&u!f zHS3hu2;ctw5v)3nLu8Djz3JAZ;wOt;i>64!SCCYkJ8*+eR9NC$=_U zTC_elU&L1KXg2q8{pY?I5$e6>xKUCagYjehhx|4!dY^UhzLYTWHA5gf0+ z;h3=Sw@A4gcEkOo>tdXKq>|pZai?M$uBCKlh#QO;HBR#Dx=Cxp*i#@c0)($?x*v?E zz`xT1X^4d!%ks4L8BoVw*4~rv8>hd~2H_ZbBhBG^&XG4)%@jsJO<#CHz8z~ROTKth za}aF{JT`4iszsR%-SA8MNr-?C>*Np(fX*5!O( zfG{S`8qF4N@3TZ|6e^t%{ZQeo1#Wueaz;;s z4rB+LItKV(ewbKDynrn=u;I8}uX7F)nI`+{rT44Uk>%UTS@Beg=W9Z+j8>@dFQy~=Fh|%R(22M)Si9mU9EHiQxcuoyqwK^AMont z=tatcj)+audpzH(oDXbO?3=QoUj-spYejuAiz(S_cRoQ$1+v*sx-J_$yLV#m$Ms2Z z&)ZvHvp_y)-_Ct#zxB@G`&<1_DWYu`zNcp?J1j4KdWFE-j24_LT1&NiuUmf4n~!i| z>qqkEFPR1#hvfv$uD$B8ttZZAzrQs5Ekz66n*tR5}`0qmdclkrJ#FOfy_Nq^UcAe`PYxc$H z+tN{MuW5JWpFgXO*t0_qj^4+vrX>d86gvKYgajyONz^*HvHCCcMZzASJ z-M7vi%7O8O2IlIy;^F2MFqF+Jp~d~(8Zh2x%rz*$=Pz>g@SHG7NZ{(%ivWHNe}kN{mxWiPUx0BX z`|mBPzm$0o`HxwwKgD@_yYlxQ#~}ctvNK=#+eicYyltdU?I1?CCHl(Q;Kc2G_O?U= z<5<}-@xUGj@Z4RJ3@l>-jjHUbteon6M#Jx9HXzPB+m+i!y0#vGnf>JlvcD zg2J*2s*N3`6g}gr>iQ{5K$=Tzq7#6T%ja3TGQt=Rb~f;ruNz;XU^Y%JaeN>QJXUKb zcW~NCS|X(wB_$r2H|~v#qml%13cUS&^~d_4>_Lg+)Z;@t{WO(rm;wI zie4r5H5(L_568dj8wMnrS`@M82xdxo+OdM=uLbb zc`UTO5y^w;>Ie#RNc!>dAnO`ZyV;pm{Sb_@-FjssD{!1b$;oPk8IH#zns-s*;Sdvc zFcnlMXh0?X69@F9cPg3^=$$%;f zY3a1S!IR4z==;DN-?^8t%Je`Blu8(ZbQVm|>bN8X5tx)#xDaE1t`vr*M-e%hG*-og zQa6J6kwi50YkUad<$+(!Zk9lZYmU zBaikT7Rc5JFrUKddlVUE5M5X4*#S+n?D?R8n6!Om&2>{}(M-X`Vo{9aqU^mazzsW- z>L83Helnw^D!HW-X+(=?nHy`y$ zJxP#)B{89aFO8Y3BMqVQh2MfayWpP*Q#9~bbHD5D_b*zMr$vl`=muQcAR<@>d%t$8 z#eE_Eqc0(l`VcCxK~-sa;SHH*7xo9*cWVb##gUSDx&A$J-dcHo@+GE&}&0-Ow|3XBwNn6=@ zcJKt-cQrrX=!u{@@00y@V`pACYSB_h5J9ix-gBxC({4CwR@_tEw^0=can(qRSF>4| zO)`5WJ0J4_)i|GoiPNFwoiqIQ=0%j4=lyJ7&yc)mZkvU>)jVGVChPjdyn2nNPKT2G zk7<5>Pgk1!?#tX2srJ@t*N6Pky{n9twQRV{-6yHWz7`*D@Afso@7wd}=a;>6HY;0c zS0a27OZVnwfBIg^HQbb$-150FsVDRP)7PGR-0!}3Kiu0qa4|w`>$?W?3m?}7=HcY~ zG_!k->GVtK4Wcj|Y1z4&_ZMBHFJiVR) zfgUE=DcRa5Lg`0&*%G3rytI#~mnuL9Du+utl`mFy8@*bDiZSi%GxDT&y?7)jR?)zh z>K^6c9*}o0*)nTnGOrwi!#4R_PwId5 zto<*d**{v&|3BhQw$)hI7TA&2RX5*jNT*QfCKM9McE=}YTvg52v!Li1=9J_BT(e3G ztD5Vzwem4jbIOj3?SF>cQR=w=m_HzsT9cTUa# z-Rx=RRb`wI7ZkMmaqSa`l?{Rx->pnp%q*|ETW@ECi%Ar@4ErXt9+|;q*0xDPxEXat zKtC*cO~Pr!2&81t`loY>N0^5!F2h_)W@EWT=EFA3J7aovE@@cU!kP8u4?!?4cUxCu zH&p8G{nuBXEn;;<%~P;CafuWgBm%ZEdG{%Z1+B4J`K0M|cT}jZD!H$BR61wt6NNzpp(Fgy=NRk+x;99y20cka8=GcFd-~Lh!M~hNM>ZQl|D1Ufh^UiG@dRP$u8MQSStCE zESZv<^8^*X7h=0=RMF@HgcL5W*~VeCyoyM9B4|Gn$1VON2vl>KPDN?yiY*b!e5}S~ zQ4=_+s66l(?yX_9f-*ATG~dn566knRp=kh9E~%`Q=Qo-4aY`-b&O%ZAazk<{!k8rl zvJ7fpe>@o3R(>&iphP2VIT`wt)yntwa}P&rnbcPdqb(>`-Beu{@9q{weE&?ybgwYa z%5LV8J3DMZ*f_7IgXcKA+E8IonB3r`iIv&_zWm$qhc*{m&s=|oiw|hh=604JQLoLq zK4LNIs9vk7njiS2@fTGczkgT4=U(HIllc!)jedSEa^9=!Fy34n*3@>anNRZNlsByW8_)KJ7Yh zdP1%#EcQaUdM59@xBgyKabnnF+2(HB_aZB%P4SB+ErZaCqS?E8ABv4Xe)~Z6xu$oy z+cNUbT)OtP*0|(R?eo(Qe-sC=>p3~MNe?T3nEUceMES+m>eR`ZwaWANoPM1s)7ty< zJ9hUEiD|K}hqvxCMfcqMDZ=%O``hY%r@^;dY_(&D3jn0W4-Tk83VsJ zYp{Cht-SabTz|X!PvY5!H>d84R2U5F*ao%4jo(+eO-kO7a?=A%uTW)@`B_Pq87=8s zHM{CDV-M&e_F||D8yalyL2&K+hqx&x$h(Hic&*8?7Uc`Q}Dy7x0`Im~)uC}{1} zBnSL(^u4>cMko~CYdRq;!U7f_PB}*wj^IBgtsved+&)rxD}|wYYUCDxO0j@GgRDG=TWU!(e7oY)iKyGFSH2+XW1mcpFKpormmZ zmy88{D@&`lG!lAU)Zg$(H9dVQ-i{SVONjuNmS<`=|9hoJwBQsxL z^Ed1>o@+-~+t3Hiro*jsO8oz6kXU9u}A#Pkg%< zH6s50WBdtC)$RcA;mjbKCz0CtE)Oh}=C`@j?_ra#3ch@ra+wu+Tb>og%)4_MD&kI~ zD=hV=T&7ol^&k}n&4AeOeli_1tbKUJ1ltdS`HS9RlA!zQ(~0mm$5k=1 zS>SXx87!805X@J?#2C+^G)b}hRYt%vUqngW2BuRW3pmP_uVCwnw&wFlZoELoD2Rgt z`*OFolj)$rF2f|+Wv%&x^kkciJ6&uC9LdrkbpI;VIF;kG&ST9&x_Du*Ld?rmOrM+pK|ROSc)!DT=oFkdrvxgn#~mIQ2<)X{1? z)*NGREwTu&)Uj&QIcu7e416dM||pRib9mR4DK)A zkpBKE{<``Pv561&;9qSCMc))SBs;To?|xv0D%L1%bsy(HTz40_H$kNrTpYT3k^RzU zeGk#+lxnZgYdzHtu^Su>gE^5k?|M`-W&K;m_^tehvnLX6_^Cs$tPU?e-rZPXdTG+X zMfs3jU6i%)WI#(6_WJ3kyFcVUf4muBaFdy-e?{r3+g7N?-Avw1zlkjV$uI4G#w(ig zKTMsqZc=ku6rP9v_@VXiS%_%!y_1KI#6F*Bzo4B+>3Yg~A`-bjC_ggy_Dg>@(1Pb3OCU-6l%+`;xIDvB}%-tnuw9r@t0G__6ng-Mb%! zd${j4Pje>Mwkp-_75n+=ikpl2XSsz7i1C3>!_6~%d#|=_NuPUoL3#K(cVfu%iL1Vb z)0fge{Q4Lzw0QFeGs5NO=9AG69L`^b#m7z4V?UI#hyD`I+M3hQPYds)-P`{P^x3p= z`Ib-kE@3R#GForddi!2T5eC$PF6Ff4$rCLt9{B*@g)oFUr zJLbCfw4ZDEb7A*@@mvZa$wswN;u*iWkwR?OAwHbsGw)y-l(nS9FbK_K64icOFx;6E zHi`xX2#SqEc#n`>cAYit`5q2oJAb%S;6Viw_ul)8s8_MDG8rSS-l3H0i5yswk((Ys z5+WyO@ur;^{N_jT6o!>ACcB0E8wHbQUxLRy>bDp_z9r)kHZGu+t@q=UB*IhxA)CD0 zVgLk2q<;hFN%D|wD}2+NPfZ7gFfCi2*dzjVYwV>6Q^LYp7A5q)dl)s-gSA|OHc8@& z$yRlD{B)vyfW&R;8aGHS=TUT}D3%wSoh-6UX?cRzI=m0|YLmvRh-TM)q-}J@=$%{M zN=I~}ZA(VYOs<=2k2}Ymf`EkvHtl2XN#4&QCC8bpnL>l5jx!v*iI1*= zk{_lEPs5kEB3G}72G6j$gxg{-cwbAOkx4fs2u$OYcvM8D?91H`Q}j+eLJIJ9^BlRt zsV)K>88;ixn!@@NMs5QA?erS$vsT!Dw5b1k`woy!e%tq*rLI5E+}rgoAUM9mCEZ@? z0>Wq)fJa37b{;MAZ)a{GIG&nb0X(Av#vMSDmTk{k1FpRdctZzftpWMop3vL@lkLz= zo&c8p;m&yG@AC9cYJ3(ra05ir|Nh4PU%#RMCF1`)bN`2kxbpuc;-+TSW?G62RlV$z z(#%wnS(O>(dhLxH^z`3au1vpcsGV0}*IBzlem4Y8tZy(DKTv zy4Tkm{?zjEEIno9g3PUji@BnnmwPCIs12nz+82+!Z||mCJEV zH>FFZl3#Ga+U5EoW3E#r21iv@VS)I^Wh&oLkEZ08UmJ19FvD8bOAq7-K~ENTFhAUY z3F!MVnL4W>tg5Y`vhC}3zEvpOf)pfT0D>VVF~Ym!_~l;>jRzfLiRI!I;B~O3b|T+j zllYn`)sP)P=74HPJOlI7sC15Q@WIz?yf_rm1w!^Sij4kNH>liL3WX6&r)W?(us{ql z2PdqP*!d2p4R9$&5=fACP9O}`;_sJOk>2f@ElWS)>ydOA<`;P~mAEQ6ug=+NT=gqG@M!+>u}$LkPqkL+H<@ z36UT$or~_Y+-&P2W7=2;hEPRqjZzPDf^9tvv~_WuVjw~| zJhRCW!6lKW#S7g^$L!AU$eNJmRA^nQN{~?p9c1-*)$56GThzr_-1{YG>@LnZ1p>)B z94>FbtG-ydq3tl04DK`qMcim|i;rk}@k^IxUkvHY(bH{Cn&{1220#XKb)VEu0Ia!uU-5Kv0ond!%i&G5$(lt$Vi~vZ_n(jMJx{`3aH00fQIWFGdW-71f*2 z_@6gMMcxqC{B8IDY;1^k)w?l)v;mG9|Ee!D}i&!biLP+>7&^lkr-)uqLl!k@I)cx&}VaKhS(N{~-I! z`>Hp_ukLp(6t&#Foo~?C@cm8YnQD3N^ww9U_v>$@-g##{b4~AlZuGAo+1a56o7pAY zI?cd={`IZeXM~r>r-!9NZ>{e?bT4rxzxjIG`}>Ddy0@0@Y976?hIi>~i9M-zwQcR# zkDqOyM;_ugH#4njHSun8 zeUQ)Hk`$1#^Q*g%d2*`4BAJA^_#tAPub6dmm%TA;fzw*Ct$s?DIqVUGp7dVaKK`cV% za#zSjHGpS*YBtHKnm&Xa@znNDqWFzOH_dUNl9){Kz)rSYL`k}zSMAZVfT)}$5;sgu znH&I-$W$K|&mOQg>MT=(qVFqQ3Qvk$!Lm)@_G&%zQnvA6%^y{OL%WLO@}|hyPVVJ~ z^I0ikbJ%M~TLxuvRwE9~bt{(RlGVO?Ro$Yvu^E8qS_HmS3jup|(?zR#yIxzu7sdr; zN_1ZPL74D3l`$PY;5rd*3OdUhg3W{3B!DvaVT{<6N5Y+$5wbmV-E0@S-3Fa1dx0QUb0KrYln{wrw361$4m-mxj_hr)09$`8q)}E*puv0&Kc|ccBtl$Jp{V!W}*Q zp9W1bb}bBDmTl=i;N>xduBl7Yye4#@d9nn)Hy?gDn;A>7*N{yl_HhnJJw15m(;;X5 zXeAk7-E%5Xa<8b#|3>fu*S-xR|Kn~Rvb_KXkVudJey`uYn{U6@|DGSYu>DvMxOO0Y z4usmG;}|#giWv{Nfo&iB65xA;nmsbE(@*0XIkZS{4 zVt-P}TLCJ0Mdw}}4MnV|AQu`9N1(V^Ir)Ueurh?MPJm7hB-^HMH10?~KqsHbGEkKf zBsB|bfPD%u8znAT>#SO zI0CqveLw8Zc|95VSQK^#TyE^V11_hU)tSX{u&l(2SggOI!T7D1#7fS7i;Nm-j`tIS z^ESa;`*d_9D+10E7sn@$B}MV1O|)&Y+Ef8P9!Q^`m5i+<2uWfSUJjiD!-br}ISxy^ zM@w0nXN{X|&dv~ocstkf6`DX%eDP}1-@xu{s4_}Y3?#$!inB(<6j^{y+XFl_D+LgXr z&jI9(ox1rU6)IDv^XPl<9;>8+^ifw?D4pYCf(R8$0K+&vMaYKX(l1+fnC4wvhc{iT zD>DMYgoxqPA6V)*O@<>uYCoIGhf*%1Ll9|q%s?FT#pyjK9_!Bc`7iWqzk+v1-C)CZ z-)Iyd#&m*6uuSAIo2$F*>!d(iy{t*R@PM{4ghPV<_?+~h*)U!&7SH$cO zpXdzOMKKyA#ntRH&dpn60$ND7AB{v}!tBOCGAsSB#**_r4n1g-Fe*CJI zR6CH^+9tDkrEQ?DkxueDNhZcGv#wn-F-VT>9w`Jv!D0UXo7sU8qz%#d3Oix=uDRCIy0aUQkL&%fA@F((`Uq+X4YW zJi4EeH&iKK(#Aj?#UnCIPePXwph}$YPENCB9_o=`C=iv7*kiLGuYAyJSJ0r0A{&gd zJSAS;Y4jl9WXN*8-K2-|V5K?CLQ3*x-+|J+iLo+rm}WWE-R<*pffJ9)E~cfcu0ODR zasP9zZ^Dmr>H44If+sWc{aw?2-d=RdTw=HlN+MrmN!4c>elIB4tbkoRE^WQwS7m2V!{_fOG}?l2K~MHtekgd}eD_zL=&tXBaDw4|-ph4+SU>VB zkYETkOhw;xoNGf%vh~{0ttY!-XIXXgXHpsH9+OvyTti;NlaXH!?%tXWY7?@4aPn&H zR5!D!Q~B(*=<^pD+?DQnyGxgC=rbqNbN@}&j1LDp}jLRu^ zbw+d^I(s-%h~I2c`Q(8r8OmDc-sOcliR5MCx!_V5&l4tGX`Pui%aXlw{yvq*eT)A9 ztxJG&UtIk#J|mxLpGWm+%$e#zmO97EDb8Z;YEEV3I56b=kb8|Vl6S~LMUyNh3jBrl6?B;7`@{C- zcHW3NP`1*E9*8pwesSGrP;k=V&JtI6+;t({PKxHWvyU&L?T#9agN@#1WjS+zSvq-C z^p?Z0XffOb|1AQ;?kvf*gRo*;(@snZ^#r|sg4YkkF`W;^$xeabZElYv-SP#{T>&{l zs?P<9ONe$*kc`F@*y35YOvNk=5#KYD9PBe{#;}I#rvlm^5oy+8%-P|#p`iNKc4B&P+I02QMof3(tKksS<~m3QmDTwcr2WeB;$nhmK5jT>NKi;nQb}#EW>=MkfeBC# zpSA>2bCk%KM13Pb_l-1VCHas5&tF!GFr&IZUuJb7Alzpg1U)oEB^sPSM zgEJ8k&u_c%Qt|4(4McmBP@QJEueRyfPNwAiG?;$8BQ=7*YO3o>I+hfQNUQY#8g>Wx zD>v^)!ch-6WNJB;=z-IgEbU!}5dBZi*z$vKfku1h@|*7nGF7_0WzjwtE%Mkz@4Sx) zNE{&vV$&fIlmsnDjsDIT1wDK`yQ~K(I5Hch?z375Pv*X3#HB-<>f#jGajy_~`T;fvc+{*v(chd$A+|@63wW;?kMdISNFnMKZxy z!G33c1u4(jG+vqcvW&M?G$Oc6v8 zh_UQbs=|?i2^CbC-Z(x!C*PS9r{dB1Z_#JZ&9S+w9hh7f&ACP@$^r)nolI#Y0em$( zEPkYvNMByY?FGs_AkqE46Qxymm6dqK#&rdex-Ro48rm(Kx;elw4sg@pw+Y{-;ZS~J zvouct_okp<)d}A)ZXoX-?m2uV+Vu#+Kv>Y744};R7aW65nTZmrZ~iuw{{W%8T382iD~~iH5>;G~CZt zPapO_e}iT-`swv>`cH*%1!xifE7~rXl@}>3B2_cj+WpmL(+&=4%{6ExYt7%5y6|Pb zkb84}VcSXxMI{MP660t46N^wcEDr?~}KhY$NM z$d=IrGqU9x=XRZdm7BLcinbJ9-XD1{t; zTpj`Z_u+$_jgMOC*HUSh-g6WQtGqwIw^@au|1~^};hhMr{FU=~` zT})f~i9ed&f71 z2=mrHyf2^NIPNE9l6j2+kn`}Y_- zkfbAP5;gSow8;84l)UO1Aj#f9IS7n_H26H}g1doox zNqesON}NUC*G@GPzJEh1gk;sRu%^9T&YY0}M*6C;`oM5-U_ z3iTcC$C?LhT_I~Ac>8%9LjC}JGokKH3fhEPvx`Zt-OjU@Ttp%$yxDJTlMJWS%k(E=i%5Lo#HY^gdO=5tL&OGG>QsfYy6E(c5(S9(>? z5$;`f!*nkM#sqco8rGGmZ>&=38bIi&;#cQP#t^;Gg;Nta^_x{=wEKhOFWj}gsg^Q53kpI%!N8td}AVMQCVzcniWYdzeq&k{*gCSGeNpRvI?+I6aST~S}yZRC>hHxak>#Q}8(+8VDK& z#zb^I=epw0!y`(2Y={oScjGnxSo+i|wjvvWP@7~wr8x%OUwzij`GJVU$G&pHiMJ%4 z%YHp}LjG*fiDQ2bG^iGQz2ceBfBt0n))lWQ^{4R0X&DMRzcr)?tjqT43=?6xCtR?yEzPwp~p{4PsP3xpbcw;^r>3+GjBx8L>f!!Zl8xbP? zdb#L9R>4Sup0LO3MB($b9A4$is94)~k0L=gT4+8#R>;uB6G4@4@a4 z(e)Lt;tX%SqYwFS<-v5d`Nm5M0`z;uH3{)Qn~DFG`|2$R~VhB^-!Xy zVNra>staz3Wfb;!$B9JyS(b=Hr1$nF|xg9?@Py9Agt z>sG&JwRat_c%LaEcaM=JZaMTQRRoKx0&5!?gA0ly>w-#A%RtT@yea=l6<9G#Ags6> z?zz?bp@{<-c;+D%*zS@t=sa+Xm0)`40wJp>uvB+Nar28J)Lg|)IcY5dbxv>iVqjN7 zAW0^y)v?VcG+1)M8&0`IWu6_(P)$HCo1Vp>N*T5pIYKW7bB~?v&K+jUHe3xjng5L$|6Mf$yz_PyJmKoLcLo-_ zcR;9scP^`F0fsw&$J)1ty8l`21pG4lAwX*Z{POmtd~ln5`uj}&d}4c|`~Rmj|DA99 z@$K7}U%!5V{%8LHO08+JO+Zxxz-pSB#>R>NfYvGNx3bw1@MkaM8W;<2z z0sw=`j8RLx4RF<}IxPT|78c||p}Ej-3|df3QbrN4ZQPXykkx>T`IH$T)8mwwM1X`k zk(aKu2gI{OR)atgoPwe_72Ow(wojEO_sAG|3%X@SQu&W1k--A3{W(bqO0%zC_8kH? zM)?Rg6rY|tc8k#*yRjC0D!N@lH(DjI(;CZ{AQIFJ*wNC*N#NPzqOQujQZf`BKg3Q{ zaV7<8GEsbic2lyUTvRfy}^S4 z36qmm*aXgdov{Ii60jTIgB4aM3UBEJ(m74sWA65F3Cz5#4lD>K(j&l7c&q%eR60-r zhlaj(IxS%(jAZ_X=WqiXeP8Otg zPAb&#Qj9ZRcRT=sz^wI(2joch8t*CMXiDZykj_04CCHNtK@5HCB_QN{nr-)_*Nqj& zXvqn?X|d@v@X=6BDk;7i*2ksP)T#J3QLvNF;7G$!Nn3cWjSy+&vXEA6+Qc{&0!fRb z4_IYT11&Na4^ZZEjh$IJkWQaK!IWITNNlY8kPgG#g#s#&zsF)^__*~hRr0GEq>8}& zoHWY$FJ`xNUrn^Pg>t&^r4ozx&d+<6CN?*M!N(vp*ZtlIV*|U5Ya{g5MYUf}P7H>XpA4uEs!R+IX^ff#l5Qna)E;v)TJGY&$JFC?( z|DJ40KjZc;Bxdr4$gAPNMy;uL0`T$S$=OF;;e-V|&)>`W-N+x#6;qLh_?+1$=(kV4#=RTcD(n}VaO|&Qyn7iy0&Nm#e|I(^c|WizpM zJr8Ag8rN=vzH_VlX!?)OV+9r6I78W8Kenc0gf3tDtSjXA;^T14Rp&1QMvrQ=W^dg) zurdEJIsDPX?#s6WW4PW-;1$>w-&W6kza87xm80-X=>)xBBXF-Q;nz z_w&kU7Z#&0r@#66Viqa6(M9KVzH(IqDtmciO57ko2A1WmB=@2$8b0>KHhC>lZKB~a zo{L%<=+H^4lar??mdbIB89zL39Pdv`oV$BH_eS0QU5+XxT84}5kLeBk@gD~*3`AsI zCucbg6-l^Iyp)u;7dh0eOrGyX=imx$3LZh34H?jhn4&R!_5>TF@)I%weeTeI`NJ1Es!O^ilZ=8~$dz zN2d2<>0`eVffK=HpDG+JBRcp96Lt)YHz6|fl^k~LB-QGLv{m4YZQ|pwhfbUkP!WKf zFf(D|`fR#~)5#N#y^fRg4>T14AS^aMCTM5Ep;Kyh$n}*`1EnsUnTy?#qHzx0v606T zAh6`1@*SM%wmo(Qexv_B zSo=_{{r;Kv01np2Tta`R%l~68b9*g29vI*HYbrY;`!ZvvQMO}`0Z`iSRgdj!bzUvN zUjew|C1p3aL1|U(zq4t-rMI;mh?WE17+Ccf{OyhV2c7_ww7<*U+uI&vPp6(w0P(bc z1(5$X#_yMx7T&%4YcP9dW&O|9jn%bJtLxv^{(Qf-`uU%1+W%Sc{-2vo14LKH+RDmI zN8QW{;IEjQCmNd@8Cmc2%Cd|M_Uqtv$eOxF=GNr=>f8(xxq)l}*yHOAYx5lhi+bW+ zBi*W+9d@QCfgDeq10$tUX)0dG9j1c+{h)eeAVBF`e-P6f+5(*d3XG@NpifAT|@BwemhwS?a^s`U=MjT zUf_an)(L=iRZIhi;V8zegQwr*JNa%Otbt&f<;{ofXKN!bxqg%)P-SAAkEAniaFsxh z;kt8^H$?60%wIha0%7|OiV>m&Jrlld6qjb=+-vz4m~)lOKz}qB*q9$m|bik zmj#!Pw3wE@R%OVZ9Ds?(Zqz1yDnA-0azg*k?S@1chF^{VxMDC2LjQ%X?zC5yGnA8d z4XnAb;rHl}!T|=;4E=|W%P=jC0gK^!0uJ$zBtR0}%CXvsve(N?OhTP-S-aHr*60ib zTBT7Es(_J|3N*(wS!0A{Vh@FI+uKpld&Ab);5tb>L|yHUo26|gXkJ=LIzAW4qhv{7 zAH5(3f}E*sj4|QsmB7g|1}3UJwvha+ToDMUdgl2aqcQT)AWh{w9v&QlAO^)PuDy~Y z&zA8pj1-IK@?%C=U{9V_P#Ny1*afdp$7ZErK3te%WadiVGw1YB;pHA~xqe4QLkK9&4i+RIG zA&Fixsy2op$KG>WGs@~&DTitsZjN)#(R14mR4jL7j^h2O<%aS39Y4fh)KP^7C;U6# zSQA#LO)i0_%r0mQR%{_@ml_A$mz+B4?vWe`lWeJ@--#`14os*1r_Fdr>PvfmAYQxo zqKO9<*%*P7dyevh^S*_4Qmk3_O^+>_hZ_vJ5e(nsWavTTJG*&OyHq#Lj=$sOU-_EW z+dpvq+OyD5tR38%`CeqAHhZeh@DERxmZ{(2coGyQ(a458Rsmpn);))xkDTTH^yRs= z4(HkF%pxk0b9W}4#H}%$x;l_()2=a}cYV`g}(b0h!LN>9Xxk~cn!!J{j8aW77MTKf9*MEE5$t`i5gCL#K} zH}BrM_VZHTr6BH+Q|snh5UC|~Uxv%i4f8}h;^|X&HeW#!zTUa%X?zBfc!lGoE1Oq+ z*xkXYXv-vq_@VqXGp`%_iaJv*s#STupho)TKv}o>Qv}fiYQwuLi)e{O#4IaI+l05G zKQx_=MIC0K<_?uors!t8lU5-r6(&WPI?JR*B3_RvFDGmfYhFil&0T}4w>L%_qzN{L zEEd1EV!#gukVx{K2Y80O6EZYi$v*I{Bb#UWvWT;+={{(-ccS z_w2=SaubL57O^*gqOgyD*APq^nGNbv3U3r6%>`sO7N&9AOh-C#nORv9IDkK#XV9sh z-87it7mm$!LqnyJ(-G)ID3+$TFBxcW^E&Y*yzS_c*E}3mJ;RI$tbR`qom0)~h#?Nd#N%C;`mm?g{Is&bT5`AxQk8y>KvfXH2#Bqftl1tqTw zh2hDz$$h>9d{cpx*d7|Z0{d9?ms^GwXKAR2kAl*#3k4F3Sk7bz6Fc$FNYU1@qJ-H_ z(uIC%&?8iKfi47y96*CpjV1MC!MxFQbWqJ4et(t{+Hjykgrggd4K9;?9@KSsmQ}tN z6~%2eu*B_*xQUGTm*n_=5@>IV_22tjJH_w6vt$<5X>sg$iOg29Y8SE)zW3gs3+b!plw!KYG!Jbq1~;m z34NDL7vwDx@-!(BWtmWhjY>mdKPc?|}s;IH#mwZ9Wf=)TbqhPx)b#NV6vlW7OUCKvZ_c(*!|c7%Bp}FUg4*>UKG+5(X4@hbhfU!Xg0D;P~PeE+|39eFn%xZ+4?fBzJB`L z``H0aOlME4m08Fq_K58JYk%Y=PKg>Umru6@AQkN;K?TCcyL}MTSdxBg8iVAn`f3f6>#?`yty;5XVpu=$@uW%J z@;_*njZ;Jzq)b~J+7ZWZ$w-HNq%k?IbK_8oCTqe$oWZS>Ff-H#Zo?A7h8RO$!vo6A zN6p*?R`U()K2ORT$M_qx=E!dCKM;n0l43yALWZSK%wO`Fsa0q52+LKBgXLpq1d~P@ zpW0_T&A$c1+H~nJ3V`S;}AI=uDm?FbJqXd**Iy+lCk`u=5gPp z&L%CZwUe|%$9JhUTyeqCx$70dLDsziyWy zA93_EZ}n`{u2pEy`W)Hf@X**L&?>OEzcbKYiPhbS$4xfHX{-S2ATo;rhierULX2#so{$2Lt* z9sx-VexVKlUY(I6d}IyZC>u~%PaNBYUPwjkV|QrCg!d&6XDa z6fUWHcjwyWp<_qZN3{t@JpIW_5C7=#&20FYRUc6*%KD!9m7Ul>Z#j@L)xmNVo$--B zK1-M~4t-8+KTCDH^o|BP4<`)V8D_}z@J{O?I*}g&qNl}a=X>NT%^U+9wD~#03^s}$ ze=_w}hPh;)!lH4boU!Nlk^Zw|&|TiD2X#%%(*;|EUm&;*lg1;|%$Q}e*4}Ym68CvF zOPEqsX?CubaNbD-k52C)OJfQ|0HhJe6P~J1nQ@nAoVn_mREBT|$I302nn;t%G>8{V z$73VqDHzW!l}N#O@sZgF-@SRv^1emkEhi*xt>@w9jZ9vh5orI)A)UIxxl2w$Vp3~_ zy~M+iy}#7s`iE;1+bz8+*yVY)i>7-czrhK?^vGjA=6T~|uD$_l5A8gf`LP!Lsz~>K zKk;D^gQ*H7jsDEEZy+IMC2m}Vr?tuaV1@zPR+-j>AhHGUrmRHi-F8EMLm7LFBM!;O zQ6t3@SM-d(C7`YQQ>~s|&qC$F4q=g$rdcef?qc*=TAFay_#u(+-%W|v77zGLZEH2m zR=hY;bbRdUn&Tsr1V>8&D~+7=4@E!PLlXR%Z%g%nZw8ad?0aj$C0YcfCiyeTcaoMB z-tal5@AnOTay^WJ(DaAd=3xE}WBRv^-e$A>eYiffGYRrrq5(XM%T7=GA1A$oF$EZD z+p8b|n*}Io(<5_%xOdzRCM_wo3}BdMX4hopZa*{w7*keBGjP5Jz$^eJt+DCu4kN7- z*vH(-dT(E_{}SroV3tSYJ1d!gRke2*rVIa~)&FJI`@{dOjsD+|^#+9c9~-UlpKWx0 zLE#l^z&e+ZEy^n@EC0668i~zDy5yola=MY>O+#I_?oA`2t{UE;H4pI3#U)iE<$yk$ z1NsbrO9ygFGCF78&g|plM)Ql}l3r)AN=M7dBqQypL<6Q(eUf?0YVc1P^Hd3L;H0gH zVzWrGVwsuhLBhO3=~yFS%}!VMUA$7}!u^Z$Jd}Ed;)660n^1fZ1QoV)0NaW+ofyuf z*G?cF@c8Q_N~n|SX8SYA5uPB{RQX{T#zdzpicg_B@wu`lAkHTRD2@jx78b&}P!LC9 zjVcJt)S!^INE{>TH*JqwnuksDU%a6*DhA@Ol0*fOkj~`Lr42s&oCZ(5FXxuui7at5 znMjf0;Vyyn`>sd%()^b8`B-f!e>aWL-RBCIl{uyH(@N0gPLX1*Sv!OcdETJUUd(jh z=a;wkJEmdneCrQ4bF!+yQw9SHh0w2^#mnxO&lvIl^K4J+Vc(~TS*^#iWX)pWToCWe z-=>(~c9))#lD+D9HL z!!HjnZ^73-OM4wudEDEDi(eGK8?2byNj1d8u_aR5z1de3GY%jZD(EFEO??^aEBh6{sL*kiZ~8 zPT@Ybd^TTs2p+twR_8KgI+gB zp6>7jj%D_;psWE=y^cK;_ z%)l4T=W#9qH!V~5p>(&0R)n%rQim`1=G{z!#-LzXCG)DC?*}-A0Z?6-i~t`@@apOGPcIPb6W4xO>I^0_n9!AvLB!G@jtY3 zAqKgZzGUwsRA)myOFy;b@1u4+L!Ek4?}k>r-NQx=$G`oWjz<}2zd5(NNTJfLo2hb>S;@Gi%aDO_&%W(hhRly`0N3gn-*9A&(h+VywgG3_KtotZ!1y>65TW;XYy z(m_zz6m1amHkq4e*Nrd`^owqq?OgBUTw|VntyBn{7X%{OPv@WN7=BBDt#7>_`GXQ3 z_&DbpvcA0O+ArKxMr8kdXUAnqtNE%*^4IKlyA#j%e9ZbOf7HOzu0H5IH&%DGjD6a;oqj>8~Yy%N^p)a6_a}(1q?P5s~zOc#c##t@cU8sAG6k1DIo%nVzP`484-ceu)dRU~^4?GQb&^GZJ3f@Amq_>6^LadKiU0bp-3Fsu0%>xyI+hA? z2kmFXE?K%O4BaS@P?1NJ_A#xK>1p;5<1CX=A|{=N#LC5pbObp4@S|Ar4)wzO5)(pm z1GqyiXW(gk2SpPoj}C=;sT;*6XniH6gsu_bBYxJv@d(vJe*!O7H1#*(<4>K6-aC7v zJSz4rRFZXAuNF_zpyT6HgFTDpLhk;0G5BIAMvX0iaFQX%!#+&xvkcid^ z2V3&Jj};@~mX8{i*f=(lI5+=-tNeBT<_C`7wEsANdz1gck8kI-&jQh~zu_u>G1X4) zgtdW=){briVeRcTubl_y-@45L*rwZ5)2od|#m%K;$Yi3XhNii>hKhEYBnC#@W&9#z=4jaeXiyIM09( z8 zyN`=sM>n`CfpPc?R>M z&?2NgHZq!qusnS%HoHRYB~i529umhV+uGQmo@_-*#GW~V48}KSQ8=X6&j(jXMjk`Z zQgxf?T=LdAj4+EQjx>X&bl;z<0th77S5}zCf_)&eq`!W?`S#P($0i_7<7pxTJQpk$ zf;kx{)f4ckX0zvm^KCl}22KByO9tNfiWKhQX3(N=@#`v|dL#mn?A;*lV9X$@f;{FD zAe{zho!b`z>Wl!#(snD8P+xgtWR7T0$7bH3MubhNgSsv~{ZMJal$LtzmdF3^zj zF51P@Sx<@*UnF57B5oqr2q$v=`UbZM77!&_J`GF!8%_rP$yI`t9vj`?kK90PoGVj(s=va(QPsF9u%E7mxp4gJ}-5GyyF?FhnP z^SGFAV=pMCN@7`s@P{a^p`wfd#YoNp%_(n>xvAl$GS&S7OPA)zp*4v_Cd;|>!l}*W zGLmzy7&y{t-Ag_CwM7Zi)G4)`KAWq&Qr0ftODHJ6*}hUHH|E6-$@(GARr#cAli)9E zrz@-5aBi17MrtgZ-kK_&aiuM+f<^F`rk1EGPIetEK?!@D+l9*)KiqIv&X-E?5@^M* z>U8p>ut;B-UN%>0)?576RpNNAsLOl)(v|z3L-fuDuGhD@`U1TOa&8hpPIka66y$wW zIGAkRjlUk$H4uD&Ce*EalEUZ>w!%imwRMBAfJu@pXaE(8(f?|C)_3DI*TW-6t_57O~_|tBjsf}yuI?!-Pe7mwM$x++;l^Sqgg{tTs(wfC9%Ke6B#h9Oti)g|{YMMl=jUxo@+c$7cv>17XA zDok~#o(IdBwZUX$`o8_?p2FV;a@8`VqVN$tidXNhe{Cy6!2*7Lf1^zj)n}wp^{bR< z&q#`0eQ8QQDq~oF#mI72Q|e(|Z(h#0G~?7WnDeL3q~XFtbS@piN3wGx_UfGN@n1@a zjsl*>lb?0(;hEj{#Me#H`Kk1&Ni6>|A4Nz%t1I<~H>b5a34OOuRVLe)0aBJtEc1?( z!Mci=J(52=A7PARP&0?+r zjgg$Lkge42aSs5j8Yzj2;MWu7QP6Q!B-_tth0bEoUTv8xqOSa-SPmtgx!$9jwt~jPGIf;0&{oN4;z<4M=_Oo4*33DF9Q~od3JFs zKkCyX7_|Qp@P$XJFpNX`lyvM#GaSMz4j173?cnL~$kdGsA{aMJ^&naG9Aq$I)Zp^FviLCbdFTq zh3u;GB9({V0+%wc^F?v2 zE%E(@AOEXK^`De^XTA$ykN-B+K#l5mXnVUo?fqA1+dp8tJq;*xP{=lQ9GLH-N9Jsw zzT<$q_x8hddS+#2c6CrtuO2vZvyy?y)i z67-1r7Te04ZINe8BoylF6IcWTB9UTYnNyPkU`$Q&sw}VHxOtsnW0*{#0^)2~Ufazq zG`iZ?KQM5mqo=04F|XyOg$YsDhRlw$iPob~(jRA2(jG1@J*=pnjjX@cG-grI9*R^_o3@MST(kDkJ&h)#dE5-728Ev79c$SgaY`A!}Vvi~wv6 z3sYP3D%CIxZ3E~_sNt(1VGy%ek5J`vBAr*9Afub8>b`JQeeISDOaZ;GNblIMY8nDz zP=!;!BwV(5RbS`X8yEqtIb0V1ER}E>&ZL$Q;sR@?5DYGO1hx*5Sy64iiYH#?%mpP8 zIJ??QkV!7^1)ODT&B;npnxiAN75%-EU&TO&fjbetUem0L9w`kFaF9uj9(y51y38SQ zQBm)GaP2($Cl3{Z8(GEIx9u@xdvIo&Y$9*1g?@VCKiZWnU6 zGh)eGLPuJ-&YX^jjk&Y2Z(s0nVKC?0=%LxieN*#i)zKyUUi)5bob|-hwuZNdBT=VcSRkugj*WIMjC;OV9cp

Z9BL1Qr!?%amltcSk3!$R+ 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

fc#!Y8a|l`Sp)EmTqX~v?ena$;L&$hx>4@#t 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�%D2FCCoYc%}NM}C`|EYV*#r&jjUahpQ8!G3E6 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�vg-X&>!dT=bo=m04gs+FAW^V$`c? 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

0{+4Vr{-ln0 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

0-Q23~}*r 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

oYQ$hfiST0L?=9_F_dYf0?r9WUq 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

Vd2iEmz@{_EodV}98ENI96%O95bMqSu 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≈f)_q@7A5E=-YQdI?6UB^hYEdoQfWK^a9+8 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

%BeU(758_?-R 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 (kv>o68;(vQuY?dM&}DX)uFmw3T% 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%0A&O<$wZtWj}AqfDgnuKIR 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�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 DZ#n8f literal 144101 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

`q!O^*>kuBiU0@Fqr=6vE6}#5%;;cs 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%0ADmWA6Ivr=azCYH@LQ1yauH z=r-i=Cz#tVaWQ3AbPF=qYl!;CUyg7HvM={s8c1}sn0e=f;u5-=u1|89Lubzz1|>*U z=%qY#EiZVVAh51I9BtxIWsUzUs9Gm+vQWyz=A@^ZTs9ak_hKCA)m zFOe0CW$!t~3-e!o>B*~n$vYWaGs2~oXE)(Szq^KRGkIrUI;*PJQQtPCrq`rs@=dfE zQFDDFwxrW&zRCJY=&Czit?ISr2DYY;F`i!A1q4I5WlApnHSUUb|Jmz)$!x-prIRLx zb_}mOvw7;?SJzR$+9}E|n~}-HnJ$CL^#a7zI>nCb-&tLv@ci8S0*G2<5UgGAYZDa&aowWK* zXo}RmdU_(PE@BF$0dqQ3N?IYg+ud_#E_t&n=TqQvO-;&kwx37Jv*2`@?dC$d(up0T z827c)C}%&XorT9qPwE$we2lH8iyJ$krH|x#F+10*>C=>Q->CF>vy>iYhV5Ogd!@!d zSL;6_2W+|D_$_k4+n&Xr{N3K$-k&J-Ua1kt-+57MFZT$)si}K&20%6g5Viu~SpCyf z2W$oEvHE9q>?t*vQ3nhe0K<{g`QLqE>**cd^N6W|yRp4zyuZR2)WXZVKP|?O>z_XX zD+W|+_&+-80CX>NPvi{dB0IeYFO^J*cQ!7>P87R6KhbF`#MFs%0A^ch!5hw2ioC3n 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 diff --git a/src/plugins/loadingIndicator/assets/RingLoader.gif b/src/plugins/loadingIndicator/assets/RingLoader.gif index 527721b05c33d1fa5b5e5c0b5007d2bf9599ec13..71fffb6622e6d49adf605de5eae99d5243999062 100644 GIT binary patch literal 135969 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%0D-pFO7JkltfL*$P6b$W^4CZ{m2sf}{oU5@_(|#LZ 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

$eq>=9?bT( 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 LnDlZgHWL1S6^sk! literal 87285 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 J&{t{n{{d}_p{M`= diff --git a/src/plugins/loadingIndicator/assets/RollerLoader.gif b/src/plugins/loadingIndicator/assets/RollerLoader.gif index 0fde19a3e8e87d8ef14caf21f8147801790ee082..4bbe376cad63f61b9e28d224a8db4647f8c8bfe4 100644 GIT binary patch literal 103034 zcma&OcU05qzCD~y=%IH=Lg>X%1w{>^1*C&C0clbcA@rgmy#!Q1K&k=)g7hNNRC-5> z2q>a7v7rK@qT`J3H;H;Z_x;^-4zosGv-}5Uuf0FJJTWlT*U)s$040FJKp@NyW>Y0sJlx{0pM~wM4-~H$(~L;yO1a^(&rB;mvAPt!g!F z>JHd8968>k?bM{}(qeS7)y%ui(zo3qu*)U1?=9c%Ug;QEyFdJ5;@QNb zM|1P@3lE<@oL^j60RA+;0Q~m!>0;mb#^B`Zp{bW6)32xIHy=KJ_w3oq!qSI@XIo>d zV>9bBb1xPa*A}0=SzOv!dG>nw>B`pf(){xCXUor5mY1KsS)2Rt`sv>vCU;&=@4lVg z-CX?k{^8#Hg@3jleBYk^Yx~Li`r3<)&9%+-jo0s9Z@hT@^6i_~8=IS(Ya2ToZ?<2) z|N8pn_U5~t_wT>H*jj(N_2%8qyO-Plyx-b=_woDAyY;R2n_KU9x8Co4+S=IOe*f*` z`qxiy|JmF8_;Gjl*w!#f9?ML_dnF1_W$w4@FSY+@9ZBM>TmCV zGBq{eQb0(?rHrhM#H+!{#UZcCqlCd3R=j{N-_rzmxrbVoK8tfY0ArQsl8s5Pj2nreE0s| zdfY%a``~G<0Cz}%Ts+Qq}WlfAF z7G^WW4;&WWR6MBe_Oa?9ZOC;C-c_C(sw|aSe~77Wi}!BhiBwY{B6H_z2o-` zPlvO-5MZPOPJ;=CMd0vT@mBcJ1QhEVl#>-4>X~K*?Ms|vci-s5dudJf8B7r zF49}>bzV?;C?M#S%Bw_w?#SUtVWuaqR9t&@t|$c;uRz&l*@$WGO$3Id_@J4pR1?Ri z^Md|ChOPqvjt-av4!c+GIovIgi3!|yX1)p3c7?WM>b0I=3*SW2xRK9GYx9% z^LmG`Iy?HDD@oTap-@so9y4-23<@Q2=v>uLJA0bNE0-rudkxD7ty?v+FyOT-Jl*fV z>gGDomXM`{XuRBjyd>TbzM?}g!YU{5P4~tiF3k~1S6dG{eSP$!Wxbo>68Guvnjbpu zOEe*BKMgkMi+D|aGZqmq(5kO%uEW%rj8rx`HwGkQ^q91)wFg7)98(&Yva${+;5%{} zUXt}p4=Qy`qv9h=wUek2^fGBi5PH?F-+Xx3GB@yaO-S-Vzb@sqCL|w2t<8}55Zoy* zh=1^m>P(Y@$zsTn$O2PizkHQXImhY)J`L;hd%)(M#j1D4EaUAzKW>R?zG4y~5O`cF zz&~T^YH^qW;-tsAh=fh+%HyQ~r3s!k&19G9fE8P>zvb3W+#d~mk+nWrdHCEvTI?8S z-<6ZEhVN^4yncMo{X}RS`NtfY%h zKXYw7+EAsC8!>%_pI`c@H%Tl+!&;(ux5sOIC0+_Qb))TLqO9RlQIzl!$GL5R$xICTR8Gh4;1b7g4%ZivpiodWUCatXJkZE%c2JKUl^w|2m;E()S3~$bzgP$sMPCZV` zDf`;3Fib$cEdX1Z2!c9%F|6-Q~d>>!3pPB`(XF!|AZo@NS0mFenqr1y+ACk@u8K z9E0T=g9rKHKC!ICdyXyF*tB&|ow`--eG*oPwDe+O?VRH@wnB2_t3U^~2tsV}@{1GG z{_GjgO=8`d9=GcTIm=bccc~nQNUDo3&gfH-(WkUqnMLvxFUP z8Z>8?SC@fV3->ADzJT!kri4lYKZ|J(H(#J&{OY5Uzk}`V*S;OYI`ESOe2by_p<50N z>7MJyFvuh3nGBk?x35o~xfV>w98+(3d>A8JoiI$y<;YM}=e(UJVJ8Q3(?C9c@RlV} zSt>`MY%M%lj>EoM_}=;pjR?k$qls^4vf1AmYG^H#v9@V*fWOO~IR7|FD<(xa9!?3t z_?(S(o)_pnR}*-iWp?d}OcmTdk^NjT!dR3e3Hc+eYv1MMvHM`_dxvW;Um94Rzb{}L zmo#zav%qCC!f;+ii!0^2?xN6(2gK1>xMr<=%#*wKKHqFEdf~TtF!)YmX#L*M4c0ss zL&sISiVHAx`Bz_;x?0s+o2MXaQHE^N8rp1`=RaUim7PUg;JMuYB~Pug8~sqUar~NV zQr%Z0N95J{u5*Vz$S=DripxUX%?^Mmwp}%`yyyku()ML9g(*kDE6K)}>iO+fSab>V zf*q3nQ73y6hW{c2W=DR^-l?9`^2(d^DZhNY=;MJzZ~HH!1L883#b@15gcp2K2`VGD zzv-yaFFKJOayhQ>A*r`F(dQJ|ztGqD{B!xS!J4igpJc*o{gXPS?vQE?oYnRo)f=@ zifxErJG_o*8Ak=nS6udZ@Xv>8bIr&UZ3&DjdKv0ilh}r8Vy( z5F7J2<+>)py&&6q*Qi)7Yw<@Hz6=tSwjfF_kxc`l%r_X#_0S@ z!3`Myo(o#xLCzrQRXAcS!@ct5sqP?WC5YNJe5_d@iwQEU=ZnB}s{w3>rQXfdYl?j# z9&>G#(c2t;!Y*X`DN0zT?@3_EASns(K~l=qE%qNV$RE?n z3Mw8;YpflaMlA;Mny(IAPS%o4cjPUmD5=7`tWc4keUz=#zd#PRB4gWgP09QRc+wp~ zpftQ{l4K72)*Z#Qz_hU85bG8GbFWUIR)2`b@f*E}K4(e9MxT8e05O}pym^BIcf|*% zbKx)E2uCc>_}3gHP1{ zIBVmHf7-xY>0s>gS!u=tQM+L&rR=iX+7a>M`!%_IV=!iFELSwL3}=NSH`L%3$PZyi z7c$B26K{_ic4n2|pOpP@U8SzlrzIGFWLdyr;l!(1SFBpLr+`kIg?6AdKLLf3?s4^> zIme>JXD*?XnR_WDkCdIk>jL9ChW^0>)@J(LBDSk4+_M&ul&8B6<9-t=Z05r&PiB?k zfN3x5Up2RC-memGuXWX4KLUe&W2t5VWxCFof3Voye_72>H&^=+Jh(l7PZDm9@%Hi( zs9fj$(G9uebHscbAxq$G)D$f;kHy0nszP$(%&qQ3gnFYa@En)w_@OfpHqvU)5;oT= z2JxN$!2WbF1P$UaFS5?#^T;leowC%4|iU*wrOOvP=@{K*JfW4wNlVU z`FbV8LZgs^#VxVG2GP?l2;*g#EK|8B8F3~ZUb0@W$Gg9}OmI6BnQv`jQ!em!TkuEE z&0EW{&5}qj!jGE4j!KJYm`wvd@wF;u3&ar(k+jP#<&LOxJB?6+dy(rsT@Z@-_5GtT z%a+;#bHP9t)q@oR{ol$=8em6VTxw*%Bt0mKB;c@xXl`Zn>qb}}P(-`KQ%5V!$u+W+ zvMzALKRw)nxSJa%;iTdQqjY$VfDV6y4KtydCrm`=Ms8?vg>f;{l2yr256ol>W;O+@ ziWUdpF2C@eY!F=V&(Y z!$L@v@eArR-+3%yzYM`IH#3j$=M@|5mPH41Db<46^sUU@1f0+fHp+OD`4pVajpSvN z?$@y+kB(ajV3qvW3YWAi1xk#YGCIuzBrJ|@PqJ(AoD{Pi_$cf=3}dZZ4i(=ji3t|L`%2`f9X+%gkk~7i!Y{9x5@o-qWA@2> zs?o@DtFxQGbl3&E$L%5zgEaSLO3qD=bQRI;J#a5xT+9DQmIb9g#i_BJG zFut0+FJr)F9T|wdDO9*$l(A4%Vo>*KJVC|fnz@%^wK}H~>m7mp=1Q7QrHV^XDEp3p zc$<6t8%FUODZvVPkASNK;v?-ahO837cqK<{yI>pM=+0vejaAAJ-@!=RA6&g@C&~o+ z7en;yDx~IDI>T8K?`Vgw=n>-@*m#7LS2N&p_=*obn)iDm&d>1Y6ek_<1cV*AK9JWD zqI$dmZypw_Zv{`XM&?JKOI22~tB{lOghfN{U>=6~O`{G42zng`D?hI4F7f6m zVQG*M^-8nZ(#j?SGoW*O zvTOEE3B0L95kDbOQi5^P8IWs!xa5^~Nh&uWfdl2rFo)#;8O`kJF)w899|8>y+~~$< z9ab>mwK(r{6@PFtUAcBOJf#g&b?3$y`Y{aC;5$KPHeV6# zC$J-zEJz+A_`<3EAxHVYQxv$=UHT5aQLk-wBR7Oev(c5pa9oE!*#^(?lTr(Jj8J>R)}K3 z@Rz042X6+MIJup7*Nx}p?tQFY#}Zt<%rx3X%q%4G%u!F3mTRSdxJUI%-(&4d!&)1t zun)PYI=8N@y3Y5#3jXKoCAT)8mOl!f^{yuSJC)9U~z35DaCtZ7d{lEk9yM$+MXM6q@9|9-5uwh9i`dv`h zuz%zgqVZyrOJDJzP_re=4<(K}BiO6%SYl-XdC}|$F2^-%|3|GKYN|zSUXultM$T3&Q zJmI_?*ZoHD(50YTogH#Y#%Wrvn+us369mUN+cCZN!Rj|CSwfdKL*0E|pO=W6FK(AH z`!7H9HfTDsD?Z$<%gL_l!E#{c9&_pzJRSMq2F7-A>W~S9AuEe{y%QOJPt;C8KcQt; zJ-DLQ{J`;k1;51;bK0+7I*TXtAAo!?_TA;o%=kDLXup@uA&XfOF%u2JO=?POg+pGU zgP6Gw%GN2mDBaf!YdX>K*w#s2D_Cjfc)jnwZF??PDFNmFvu;21jHGSb2cJbBz<~VO z4sLVxJPE%k`Xv*i73}|ob9)bZUW&0tH2&qB1z3oZfii+hw1tS)st8(Iowh|8V>cHr zV;DZNesRitMR+o=7LxX0hTZUb0M9^z2__x3r-mM=z& ztEjeUoV*(^wCw#o5R&X+Ma^ujtn5Af0~0T&XJlshXWQF5Cz8p*MgHCi_WtDj;DYSS z{vLrR-75-1eaOxUmFZ;vfE$fv{+3G4!HK<>3r>;)3(9%|$I14VQ%X~o&f|0QbFrm~ z*=1Lrr)S^Fo+$9}$O|p#3ocG__AVQ3OL%&*=Hr{@PoecY?H%fjXRqk#v8Wb_GO8S_ zFxK>Ve9fd_6^?C9J=uka>^FQ`>6!f?<8d&nsZIp>O&QT0$t8cXRaMhC)KcuO&W)_9 zvFwM71^hG5RIc5x&bLzzn0c3UDCbmX`pDf($?;Py)~@i0f2Hk$^s-irObw zQu_o=n+7fW25rYCeYe{{p8%8zw&X6y;Cm;}_4r)q^Nj`igu##$YM&56>l0$K#*^|U z(~744>=S@8;ntm{+V*D+v@)Soutt&mcov46y=2)g5X=zTo@a zD$Hljb*o`Gc%;V+PM-l!&lx&Ls?0y_ee!g^&X;9*Y0dw|Q>8_+{O0R9d3GpN=+#y? zdn9JBLox|Y`DBH2olTA@=1y~nnX-)6;ShANjH$UuNFjShlR%&thO`>bnl=XIQ6wWL zp-s9T&kvXyPsIstNv`xxAo#WFsc8lsGjF3q6S(9G3zBmZu?t2mA zwuY6yWG*@Nr&!&6iHUkJm$)&qp1Ls8Lyh%ryz{9dGM5ksw*A_#MR_ikzHsnqK zj6k{NdA`Rxs+WexfnZv{b@tNe`Sh{)oQb4-0FTsuE3@=rN!{bJ#wV4xpVqWd!Pswg1A;M)Mc z07&Mh59HGz8F5bO`jq$>PXVjbbWLCa2Z$S2yYR}5)zv+~80-yYdKAp7uRGR^z0(tT8CHmZiZh;H6s|UNB1c?I|QgH?t4VuYCXhVz51 zdQPXYvdilp$gI5>Qzt9hX3_8^q4bQU?JnFrEOAi#W4g1sDj^}e_-q4_(8{N4!r*j* z?M?K00+LO-b8ulZao3)gms8p~cv)~-tCH2_T> zKHjL~{1cX@-faLf0h&A>eAnY#&*_-Hz@))ofFo0f!_%mpYaFd}P0pXB6i#KA%@*96 zyIxD}T+5plZ_zqeI!#hL*Z#HpBQFLfe&Q1#OQ2W<_!7V;l`J;^vit;)<-0%0^55bU z@qVz*)yBLDjlx6q3%;Se1y9`6-UZ%{F}GfAX|jP;U#^9_uxWHR2|`^k zk!uS!Q5qbGwk>4Mi%p@xRL#^2IZLDD3wiAz zl%yJe{w5G3Iy?ck?{=;1eK&Cw6H2OkbZmTLOkGM$@xiSAzIYHq=Fx-_YXaioQ!}NT z_UJ;6H4}AS1{mL}nM5H-{_Rn*W?NMz3RrSWq9mqzDoIY3TQ3*8Me4P+(_OwrzFE>| zMB#U}=mB3Gz?Hp1Rqk1&Ga-XmvZO~SaK_8>?xTf<%@q>`8bOetmDrL8-EwFY(mQ?g zCKoqFpZ}y=TudqA@P$_X#5kA~%p%}kI$=4QL7Y$HB>r2kOi?}7$YLTzdpep|;{Z3d zk^4C2qP!xhxYPPX31lY++o)8MZrO9x+uLQUSlX@PviQ+!#_dfn#*Ew?!^u5LFBlS} ztwYOST{GqvR}c4#HRTw;ys!5GrXezg!4#*^x?t_yb5TkTJJH^+?16b`YRbm$+jzS) z+s-#P_4TT3P=C`)e7MNtL<9q`_4h&JdtF~uwdr$!pDZZ~$o3H$C^6dQz!pIEC{?)C zt?TGR04;keSJH<77N^?*IJ!mLcZ=)>SQ0=aeFZ>gNxEt$=RHU*qzZTDjfc56A5pge z)l^&pj9JyXL(g+>2RF;ZG(xT}{&iF)(go+C zC@d;%7oBFXFAgN(glBR^p1XK4+n+(zNhFdz@1hKgE32GGfh+6=Nl8Lf(N{IqLn)4> zPG21Af~@K!U5*s#6ffyDWQ~;XY=BRL+{%Qg2Z#<4!zAPEe-e2cGe zLBHKr#z+Kgf7zq5q=B4R?zeX373S!8K8Q*?a%+ UnIH+SP@*v=AAGfHg}S^rNBI zGHc8O;?}rPk@~pC09OJCxneA<*$Cc(0z$bccxxUt&Q_+YD;y{g+Z+Zi2Rc@i#`{6C8F&no0)}uyv0;osSQC#R50bkt; z>)UU&lF5%-QDk%TZ;)h+XqC=IgkBux=_W`l2nlhcm$yD6(_&qui|;n|E9HWf77z2U zbG?ThVrE&h<4`kR?!;^1UAnbfKRoY_`*F4#^wLSF`gwO}fvp+1&+${R=U-sU_1g-F zi%Nwn`(oM7&3D)ZI2ob-q)93wb?Jx%bo=Nn70X&cv;iOjixfb#N$$6ez1pmNsaOO= z+ntKVzJSC*x?c*I;Cy^WqeJTL2q5nhF!}hU)!+W()kqiW|Me@N+ct9LfpnTwt#g?0w#<%Yv!AJ% zD-VQ$l37lTd6YZK$bVhnj39b2xg6e~J7*Nc@!=ct6{~|na6I2Rt0YB+c#xPqE-i>R zCCfB}$6hQ0B$}NSm&R<5DUiCBbs?U?fg_FOW)@c(_i-%1cbr}gNm5MF=3TuG;#l{- z;gNHa0-|!GQzR@jhygo2C4-EI;1)*sG7>#{o}0+brU}K0F(WxAH;zid(;!0@5-jm8 zJ4bobgblSDFHR#b7&&+p$7!clkXSinm3qLJcu5(`B&|o$8IW^ATp1(=bYES1Hpy|p zg{ge(D*h);%1dZOx3!n+wKZ#UMCezc%)Pm|J|S5_KD)>cl5oD_SNq{)Bm=X0)>@t$ zM-lj$?zucD=Gv4`5U1nm?dnrjT!M%Dxi}27W^p*n={&M6Bf>B2o8;rIq5S0tw5h1` zcw6JzP!Bd8~^pK12+jSgSf-N4arh;xrPA$Cux?3^y_}q zsgO6mrEF0H+>eJHs5sPjr8*fCuQn6!Hh>m^6B5`*0e;5&LhtFAegKUCGltOiQNaBO z?4tlq1XP+%hyWA;LcG!V1Q6<)_NB(Vv}F_xkiBD6KQlT*+dlnaY1TL1uKpBi0G7Wj z&F;6)|D~nb{Ap=?1VF-N<-r~CcRg>Hq>VbA0=bYYkJ^kn-=1%E3{AYg8UD^OE6B+o z-~XWQ<4x%Zknn|sM75X*Ne?L$GoM0ICWk+>haAKeg3V0Aax!wud1OVn7pY-TrpTL> z`nXsSdnHczvr?srzfVn7)D@Xg$rS;=@kmWU zRJgr<0s>|g+*o=4VQYKmZy#)LmCI2ap*1~t?q%8Yjw><#KA2dlNYr( z78o;BbP2EAe27)7%7XdsT z^=tzUM}QiscnqSlqf1yf9hJXUdxL<>2J{-ZAOTkcoR6tAmkqd@+?#X25lJ8JmC=~; zx7Tj%UI8vhfGp__2Y}}zz~L-W9S*R+1NL;l7Y&|(&-oYA{c#tN?7x1~C%}kBtn+e$ zRC7Jzs~phkG+hzoP(Q?{ADHQO<-qaAZ+aC*vQMshg4!@|c9e{B_!Rv16GJA}m$*X> z%wrEJUhreoGF3#fo17DVYjiib*Ka6U|Y}yQFaKn)D^8jVjXx;fe~OWSp&< z5ERa<*-&v%Q35M>QVriVI5a#09FB)H#d(CUOpGbAM{su99aIgNHBp2n*V`8RJ$`P? zlT&Ugw)Xny{3Rh9*5q5;hL{|T4d*57Yq`Kaa4F-HeCuyFTwFN$;5)vgg?{~5Er_v( zF+`^ie)zN&Sp#$G#>f?Et6PpEO>{;~yCa^MnrGuiMlnRk5+(}`%#j3DNF`@_JA^M9ze9Dq@spBM$q4FFSFz;M&k zAKL~1qtqjkrrlJ+Jkf(aE@AiS3J%!rQ_)lr2mDPW4V}O>nNl!GDWIN`S+q@Q zVf6ytc>{w|+8w!ayJw|qaGkE>z-n}K<_%THX=72qdH*XecY!46r=b7aBnY@83&|vT z!GzWufg`vF9wVL)Lp4#VvQ@42SI%4&j<)mtnxDG#B!VQ=dBowd{>=8Z>!(Xb56zKI za=5eMPlukC1)l@qta#3GM`UPR@`EHAVJHZN%m|4X5KP=M%a75b=(Lhdp`{2Vt*XgH zmD5k8SpkQUX*N(6fFsFGuI}mg^p%vF)hYHP(>e+i%*;HVf}Nj-o|At%gL~#CymCTb zT*^T~q4K4%Jg*z1ZL3)la_;VzDpm@|w~$f`0tbi;5jVlNDY{^$o@tpfrDZ++LWq)AQ)3-&Vhg~uw!kvGrL8c!ocK570^NxKt*AQ3_M)?*TH}1&{ z@#AkBluT5JySN#b}x{&M9Ce8q5(jv*92PHiP`tzo|kV#eX zq}&I|d6R&a11sm>XC=*a|Cvp$-059y?*kH{4Z4uiz4nvkEkMO-b{n9{o!|H6&cF5A z^!%rQib#MpGo@1>YJnMZwYwj!UDMxZTXv`9mbi z6T{8bL|9NVjr4(WcTWZ$$151v+o&QK!rVL(!A-$UWvIa^s7Fa^aZzlGNkvhjD~bD% z{&4Y)Bsn2rnaOuF{r;K%?4Bw{ZI|?SMai+u8WzKgQ4AD*&8`w;cWeqb4^MaU#AR@r z0Jl$fIFwk#h)d}9-d=SX{e4Gb6o15!K*ik&^^W|zW&iE7Z+5CcDvt7zyEX=XX2E#rac{d^lHkvgZYGU+kdtekVa>FBnP#rQju_Aru3 zk39=?*aNDNH2UnB-QI16QAYNni!Bl2(Fyfxou|UP<3ZB(@`~qfYhWU6x%ic0|8Up) z0Sv1Dk8;z)9uy;fh-5_;1PZx1#}+JD*Gv zzGXK6D0h6j=lBYX724ckx~5e!$VV+2Pl#E{zp~_QB;T6rHT4n2`>vr6b>^)bDR}+3 z1UO9GUIyWt5N#jo#-(b{5e7S%YK&uM&)2)Zx2L`(Lreo?YZ5d|zL_cJrX<`*OT=V$5M4 zoPO4p0i6|@3cT1KM#C}A%R!jviy*yETIYRNY6x4oxMH|z8q~O%g5R)k9U>n7h$<2z0e{n^-iQCTK`;r!?2$_Hsq|`q4an6#GWv*u`lMCla%GNATaeVI`QOC^3H?XpU6m7J< zk@sz9-P;SxB}=z#e7Se!W3+XA36{5Cd59D31XY9(j2f&pV@#S-TEWa4WeGn|M;ZyL z002Dj6M$&#as|4Hp`x#mNQ)Y&CdT^?;9!16jc2?6R{~D=(*XJaGfiW?IUv%ZIhX~& z!O%nS7Mi7|M>_q$l}LTS@tTf7dN1?%+1Ap^Hb8&NFMwwj0R8<-u=5`okVb-ppCss^ z{JB)-y1oO+EkL`ZdH&OzNYFi&cj|c}a(AEa8|?BBJCU$^XE}JWgh{g-eebW!m`J`0 z@dkY06T)fLGj76MEnrcfXByw<83zLX3V@SJ0qG^ubW4o(y{ehDFk1GvA>iF{4 zm*sXeSz}2T+#DIR279sMR`;b}ZQdN`K}Cv-fiWw@qw4l{o9?TtdVidSc#s(A@J|zs zA=2VS`dN4k@GXr%BM97tGzhj?QPb|u<3V>l&Qh~Q+6yC~6da}sFD=XgR5y$2pnu{I zI0b>IyPDbvE&B+D9HE&wglu11`;LwP?~2I#QuI-S%%G32q>FjSaV{R)`fG>&`b zK=GB_qxvyKuo2;?5(vlat<1|^ny!l&GL|^pD?pwhF)=}qx_dUa5)y{?GmHwztRPI` z4l??)s)3`IuX(=wp4N~RE5*y%B;1&64$^LttNA|8G)t5yJZq=CY>!SuGINMJD*|t- zss@DSpzD&j?}k_}>>%JF<(R)&Z}!4S@CpA+JitN5GA$i0J&?^(yNipcwo z=*pPu;4=v=1ap!{25&sZt{mEXISwnz1m-`wo`A4Ox@ad!O$_ZQq{6eHYW{b?Lw)@Q6xN;30fwYE zF*FnXdVH2vSU>x)xco2n84&0H(x&{0&_A%b^UC4C^{L8Wqgsa>HJps0@ASo@8+z6i zq?A@v`^FWCGq3H>I>#iP{P=nJ-teS|4;&X2B#Dy>jHjfgUA#nHGhE3skU_y&gu=7U zn8~a~rc$9Gk5WT)`OQiLzH<3mQhjJ)lb$4$%yWk%#SLfZy4(MY8?BX-T89-_U766+ z1H7TECW8v)ApRlAW!@nfWV!gTIGD`5(61njfUru9D=SP;3&JtSaQ+@W0g4%jw?TO$ zHl`@V$Z@kkm)SIin?#fbq0q!GJ;j;qZ{)H#5!MU`94KiLsg{~Kwa^~DezC|d-D8;L zVR11>BYQc*P_T!f4J*vCIrgTa-;SWd^=(c`ZQ)P(>m&fD0K^e)&oCs`IF9`-)#54O8YZQ9wT)R(ZF@~QSipePQ ziEqtlR5D@MUk)=a$LK(W1FUnghDtF#@OmBTEF*k=A~O?`GrV%gO^+`y^su<=ij@%y z-@VRFkK*=;03O-V;7WY#W;P$EQyUUOi@RwGtpJh$5kT6sa0gImDhf>i6jlRQB7j0* zHUSuCAn~?5-EL2NfcZ1ciS7SYPy=P)cx*Q9LZRb;PZR=C4o#$&Xb=Q? z7hpC)jdFf(CV&tJU`VPpc|mQef8B>b08X7v&=~SR&n5sk{((Xu-1&vV`h}X%v3D~r z@_F-T89^Y{IlJQrI)&bD4!q+Xs%8K7IO?Y5F7mvM9Ahvh)BSDvHh|2JKsV1TVERv~Bhcz}J~~4_ zvX@4&h&*VLVen&-ndFE>NZ*r#)^omk9?9M(T;F?7ESO7WN)iY)pDI)rM^wUHV%l6W zyWIjdD?E1&DzGV!Y#F(U2?(q;lQ1gA+# zDrUNB$8p$%S2wsp23!>Ofm(lpk4Ay=AUObf2WjA=r#AF(ks90_qaKOWH^9FX`j~$w zU7>-<#w~(cx&R{mXXz4ig^EH-!Ox`x-6PYlML@0T*CIVrqz6$HN%08di;N@!AW}CB6fVHzt8_I{ z7eJ!*Itq|x=~f~>DjcQJMHCB%DE8?{z#)u@BRcAGs#Cz@=7q;ra=e0P9$^BI`wV0_ zkt`B#T%N=5RD$)MdQDk;~Q0II9!5A`|WN=sH4g=kJl=QgaTb3&^^IQ^pAy z+!s`R^Bai^87L$OhqUNl;}ceCnd-&^uhcl5$Y}&~P;8|fdm4BgqGKam#UOceIJaE! zC>ujF$wuH?Qd|zNg7{ozrn?OTR>L8@5`;}jE7I}QRh#Rjlxi?O%iAm0chBHt0tuTN z;ris^E;ob8DDC)*$HV@KPKdiHpCRB2M&-^YEY(D)vwd%L(bXe?_?|`BD=~wNG3tYZ zhW5G$N`WUCndaWzkREjb=b9%d@l5bBQDe;~`-Q%?0JSnT4rJ+pRZ_UC)ChHvu%1$JegQ5>bLSo5Sp%dk_ef z)K{bsH&f(dna#oXTy{4wO8rDTEEyb8*(YmefT;j2iC~HKup5@%x=M{bI+SZV-yuvK z%n7zK>gHbUl;x0|1$-Nt2MvllBd_W?oL*a=cwAA%vpd(~&l!#^NE1k^760HoI`DoA zE`U1vGz`#OD&Ym+1uAAAI@l5h!+r(Sbg=#Y&;zRA)-F^uQ`a|j9nS%n0lgl*Xa)oq zaK&RZnEmv_&$phfQDL_Ba+mIhe>2>F8OZ#ff}7D~tP|J~S=7YnB9A^lIr1R&PIX^Py5KAeex1T&S{yQ!4H3qoU3RFP~?vEXaUNDKeKw1qqay z;#ng=lDCXS>p)eFM%b1R9V{0+zv3NLW#$MzUEUxh<<5oE!n(?Jm|j(BUf#<(3U#fI z4EELWJh!VGS~sW-lE{E&X!6>#&%Buju4o56;iGr zUaaYs;4vlfns7~>*!CiW086M=&LrXNpxOm3T5yV%)_3>aiVS^&W0e$g7Bs6clN zpo@OX0eLg9I;4N3#_z}(@VvC*xbOF#CMuK4X1~$(o5yZ6(9XGb>PKo&Juhv^K)vXG z7RNLy1GZhysGpbtlpw#U?9C=Ma{*xX>#qCH3q(Lve+AF~>!Lg8bhpjLor$Os-RnII z>P93_xfm3jN$hRcR}eo+;{I+_1wki@(#5~-$g3w;vx|( z#I7@Jvie-L=N~I`Az82;2K%Jth*%aVLa^$!2|Ds)yz1<+ilF8&2WuoMTDwyQ9=T-i z>T(Gx8~D%C^i--HH%BBMnc=$Hm$={F?PS?ZNl6SVQ45y)kif+1p<}b_(2zi=*EO-R z^R^?1XCx<|k@OD0$oHjlq7b|C5H|@dR&qmFBUvI5e;u<+Mz8vt!YWX>_~<-|l4~49 z!B;Yb{tXp9?9--3eA#KCTvU9-j2A?Yx#_`f3qLl{6x?L#=F(G{bp0aV=?(r`W%qqN z0)b$X^o}10!tzY|zDveHJQTvBg|4!d7-Z(lX_kpl`j(JJU$xRSQx>?_bO6inb7(E8 zUj=9;U|LmZ+k``aU2tyJ2QD@MVm^1MxiVl{f2~@9y%w!rqe|uPL>b6b0B`~K89-ft zU8O2y=kvPGttinK&3(g`+VvK~>=*mR|$r@Y;61bxi7|BBtM1bJkl0w4g zO4Jz2ijDhxy-GTQSdAsia&s_c*+%z*6e{MpCXb4hy&|hBEE93K6Q**vbySs=DSe#D zZLuXLF&yd|DDNxX{n>oi7PyP|>xmxbDMLA8v~R)qf`Xj4f-p14i##~pZmw06Nw}gQ z2^`H=G7*Or&^N>>=^|vve#bSUnq7Ndpg06lyxmp6EYKV3WfMyHGPDf8PJEMLI+g{& z#G|ai9qW>v&Z7MIF$z->i=>t?5Y(BKA&uMDx=tb7BP&3AG!8g1$N z0K{g;)EwRhj!WvX-ycr^+ZwU#+ZX#sEg=ii2M#YZ4MbR---7}GM6_mt1|kDD8c+G$ zp;8qs{Gd6{K46Iooc+LBKP+toSfT>i9B^z=JK8epf`Hyk(6YHFw_29~G_~BPk`z#f z0dqfk_(2VZ=cofzDnrrM`Y&F8eDiA{{bBnn)pmaT&-6r-Kx!>PPv!nN`|WB@=e$$Y zPKm~@EAYuhtD?J=3+$mG`6{#AAb7{wCz&@zh(b}KXRTPHxQStbj0u*wKn59N)agr> zB5Z7;iaOcQtM&|0tR;4$Q63eB3Q}?>SmCT#EGvu^T}@OGLHdCCO|elT9UR&9#z}#Q zYWZwXyfG~M!4$8_*eQ5NK$MUPI!ZuILV%A?JV7Li-O)q@5x&k9#c3V?miSC-Wc!o5}FHFmFzr={}oAG01k)(2@ZRr3VFw+Qnp zN5taEc#X1nC>W{S!g8CZySrSzbGTBOh-t^Le0NMwy**0dIqhUeMqzXYyx4Y&iPp-L{i7}e(?j;3!OHmr`B2N zqtqHTZ<1Q0(h3EDe9CB(<{4m#}sIWF+HgFc3un0+(%^aHR|UIwOluRpzh_nCT< zZ|?zC@b|C;fWm+L0*>_D|AiHbb-BarCigK=xZD$Rz<>o#SvMi<5NE1IqFS_g{K#GY zF#aHhZnw}dzDNgw^Rm(BBjT-bNkpf>Gig@)GMu?}uz{#7dr5X6ht*S%6qi;KaYBk- z%Mu9_t2e;QNhh0Kb!KkSmE{N&G&>Kur^9*~c)EXgNbWqS*+eu9i(`XAnd{Qzr-Mz! zm?6xVOJO2e;PVeH+0Vo6aU&33oyI^;`|*lz{G^DP_&2im^vn2krZ89oDzIdd*-Z2sPw|aX_GI06@#|NbR~OO`<%c}a!?$AMaWMWY-Mmq-1 zFH8yeY1?R_fegq5NUQ|t>_M|_Qlu(+bP9k1Km^UXQF8x{!+!OekLdd&+EVx_-K6~w5GG#(p9n^u9RW=`{fW<;cb|c4=D$&!|0g;C zM9ec=H=c{9&5;gVH)3*O3MbSr$Oq|_=d>(ujm@?Pr{8?PEA4kg&WSQrhKPTN)V%0xqJwS*8#)H%Iy*I zBu!z7%MTgC7>?%U7A3K6_$`6<$#65W2-=GV+kYwTk5S~?YO%T!ouCAQok$Bufudtr zNcyw(nD~KYPMN6NuU#JK6zQFvbwTZvut_xlLpZfZWNtez z(~|2(#<%QYCC8PGomi4}^NAO;`TjrF-ZQSrbn6?vQ%M6tXdwhhLJ|@P9TBk%y-O1j z5Hui26+;=NsiA|2G?8KhLitqwRIzv_w z2#mCFr9!m34zOmj4~T#K6V3)FAyP@$`i0a2m`GsxIH0*@7-rRB7)b|@33y46a_H!P z1X=?!?#cu|-^P*qK!pZ;HqSr21U?3M#Dy#3|Ee|2R|gnMYJQ;&)`rR}!nZjVYDKTO z1u)D#LB~iZ(q0E-9eb8qFHvfJ5<0vD)oJ8@P{}ZTN&M^Yh2%gS&s{Z8Rr>w9^~#>c z?tDGAuw(-z8uBg*q}PN}qtPn`^`eFly=bMC?0VO>;HK4-Os~%9(>?AY11`7KO~5zw z5gx8M@20jM%MR5FMC+QUp;s&D)UfIa5yl3BitEvw5{-K3YUC?woU!nd8~v40+$)L+ zlL!%+A-1TXF4w%%ixY0R%}VeMWHoA+N<(?xObyq-ZuM1i6Nz>y?HTy1b zwPx5(#4T~ltn8!%D5B=8&}X)}hDX#_)Lsh}Fa0?p*VeQ20u-ik`|4sP*RUY2S}JkU z6xzC7W$zWBn)LXBvYVd3p{qO`626Fu2^wljUFxln;R5xn06ZHj*|ds~ zE1)p?=D0stbb}-Z%9LQBHV_XM5OsrYfq*%Ghi_g`5(9M;>Z)?hqV9JJkX?9kNM}&9 z5v!WhGu_oQ`CHS-tmLR@<&h_ADB9CGKh^!3JblCG5+h1$Tds?RzNQ8zuf#(na^AH@ z3k&{rJo$e9nibxf3Hly{1l|EJT!N~*SxQceN6Pw;np)A8dMZj9H%r+%TnDWv-2E(*!%=#%Mk%;$hZ69ytQ1I;rSf~M?(c84S_waU z^GN>6Zw2Fy8-~JmrG}l)cbgu~rP4811-0x5@4UsTQ-r7fF2H`Dz}#Jn>2#=5Fq_{0 zWnyr+cZn*h`|JDg-8&ywjblt-~$Jq(>@Oe2l-r{mFlH}1H%IkDR#iKm*aG`4bu8Q$QF9BERU`WL( zC>|*?x#OVI7DS0x%GSY#5>pvutdd?3HyJA5aySwfla{>B!8B3t7eRDf@@ZYXzoK{0 z6)7Y|S!&;|v+K>Lpy|IgkJD}w8 zb(Ljs==7p$v*RjF_72$ZNG#fs&??hMjt3&wJzD!S+QoLm{m=_>LTCQ2eS6GK48A>* zudS)6YiEPqAgHURt77fSQM*XXa|j;cl5Xz>(mX!cKUT>1kN@+%SPp2{Ib{?mi23CM zY#ws3clTA$7V>Lu0E-8BFMzHd43UU%8F9aXQ4$f=BN*>O>)Ygm-{JRS<{cuZ2TBxV znnb9s|Jzps)CB!?lTDEK5G-i6J>=V{V27jHf%oE^S3sNciL~*6ZEZ?D8D6#+vtRoI zpIKjd<9m5c_M64)nTmL2!S;eeP!pj>28Jcu>6iclr#yM%dV*<9JnQ=daaxJ_jb5fg zq4%ow=>07onyYc_mCEZSUGDs7oHt)vGw7^4GqEg~r%a)0ZmH2uZ1)plqqS;yiJiWT z#0v%53ITY@>D8JcDv8j;tvZPkp0>`BVA^YUA(!`i1o_EimaQt@CErxLFTsu_9#o*; zec17C8n=>67u@KlRSsoC5Kh1yl;E+L#rWUPPk+wdQ=YW`_JBarf;wi(P;y?ns_2Hf z4?R(7;BAAQREi}kr!W0LIC!n0F)NVG8mYZjw3;DFQc=*WhIH~M%X%Zm>I&BeO2Vol zMv8jesrxIIAMRV{>0gL7klmqbcfC@mS z%*RjR8hQQ;Y(qod4NxQhA0`X9Mmkd7HP20%V-zuI3{06F$<9Z1f+>?Wc_3qC)~uPr zI`U-7IrwePPX}(Bytomaj9*1I+Lq^T%1_LfvGZ;MeXeoY7B)5@vpN4W|CAd$>TD37&2`3>(}TfpziByXdJp-ZnObX%(tjFOZ6*P z^uS~B%v$M;l3l$zcZI|ayCG0h$<4Z)+`y`*62tJV^r<7_LmCMpLdCu3xm0ULj6dqW zYk-!Yzo<u+@62wT|iD4^U z9T@Hzim%tqt(@Ke-qS5FSOL8;xI4$WQJIX#x`}VgJBe)agt_w-5Pz;pc+PV<#$XWv zhT4#Bps@s29k7Uiu@mg2U<(PCg&4!DDV$?G?_j*LqiS5{U<5hF6LLF5+g+fsM7$8k z`e9tG@4^gtY+#`q%%Q&oLN^!`lYtokaYdpBUjF)dzGB|J|0J_O{O<%h*hT6kPH{vz zg;dr@6t~yGo?3sa-vaxlyOQ_LdaDF>hm=?xx+f8hDb9|(Ss5_Ml+64;9(;vWD7LiF z&63aL79kpra&yx?X#n9O=+(vx6EzP-XeQ!fn}egW+S=Dp6ID7x_?cmXz7SJgW#xji zgMBBOb#oPT*BC0UQf7@*=q6tACM7B!%H62oElPz-_dN0DKbfg|5cV+riBTC#kwjJ( z-QGC4vU?-RO=MV;WYMoRF+_(VgWP;stby#E`pRdm-uAv&i?=!P`umFVBcpgSGib8* z-KM*Gcua*aVM0_xRY#9o{nPrDvZp0xw-a5^Q-EE+_|NTUlZp$KPE|ayA-LajCghvo zmZ3tXU1Cc$HS#G9hj9grwP9*dLPfwBfB(72*1Dvp!$kq+7pke82}(hj=_J}B3V*$V z6vmfUynC9z#*V`g*suoODzzpKF2v_~fbd@N4W9?2sXY4{b}Psy62wk3Z^8!g0DuDm z78)S>0j{pO128 z3?-nm)R*(Mk%`3XpzhAA?e51zDmu{OrDkClr<)@^H>wTK8Wnq)^xc*i7W}YnGc(%rD`2PS|#_0@G&)rIS$BJ&Qdu~10WJrc;z)Ht@9 zmC5M}Fd`&iOil&}l-J_)&j$+hw*iCURS{ow)k`k~BI}mlv@&T**m6jpN>LNkXJ*xb zK#QmDjAyTEFsW)Dy3fq&G8H{lQ|X5?sa^pwLDB|vv#MarS9A7IP{p={yzJOPsTX#c z(iDM;Pa42mrA&Ry{SbZ=^&NIrVDmI5|0J95mDYr+xZ!DL@>!xv%O00zQC$3|A3U9A zpV8VH`1-3LZ&-7p;u z;BEN#58&kj%89?(hd@E?o4~KVRe-F&)rW^0x--D8BM_760lm|b_ao0&jLdc&J|D)s z^ENtHabV=lb>+-=Lw{6RX@S21*0w@qQ?-fc=jt zrn`#ty4QC>XKvXGo7+R#LN1+PH*H)+-*~)*-qeslr(6C$W;4Ktx)()h6lJ5dUhFr< ztYEqOm3k7*Ep7BKIR0EW!8Tdu)gTG+S}-c}AahV#h(-d8${*Ow`$kjLJva zpw<%UvK+ ztPVCY+?!y{#A9hD^&6OCvU^joAv%`c8q7|jo$xaOD{-$MPpq-%jGsVRQTxKh;L%HP zZC$T9dc%WBI8=9Q@j9{Itwn^S{_BRQB()o+#3b!o=VBXg8PQf_x%V6eI@zE88EUy# zpsV+OQp5s)n;>y~in&e>@rxKmFH!b%4vWV=Lwa2ZB@n_O* z`M4>f1t)FXs>0n%Y5aywOJF|;mw_HpnJ(x6hDW=A)&DNn&qqW?I zSWu3(d`aAEZPt<#TyMSd4BON#VPF9DYbD)kcE1hOl2dtAJWySXs`oBcV+y*${8780 z0~=zxwm+O52BzEDlSD*`D4(TFpykjKSsMeT29|YMCxfYLTY&M)y!Y@RCG!e|B7+p7 zhn+V(7sF2@C^E3J16&vO@5x2mKLQnw9JPT}IC8&=ToQZj#n{Bl>p#Li{K=mHbuHtq zpS@hTp~-vL-&@>evs9306qnN^D>cs=oE@&b0Vok?Jp$VD?``qoZ@KVeeEM<4#x~tk z%m*0;p&zpDd^pngQR>N5QsZaCTiKi**2!{5RTP(~pq^F}!dkCnelW-o8^dh&ZHS?^ z`xqTvuhr?(5kQGJ>CGbGH4dEfHXj^9yaGX1`ud|+E!6_Ban~3zjBCa{>seQM=*?=k zNt=_d8opdjJbTqtGk_=@cQoX_`TWP9Yb`mvkM8ky&I5(+mZu~W_+N(lfiAW`ZFpMc zkSV<(EA8iLm2-x;1~2=RQa_Xxx?z{yVOArpCR?MSjo>^2nHlV9PV==JEZiRxWI{KC z26IhlF&>dg<_?bD9)t@7=;#qN1G_gcMrvpO%YNEsiqoA2Rt}-o@-Z~k;Fj|s!_h3u zuOa@ac1SU$bz66}W-80lT*T%#Z`&52iWWRuhxGorrQsX|4zCMIcMq~A29luWw{9Q>B-1; z|Lj6v+pT)|b9@|fH`k%mgEQLMU96H=^ULkL@<)#9fwp&s+KRE*W>@-@H)o;-D0 zQ~StynL7#;T$zQoB5mNZ88r}ZFh-9hh%Q-@w_e^KOS#N{eEE1F`N0^MOi+Jy#meLz z?2d}kqmcEams#8YR9T909quMbIP}~KXg7VsbccA!mZ#Ec=tq8ck)54=LAp;+klR3m zQ%mA(AA##X|EP+}%LlHS>!t&xiLb=NjRa28nNPC;GOUK5naQv)0mc>lV@Hmh9&_EcpvWg8o zcWibf6tXW7k=k4Iy_`6-eJ*h=ftTm^9>#G9bsK(a4ej>SawqMGmeRq z!K;BL zhU9_C(?!6PmI))0px{7zgDFhFTp{`iL}Un46*4=X{MgN0#t7IG0gDMz!DO!|Tx~P3 z4+=&WkboPw+WuZ|laKv?$Rzo3%8R08LTf6zHE{XujzHU<5Zq5)X|3-jrH+A(@ zC%I9_+#6z zyvPVkQcr(T($Nm}CMPprwdD_X2O5#>)c=@nuvaiP5AB~wxE!l+e``d?#BV15mi46v zUQ#4{4ygL!hg61M0h!K{HFFVkb6H{WEAT)`W!h@EyE(!`zR%1&M%&Z?3G#DCM)c!Zj%Q%%@T}GE&WVMS64UmTx}$G=HI`okD*+=_ z3Ha_zK~k1_bUy4YSu-&VoR)Us@}0!CN4y`>(tzJ zqkan^&-|i0Gm^aP;^j^BQ5WS*tD82OnFf;vnVWA~p*EqWCOJt_YNUpy}vSm1R1&sFj;&T-~m=evOM z(>=}1I)H^L8+C@Xp%t0g?TQLawAV`c*cTyy|UOO0wqow-5SwOoTR zC~)0qcSxUN-eio{Pu%CZopVaa`ngEgR;#R)m(pOWOU)$dqJB_Fu25B_+D!yuy_j0J z#+K1N>u<~$u6jB$^-#>EX?I5*uBcdggRFY+hXP547+2323ER-qeZskZfliDID3`@@ z<0lNUJHkOqGI}14nM1svpw+?T8=S{*2GDLmQZ0kTU~vx|U9(#Tq9P1EC_32j4pXvn zNbKZ80ErPx5xP)x@#4yqGd1NJ3<<~zsS#s9XE;j7#KO!G5e}0nBVDduP zSwxE+K?c}ZiYS;}8Y|xEPfbw`G1kOWbocsOW>KOX8vQNMb*;x2DWz1O*emJ^qxGIJ zG1z`)&UrjS$3R%drSRl9*7e}3Sf$%RS-5-tAdllGuT!zaX-`f{!*dUo5{cIHYA(Iz zYmkM(md^(2X9*3yWuBr8@|WpKgTwn6*pIqzv+XvIFtNf{;cjNoP?6I=>|SZh@)-2p zL#J8E2T8r=0b#-0Yjub#4wK)?3JwW)-J2JH8>w z8_(mt_~PZi^~S?xrRPHJ{@AIk&85AhT*4f6%)x34PB#P^7Y|ygl=o++v>V@CqP!<9 z2nV6==o@u>VW>%{NF7z$y)%t zue|i&hxXq}@9)$dGT(t!qPFWflD&ClfA>1C;0|1TNat1h3(53IPe2FV6IF}aV_Inw zc#u;vPFiYvNO&c1>1G=RyEPhHHllc$E19{(I4@T2#)3jmaxO{~XdbnNysOe}&lW;Z zNHkt>&{I2CcLPU7Ev3~{p9EoOJ!d>b-Di>NOQex$`XiYl>=ydf4UAm$LigB z57tns9|h{>s?G#5uA};2fa7jR`+IMC|1Fma3ijrEx~_B1y=ba#nz=5@m(_WfrSN_Q zg<}`-crQxPHnjb6_u6LYUR*IUOOoaqP+S!HuIqoGppIKI@3SRCtBA@06&iRfsK-gRY>yzZ590Kuz)(0fA8!~~w9|Oq z@BN2={>>@`FK}JgrzTkgj3o{3op|nbcc*iw-#Apx3hxZ~b!);i=ti{Z68F%uVC=`b z8JAP9)>qgm`Ih^!L}~FB#4P%Hfl@S)pBu?bidM1+65^A|)$uwsErSh0RkFs`AbJ+0 zvp-q2%x`1X_6-)5F^o=6qc#Pf_3So{GoD&m%8}}Ay2Bo3G;FMpjc!B18qE>F1cbC5tCdR<; zU4^74-w#sCste6VITBJ#Kz!HLlfPck)D;lC?l(g96v5*6_TfDv8oT+%Ejy_nf2oV& zYc{dpvY!{=h*te?Gnz+n_#^%;zS4s1lRWx!^J!JKg`$=wO)y||Gtb!S*q%Qf@A&EN z!lYF1a{KWg*ETHE@t^UqV6To9ZCWQ>{(<#A(Q4V@*49cR3>u@^%*pO1ly;e$hfsI$ z{zckF#uB``D7=isG||+Fe+O4|fs7K#@B-yHHxt6rZA3{4y94GD8GvFA5LEyp21N;C zk&+88BffyS)#C;Lh+&J<5jpV zAhLkKARb^h{~LGRf9$%9-_(1NRKo<@>f!q-9?NfgH?CRqwKB2l$kj`$mzzUU=U?MR zJ!LE_D5?G+A=&QP^~DF@LkjWU>QYF!Ey03ZpyQ)epjW(}R{-&Rgi`GHRZ$qJlGQ3k zGFt!OdU`ruv|5Lzo!hp05i^Z+pzoZQF)sw{x~okO4-ad^pw%xA=BKkft<*^ro!;x- z_(o4nsn&g;v~-Mz$zJx%N~MBJuKc~bUwLXvi5}GjwI5y((sex<3CWk0i%AqU+y2VC zY!m~-A!S7PMdXi^&@JO0j?Hz%*hn0nK(i2W)1T!@m!Up)_YEphfob6qYAE*SBkZ1o ze?jbNBC#BQ(Awk+R*Y&>&+$I&Ay1RL_=T3eX(OR9h88sPb+8s=%eOM*I>Fap4Lx9t4_4#AhIe_^>q0CUOom9rCXDXE z=U#zQ4_<#kW0XNI^2rcvB%l%zz7#=SKp+huOA#O$m^|mo5N?mMUF6@E;5moq|Fn+G zS0Z?r=X2VF_mv8CTT*xCohh(r4@^&nF4P>S3sa&luf4TZQP6mKbn&7V@ecO;^Sbv9 zr%=k7IqB3Lez}?EES}|B;TG0fOO}d~c9E-yvYsMb%T-iRHCk)(eSCP4WqyKwL}`T1 zj;j_@a!V}ABu$79R?#VCRgK?&T`QSs@GlF-=kEGM+}v>noPO% zUAHvQfAQ>FR|KJk89W{K1y@ZHHB`KJvj^UqwtFlBlkGCdv;3>S9#yJXSm>d9|En*? zxr;=v%KP&33&$=uc3Ik&;idxjy~48Et_=fY6w?IsXuy)`Yp9Mj*54(drw5+gU|0n; z2SqpM-#Y9&UxuJ7o_&V4LTmNu_T6D0(_2dD!E2YR59;BA?cFAApW5eOl^;qTT|3?R zbx`JP%@#rH#cv|!i7{h9`TXlwF{%a)e2Bby<$^Vd`CL#ZV+pP4HH$H-&V3-%JY z0OwLQ;X?tg;Pxh z2a!VoS5lAH`o_F=KBgFbtK+U=GK4O_7r0dQV%N`B@1NuPQCi>kh3+}$aP#xEa2 z?BL)atnOOPtj&TQyFB%a3xYYt5KdTH>#Dei8*GuArBhdDLE57d!lghMM*87et)pwL zj8}IZHl-FH==U%=b-~R}xI5y- zrJZN9-bLs$IQ#&cnQpGVx=~_XLZm&!Rx(`E!mb$0@miun(l;xRNVHpldSJ-j z=axtdF800eT>0U8c5h~Q1C{MC{un+KAWPL8v9jV4rW@8gJzd??q*xQ<^i+LMJ$tXc zd(Km+*iaDo(nVT4TB#BQ{n>x&H?E1TO_5m3oQT$bbAQtZzEUKnm=vS*)9KgA$F05= z9Skb0D6l6xrR~ot@FRDrUOR8o+y8IznmkBnz9eC(s#_b9(*?iF;C6+~;Q*=IEgkf5vxlqyPNb+BT(dacx4 ztArUMR9DjAh3jZAIKpO&gzC~$E-EGTX0>Wad`>u2Q^p)pJ!iok>MS!PRCBI#hR&AV zOlMuU5MoNuhiX}5oXUfHlbbM-b0&sQJWK?9laC7y1(=l-(Vmkul5dfvxiKVEc+ey} zVvpO0@&@Y0>rZKls0RrGO@}GdGWY&7T2a{iY!9|CKX&$#or{*f!`aw!DvvUZE5Sco zn&aT0jWdYko7caLq^YuY3Y;sSW@}?lwiINWH|5|WLy$uOvUtr=H4ZvoIqxn**r+N+ z6~(bdJMA=ZgswotMf9KSr8Tv#UI83y^-Ckms6yk)=IC{g3nwR!(Jct>3 zLC-=>Ocw8Xo|87wFm!f$dbmW-=kvs7i`eZq|9xbH>vH~H0EpB?RMc~ZKe#$&1h6cn z0g=$c@_N{`48UudLmshf!R#-rSpg3Dz1Q<)R7qLG9R#^PbR5=FgV_9(x?Fes;kdW5ck;&bUHV769kDl6TrChBuaA}Q^QiAZZ`}fyf z%q~p0nt<3E?eWQnE+-1rA5EGZ;Xb|2JHmN+xqpA<8Z)Dtuf3k6QPy!tIF+}bJmPkJ zc_IEuRi%(Z$M!oFkTX`U8@Ekuz&Qr;u@a9|^C}8{zg4PQ_0vagmAJRHONH&D1r&0y z{9Zs+h}}rK^C)J>J|it6Hfb6d_gpg>2Zt7{$WddqpEPVk}2n*oIBYa0V^dTCpC*p0@5C9Sod&-7$}y8 zX)v2}{Mofy%lJzH!&n9CBCAfZ5$!{0bxmVnr6kw|?M*#@J`Ghn!;e@KX|paRoKG%I zTOmGEdbHL{m8up>zs9vYqOj=a`WZEL3P!td*LpsRDa~oATVFH_IlOuCVfLoN0(&#^ zf+MUQ%MK2#0kVF?5GETT0aFZ*kT7c}vkiiW8-^9G?zTs4_zk@8!kB}C{XKgg7lgSFFuS{H!q&;hmZ2rTNRGRw#4u=9}%SGQ-KyJdS_%PIpYM;zrd7 z1#U^TdM<07Q6|B>x`Y-%)Z3_?TYPAdh@s5bWEH%Ll55E-`I`osy-!)qT3&vWBkR+<&83zTF7`&o=0a za2_^7uE_Qn1mFSbhTzRcx*{+ZL?Xf~SV}$$mTHjZ04P1VVnOCg1d0XN%?iXZ@I{sT z@|r|)yks>ATMfYFiW~4bm2V4;%*qPOVq~n|H@)!RC`EXZRMe2S$7Q$cCn71InKzoI zI=XWqu8pyA3ch#nM8wgyJHfH5q-o3SJdCb5pDX>oT){h7BRN?y!@t0qmJ2Bbqe~!k zQI#vXJjkqk*PcBpO zesje%)aKxLQ^Wq_mA@D_?d&gTAy>x6w3`LD@26JXQ}URu?<`T#u_-cBTaadhjFIyQ z4-#mzF!2=;Yauz8X*65*2pvejA^Vgpow#UPm-md_xo^}@76m~@dLkH`9fwc$zk zc^LKv%MC1OkS#aB9Ere=Q;**MG!0@O=3z$|`JV5Kf5+eeR_nUAa=_7jAGkO5jQk?u zM$4^)o?b{``@oF$IeA@F#3s_f##Of?g5TvAxSDVJ+z?lGHGG?&VtPVWwvV*X2c1XS zS(Z)7(+sg>s4$Gn%XHGwf)I^OSp9wOmc}OG0!=05BfYj7q^+Nc;GGedNB`Y4LSEU8pi@#+xoF{Cd_A38mrJK$^$IrtXJhL*Qt9PB#S60^4 zH~)RXy(zJkBVPGr|G>2Uxx8!-n++d`O*)ZzEVr*__85l}7tXk0!<8{2c9S66i?(|r zhhr5YV11N4?+#||7LR|p^rB)k5u)v}yB)FD<&eup$-v0#qSj@c^0=fK>B^jR|HI=1 zKZo^q=k872?`1_d*vzOKmnx#B%z|c4t^k@}(UeyJ8H+IRjf0Ry&|qJaB(zI^1z^=h)=CqwF%2df7AT{l}Xx5fwE< z|4}i_SJW ze82%S1J)eGQvr(~5Er*RVM$I#gEl#LU&eZGa2`FCIJ*K#fp*llV|r^apa zmUrH$Yhep-b*-6-|7T_PO?M@+qSWh_SMV*0>$$1dKFilVJY=61ue04VP~s3x&4vVd zyBD$X35rH*XxYTgW#1c@kk;@qX`FrA^-I7kX{d=MXdT(E*J>;-5(}BS?cD~g_1%kj z=y;NFP%&F`(DgzZ?sB)Dx~hi$xQmHGiQ>T2IJXsl>&cX0q}KfTb4CgG*XJQ=8E=1O zD=EGC1S&JyglD_w?d1fGeN?PxHGyjv=HQBdw?A!mOiP!lM!e3F7TO)&wcSmEm5Nzo zMy7^BdwX>L=_-#vF_krKZ(J+koM@A(t}MO)m5hDLYWgtkD-!trvh<(N>{*Il-K{}g z_@T?K0-x3qc{aQ3654%z(<{l-ZczLEEopmqKPphj3HG}=&L>9(DjvjcT(c|Gu~S4M zQLPEfugNZ|=--P8&(6mBN4ND6Rjg4%nod-7@>?^m5oh1|T585S_95jTY z+8s(*ldD+Rb3h|pBVOfZLpR@dd>?cXa_wLB&|Lp0G7ZXr&^@oivC)L%oR z3r|`I01V^|wi}tdN2ZSe^@z~Z@WKslPOX#Ukn{TtV5pIL1TYYoCgB8%k}(jIGY10! zxuM**QQt0OYGit8q#oyG_%h!HvfI3r2QtaT5x_tU3R5;s%5PY}8L{tVV9@`fj~LKO zlqFEGe?jN)4*5P6Z7d0?;z;+h&Sn&!ochNfq?ns^-HSU;W!!ivZQG=N`;gX`^zCm> zufk+tEVgeqGV)%-CrH8qP3ekS5&1UO%F&9&ewMmKvd&Iyw94xI%@W%B#Vz2HAGrKO z$*FcFcTuVjOR%S$t%zO9)hZbp7o9b`1l1x^G{N|ali5Uwg7Auv#o0G$V@e~_O{ZVZ z{_^S@JCkZHWHRo2+5{pMi5K4W_Mr9_WUr4Q#^qCYVuGMRt5l5NPfh|;v9UN!rMMvA z4_gOfqkZ0ziiIaF_7~?mT~MNhKcM0ju;VAoGO~WigH-tWO{T5`anw8L{W$d62U1k7 z{&m@L6_RRxah3UI@$L6ehvyLqXM~x#QTpQ^YccVAElgm3ZU6M!^z@+ttq6-vtyJ@- zu$@HOXMV6scs9QGlh;5+HP$8D60LSKQ-z>Z$hEtf@T`#J4V5@2zD>|p*CiC~DHSX` zT=Ims9Oa;KrRj9}ffZ)E4t#yfbMINXl zQ@t)s$OfHJ28V-nrUO1YCA(Y-g$ZhM>ci`(AIrDhG{_a0|lHO7z8iiUGL>b@GD)kR4Ui`0J@Wu$D> z+>F-u7vXk5IyoU`C2Fhmci=_4R|!h!A$$c%R_#hd%nsflKzj)LXq4Tf_ zGe0~1RX}82sb18dSP3es_&Zc0pYqxD_zJDWzdow*HslrfrmFurGkFzuqA^65?1soRjNa5qr_YAmJO{=s#{2l+B(h9@x0EHLJFR0bn^U? zb>|1qf8zehYfXq=!KzbnYil;bVgtPs_*GUpT36DFP=UHJHMS zZ;>l}@U7Cq=M$GY!{`|Hmrdo|i1jFU#n0)h8cYjM`}|YM?R}SzQ`@RPLei!;3_1_U zi;&m7T-o8-O!TIexXdq<`;A>b+0CahP4De{d&P%tEF%7+?yXiq_P*`LPSSy2-a8km zU{#+7nfLndR*Eo;+=j``mZBJ~^|!{VP>%xJ^9NmRr12dZi%OO%~t zOUduv7@22hzQq|@nz#2E-F(o8vn0x_L#089UT?A3ByUMWPEZY9;$IF4Utggx(k)|s*cU2Z&Z^Rd;*`RVx4Gh0*M7;K`XV1(QAU4$_Z zVRb>Nqp>b8csH=eMJ?v5DKflkwoy}Phqm%FAhTu(?`U{?l+n?w&Is$HT76NPDcD_S z0c(tzunEH8%;rKNdsi;raKYXiCnf`(JHLJUp&kEaG$o~Cu+ID@qGuCz6MQt zIu7K2r!6pHNu@U$;4`JRwC)+~l^-_g+_n>kkK&67w73w5Mpwv5-^3<^IB=u#$`Zxx z8r=;F=r)C;l#fd}-z%N*)cj%jeaTfvz3uL|TbAq_85QnvPG~l3tac;dh&CTbyCZV4 z@g5c8+NuFwg}M^c(28bNnm=e0AvWPSqETpVJ~`N2bUj~R&%3yx`RiE3^3?o+v}oIV zzb^S+x8~A;YY+FMyYrnUR)zOgFZMOebl){R>H(?8sBtzt&&^ZZT{bYqLgl?PvRH?W zq|IIOkv-Ao;E2F7xtJDIBoLGV!zQAd06X=HkRD*ML%<#oBmy*LV69%*8o{Ip1U(=z z0QdxCXT{+wD)OiySvdB*Y69_rgO_;@*O|Yc@^4*m;o93CY{@rIi@!psw?7g5}^f6>p9T{5#B&B&Y8 zbBZhss01pf7)k7`HZt6s!o);l_3FijTQTcF)X-Lle>8y8UUuAv*Uswk5w%NCdv1xQ zo%aPd#?uFp`)6=P`UvQndV*U}c( zQYar=9>dY5OT};R=Pm{;e7_|7$Lh`%TesL7hQHWVXw><8XdX6q@Iby#V5=cjs4g;8 z{ry?q9zXR-p300A7zQvHfB0CjmrnK z@>&BX1#%N#BfMU`7ZaSF^EB^QHj4z&2kd>T)QSS6;5_M4y^exoW6k-7%o{QY$ z311UOF64sK_DF^aC_p5UV72U^I1rV|9C-3`D&U1iRJEWbf=O{+T86YlU|K=YMwxa3 zzHtx87{q8UbF9GDVIZFX^CIHIljpU=oFT|-|1@8ZAQJ6=U86w_&V_pR*yO^8EG+oP zL5v9;)1FanwtDAhV^t8DHyCMBcw6H1M`rf$l@yc92e-U9&CkN^2%}0+?7T1oj?iM~ zd}?f+Sc6DqFRJ%c+@jp*F3N(0Ew0?QgbwG-EK#?!c3avh2O)Y3?VPhv1%*~E80A*$rC%|`v~jO)-lFj2oC!c3Nyn~Rh{kTgU2$U$ zdnoU`SVR-A>Zaf^OHpEW`n#vJ#VhckOky~zbg_r&-6M?f5sY4PRgjvSx;VeWZwn#d zY>ex0g+iN^cay!UUG9nPPAi(Py1HZ07?o6p{b*q$kKs|_)Ri(w*wwlwD6|Md2WT*u zhN%);?&uQJWWlvQTE3LG@ZZ|vEDAV00AJH(E$n=GZ#)X#xz^1amv<}mNNEL#JEl=68 z3YY`@9^O=B47EIf54qEf*rh;l3ao1c*(t4XCJM2~{-%co42l0$YNM1qgY@^`7jFF-C`6O;D+%Ek~S~84$0-(Mq9H*yCV| z&LCR$J1AwaE;<+~CMsSSaWG(LXI+DDserKd03$VJ_SF$%LL&9x2rYy3tjFkFhWbUL zrc~t-txnE})rmya#}^Hh$Ra!ar<_Mew>#K&ZLr%(CoGo~txn7D@}cB<{52aZhyfch z!Gz*v@wA%gWd8p3v7pF&V<)wBvEuhqC7hGN)GaOPJ2!lICM_LZzM0ME1DcM)uI7UNf>{$UGsO8x5{x7!Nd@P2tU&GyxAjP!%ojNP@ zeU@J+Au!d2zwn{Qp?V&X-#biQzs}~R9&EJTkbRJ_mD4{sakJ+j#cAD0O0Lz7o$7?| ze+cm%F+5OLwd~HI7k1QWFhJ}}YtZAEw7PHX^SnVNwGW*DuIe3Tj;?u>i2 z!faiC+QRt1|F{`|IFjX@v`k(L%%b!D0+@P{rD%uAMnoh+6aY9N$Okqh!&%w@@Rr%$ zWm!JJ-Gb24h+kAr2g)!-*^w!ER15GW1HfD67yVrpaxBLb=W}S073F{KhoBSw52@|G z8rSf@Cldgr5_+i}lGwDA9v_)eU_7etKYBlNmFjk_?A0Q265hCAwY7n!reUcpK0$WU zXOlT!bkI{oN;W&}YF3=2oYCgQ*bZ^J;F|&ZpcS6kifuh_t-RgfyrU^CNq5YtOq+j0 zR))dGoT?vrF({qIt{e)Qe6r49yPgYk`@Iy%%g=Orxg?>elzum88MdLpNmHB4u$q;Qx*W2> zLgC?lBBiCRMw=hUrYC*a-D+r*8mj`5{Vy1rZ>(11=;s#@XLn6W*(cm~wvbaj&Pa|v zDOcLwL+VyRXG`&K^Ckq0%N^>PELG z8w{6NY>O6dG(R?2p~_LqjWxeEXqmYc-!N|B=uxm#(?nGz?I=oYv?$PZiMd055ZjzO zqGhJOm7=*mC`bx9OjT={i$@lwkuE$LfGj8Tl?QNa@E9W@+sL_kfMWx+=3Cwi97PH? z6WM`L*)#~tyJb-eU?2o5^8RD@z%5b!dw|td$sdStA(^t;>)`dNK zN6A{Fkp}7K1X@Yrw2Oj-%))O6D*{c~QTx4k_&ANsMpym(lvWoZIv*`O?p%^z+2^2} z50Nd-fI%{i&^zF0Gz=+N39nrCn;ZcQakq00h3Rdwtfl(17-#SPty4s z_ExN}N1k*qGrz&rgph>s4#;??RCbVS<&Z{ycMV^vs*inN@lHY6gs*=CC1s5TG8KJj zYMjB#`7RLpi*dzZiMr0}IBZdxL#}4Nv4Npk7c}ffY$WT1I{9fFeO#`|cW}#U;;dv6 z*LpD1Y@0_e+GxgDOrKP{HmrIpZ-BL0&=I6e)s+e=b2O#IMDKo{@R^e{WEj?OEI#hJ zc3phFli*o{+bM_a@yTblk@1ZOSEp+&I^0MdW9$BydNOJA&l?TQn|4jSopD-!=8s*w zsJ9ZXQpSQ~LRSwrys5rt+`m5tEKc~T;D~`VRH&z;iJ7=h%Kq<81|YV00SJwO31?We zC|5mvyJdEIE^A1BO;pzJKO#$3BJ{i5dw(dh0= zFFQfHVDgSNJXDN|MSid`lasego)}Z-W5w0mQ18vf#gO7%7B6maq-Uu*v#>D)g9cVs zjIpCd7OsJD8q#;{6(F+?2Qx|atCGL>hn1)`ggfSS$=%y z{eM)|-^@P)-R-}a@G5$h^P0eE3KODu*X;J2Zr9S5+n+18yp*xb?Bb*HB@J0S_I+e- z+p3R)FnT%L47s9WB+Y6yUyozF$J3I}wRBZX0okdR9Kr^wxwCEtuGu*}gW(Kr1{~^g z&^nDaaXOW8=B(;zNZ>?2J>11QO}^;J%^;t3G$*DI_%3mgV|N|+ifD|EshhcBsg)in zQ~RvB@Yu@ZDY_No{%=x9yG2%XH%a)DD%5G(0UI-e$9sHJXxy_6uF^ri{>NvB2Xpci z6gfA1Cs*ZMEyQ7%dCiUXK3F0C=r30!FY?VLUcQlTtOgXJfMcF`>z|cFQyvU`U4k36 zXslr8>%3)Q!>m{88ke@;u02~YQm)ndF;!5RJ(#Qf=?1kQcj8HXjYH1k43<0A!FEIb z!!S^A>n>DnZ17dtG?p9Xc>a2<1XobAH-$j`YUw&~OK3q_iG(ut5!jN*gte zE|jN9?Q-tV@T7GB@(n5twt6<$K68isbSwB%=uQFXSkwES^)A z@-asSBhTl&OyPgnV*k6TP4uqiHxHnO(Tb+T5AFRc}uac`IT68q`*(G4Sx#7B>-{q_WACv=!g( zY(h=K)wt+wWuA0WX)bWp1!n^;3iR|u?bfkd6<7AhGunyGDV_$+)-AftEUzE7nzdLd z#nTK|)@?nPXl>za&E~!IHra}E{O~b2#LM?i!-47*aU`qvc5bCP>TAT2Ypb9VMf$nG za(_t_Ru~;-Q;xP9)}u&2h3+@YrWF$X_kG#*5a(K&$07X4GAqJ>y8)zi9=rYw9K2V) zHR%-5Uh>l6z|wmXr?tIeH^0q}P9wq4*fj;R)-vgc{j|4~O?P>rism@v)1Elocjt}# zd|70v^f=rs@<~U3U|ioGT5cNy#Vhh1TZAr|)?5>rHD$+nTu#$<>w-d~3U<*g7J?uP z?*<_H7Qj&;L08}roTn+k1`20g$>x4|0859h#dAYHOqU`4y7_kyNUo6Bj``~W@Z1mT zs2{oW4qs~mV;C6vk>?L7AJ{+wi}&RS$p0T3XwYlXwWxYstU|k|NeC1J&8#-*#mDx= z^s`%+Z!$F6y_>Kki(5ETZdjBBVM_fOBn53_$31&%f(nu-jX|s| zUWDoHS(e0HWT36ZxRcJvqWZA#aW80Ds%wlG6w1&dD>_v)#frVE>v5p9mOw3Zs#Cqi z?Pjr?#1&d=i|nRX?WF9C5ytggOI}k2(bzt zGwW4gNQZM75lR&a+d!@lBdKWfHcTK{M#=<4q9L&d$YKZ!@?>uqxGe!tGJsORYP{<* zeBv%lTmdE()WyqJpMU-RABd>~l*ZpgCgzdag&#o2sga|$@=^U`F|Bx4N870@XQ2ya z9Y*hQp{Hi`kNo*tKQ}?Tbmdl^r;2Ns<()@WlCZ{^#O<+KNlF<>3Ra!1e>I` zJBFu8XGbs-(7d`jjyhG7uZ@TB+RdIKeuS5HQfHU5NQ<~0pW@k(fIs7`l!P(z%7jK8 zx#MiFp{S7?CKH+c9;Xtt`RWw1(m;XHxbDhh$F&VGNzrA2PLhP3{`B#+qRZ<^e21U_ z8!&8F3qL)LG;eHlDDYcpI8rw~c1>54jow3)P_^?csJ@h6)c;@3&NHB?bY0skg^+{* z2{nY428130C_3suXrcEaMMD)S3WA7;n9!>NqJk9=1W^?6BXo{~4Z4fCoua6(NlD-( z0b6~r&e{Z!d9e5cjvrZwM@QS7nilv&1nL9i0>c;1MF2*yNCg>5=oafw4+sJVUvU5Y z`<21svOs@>;+S9QZ!-Mo4*SqR@(dI#IXd=MC+K0~Rky%nw)?5?RYqE`B{%4mY3zLj z`DA$wT**sJirSXU%*YkUMBw;&$y<^#g?gl5S;NwgziLE5MTnHxbKD#O$jO zQ^im&ul7%ua316aUJcFp7MSC33}AoJCIwz{BK$xi3e zRX4j>@br!Ik`-cLe_NqAxPL;H^V~@EeTe!tuI!@~!vQKS*@ml8`#I-ZV9B zR5?;)%QC%9Q?vtBwzfeD1n7A zHIzsPnhkJ-Ml(jh(FJT66QyW+_;=tF0yf?N1C8d*AZ-RLR$L(GAie5SSRB?r)jI+w zUBNxZ9hlSvHasXN9Ql^OsWS^t#Q*oV1We!Gm&UlxGkz=gL7>!O#_tEKw@QEnef!Sa z{Q$4ov|?q`55XkOzMRJg)PJ445!9^~qq#j-#Aax)^GdQg+|8xIbQy@C<*tJbSFP|; zNi2579XaSx8>8gP1DSp9sdBDiiHtV4W8w1IzA<%Yy%PgnHDVNmCVKiC^2~HK)HK$a zs}t}FmyWY^>HrFwwcTJh$P(bBZp)&j64oI-0dPaNytZ=G2Qu`H=e05|rS0ESCr*SI+R~VPd`!8d^ zx+$#~6VE#D^SoGRt4z&T4kupHpu8h^`MsY$N6Md8x4d{a>lRhrkEKB&22;zTnJgnN z(>vL2oa{)^{%~+t;B03bpTF%AY4E^G320|c+*A2OG{=(34ER&aOLq*>m3_?>6>vgD!P_bA5( z?Z^`uv$XZ|0WZ#-qoGx@GebR=TAgB%#;*0yCSi!$?lDPmhg~(2HoEfC+K!84lH}bi z2uUVqT+;CF?DG&dw^ul@hU{r-yxm9vizm^`Eba?aV|7Ag&*tfdLnH%B1_49S4be~A zoNb&Y8_#?@E!@6d_wB_f&Rb*46=~}sD!Fh2VafQ+#Elztji=-MnuxJ$SgvNCMclAA zwK(1U?#T+iUSDpw_Vuosj@I%9d=hzFJW(*frlh6I*X0^Q+K!1zT>m0R;<^KS-YSh# zXD#>0E*Hdd4`J?4YJ-z>z_yZI2p+m z4a`~PkX}20~+}-OFV#toQ5xQHCL}+d@J}TlHHM`cw5L%p@LJ4}V*`XL_ zhtMEV*3FQu>)$KTIhL#_M`H|^k0w@m^00~8J2MgwdvwP1Np(n}vRVRKjAr1>CW|cQ zrdN78y1byC80;=R{U;HWP2yq_>&G0bT+EFB>vmfSjwT?EVk(^SaAqo*9jr-DrxN0Q zikLqjyE4WkVhle|g zGpBi@RypOirkl7fCLf_|a!XZvC=#Ci&=A|*Ssd}+x}2=6e^5aqsNh(ce6$L$cOb`6 z&dx}mO7-rmJA|6g=Ln}luwg@&An^5I5lk0eu?3!jv&`oAYxB5f5K03x;}J#493lps z@{#cbzFUD+2zW^ljosJuJJ5k5lo)WwM^ifIz-)-?7rr6fhSP@U((h0ZAbP}y$uNJR z%YZMa{7){o<{uCjviMQ3-RTEED_Or?vhz`UhT&V!&=+0w*k8u(CMTYNLCq7+k4xT} zhpYKv8QJ+ec)Wr+;3S)-%H3FztRG9t+7~6Cq<$z$kVb1rz$R%nN5+JkoQ$y2#6z-L z9qY}-=Y>onM9>bgGUYe3k_LmAgm5*peR4^JAi?oixqWAof(+9j!-^xZ#31hE!EDg8 zfZ2B@mKhY5_FcYCnm$(^Php+u*)PBp6V@rX_odu_CEc&8%Ui+ZM%!yDtzP0#VSAd; z6Q57+l1d!%4~tduD>%Wq^|ge885^o_@TCe#=s%GX@jj9j!bmeAF2np1Oj;hegzqqM zOR*eETJ;61o`m-`wYV$h+cQJT4=1g;J9>A-SdDIZw=& zFrqtxCsO4S&Lp-OEeT!3=qI}k3wL&F8Q^Wg#pyL2gJIc45_xByRoUy4}|tzv*KFyU}j zh!cH7m4tBmm(?HNVzuZZo6)fSOY73bi;b;0;~`MkRKr3 zMRPUb2IV2lPDZ29kT+!!^X&f~hz7nyHM3{uYGT^Sl4(jORc*J^}_+ULfEM(NapY?{2f zfjcuDI#8t)~o{+Ub~ERq68X>Kioorf0bGwB^+#f)5Q2#q1rfc~l>^ zyv)+}fyUs8{G7vtSi+Y~qFA!ZLiGtH?8TUT&bOZ{T0|D_iuzTY^s^ES_45yroY`sb zGlqtwTg?>mM!SxFm#6I~#GijI&Xa0V_^$hX>ek6%mJa6qk!Bwta;0Cqpu&6KJg8=- zx--j-KXe1fF>%fi>#O$-o= zPlP?oNqPQY!#yg4CzfoTmJwVC%vq#5TbwL_2rZ7I)dY5~!2Az{xS*o}@g~5T0Bo+H z;{^i{Y)$|uGZ@JYpB%TA0Yx|}!G#s!U?2w7gl=0G;X9HCzY$c>Lp2AZj}e2lA@3_8*~PTDT5KXOBg?8;YbhVCek7Qa00lI8(OOzh zc+e9t&g~xNiqVI=JuP*~6rJ86t9^s8@=>T~aQ2!=IZVxDV!ZS8*rw>%YnH?o;{CP+ z)h0_5QxDU}p+-j-VK}Y_k19jq95G42d0ASy9tt^X=0=v4WoN9%V*~n)EhrTh-|=LO zqP#?(wtdmh!$LT^geu%{t-zeBb-$yBkXylKx5m`6^4*~*wox?iy$NYVN^be1A9!S4 z3L8XL)CWRVCC`8Jl9O8vqMe{1``}HLOb2W$lRPy05rg!Z(k;yPj3)j_I}jc|(fC=Dq7hnHhP*ls(r5%mr(D zzl5$UC{bCN-#$r=$SJm*J2N8PvL48)SOxMLVDlB)1A%ikQdn@h5@>?}h6iqgkN{6m zSm>D%^&G%2)qHdg@LvHqEpib84Ks2PI(!SfRDW)mku4nTSA}zPK*Nk)8W$V}V46aN z-5{)DPRIzV3T#^bjj(&+(*{>na_}}95}FfzOuy*6<8S~9OQL2g4!^2Ckh2a3NJ4Rj zNBs>_RgZhDPEbDOZbnSd>vT83hiaYoFrh1Rt_&lf_hfxu={2FH8U~VY7}HMBzGike zfjOq13dLSEC8bV2?+qm#7&AQrk-ooX#5JAxO>Aj)bGN~&JloAL9daS!sz0_>OWl_l zfvT#cz8==fIsNLcado7EnUS2CP-yWTe$R#kib>aC!|)Xi?ET(QL2mzE2DD0Ry+wn= z<^AS*iRoDOj@8JEp^6Sjdhm)CHSS}u&RAXd+@`?{6bkZK1jl7=Ft@88Hsdm z<8TjkXKdL~+h}|(q#Mw?xhwvL4138{2kKPh!C;}@h|ivj$97T`%4_>FI)zgVb^GA) zTef-mL=LBkM$9e1O^}2jpTJ}W3T*-Nj-Y7oEuP$4 z5b8F()w}W>FvrlX9%#1Fl^)tmq5U>WdPlNR=FoTOJBBQE{xiqqK(b9ET5kTgoyzf! z_rY-H5P<8G@o%4;y|rg1-D}D!J^Gi}yR-VO*Y6Fzb9LVKeBk$D9zL95zN0|MqidTM zE_@RA?u#_!@N2|YbSy;FKNO@Mi#Kla(8naHop4V~qIS5M%O+`eyS0U@IrX~g(-d{B z2j--+@uqZj-oz4PVz_qyby||@lQDxdNauRz>FZXZNqRR-pM|STSZT?~s2sd+-g^JP z{yR7@?n@u>5gGTW&LgfTf3wYt^Pi1 z>SD7ZW;`rWAf!rUWC|<9e6h6f$g1FYe?C*sfxkCa6j13iWzS-pG1E2pST`3lxt!XT z2`0Aq8|@jMZQ%3(mK;!8@%tq2SS{q0AGVzzEwfCaJh~^|UUITrE$#Lr`6qjC46$Y| z6wyD_$v@GvxXZM@<28DGi9u4s zQrP8|TFf__ILcJEYs;krGCw<8h2{R4o%1zXfa?Ie`V2&H%o8X(@YO`krRbS*Zj-zT z2_A(Tc$n!lN1_D*17A-JFxCltI1!;XSSG{WJJ=*6kP`T1gYOGSv;cBkn4>Hrr1w9O zoxm;XuYWbcLkHS0I9i~?K|}618Z9u6ZNUd$v!riFW>|?xF8|Wt5c0&8nvOXbtIEnB8#5$|?~E$N;SELwq%Bt;#VK4hkcra- zsTL7Mqxv)jop;w^S6__D=VuzSvdcdiAH$62NiR9|KA-gHKOi?6SZCjfU#-ih?yhYQ z%*V*N8tc>Jn6rBe2r9mbV=+zrS~OLGST1_%`nVanP2{a1%DY}C5Uh|c>q{+bXM-GG zUeu4}7tFL*$kcdO5-7fb^pnzALLZRsaG7=90iu$n^nymPe1P&AqDBn$*tt=A0_<1x zvXZT+#Za6r%|%Avb}38sg22sxN~((2Egn5v?h1EXi6jX+T~$SsLK0< z40+=fqAJ(Yuqva(ru;V!GX4ICl?Q)~wbNr$MUyOVifXqi%VhC>a&f`{Y*KN9bJD?n z66~Mg+xVJJx7cpLn*~oC0FfYz>Os(`H7$~amm)=T>!aWpgLOVNaZvT|=eM~Ay}JslH(cdriB zi6vMZ00;>E`qkP=amReZ*I;*_@KFuKXmm8wnOn~FUP7tI1AHdkaLArR3Xp9dSUk7$3N#BeL+l6qaGQq$JM z>q(6YDPkGv9oC^@VLqwd> z2R^evk&W)O&`Lze$2SW1PoVQBN`D7c34;{ z{VSUb(A7P33xp#FqRR_>hpQ)MQh06m!zdE9O=mI_+BfpA9jya`j+{I$jX5QX1{!^#Am7zSZEj`)wNSSLwIBztCs@e+HlL+Qi8HoOWk zzI=;m>|H>7kG4>uF^j%D@bJ@+XO|wT8VaZKqppR(P4)9xPv(}uCAWg zsAt%yp{l@~tecRNlUJM2+gcwXEUt;)zkb>5gjbmqEHvG*YFD+EGRP^(9F|KdQC2I< zvEjPM^;NtXX7EM)Y7Lo?gvPqgpKlm0B?qh3zSg(9$Dm-CahlGFwIR+c_PK;b4LK2G zO7o<5*isES7l(xY;Cyld8H06ThBcl&K#E-RpkOfPlZs*+#1*rg3TE$Bt*M6W9=k3| zDqEa501V8?0v_SY0vA0JQwBx~U{8TNz4f5}E&zri8aj|LA0LGp>48EPz2Bly@L*g; z)YUKFISPg3*eJl;BWs^`T!`zf5qPhpWFl9ORk|9MfVt6 z{wt+*yYGR-0R=tqJ?6G`WU3z6btZSqA)4~d*|7BLl< ze0KPn6|KRi2OG(y>6Qg+X32+G=@3bpOKW^dS-99GR*k{LEXv7_W%Ml8nU4Kyl+K-5 z!Y`dq^I0bxO;$-zz80yGr8%)$CQJ5S@UFB+zU1O(?rK@2DK|4*TK11FW}2$nW^a+# z@9zMk7|A!Nnyrm%Ctxp!ZT{u_R8;$6`OR4>PZCC&2QC4n$V27ll752PKZGS(aN

Lf;J!+)D*5G6pC}_Lg$}K}-5_^_=t9lxkW70V>=H$O zX&hW$Txd;Bzuc}gKKnw?!rj)z*PgI(jd3!zPOG`+r_d$t(Zme>MOWg*kpr+vbp8c| z?}JDVBbt&2KEdGlgRV-zN`DUFnUB1ENOTz>BqDDgysw?#lfW0_hEtC~$A=CY=$>Q& zZjAPQs5=S`oL>kY09Ci3K>~f>r;mW>`7a9({RG1u->m9Il$O|gFWO!6tu=@oxTeHO zNil2=IQhjDTZ1VN1d#*XTv8F~ccX*X%hY{;@Lc|ja`cvUn%g}La-mcYMBJhpWk99s9d$RQ<7H_4Q{66p=Pq1?Kfdnz6bP&A-4`Xm zZ;>C3ipf2EBT%b2{!ZY*+^h%gn#I;nJxq7TN~g-y$Z{GpbI;%BUq6`{)c&f0TSxuO z<1*|{KdB{tQo?xKzO!pc{Xl&hk({JcOjKU=^Tmb8f#Zz@#bi~_2jAS9beERDcQ?6+ zOFrD^zUUE+c7f0m!RCyo0yqlF{@0e*=fZ^3u9VTHM zn)*{ym_D+lwm-JbZgK9rqiMV%Ev5>K#ZlZi0pBRs?NL(Rsb92mYM@#Jll}YM(e|?b zP*w3w{%Gm+V{MtU?0Or!T$g-@>s36u)g)tSI92JA`|VAUJ(`K>;f%D&2bHv3kyeCV z{`b!;*?SKrGy814IF@TZJ#!pTz$gTUc(1Bj(QT&A-NYdODML>OS~kzML7ekIu7I+Q z(R%?*aX?PgVEya8z6aR!;P`=gki)z`1%`kDk0{EL1-dtIH9(&~)Sm+1mJpjB5??(h zVp)J3g9XdHz-f*v3qHais1Y7?=i+|;b1w*ggnyPn@y5pm!yt9QTdmD$84j9?ZoAy_ zw4H|M?emF@v3R$!JG}(Z(2>SAYp2S>AFz zOI52R+*D10ZXT|g0kI?5$!euO(HWWHmOEp0PP&;k5h??CP4sRz?F?E3y@}K3YM~IT zlpS7}(QwtpT!U^{lX2qiUA-Jg;pWr3CI_d#a&3MxGc+{W_aS^F7Nh(3fSy@=-`~7k zihZFQst!VI{Xo7`Ad^dcKPt0A!^kWpB4>!G#sI+=NbCyW+PLF5jzlH>a0g>fJvYzy zp~Gd{FK*M6_B^6Uf7G!`0TDqegkvr)2d5GL zeGv`gd2`9d)t7=#>f@wXwLJ664y`5MsK?$}OcQ|#o%2}(^VHZDP={a|K^Mp0z^-{% zg6R|qM`ME#7zW#Hg6j~-bQc)g=nVqYA$q-nPvI^1(W4c(gM)1gjEwy{lfW4mW4B+! z%iJW0dT*nB92Ej{RJPQyY} zcFPSdAkaE0xG!ol?`B2@<29EdlHA-NyR6|4aa_(# zul1oO+iyv8i(^A@ayuFJc{1{(&BuDSdTekVS;xHZ?=vZmtgfYmpM2e4G0inFa_}Y# z2#+o0%`^@5oF6$WCz{W?RW%57lvqJEHO+ar#_*){wt-YH^?l-~mrPMd>G1nkrO*og zMY)2HlNUr4$xjRyeUcZ44WNhtWnprF#V#EhimPUDx~9_u+}lQxjhZ=QZ>Y?K<2dvVAux=cLD zO#5Cf{tCXP=j;vZ(=}I4&XkPZklg+}J*$z_eDsoKp2$IY(oV2KeL}X4-+yNf#nOQg zx>zIxcZe=?7?C;mg6nYs03gDbv@_r?3odD3CkT2&Fq$A|G(=iNNq+@5~po_ftAG5JRTB4~4p}}_! z-zatd5_LIiJ0!ay(0BVZfP{E0g;s${b6-H6+3RdbX^9=U4~ zA&l~KFJ`5}l)DKghqBf}wi0vU7m;?Q$!Y_f&7O&ULyy@znle8}^j&|NFB&^jLFBd2 z`Z>lwf42K9BVz*LY{UEoC;M~0jf*TA6{j>_+sBWZ<7wNZzUkG-#TSpMe{-cPc%r$# zsLpwbO%YU9kT24z`0&$f0a4grf&ud{@EQA!Ow^*pDduh94z7+^CDK{O(uG zZ^57TrHYNVy5=ns%~ZFL-yYjnFsgs*6v_5c$B(Nd z>br~59;8s(6KuW>?5x!P$(+g0@c#MI=mvG8Q!_fbKaRh!FkF1=May#`pA>w!^^nv^ zI5rI#p<(fJ7)(V3s(241w+}tc0huFEo&X#j3|&G&@32X04!X3kzX8=cFM&q7$BU>k zX>NCo4$rXg71<<$Z#R7C{pSk(52MT1*K#hgPwDC#Ta%MbX|CJPM_cb7S3R0p$(GP3 z`?7D|t~t^Dw&A$xP_TREPlyb3q%Y`pOrfkLXR zVdWuf6Ktx=TJ<98;X`_ISQ5)}ty~e*;$mr-5GOD_y-xm2m$M;NhQ#R;X&wXj*;M9t zPBp3Iy5-vvS$0P=ADj z^Ks6rE=K|9PL1LkAODsLdU5YEnO}AKCB*O75R1r#XII2Z;y5!SVHrt{12sgS_1DDp z`?^64L9X0VgBL@x)Ju*>D>(Z7Q5R^hZtXO7!n_UMALq3{%5F=V1JTv8C-Ev%M<(R4_RDf%^s5ll$_ z0NCj)Of+Dj2>crJ$CSD29r}EZqTm};k_`lNQ;6s5&x~y#z5Oc`ro|J@)sts^TaQ_h zwq1|6f0%adkToQBEH&P9Dc;<4*=xpb^T~|pr&j8(M{eWzHDTvSDJdE5Thgplb0Ezy zatV}I>87;{G7H^SQgy&Nc^5NOyM%J^AZw3W*jh2(u<3v~W|vm9A;)mX>8getweuJH zd@WV+7}}}+tD$D=#zZ;_G}gWw_eAUxjr)(KC0&ol%=V~Gj+yK!3p3Oned$ZvWgMoN z^20CgmYVn!^)THM#xEp4Rt|n2{V6`5+5%#8om1(T$7YKT4*6PeiDc?awv(Kg-1RYd z3{Q;b`n85#J=1h;pL$eWMqR)BxS7fnb0#CTM0U_oF8g!XfUOUtV&4>9Vh_dm>glO$ zwP|P=z$sooyw?U|N(c<6FqI<9x*o84xXEw+AHFUbdn21$Z z=ekz^YBSi!N%9j?Dms<&8ssW=m#KcT(<_(5LcA|4^hP)olX`s62khtQQ#oqyv{}F( zG-l<0up;Pu@83Vp+&Q86Pm{I?s5$2dvS8f^noGd#MD@NfqYi!H$Tkeo@m1qLG;oCP1wt2z?vzoXw3r3#q4wpaG;3z`Z7XWCk?~=bg^= zn*Y($3hMH4k`uCS6d3+4QYpU$VhC=>o_jI@VhF-zB*7*ihM;@(hLM%qOkbq*dn`Rx z`Z=Dn>c*Y-*?uZnk*n7%H5EupU3K%If&de8B-yB}#yn3gRxSm*ucnkE8;RG7<>%=( zIGfVRN~RksW4U?Uwq@s{WaBT0=z07$3t|?lPqZ^d_CjkG&U(ygDK*95!ctP6@!eBQ zjfZ`DS(s-(yuNohit*;%GIOe|g5m7n&i-vKwZ*YkG66Z-`t%MZj&7NdFN3m7_=z)) zLmXw5pUQe_8uRf)w!UvKi?zRjV~j7Wtns;8MoFRQY^CWdoY?E?Z6#rT9L0AE6_XF2 zw=-;*u>AG~B{{`P^_<1b{>)+@3?{e5_xc}W^HAe|q}%5cBcm$2#LN*Wu*2#Fw`T8s zTzyKE2lY_}*QropWB!d6Lw#Ew$MP^XPSR~i1}vvZ>w&~F{3#=TUQvCczh!0E#tfZ1 z%r=_M1NVf7VvWLhj==v@mdC~Jw_Quu)Y%;DE@%f&p+R}n#-HU!Q_Lo_{g=1pUOE=Q z1YLAmkczsXZt{uVKMgsexma<~RRS9uphAF+BTR(=Gj>>~V$?B;Cu|h{^Q>tI`LqROENEWK*fJR<^aTha5Tnz!XGkwze8}c zvk1)iYc$53KlWb>Yv4NcKvKc*`cx$x?Py33He)y?nExh zSf(_>7Eu+_-3E#2|{qQ|tCBm0r*Y5GMQJYTPP^9@w zaM+AF9#>>X7&23}Xi+J1&eeCY7O;gfs!r~yaJ!? zpq-c(9WiP$UZJOg_I!}{P(PS(#=9285bU|B;7Z+QMp4qX`T6$T5qeJC1*Znhk+p?Q zT%?Bt-|H2q^b|oyz+fC?+XJLrXs{o+Lxc2z%$>kJ2jW@aZ!}ti@Xlx6Fm<%!A&@JB z&vX|YH4bkb=cK2%Vd?3EXYk{P@?s~Ebo+&HNwoApn$=&q{w>TpU=O~KW@VTQ#}Kr> zOdJ3)1XYbhqP{`fmj@xsPM_}h0>$AJjLv=u2y1%jv-`39K*DR&Y#;4yNvxdJ(jqVA ze8{l0GFvSl7s*xEN~tO}NZgNvu zbGb@uC-I7t*}0uM2bFe00WHSFotTQM{`^x{7(43^GIz>ebt*xfn6JC=1@eEGH1j88B{zBu9)}gV_1&82=I>Vz>2tYddnMmSWR&V$M<#Als8Dq% z6m5B@qwmjj&z31!qy+n?AOaK}20UD7dJyO+k%$cR%Y7C+nrLrs7wqs01Z4-$8Pf96Hby`S*Vi+TQIn4A=PKNCII? zqGPs8;6`I3V}7u4PJ(=X)lwtr7UdwLT@Yt?KIH&2NGXS4c{uw3RO4mMB4HJIEyoX> z46^2D2AdmQY^mGD>Jlx{C19z>LxwUr)FF{plhM!;Bc8#%TTYwZ1?@-i9halq^L$xAF(JRBkoS?%0Voipdh@JP3^LsTJ5%F=i#=F z*Ex?o6z=L|4B5W5vU9&D#8btCAx7!CpqD)VVOpKJ;vlnHtsv(cyjjEB*%@gF@xWa( z$#UxtRhc|8lX;;1{@?yC0IAV8GgeYM zcX6y9O|*5d&`}HhVzy>FPCvjR81=ct7ZVRo}5ef{?Ox(4SOH{q|{b?B7b zyQe52JiN=5Xg~Wwk*L6W@%oLIiI%(~=cjJwP+ZZ665VpeFD0~c=$Fq?ADb%+q#IqK zY02#MZ_#2}Gt_Ggx zt>n`5uIDX6NeHf3D6W$c=Q7)z)Kkuw<lFbtzZq znK!L63a0B1x+*Wdwz^{LsP8hutU?!5kwjC%PjfxwD?ZUwREb(G%%h6B-euFXNlHgQ zt1s<#nkFQVh0;~OvxB>WbiScU$l^neIoMdPTKJaFl_KgsLM7TL^%y*pVD<)Ubg;KX z%_Inidk84Yz|@U|TaAOydFdgbUxbGm)JXyxkdUDUoDxwLBPyFk`$-@!`zq9aHs^(g zp`S=u{u34IKSC40dx=74g`uqliR>8uvD6ZOYoaV|vs-S`72)?7TS8jjjbA>cWo|cq zc}DhW^)iE)l5LNQc5C>iiS@E+{wmoJNtzRyk%C*}X-3IjS1y*z#*~T7X)&sYYCMZl zRMuMSs^}bT^e|V5kuf>#XJ&TVfT3>C?ZK7D$nLu`;$X2W=JI#fkEKwrU*D6Bx4b=~ zR4o5s#2_1||8#_biB>=VVuZ_n{bun3{rA&+t|q-}Hepl0Vu958vfifQclK<^kgBHf zo}cHyHqpuM5#>QWs#=A4v!W46Uxjc@wTMLmv-jM_(j(I(EG)MeYgapn(OMJ#A@xIK zd7+y3Kt@Kt-c=h%^Yq!ynU``jI!_$8wG&M&z-T?y%+$H}PEZ@<1Bc`#$S_nN*r3M1m9{HM4AF!q2zA)q$1hUqR}dC2G& z9C+iI@PPTBn*rlx-avqgF2L9W5~WcbBM^9lKwnU%O=lhh-31W*faI%% z$p`3dVK*hpY?v4PpzS9z`TY6R^S@;kAe(es5LaMwDr~rM)A^IPlE>Le0%}<7t&_hx z-FcI&3RaafnKvCzEwR?wF)}s|$;v)w}L|xlrq%Mo4 z@UE_=r{lA4Ia*?JCcbw8)FthwE;f@>FB~J1WUtIPSSev4itdqL9Br2U?Q7H(-;FG% zwB(@o(7QZs{Dohio{6g0?IHXzMyjf~74|JTJ*|CqT?9qC6iS(x2x>>`k|M)#C{F*c z=n5sA)ceZ$^-1`eM}_u>wRip=O;7TxKZ3I}_^rRlN*`mNZEC}Bm-y-LRM8OBkFj37 z(be$BB(}V)gK(ud7nc!FC1v zf2UB)Z5_F*hZRm>JJ-ccY7h1mRC=20n5*LU-7Yy4RFz0gJ0*&>(DA%#QyJpIad8U) zZFV)B7aJvPnQz%p*`l|&|<#eoI$cOCfFZ3QBw z;nNQAvUGy@7IZ@i^tZt&u<#5O|A1^O_}=(6#AO@}aRJXIYL!C77x0S-BtY=`9Du3j zL$1K1iN2VCEAyu_50WJ`|NZ{jRf6yLzu!|Xypp5QzG^27kBr`J#^>LTyk~L}JG1G` znDLjt&+PY!YBVVilOKOd+_om4G$|o$KRrIVG)wBlmy6Z%%qbS~wRDVOG@4XhTQ2Wt&Fu@tF2?g8RyrVnic`e9b#v>Ha=pi z&oj2X?x2%#`L1;{wCnn@X8-HPkM-|bVwz3wE@jQcs{bUkHst;c9Y_ z(a}s8XIb?0MZAyJ(s6f;z3b=uA~#3Iq_Ub%WnvgShaL;P?cq&&#uPdc^)_Cxj$KyS8Us-JULUL@_6~gl+2IsDwH0F?H)_i$EdOS3Sr7!gpvnl zva2**?0j>lEF$afPEs*L(;Q>&3MOl&L~gtL0-5%IgcJbr*;g#>-0cR|f5YOR=x*de zyoee<;WJ}4>~cvfo)77T!Hwe!>>AWBjOfo0GA&Ykpz=^V6?g=Pug^vGqMz#pIr!XD z_2FK3|C+u30_0k*0*CIUIMJ^!wW+Uu&x7m z4v^sjPeN5a+&Kci7SQ0r%Sd2dM?T5m=#B1z7JrXn`Pn=_2lR}S(;v{Ff(0ogeDVHI zmSix&ECdyZke~wJuR#Sz&YtcW&4eJ*?TlWVBeI=m_q|L%Fdd$$4GpBO+XlsFhbnKT z3*7KGvn=#K$UzBPL>q#N@HLCQ;u(j@Uh;_q~ z%jmoV*P&@s(fje?T&(P>FTcqgwbPb+xKqn5<+ZTR7a&NJl_OYqIc{kfR^sxJXEju{G9;hXlRn(;VF%6m+2BHj;$XD)? z-NN{GdWoK6fgG^yv{3K?d=dJ-LD5J5PsM?=k6s0e6oA^rncOu|F;b9gZc10xqCX~CCDU=-nJe7DwUVe~O*_<1G?>?WM zHEyQLBt`B47g~yHgOfgBk2c#Yw{C4)Vnt{*JF~=EehZ^V$VtIvUtVIQK~~fonk&Wt zD_vdFaq~t9%ehA1qJ5c%X?=PoYYV-{>f)Bz9%F?R+WsDM4J=midj~7y(uTmA7K7;n z`w4@|TYK!KHTVGQtkvxSMT8<*TCgdmp3FR?uKazCU(VDGNoZOe^Md8NtFG2M{{{KU z)L$)9klt@~{fufW0%9;*ewhySkdiITMG<8|Zq(YIU z(QbCeifG3d-!PI6dI$8)XsEmASNk`ajfd~8jHbNw&WqB**)|W=oq2u(chf$uakbys zG0GDkv4e;_w$Y%gqv?;>h?x9G+}tBW8PBH{V+Kti6QG1dt*4;=U`>T10Cyj^KulTi ziDupm2s9O-_+U9MD84OMA^~YIX9(^KOGW`xE*rtc11SYMoB*0K=mi%*@$Gq3z$J5`8hJtlIA*}+9C*Qt=ZCR2Pqx4IERlrXB^)) z{B%kC)B_o9X2$c=v~5a&+bz2RtCtsKqD`f-OXtDe`wtuxS#XRFx$`Jk96h_i*<2xw z7TM~kz71O6Vb8;Lb)OS(u-mZpmjo7+ZOoyb?~*je9L%*H6S+-Vv4L8QbQb?1&#ctmqh-Xv43QUSgTd z{(Z0^Vj#a&U^5|{t?hvpPv7TcJ?+1mo2lulV zodg$$6rc3;eoI4LMw>qZ|BWeRpa2v1I|+b7y>UH64df&@eqPa za8Xb^m_y*T&7W3@Ah_x+N^Mvyef*CL8?^91EBL=)yyvolt~{)D&c$w7rz!~nAqC6c z^q?UH!(|)7X|oVHDJwupqMH|Ju9Bj@tvFCmU3*sr{0RnCcj&OcrC!VtcLNH9(`G%k?LFWH;!NWmElIvC*MNk{F?jm^#(YiQrKw^T?`9CJ{X z(0>qK&mc})cV=J?Sn|4EWiRY!f0Sjrs!0@T8Ip;zuA1fo+cR!B%*vMN=mMgmp3blh zs{zkae>EGNhKw>}}QoXYa|uB=qMMmY(oZLGhZ<5o<-5TlFwWk%%G&z_~e`!FR_ zs%|m&!Nr3AGZQ0d8Nhs-&3o-pRRkPmiad2-5C*LuqWA_-2l%xE)FMvgVi_*BiZ6&>AtheC7F*on>JtlFTzV@%d8F7jD)nDbPi1= zbPidBgtHhj7$!A7);bAV5%*~@5J96O)ZJm49lz+M^T_LNJlyQ&XDh=A@-)lsSdA=W?yHh->%qEko zgz**a6@7g&iSBD8-h46UvZlFO3oH3fF{zp)Z#HzMUoyE{Y5jf5jAQgjkutxns71z8 zR7|FfsNAY8e9YN?`iWh|pbxPOI!(33ss$25m$~Olt|~(#N9l1dSI~W@R7q^v|90^B z1bnXYgI2GO^YR>@S?e{AR`}vpSEgot^g!G-)Yg~K!G8X3~N4H$u*%^UEK6}U*DKzj|MGI|F9tP|#KqDgEVtYIhA|t$@MprMO zv)ew0b^t3tbVm)IIUuY>Wnl|;t5!r724)QOnFCdZT20aL9|WTI?$N(5wEx4Hv8d3{ zH*S-My8O7?sR$@;v}XKz-47bSb|1?)N-{rxKSEX|Fmp9`dx~_m)<%YPL5RMlVHv_X zD$v(qne7!>8&x=GZDb#G)XT!rowT>(n}n9C+nJ7MwwE?-*iP&bcBfz3OWO`%OdQso zJFPiHP7vm%lTR-(+m6$Bx(X5NPIC!yjIGYrX46_S*_sE945r6XkuT05ASs7*pwc)4hc*Fj@4CX7l zYjTm$PHUG+j8r1aDGdH;&`yq=TeB=Fi&9aiN0V=hq@EXlhv_vok&x};e;lIH3BQ*y zv4aB`f==wXhHc_*`OWEOGkL37O2ji;W=O08u}HpVGv}W8xzMn3`Sv2pPs-0rC?=05 zw3te7uS@Fu;#QofYEZm*^lxf$6)ujON=?{0%({v;Ej11P8uwGpctV*PKX&oSV{uLa z+_BjogN@Ad<12W^z5xd~7@;*MssSD<@a;qmR46|SwbX-g0gSHzF%RE|0SFj2^T7`o z5NsnV*vAOW@fobyhLCUZH*!mEd^B*5qTS-#nFtmnY_nIcbitHgJJ_mq$3N-T+-LpO=#rf8)zPV z8#NoPj%`+S*Ke?H)M#M3Yd35;V%8p~5b4f*nPDYxY-JjINe|fz_wr~*XLaX7*jNmK@sm<99};pyNLtyL9WXC@m7wgg`M^G_9yyxnet z9vJaV%L(J957|#MZ_SdACMA1tcJwZ#W)eDFDVfAxqbkVABPsLN9f`Z# zSg*w$mIpIaYpEVXoj$llIaAR~w~6qImZ=hCqA4%WvA0mBXpL52Z(7j^S(Gf$c4D z%E2DFF!(D5M5M4uX?|0Nz}4pOS3Bp?9s6NG405?bIG}Ctbrs!_fwL9xCZT#!0GOUf zjlTs9EI{i+4h5gzy!{(o6Yt@qf`3yD3j^W5`T?Guz2Kq+;0cY$=WHP0cyyTE>EQcs zlpy^7BkjDSnoPI0|D+N^5<*WPKoUX-p(TI_iVnSZl_oNPR0TmmML$v(bML*c>-sSr@ey7V zbq6cDe;-b5zjo-%r9Sp06zRTpW6fXlFgviBI|zGrtL#w7P0rt&sxRJ%WgAy+QYuSh zDJkm&8fzw_*VeVMRViv*`gSb6&C7`AOW)Dey^c=UD3|E9Jvpb}S$+qm(IX2QabjQB z8<5;^yp^TxbuO8%uS_5ix3+Pw>v*4pPIJ*aVp0t_9H+75;$XGwaeU$?c|PDVl6Xv1 zE`51cXUza}(7}*PeU#8#t~hcCI*?l)Ea2MZL?7fP^!&(SqPwmQ4d|@VG_?VN z_#&#me4g#Nd#UrmuZkT^jV)Nw!wr~KdDt};jc9<6vj- z|C2ku2(UQ5)zq(11^EBmxMgflU;5!bdd zd+|0`j;fznYIDuSF@L3l-4msZIUnK%&1ZCx!yKhpgZv|vnp$w9&@R@QKa(vUI8^SI z=mqJUmy($h-q)Q3Xlx*W{dB;R%C>()rHm<;^m%mhAcEufT}sxud2T%(d?Kw&G<zv>&{yAtgF zysJJ+)+qd1zDA#q%*{FT8_JdFTh5Z~WWccOW5( zXyQ&oCDQk#E5~a18tAf&iler!!}}xHn7^51E%CG` zd$Vzur@+|I(8ECgoR?A4MGv)b0&o5CwP-z|S^>oMTIB;ZI-!>1q)) z2-trB5)>D&&e3q*1Y*t_>V)N-;rxQ~!%xsC9zOHs`PNBOoN1tC5%#cSb zh@((ps(?$dS>F@0nRCb+y;;qJm&$1MG)bj+tlzAC(z7O7$-|^C?8rIyO<{VTjA&&C zzCJfeV#;RF8A%#=3}wWNugAKo5{-ShorjM`J&)j|;sAk=7_XTMm2H>%IiB`&nOc+F zSzi}U`E$`|F)kI|s8lgOy4?KX3TC+kiYN+))GrO3!AlOwZ4REe{foViiDIgb_~jkZ zzC+5)71{B6dk2ffn<#krW8m7Gkt|DM;=5)htSzL8pk^I!hz zZT8l(>zD{vD-La%x!yf=g3AdmXH6A3DI21DmnMKMB@_TD0y4UQC+8A?iOhBnx`W>) zS^NWV?*T^&V!H>x3ZNYXxxe7-25uanE~<|%3br1$Ad8ninfd>3~xv>x_Ii*0ag>pbp(OR8Cq zk43q5yQRx}apc$H;xD?Li6#38jNG^s6q-mY5!`d2Cyn?Cu7xY+GM|!oLi%~)BR@|1 zwq5*m;wIhiiyQCZ=ZO!NYD}p!)Aocye6Epicsyfq2|~hA{LuYM=EWEv|Z$dZM{l8EJ-erO$%vE z%WZIOijCUI&>T)6)y7gsBuZ1o2M&Mrzh~XsU*Q-uEsmF4W+|m+&!BSoy`kn&Hib^_ zy1cYB{t;0Cszb^Uh4bN-uj>Mz4}_ow#HHXA1`?8hYYDI&7q7EGt0H||d=U!3?V}cq zC7^@A3*tp%Jkma7%acpro*nptO$K9$bV2+ByqtUU2|O+q0~&t%@Y}*Q>|d!&;elit zw}2?niByI}TT?-^;J8le$6TF_HW@hJF%&O2VGO`FK`L5)d5;ga|MuNY-_S|=E{UtL zj+$;xAsprFYGh!%Y~Oa(Fx)3KV0sgGgzRL@$lG z+(4IY986BTa*=1WKmJ`JKHhE0K7F`S6{UYFH(1bUe*pFVPJIRw8W7nnZ{J`(gqDaP zIcr+QsD9qn@SNsu!vH`gAUY7b3YlGx8p&xVNgN029c=?}pl| zq8A?)SUa2(cvx&d-Vx~hxT~iBLxAIp-o8kDJAj)!zF6?MiShHBo5^)LD4g1^TrZ(8 zPg)-yEG?!HU|59bR3(@t>D6xJCg~iGVkdE1BKeqbR6+ZCCUz}`aoR)k1f=52=k7n} z#)`cd!eX!t4^xvuDB;-neQDvroFqb(YAhzWI>|VXA-7hJVTcOX3f4%1%yM_eGI*+F z>TQ4BBsq6oHFf4JbLL>1!*!P&IP6)aB@7P;?DMS7bzwwXymOB(5Rw8x0SN` zkWQ%jU=~>oaThlGpm~6!(qetUqv}GuAE*xy?*}xOU(5WC;EoOg!NK!WDs)2};_yxb zZXU(;w-L2v0}Q{0LruYO0yg`I#OTtfG{#{1&5gS<^7Z1YW3g=@`MLiI^BQ@3fcnr( zI{UC@;nU)F5N(&&3E($@51TUe0sQ76G2^)0!whY1!*TLC+rRF_xcq!6EzjEEZl>6S zuew&=KvI~aA5??{%a<7%imFmo!nJB@BlVIsj%-v+mTQf|9XlRLP1ZWO-f&lZX-|l` zz9!wU?`og%;Ul_okeqI?p8Q$`o#BdYaT7k~m}JV4vAA|0gY8g3)vPaT_WAzD;ZMDr zwi}nRs3a22=uY@upVM&>Zic+s8@K0Uq2j1(pH@9QIv~nZcL){Ce}o>Xr*xwusYji0 zawMHo<4}-26&2_Z;Wn>4c(7b0wjIl}$JFQBS$r?Bdp=7>MHg6p-ubZqBl&`jp3NN* z$~3opa~zuR&?yfpaGJU~OGn?#p{_)qyA$3V_A}-m2iCib#Quo`H8@$T0}nfi1Qd z8Lb+uIp!8azGZqyI0W}Uz@#sIu7bj;6~v@2zET@8kPyz0KPo@)YI_f09tq)Z*J%yP zjb$7UWNhc2@--sHQqBY#(a>nJs6WtjU~qJ7P>;nET=P=jfYqG3;mX@iJ)#Gg1S1}r z+fn?3TCtdC0ACGlJ%HV!?)7R5v1U8jds}RN^>$?+BRi**`B&paW$vR_LSgfWJnQ|h zg+g)Tb?hqglxn$}u&%Bo)^bYh?5jxH;~v;vQ;p4+S9y_Z7kunm-64`|gth4Y`vUo$ zmrlE(Iw*vJnKe$LDPXsvP2%)`yu>HeM`NqtdJfU+OH zl#&>9i>O5BMNb!v=*wS-TzdCeN+bZ)1cDxsXAF4c!l3}`q!z9Piq2xT6tX(oD5X?` z8>38eyO31@5~hIqTbj2Ak3e9%ia1{3_*>)vBt0{J*_15Vu7cD(utt-HtH{F6fRSra z-6M@!{^xTsc*fKV4u0&C5efG9kt2TJ30G743hkJy5&DJKV`himCg<8NJN9iL5q`$h zo`P)BuKabsvHY6sJ$Y^x`mXul86)FcxLX*RABZ;w7j5lbbwTEmF!knOW|~2Jph}wI zNnb`H(W=MCnik#N=WC#(+<8SRwvDuA=?NzM6x&R1Ij|DZ!xIW=O1G@!(kORNC+f6Y z3xwY0YSFmby52SThaSMbtyFYCkchu)<1*!caC8KNQTDU#8OxtNK*Nm3r?f`-@Qgaf zX^mUsz{yWv_|<(jP7MZXjU6MeG(BADFKR^{QYh7a>~6oUNOH->qg+Wq zo+_nV5FZcDNk&g{%&fh-pcS4=mau=vC4l2kmb$5>>_^b4fR$Q0PlMz<*zO_|a_24x zxnaT1_1z0Qd(f=@%&3M3YdFQR{}~*f2h?ICaCA3#3w@DrOA}C}XX`(KcmDJJ8|YMZ zDLl`U3$%+i=K%=rRIl&@uj=4V_012a(a$YE`@dEWe&2WY4qg!Z(bnRgY3nDE2MZOZ zmLe{2G|)DX;m@VVYq3CA)3p{rFTzlqBf;j>q|!ED?lzT9U%hS0-97?^j&nXn{b8(& zzJTv{Vi1wgCJ0y@!3{@~D{@D_QBR`Z;BSN0T|cvpHf2oMrhmggE=Do_h6x>wBJcgi z(!^l?^Zx{y7=89%p%j&CV9cH-&oimY`Q{p3UGXZBmBlOM8sg*i?DASwwq3EUU^U*n z?8@A>>cjmud$zjC=M9N^Ke#KT$8?e1QIe5~1|vOEx;yhDh6SNkN3i@Wi!ow@+|&@} zN21sYL%9*5MDB)_Wv9+NNroB67Upm*TU>;#-uO0K2(t$G=Uoh_v#*uCO81l1i>(x;H(r)P#yi_rn~d89XDQ${50u$ z5k?aj;x;hM0h+*2llf;f0iUzBCfHIF1Vy`b`QTqH<0%C)VfbcAFkb0`BpVv86Bp)HDj`7 za3(jG36XxMvIZj{Obd0z>AQWR2>U#x!O%L^J*Rwmr9X1}Xc4iHyfL?5K-m6Vl0(q{ zF}rbimQYF}^TV{+Enx)L{zuq?x?cv%)n3_JX3kBPprRc@r$dSl`ph_5M%NwZaW))0 zYxSw7_97==^JwhfC0oS`DAAA{ltRslabCDL-B6n1b)y;3$d2;vpnUB&y^~(JdS$!8h~2 zO2&in1V>kt<+UMr0us7CaMkV3?M73{cc0S zaCw`B-`;F%$AS2;6QUb=mv!cgcZom6X2B*J1L^7=#|FcEuO-c zhB3-AB4n-Z(+@v>T>4o1Pd>5IRtMk&j>>y6-$tCn$>8=3_=fI){B!DT+!IVxH1+; zTz1*4?Q8Ob%ZDOH)}kRid(J_h8~Wz^AK-lC^?Fol!<^37&6l;eUFKn)49uwwkwv>M zgvDP}7U!Ri3F1Vs1BV7Bh|G}4a zacNO&=iLyZ@#2+Y zW^sV4xiQDhy_Z-_(MEGaB3Wp8>w8@S>sN83VxfA+xvV>-H>y{g|4}L|;EZChie6Q= zQ4WWW6hvz>#Z98AoO;e{+shj(rm!5=YwLK8wZ=`$5(U~7#g@lP6ctFeep_E&*J_!n zjNm%j0i)@fX8YjDyI|L;9|RvlN#@ z3n4i09R`@7K)-|cWzuE`b{>mv$In66j+&od16tDjikaO;W%J-wipcmck44G9OobNKS8srPYHaCun2m0 zTJv8A>^=0fb>{n<>ZlA0^B+zD7D0v1>C6vzlyA)^*`GYu_hP2rh*jgc7HN;9QUBRL_fL~w|$|K_`rUwHOvW;USn*$gH)yIz;rEO9>)oZGO#j2d_ z?X|vi75ToNGUoEE#!@Jou)L|L)=k7ap~?jhLR1T`JoeIjHtWUBzW>teX*lloJ1-%> z>8C{&L9tLiGq5qZ7cnvIWwvy8Fx;!kpW2}(bkdfWAi#wuwW%4UNJ0}kO9RI0OI zCCJf6YeunIgRVpR)NCwonX-f;QT3?5Z8#sKuutJu5xda8nu0oNV|~Xa;*5m~gT?l% zNo>WkAx0&m`DfI`p|AOP=I?K{dNuH&r2}1PlDRf!XGrd6=+hYK^;N%5ScqKq%eR+e zOJ=*!zDs6XxFRk8RFTp^Zg|pI3=4CVIz)jpPdeesqyzATD~(1*tje&qWFgi8nDdam zNfl^@($g{6n*d1~_z0i62=2z;f?)$m7(rCCib?1YPS zj0wv-HP(kZ0R-(}$6hvOjmPl^UF&c>4DA%hzq2YtS+VlQru8+~3xD(<3k>{GY56)n zY6n2sdmHCN>~%sy39ZnJS)w1PU&5>M)G0{_B0Ort6r)K!aTN_f6AXO}RbUpc5j& z@a~B$d8U+VUOlYO$(#t2D?lv1^9VxxrjxuI22&ICM!+|03++%8)}%Iwn$P4mqE<=aC85OrOI-wkp0jng#l_Fw;uMf($; z06YTWz6f)wU{$0vA`Iq<0zv_DXOfP*aAY0a7o`@_g~&QtD6;g30EgVbQ!ltSwclG@ z3d0(fzAwolpad6}EO69~EK>x&HvI{JEz9Np_w%kMS^bQ(FS;8wRr_%h0iIxkA~f)^ z$K}|wdH?ErXr}qro_5OKsaU_PXZHurGK8hiRzJlUhnvvk$a?8nk<666fd=Rl!%cc* zysB@wfr^SjWK66|l<^MjY=29_4yYzjYX_mQ&4bo)G|;>Q)7|4{)R7v4O&FNq&Mj*d4~nYsotm4Tj4vj`S2h$;6iHs=;~!{@V4X;+-)MP@ z!#XY7=K;UWwn%y-b-x`@V$SR3*Wv~3RChh^iDP~s8D8_i7?8Jp6ghqP#;c%=7ds@M za=PXE%4N$dA-ACy#jz=DHz(^MFOg!JR^~Uv^ewWA61!Hb$gX;&))Xa)WiL~D#9 zyavaop`k=Q9<%l~*|yJcjL)W8&##*z(VXtz3!V%0TG9@eA_{u66@{aosJ0-LV6pK)BsI5(e9*ft?AuVR{&F4V9)tDki{-*(VWB#CJwT$MnObXtF~U}{5;#VGD!6rNwGUH;#;TXT_eI=cZk&pAdsScC>SzeF^T&BJ+nS1;e05)m;p)C#vn4=J_f%%-Ey9Y*A+Jv{-3ELBgS zV?*qVdWoqHf$R6Ijf&|$QQCFVG`LgLd-n9VS49|w`=8LxM^6f8L=^)+c09LY_Ue58 z+3ve@UzMJS6*&F;zVIuec@U164-KAV+SX84%@h=q$=ux0Oo?6%y5aOt(l;ubOD1+u zx~e@ckaOl{UeEuQEqC13GRKw)O*cAS)|ke1M~E-gmsmKR3tb8-fXmTs5mbPX)IhZH z3FO+3Fyx&g;ebTY6G8er*bZ)lC1gWDn2zLaBXbL=LPQ6GgxD-zY}6PkO#Gh z-1$K*0%7{Xo(5JIA_7xjnU}4kmmJlkuSx2mqJ`LH|arT4Z?2J*@55R0T;5J9xh(Xg3jZfI6acL;QARI%x zIP9XYM5OGUbg|&@Z@cOjYu$hBrd*7DGDkc(_oR9k>eXX*@ty=>%=-{6EQImQJju(c#uP}LpFum`xV87M zx^#^=+WwHG>4->Sx-4i=fQ~>Ka|2U_;9bt2oLT3=5Cg)Nz*r3?7(}U*1PjtdQ^Q|vWPg2Wfv}4R*uc>QuF$zJfGe;@{BiyhVy*wT`|BlN zZDkt;duA&@6dV}bbe>f@>3oVJ64>1{@lEK`O5FU~XJpPTYoC+GyES;*Cqv)-wA)iF z3u4EbnVN#kZKGW64caL}&P1*YB5` zO+{%9e|OhR15eQX@Nw3({dYK9mR(rUgunUW3%d=jt#_j zx!PZ84TwmgTFkQVIY9c z?}Dhg9vtBub1+vWY;%q33zmE_lv2OpfyXk! zRn|T@8xh%L0}UlmLLss50CEL}7@&lLKiF{S-0ULhPs&((H+lQr^nF-%fV>?+6#@?r z5Zo^AbQY@c-=xSQO>*%!*!9p7@5yLaRsCM=ZI%y12cw4{q+dVa4n;V$Kh8cGZDc~P z29jl?vWNtFH8WpPIJ&?_q>8Fxinl$%rc{k95iPt6(hSZyqrXY!tN(xjoXsXDX( zgW+kr2$5te$CE*AWuBf^Yf;;kG3BX*HD#H{GnKyCGGe%Iezdi*eO8rL7I-zxf2-)C z2~X#;<@rTbaB*<+KEKp!0GT{!a-sZ;VmRsfWuIig=t%w%q?q|NE%b$ z(=V~y*JTDo#4&;>!;y>MbJ@WC%c8vVU$;y6-r{XF43FC82@2k-lY?wo6YM>Hvd{QGQU1+pQFaRdz7&Hu|q%YUc=0aG>aAN5*N8~b0J~4xl$y> zp!lFAHcKgnp2a!n5fW=aip0=c)>-AMH@OMNzt(*7IN}e2%qok zVz!F)_fv_q5nHx+8q;~GS$R`}T>*O9TnAr}KWw6&Pn?NJND)}O^qyVS z*FToR(eEU=YFO{Nd3~qw$<+;xcI|@ZJlPIhCK!eLqLcJv4c}huj~coi7y5O=R05C# zv0$Kv?|kW(HzGwRjiTF{2VY$lw~UC1?Tf16_?H}G@Pq^g74U=vR~O(>g7@Cw#*8@F zq=O9dc>L}MX{~+u{GSgpi%k*y0Y26bHjfrbcReufs`H+aRr;#a!7olk`9*kzv~5;f zA2K|C%hBFHMqiYXEeYILyzPY}#V=xAb}AdR#hr#?NI!^O27N5Aw^FC?t-(J9oL2ei~2Uxh;A-Ea23#9>#r zgY3fe2dvVgl`%BKA=Y7 zlU)L_TV?FzD;0Y~HRX3DHRRkITPoF3AkzGspo#Nj1LDFfa`P2G`@0{C0fL36zQ~gBau;#Yn{m_+sl^w<>CsNE!Y&?Fypb@Q=R0{Y(o+XdTPxEPbRl^MH z9l7q|SCnFFsOML$@R#4L zx8e(;xx}xjoWbus`6RR)JKEf|ey%u`J)onEN$aLI@=)h<>&=5T?G&DK3X2#|&J^s; zW223%Q~85b5x=4>IPoo{2xrAQuP$+S!{uVBfw#lfM3qTKt5=>MsX6cJ=x1t-kA9M| zwvdc3;#xjUjZ&1TuQ^{8Up_n3-8pQVJrlo?JEKtuxkV6vb$et+c+9Wxw*!9b)QTCm z2=};WdODN;LEx?%5IvC>QYwIzp_Hc$FSJ^Iv#_cp1ga-`m=4#10CW4Bg2kA ze)W7ckVRYDhWe#gq+Fd;^4ZT}_Vu?b*A-aXKk7DEj(@(QEwWJb^6E>~+L|Zd1dI+U znEV#Lk;f{i{Mt&pry1W&R@bwgT^+rY7>!Ib$dM3kkPfhv6}ifQtq*uU0>=fIvEhP5 zlwZgiT*^pAmObDyy<7T%1hK{NK^h2G7nY8)x1%f{=Q$W(kiDa9#s+)GKfy9&_yOeM z2!K}qrCH04R&oz%kjJA#7#gZ+lZo9C-E+m0KWMT2)6RSH!4-1QXX6r1`4rK6Lu(J7y5L?3($tP*=`c7GaBqEh2($I1#; ze~wN|QtWFA4|B`Kpc87zDR{!R&@l-br&Z~{@P#hY_B_`a5@YO=F4}2@-+Q#-W~Ibp z==;%C8dF1d*g4~7d>lQ0VsqdqTB!6$(`M^X-gCeM^gMj&dCuP5G5$=d%17h8RfRWh zs-?|-Z)7cMSn-;jLApa#AXrl?QVWUrD4o0e=pSa}`9>ZQ`*xx>hTsZFonzY!!Zt(l zRUsk6r6UPK?aYSArq}gF&m)=NkEL@*e|`PrPES%yOyH9B_)-i3;v)n{8ml#cxCZO1 zrC)G3F%g8;fzm{1l`uRNti)lD$AUqu5~ctm`6uA>4WjG7q-GCL%N!ge8OwH%Mrr^dtWFaoYc3fx_QzDTctA?g?WEh7ZCR0$&BYSqZ=p2p{~# za1Fo^+>l}j^etDU^h`P(fiVPIU<`qYVjNZ2fkxHkh zRYjP)w+sj484n++k`(p6ef2t;MW%Azj2w$g|KR|;l>D(sr4+jUm&E$gO}}^BG?_IH zETcmD%xx(pL~Oj}+k|nKQ9PAoxb#lb(>jrC>J$+_Z+Cx!uD88Osr>n?5@V5I=I;4{ zSaGk*s;@W2zx?572|k`U+hfx@s@%4)kX$Zkx6_Wq51@AAuApnPxD?!^3f?75e^ zc6852=+=9!r205xyUT0rhwhvZEo;tbY(yU|HTUS{|Dtk3P|8=w5=4WE`}^ZbUbX~` z8H6t`W9ETLX8M9tU4xD2_wdzrs4#W<;1481X-!~ZDh($ zh9k9Q;t8O{M()&L6$x@=rANa1QoWcgKoK}ckVhme#+J6pKkdYy{q*43{9?0QT8lEW z+W!&lzVro&JR*@OJI5f>gws&?nYJpMVFu;U+qL|xq^rXU5u`@r!SPdTM+_5=a?EQb zu|stXb9+m*>nN1|wr!?+uo7?Po{gNGcvf+?H$e50llQHm6&tKs7merDMwF+@)p)b1 zszxpG+Ng~fy;En`2szpX=UmJf@?`Bx!_I7MYVXMK(Ny{N$y()N$Z-1Hp*aH zwI}B^8<}&LbktaJuMyRl>}>5OsDjYO~bqm_e4E}{*WU8&)Ey%=?- zFH;Y_8{cYagIE8XiV|xOlDilyonm^_XjZmiwUs379zBykY8zAE9>MXo{#Iz`HHuT% zXpt1L!pq4O6;jq&9@>H(5)ue4Hn;r)!`aK_Y0QFFryL<3UG`D$O=Sh$dLk^oM}qYY zr>m1Q!W?hwy8jfa`k7wkmg`(Kci{8>LvG_j)TRd)&g6}VA?)h6Sb2pzXx|#guJC zt&Kb)!7#nRXMr<)7K7eF%KPC?nfD&GnP1cnwq^A?knm87s;J2WCvVb|^u!_ARY{{Y?X>V*JCM5b>DQQQt0RyBI4HfS`p zIq({kjvZ@B)az_B1OLUG?qdR7{klFxMgfGgjTQ!4R8{`95WRI#gv+-)dJ~!VJ*^rb zmB*gXsB<1F4XjtrW~3;2_IpphN!bS}Qd*j_?G;tU6r+_^tKnzLhaWV4gU^1(c=Fx- zgh*S>XO^>@Z?KwxI^2(=nQ+?_yuvoh7&w(|6F} z?PYbj6+17vHt(y!S-u!03^op6s{Y!{ul2CkI>Bl3<4}JVB<5gMcXKm^)#O?y<9al8 z{#WlpA5!n%=0@7=o7JAZrx>Cl(f8S$75<)U2Yp0GovaGvnZa%wSE|olDhB|eN~P_p zZ!alL+>Ep~7{kvtsyQ56@0=JBvETG=u?oI8*l!XPFFyQ##y{MVScr&2(^d9jW(ltA zYF}RlM$hS0u937K?z3exPqj6 zN{`lXKFlJTC9hf*Xbh$qM8Pd(Ucjm{)QA*lTQ{Q~W;Y`*<8mR;4ozvR=7@?DRQZ0)z( z_LH7#DhTx5owwXdHGyQ3U+S<-OO2De??ClIKL8J?+0BGj%l%%{M&J?J( z4DiWM1f5Z=GVm1G{Oe^wMN}i0X^d(GTep6VH^ciRghb9km{Sck=@S#>rwa%+C`Mr2 zoY2n$u!TbgTB8Q|1m8`T2QV)JO54SDtHoU%BMr^V*G70+%;Kt4PKYRCf3FD=nMkX# zQ+}ZhVX{t6dsqw-2xgFRqNQ?9=W&jS3vbs)_K+B#nwLRXd&-S`ErHm#t?H-EOiYzS z$>Z0P_|fV8%Q_$BY(B%lyR7Ye?>A1a(p1#cQTjda{1NlO-(4CjTXQjTwckc;9W0YC zp)K8d3qiJ-t?WjKjMWPwN7;r^X2p}@s(@(<3^ITjjpWS&!6QNn0!oT4Ie$X*BFi4> z)ez3tUOdRiRAm=rX?egj1!IDwlQlBYAfcbgh7r^v?4Ek}^J37pY$5*7<{GeGgb^&# z5-ex|xPkZ{!;=*MgLs!%?MD{^$PuJ+(XHDDM7DuV-%hAyJrO@H?zM?X`$=JCBEe+$ zuI1`-I88xruBA;0fL`pcITjN@d)#k%rsgTXOr0~n z^rqtTp4tjTdd?--L4bIrd`(PzZmdv`mOFXfp!>Q;rrdQ(CUm_&P4&8fn$|F7#8gw& zza#rF|7NVEZFI-9Zp@F`);Uy<{#)h5?dmBtlR|os;-_4_$F4x`cztEp!cVdi&ekIA^;Kd9&84c3eWf#E)}eU|I!rM{bou z^D5Nn7@9+w^Ko(?wK1+p)s5@-4p_`(CqN&oR z+giV#`(^c-mycJ>N*;JT!x-)g)sQ2o@N(cZ3&aK*Bs4G-R{847#i3|*o`h}8Cb#r$ z*=;WRnOjddGc)zOoKJ2uJL{~HtbW18h^fWCx=?->v=o&&6Fu_~(sXyKL1$>9AjB6*16y@Yc7@NCi$#}YZX#HD!VNe6fHQdSW zh3M;+!3izc@sDEVQOf8lG< zLzW@>K|+KR*3d?u?MATg&3n6CXm8IOH4o#f*tsg(x0V^8&H3+qdf@DW#W_R!-pd5zO)YjBq2Q$BRNYxYWNryw4cKSHV_x^BvD zgqk~5FUC7iC+u7YA86@+>I_|@C$YlK<&J-YNgOAvBBI9%=l+skn66XMJFPMs)2i_< zp2Er;JF0ec4R?BLC^rA1#eBzfJMR_F2~twmvL76 zK=RWAFe@*5NWn;g#DO8(ZE$T_bS=v?J2K1#{1W_!n9+YC*je)R{fF|)yc!hb+>{{h z@54rrsSRhjzg~c{HX451_H@hWbp`9}Ktpt@o+QXb9fhNb3xX^y%B4I?q25;vE*(y?Xz-yHP<$yt~k?nzNoe$?j-DYM(xzD5#Y`-ol|BcB11Xsdd-rV z73IgBSKIJQtj8S%`-wK3eeLUWqP{6oP=8JrDgph%_7(Bt<6Ft2;$?&t%{Ht-2Pb3G zP2IwQqoae(+t|lPCeFxtD(p#RrWf~Yz2R-l$Y|(e53767xu#wMG1k>mPdj7XK!CkZ zKFiwp@o{y3{pmQpI6JB%O;PLp(u+TMD8cDq4%G~ZG(Qd_{959zP+I9{hwfg zK=0=29bwl=5SCi2h3%pYD~ZNc*6ecjpd55w}Z8!*cu{yYJjHJ$GfFCHYd%#{2OKM z0nL!7s=VewUr}u|cZNlc8_x+V+dPu-yXc(?&EF}J(1cDREB60NDI6ShB=XI3V-mK$ z_I5P|b`w++G=L(X((R9L%JOVCH4W=b`4d`dDO_Ojl(*<2g~_-JM?3^a3JYX`G!ZF3 z37m`yQV(~Oz?Q0o{R?a%MdA;o!|wxRHw{GF$o>V$zohb;7YqFko;em}ic9$de`Vsg?#mv&a3`mtuOBee0|Avo5b@T*=1qhT zJ`5~`p|N+4uYutLy3Dx=i~><&E6S12jnS&PQMAJZ>|9sKW;diL?9{gVr!J4GSCil>Jg%zt87{dBNT5_fDNlwLN~R!2f*<4gJxU<}gIB$l0mxru=~lp(*!+ z`ySb~IvS{<&yH!#f3y` zzIZqIslE$IL-=0?1cK;b7tVAG_*?1z8K?|l5d&i0gLf<-6%F3>Evme}6x+L>zxxv_ z{9j@1!S}U(X&m!XZcpl(+Oiv-=Mtc|6E#z-TEKX5|6E3kg89y0Uw2`MCYd36yEP=C z^kfaoy`dbsL8+A6vlpbT3J$spOx+Z>vm2ZZs3@GKi_UJ`Q3p%)-TKaele@Wr)~9%` z@4`W9AGY36W1y>WH>Jc;fA^Ixtx7-yZ7TDfkz1PHIajLXoC zYBOoyp63~ttl1`Pg_OPYTRZx4SYC|Qt|mS%nXK=9Ij1J|q9c#4bIaQ>r_n)Z`tek2 zJ5waWrmwTSWG`yYA6l;P(ciuMNAL4SmJm^B-!XWA+=`Bx=qe2_QD^5(1xF5H$!wkc zt%F@AE~OgxAwOQ~;7v)|SIe;EfOF1RL$m{@L@R1bc^>N#ekX0%ZhtwH!zNAq<^n0z zB{Nz_(Ci#M)hNH*L*PU+JmhF;UCxx~94$&NC+?(~DUghwKeMByO72RG&Bs1}X?F z+@x>;nMNN-SwICXeg#2F5x@$7`vWK+S^TrCc4Wz&;H3|Q&o}OUwo}{VMGLKjuc8#(Y9uCn!5-XTa`POD!J^j zTr2g0bUQm2sEJkmDBkgfL-{!sNvPULi|e?vt=e#gzzIKC5JY2P4^S&jAD1g+;9ojn zTHckHCNW0+W)sI7tmtXDk^k4(mxeWYZfj?ri2;&8AV4NU0ttjs9O`CL!ziNy1qsMp zKrBPinwkL=1Q7%k6qQKHYL6uX(k zSQg-;Kp?f=5^3ZSeO$I~Y!`!Y0Z)XvZfw`P4Ecg{!4ZfyuSFREUvT&nn+JjR?Q;uBj z=s=+G8x^Lnn>=L(r@1DY1=B*GrhS-`K7=vF@p+fa(`ffJRoS=jm>5ztS1XNv%{w({bK~%=;^qc;60kP(E}<-FiPunXS%IU7u5RG zi`PE`@aq4Sgf!btzAJrSkUeAWc?GW^DS&UZBxmWtU0svYpDlg2vFOkb;esr0yYC;j zH{;6geS9Lf$UZ-op0Zxc&J%iJVo_gdwO^(SfT>RyzH*yZl8&+sGz>$rYBEj3QI`AD zGn(Rs0%2J|-n=6#!~(0`QF$v*`SVJ`Y0;>3`q%#0%~7maq?nBh!+qWaEYH4O#iLQ^ zBYAhUF?pt0SJH6>ToXpS13K@=_z8pqv@AA8l4DK07Phvj@UbRnyR9L$DxU!j0zpdk zKs8dEjIDfXQY%|3%&6us35FqC;+$RWD%N?dnk2AY+2-S1S_hSs7$6ycC<>e+yBWEy zvmaHwEkb2@x#WpCxxOSv^xWA)0 zeZ~h^K=L?Pt`8VsfPjGo(w~+RUy;Y{;t%iKvBv)PE15wA)y3B$32V72 zkDhF?Ld@mcmnLA6$w9`ex9^O`CuarNW)$s@G)p!Pz>Q*Pi$;=rTRW45-UR30(z}ZlM|*MJhtr2^B9ahW=UYs4Bc5Q@J_}aca^ic1 z6NGuZ(3%a-{hk_(ark(}miBN1taX*Na(CsmMf33s@`Mi~FRoeP?3h0NLKJ@4)8RLH zy`4ZSQl$k}6(aIDT!V@TpFO|JcrhzQ5)Oe7tomOA1~~s{hRVV7AON~yr%eDe!X75T zJ10B~qRc{t0KFQ$P>?gEv>N;a?}4&uAm0)QQ9LpMvP*Rde$Zo~LlmJo1JdV%rRO`y zNFLTi!~AW~5a8p=-+w9K5}5r23-@=gTo%sS$;(NKXoM%QlRx3|#;j{nR(11D%^7*!B`?Mfpz|5kA zfkp2MlJI$b1F_h_eBgwL;ivI)@Jd<^CCxMkA=!un0pK}5GcgFlk{H7V1*vc$@hL@a zoIq8ZgkFhxSwZvAta1n?h;B|^{MyOrevjRShZpNAEMv|;@BQ)O0ekAp9`g z4vXnJ|FPcbF$PO^DvoL>epFqm1pSEnD;U|q|5P$JW&qR$&+8x%mcWxIu#ksk%HYL- z`7gSr(7(1&XCAL3QR~7Tp^O1|lmJa(?sEa=2oPIz?Cb*=2b^sRgE#cF15h2aF3|tq zcemLd5qV^a)i(27$SDd^D-<*E4t_4i#`kGJU9?a*2OmVH{Yp4Ke`%6dd7~Ol;BVCU zI@nm-L0<9!Y$FqOSw1b+U`MuXM%?ZID>9bM3$V^;tn*_f?e%Rw+~S8xn&%v%csga*%^m4(=dGoXJ+1gUrh$DP@&(FqWdR>Sw?XJ=fhR@S!wpO!V5?Q&TU}C4=)n}T+t%I`*bn7eA-+ousMq>{rk)4W_9rD6;G0hA0oB-XN z`R@?}x>!aqO90Ua>>>|k=jl9Vd=pPWYe^=giqjhl0*i3nZVQhSKpO{S?4UjXI0szh zfh#ZEHy|ZDEH=`iCg9Nk85Dro+;`;(+&TbW0*d3&v-eN`n;s5Wg#Y|EM8lvmpgB`^ zaL^L9HtA{g-rD2p+tH_@jivqNva@f&zP-L@D+3{23>6`H$yo6o$uzAE90nNlOS z<+8YN#DHADwQ(v3g@NH$rwO5m0alLmK)i8IRkN?8$)BAuuT5?iOSJKi2_uR-y+oig zq@o=?UKTmBNGlSG%sgFwGDEUzeMVf_t)xi99J1Dm5Js?Y35_+6#O0tgoSY{DGs|<4 zlpM-(v0xyTl!G7XIVbe-GC|fJD+uX-ubKJK5yr3}gB%E_L^87Wj z6=gYgB>(E-sH6O21^0$GwhK;dsB=fJeARtxUDnW#quVF<4*s^+hJhurHUSqvC}jYU z<=LWbU(n;|Ri8<+gf)qREZ)8~+$@{M1Q9w8>)4XO$4B5Aj`^7%Mi>W6#15zYcqwP2 zoGi_`Hb<*ySLZ2-?VGQ@<^C zHRgAx>3O92oE?e@7yjnG)amQlvc&$tnh;j^*YcXt{y;7jIq&sUl!nZY+6_*}>|Kvu^8WXm&F))%QUwSZ7z~-OF7dY& z=(7eYY%Q&XnHF{ZOMFqEN>pB|h zw%WRR;2%ipEhS+(2~o^=?D2HLuY;aDl4DW}kVjFk9sRp$ ze)9LT7YEdE%u}^m44yZVX1V=jsi?$O@Pk(7OW>F#e>&24(d3 zqbcSV6DXaU4#6LpSZtJHMCT7r=zWp^JiJ4bo_}s&(`okFF^3F(SM)lx@cqUdfy`uV zgW8vajzRJ?C2|{c27fEeOM_07e)h%$3TID3UhF)FhDc#PyJeL{zWI@rX8G2gE5w9k z>gknYCK^pq^{lX8HZXK~$db*szY;Jn7R9_VvYel9(7>UR=)yo|KJwCT(`3{`e**yJ z))XZd_&?7g?a3zxHpLd#=5ySA-*UaQw#$Q5B3|)8f3%F} zFzOza*=YBnH-t}AR!j{LKl6<#GmS4-FZ$&6Jyl_4f~QF?s-rye^$CN`fr~bHOsp3O zG!}(2YPUM+MgZy)YgBjqx`Egb6J!xvdBJ4`?r4lX8`&O6DBVd+*^zp}t1N&>FQr9SmFD~Hj%}h1%WUYnmzb!S zcWPXAEEU;t-5yh5I4;H((C(g0RqQ4- zA3Xyt+Fd$3Mo8l_^rTmp0}FszxZYqiA8udpOaxFCxa9r<&4=#T!QKBlGLvD^WuP#F za{HPyoZjpQJ<93kn~$yDejdG}e-5bxksB(w4*z1OITiZ9FLC|-Ok{N4%x zam}V58@3T8CNJ6E{nNgMyWKd2#i=w7a=^~)4!fSg1L8uq$LiZRmwDWII#G*@3lp{B=4ZTKa!lX# z$q=adwZpyW<7HRPU0w#ujhe8f?ei1IEBKExJdk;#Lp15LrFbmTl+ExubX8RvpMGS2 zSxZU@0mo^U&y9VXn=l~oX#uq+)?xo(lma^$?BxUl|2nk*KyiA&u@NK!0)iNL8^OR0 z--!S<40;uHTv_N&q_cSkl4l)?qZd#?kpF;Q#-}IB0?7aSA3;(muz3fR?0@qpf$9tL z`urbwVYA(9_6xL=Ws71eg9db?)b4gNypu^P=`|a|?sU`;J}o$3(;0ovsIF!Eso%w6 zJ;+^W_OmvuP<*NOHNheb1ey{bkwQO8>6l^(Qgb@5HeO6wZ3ZGO8dLZOSMa`|wFe2m zFzg7TuPr_mAT`&pWW~1AXIfnQoI|Cqyv|8sNQX1m(wweZeu1#Ks{G>76=&nM zsKKjFrYYR(E`oWq-gh5={a3W5k*Vn2;q{kC$}XzrTiV8Q5FF2b8?zr`>OcH2d_hS3 z;a+L(beYzswMX#W?FCh9V{t!&jzWLh=ymH@1#PJ!!H9xKh@MY6ktw@KBumB6QvL;V z!K%b&55MLCbF_7rdx5uqaWR3&KEl3Pn!bZUXNMOrOvJjMD2Y~iR|o_MlDAxS_wc0` z7R10GU3PrArLCS$S!dW*fJ@sqA1k+C-zj`lTj_Hz=mqig8q`_u=z+*8l(!m5{e3KT zdRdyy1*Ba)QOrPgfPm6FaqoqWSEa`=d`_r-L%6aDzy-Od{EN2map+F^MVcrl^V zw(iUXGh;!uffp0D8_{V~zWD<=)*Td}VGOpIt%L-mu*v)O`kOi&;M=-(fFJ5aQov{y z%wzxUtN_4cJ$vFipp*Im_Q?5uZoGv~Ck5Z0{>KsorM5p?KGo*58Fg?a5RHyJcLt#X zHek22lSF;va;#u6TX|FhLIoDCy7|gIe3iTZ)JL22kZm>j>(xsaxh&McyB*ZlLINt& zZE09)cJ-&+IE?e&Xh(dCMMIP$GKJC-x`>hzc{Ic}4r_lhluseB>(3n9+^d%a6gvvK zuXqVC2o(2*Fol14;l>oZAy;A+{jzx$hvYlmwHI zk&#Vnv}nrfcU=qKe-^Ny#g4Jzk>Nw!gBoU*nQZDrxV**LZ78y))hhsxLC`a@2QL)4 z*inZ@YKI~STM0y`>L;D=ON+U-KB!_&E_wO<_>uwB>4SG@lq{x8n(gMoy@!1k)`j%S zk{QU7$X0Ym!_b5S+B67f_hhpflWWT?QST;fJ-*V%yRGtZFa?Lz|9Qr)jlb9;+%~?ME|7*Gcv@zGaG*(mzOQg`qB8pzCL3^kRckW9U>H;#Y7l}o}Hb=-G# zuz&L6<*V0k);N#fceWrKT z{0|u18fc&v{GoxG70Sb>bs&_79qC|S5r~qgBl5sU^*@81KnHLY@WX%t04DMPiWso% z)T!j5CZ{Lz=sY_Ck>}zy=%@~Jd34T7kN|IH_0-!cfph`D{r`*EZT4XWUqHjFwR6*@ z3#|Jf?yDYYT_-xqbW}+^PMp{fw>r(gJ!z=_c~^+ft;X@}9}n#dy!hj&VQlu`Z)AS9HzMbcwa~ zk=b;CZYO20pO}Hd815Tb29lPU!^=%_uMX#A3dWWm+dpJJuNuJcuuo~YvDU%Y^) z_7SW+L1xd9_x4#hn-~toWE0C!`#i_|Mv$sWW@l$fCZ)9k*MzhnJ_x0AZmKRWq7zT} zWbe6LRD?CW)36Sy!Cd1B1wJE$<)~VGSukeA$@t25EW78$oN=Bli|QNX?jdW4tJGvZ z{XgrM3QaR?Ty&Ki#@q7uhPC6A_iafl`<(~_t2jry`9AU9)F*<-v zM-5fDjzyKC{^{E~;A^P%0N!#U1^h@Z@et735iDp%A_wR0< zZhA2&kjU#VF%idfTrxyQ$kZQZ_+k4m1`(I^(go(91x zup~Lx)rx{Qb{Gi$BAGPoCoYhV%54gGx0XA!-Cfp{efYtAdJ5|716Mj4Wo$P!qYTjpVMz5Q4n?#Nb-6<-1(OB8*ttwiGNkNqr@AmRUAlbWq{W64q0LmJO zZV%yM`U>n&DEV|@9nqb`sdEpXQ;qd3Q&g*!0+-BbG!&7fqnH!@M)mjrGF_Bea+2)9# z7A~=5_Io$-))WiAr~Go}g)tGcxW24c*1M|0%bE84zRHnYt`+1zmM3}J45(4`!SX>u zie?AXoF34TilH1}DR!!QZ@T$W9&`i`VPrv+ZI6!x{>RCRD7}@oew+PMvH%Q`fD5sX zk9`76d%yxw$3cU6MRPaUOS7XM%tV7o0y-;q&;>!d3S4=x^b@o|Sa|~0SMcaw8;6)^ zW4iSM6r3J&^G4D9NE~lqiAPPl{6FLnS07$+6Vek*G8av(+Y| ztapQ4y(EmP(v)N%Z1NYgNb|PF?>er_SUF<{&dTRYtqvs`U&u!*d6#1)N<`iDF!AVy z@lfIDwcA0`!KD8CLF^pUsW3+&U;JXG3;y!aPr_v!`Ti#!dnYlw|9hQDr#KOeMQplvzu1s2=JKUWR_a681Y*q?5I3v}K~??Z_5X9Dbd{QTN4< zi`1z%%UdG}oJTSSw$WAodE>RZ!sTOA?-pIs7~M(SV0pW-^kSqFrq{CaVPA;4{@nU! cTRZzIk*DOVYiL;*9GQ16v{=z8A|Mw17r7LDU@x*{LLKlPgT`?bA4&Mr<&i;x_s97=&8 z>fd6Xj@}#WZP|_{hBN^b1b*u`3?u-4)Cb=o_{;JkYKovnx~Ohucz8J8h)Xoik~hm$ zw8*2bE!4EztLs#3z}j!*T5956ZpuDr>3!HK=(tPB36HJSUXgWvv5lJ(n!>|*;o)^5 zNvF4^or%mi8@0PFoYx!6ZBNMUOy*roExMFh+#Oyw1Ah_xrFC`Sk9pxUb>TS&uJrcS zwYRr-cX#uS^c5ZLFFi4IsBYwF<7idO4PNi-nlqCP?YA1+r&=!DKGQYR(R=s8)w$l8 z-b;P=dj=oW&HUZ_`tR4hyuWAazz@U2!;_Pf{bNsNW@a8fd^kKYKYHuwjp=7ocVFIl zusHYl&CK63PZr+K{0+X%Jb(Ut{`rT+#l>eYKfYM}^!EMN4KhtQH8r^XFPSFLhlkInj0HeD7uNtAppfd-iP_7`jn8vVUyi_K}A8w}tONEPmvD{<83M!LQ#Q{ht5l@BV*m z)UNJ}#E2+Zcj-T^&chX0NMnpc&lLvg2K45we>UQ;H0U#(5Srgek*jtv{*?2?c&DmP z8RMvk#=$hI@g&0`p%0Sq2Y>(RPOhZwdKRv&TJ^>FVZ9Xmg{f(`=?0Iu?94I4m-SV- ztRj3aI&!)$h+Y5a=&X+0Y4yLo8cp2>p0m3*olHA~NiHoV1l*GC*uJ53@)YMbK}Z*i z4f3}z`q^}1PHgV9fET*?&y6oO^#?_x6{5byw~ijxEI4cZrN!m;ag>^nL1kj(OdET@ zzJC+li?BA^TXWy9A0y@)YOs=ThTDBd1E0Mwt`E@nug)v*y71&K-TV2anzrIU{!C2F zn4$ixZyEgV_i^paAWn9#)`m+z%G|gze$ZI7^6xUo8OE#k2c9_HxLvE5?d?BuEL#wr zSZ!k?Z5kYOCsTbgo8&4TVoOZMRt2e=42BevcQvtj+C2%Od)30{CS@&hO9ec2*AA%~ zy4pZ}`%QWes5x3qmk;h|p{pJKwltF1ASmGS*COhGeYkhMzB?AL0m-vn7EA-J+cYGK zgKHclJ?g)`FkPdr&?jEp#odbHgf>kcD$~AgE3}3gYA+zXwa-D#(jm=8E;(D^20@Ub zFd$PL7&5Fzi#{5@FXie$9%j80O-G9vUFc9tyHY!J80wrFC$5+Mh-uz@W!fIvls#W0 z%o2hGa-%M0XEk*^U}Nfg$LGdnsOk#neL>(qS`u$vik6$OJS}oz!faE6^Zn4!m`jt< zd$qdecy5NR(^Z>BWsJMHgQpH>?p2iy{Y&0P9P^8-$i)v+_y+WEBs~$Lw0yOVs9WuU z{=+`Xs&T3k4!@x+#iA8Be>WaHPTB^!?K@y|P$IBZTO$FjcT;%%RZ2qhL3i#OX;C$Q zRPCoqw?d&!X7dtq>%7ax1`8-zHU}9^ZrG^;Z&Xf&ko)$p6qZ(kVEZ~TLeib$z~Y}( z1L8bNCWHRQCC}+ycfEKi?4*awy&d*d$q&og{)LzQ)7RjVSioOcRIk(d$Kj{^&KJKu z%=q>Bs%-S1-8cl!5`ADqZKE(%RQ{v2M`s#xCK@z5#beCg77vD}CERGVxa14{!{ zFdMO#P3@kEwB|e+rHJ0C8Ib8I&N19d#f5zvAWq|@G~S&MkBj7y2Sy8eqC#+4yxLM$ zRzXoI+Q~#UPmS^k?_6p(*qWG2Z3`Cko2Zq&G&*dU{%LP8u1@|s(@7Th6zf*cA{N`^ zn)Q4t=IpB@zhYgteDJ9xb*N6NmN{IYo+HY|)l-CBM(s$SOL^|~s&Zqj;J{Fs(tY*n zS_)%Y0iVk&ChFDEsPFqo2{MFSAZI8K>>~m7RIFA8SV_|KY_df@WercmcCU_Ou|8`* z-J{&f`|ujyiXZ$c>^B{AT(M6LIZda#TFsKGvA`-J(JI;4rxOl0n+tQTL<6$B#ARukDQB71x z-uS9(TC~s=5AArA)`T;I8}3fWq@&vJ*%=jhP>M(k4#r#q59uPx8wXCbsHbw#jW719 zk|Hv{7Ba8Fg7LS46In|kMFu-a>f_sY|EJQ{7UyS|?i&++>>pF2o344Oiv zl@tpWFpi^mw0Jd~&A!jCn`h$%C@0gNe9e5rQ$tZ?&F(H9{V0{qrsAODZ%v^#WOGX| zY2F4(<#l;Q3Fe&UP`;=HPJ32ewByXfOPpupRc@DJo#iNuT&ByV7xIFcF9M1O=^xbB zkQW!A#2Ul;9?xghO>WQnD(bIPT zZ3s1a!>1+ya9{rizyW?D^mpHJ1al9>$D%Dyvcq^NW_0ab>qQF*v;;|?O%d24 zNXazCb0o?#V>u|}400-@RBqUzk#VT0T&F`TL%V}ePU|qrl;dFZ$}JQ)gP9D;E#fC8 zEokawlIkQ~UP`59?#0Vji?83jefR#uPai+MH_@Vf=25kt+v|x!DEY6C>8Qx*Jt)n&K8su-5iv4H-8O4))66M$ookirg_b*~{mzG4No5h~O>_qyL$wa7 zJm#=Y{#!wawkuQk;DS1;KuStDb;o?*C!u1<-69slb?ekrCfLVTIPN4wxH7~>HSFuM z7jYFq5}6vG`&H1LO#i-UXl|6;rsD8!X1wRZ+k0&fCv8G%8F$6^U6}3*lYCn==pWOs zQ07A;KlE9H`z3T^N|DUzFt?MQyMpoG@uv(KKrG0175=16vK7p8!OWwsR9`L`O5VCJ3tKJzS3PAwh~R?7=#2O4O-*L4%%GS~0)9fE{!-cT-@ ziu62>5q5tN!&1V}8~@BfrAA9-H$qa%AukmUp5|dJ z6e(DL(o0)Kd)o$mb?vCr@XYJEeA-%@sKDs$vXG0!4h*_jC=*oM+?A4~D#xAjB316N ztR*tk?mFpboNy&(NIi8VWuV7gj56fjI7B3&%-yv(VpCsrQE$9CUTE7avA-67i+t)a z0V%ADRrl7;b>1sM3S=+MJo_TDOGmwnnU2>SvpZK<$Qb4DHQ2wMS7@o?_W^r*9wpXJ zHN(t?%%7@vW9nv3HJ=X-A8Uvdnl1G`HRKY_ac{#HHD;9@s6m&7#*5nM9%hpIP{!&7 zqImrFyQQ>hF0Yoc|0~zn_}q`zxB_Cz?pIQC~7 z=H+@@Z8WhEHCT~#ukGizbLZ_vR!u==uz6X~T0RQVYN zB@Dy^HN#*ut^(q%QyoC!O`q+W0YJQP4cWp^02U|sa}mfl1cD1MKRyR57>3}l|G9#} z6gCU$M>T9g93&QMA;h_dMDT&#xTf&TqeMGsC`g{}_=ktY<8btsH9zKVfIYFhOD2 z3#?)(-SIV<1J4Ap@s6Rn=y~qMh#^Ck=K{TcE{ofFvHQ5H+QgNk8$zWC_SG6U8?=>X zxqpf{78K}VQl%OQgSlf3{3&>cRV*oE8QJRk+!3Wunp=OR#%rI~*)>JYWn5ogF=~f? zr;Lf6JGUk5Y46{NeeDp?!9&NOHb+IW=qtCZ< zy3Ox|-t&A>$q1LzjjqoeFLYZu?8EhCea*9=Ke#)u-?-(DB9}3t)Er}2)Rl9pgvai8 zh}E`TxsZ0CUB#UgB&)>f==QDI!nt$f&0qhQg5$F(j%w>55ZrBcEE`W0i zSPwgPo!haiZD(F*3hxphbG`eH4FI%(MZCO)CmY&sftd%~1OPSIO}GXx;>++N{*k|k z7l2;?#vTA1!ug)Q`0)JIC;r&`g3vxN_Wsis_|ExMap7)Y{%Oyeq5Kpzo0F}2pLUW@ z%hMJrtH>yu(lWw`?^s&UqrMxrNRKRQ{zww$;Mv9*kkXz+K@N&-E|j5PxKk!$%R1_g zP{{*3DI8%hGaW@~MUSd*)2vXH=5y5 z#n?HG46ON7vqDCUmxZC;T^Cgjx@WyEE{b&PM<=B)e>QV2O!cj^o~*QnR|rSw&d_eEv;=R^Vj*aa^+HJau&zVXw|89^-#_fis2t@` zbJh;a&pR-q2TL6;8R7nwyeV=&yU*hK)ZquA2175J;sX~5nAK|-9)O7SK&gI*p}c7h z@WJ@%qe#~g_QAj=HgPWlqt7;=5-`Da;WaDLV@qO7Nb>2esjXlQ0|zWFyCVT0vG8KX zzHYFCkpT$SaM?*1k4GC}RtVGwyo1~MJGg5W!6UG?03LyhH9R?g<2K*C;_u*pP{McL z!MIw3tPDW=Qaj3aWB|IO&Tb@t0Vts|7d7Z+s5W>nH!WtQ1|{2~uMzez9-X+o#WK*8 zksL(|!I*i`QF%t$;W|XDl&6?Si9rg>jgy>_dK{4Mz=%B5_vPv5yUkGoA>F9|FaeWBM@1>qiTkH z3F5moB;NMiTun?`l?)Wj)o}~2B?b38{_-fdUwl)V=d8vPXylB-pa7Phm`&Ra>3XQ` zmdei7%_|5;rRwcVG|Y?kP>NGHlr5LKcb%@Zq(a7tM15tV#HnW3{_J$H(A5mQaM=hS zjL*8gxoaoZh40(ZVDCO+GiY7)=90kuq6hdQ5`+}oH;dj|+Z8)v{r(gTH-3K3~SACSxmH`S^NdIE_SJ$q# zTPOTt{Ae7mecNf7C;F_2JNYN^loY1R-d9b|cu5k^CS3i|v2L;pD?c%JK(R(C?zteH zn^dNxsmUH2YHw1J@b%$j&@bvM2WKhYho2e%paU3xi0_gn zVX%j|1igG^YrY0{Sekqc&vIl30}bLD0!UvqGW-JKP65*eEa2^#@B&WEzwmEj7$JSg z*gMg3V`c2YzRR+y4={Ljhfv1{22{ajcPq!vpW%^u$BvahYlKbwUTPKt^Ox^LzIHA$6WU>9m`Pw5M=-^#! zW`vK*ZewLdHM+m4vZ#dGdNY|wt(|n?EhxlP1~+NeDwIqkMmC#o;`o@+)P_p z{bjUS9i;efD}fXBIe>O8Qt8(K6Apy`I@1A_WU~e8_HhqTYYr-k_obG;oEqCFp~#Lr zjrcBz1{phWCA3=JctLPn><{;g5KHR09W#M-0;<@#6<5s^*pZ#-Oqm%Y83r@$#yXq% z8rU>+&@M|rv9+rA>kIChaNySu$xtQWTr-IPNc{@!epGp|>sC^R*3#aU83SIuyqwRlefhbB1%O51Fx z-6G1As^n6V!m33WWyd>&Hi54Lti|VAl`KKH&NR2Dq|%fg1zlFW9>P zeaO;Xas8@WVK-)l1oB-!*opxg7ii!A7=Q1;_yfXYwfDC|0{%x-Fidv;2m>l)&2<$QOA zcvQM8FA8N`>b6Ex5E9k(G6Yje@0f=b{g4MkMTOpsn0?M`ObpDso2|9Pw~1F?%dnJ6 zAzsf=+YK=$Lo}zFW;Ph_#>C8RkWJBg5^N@i71zA_EX4mUY`lE_^7ZFme*NZQ&16{o zX1_*v=>ErB!a_gj{8iSy^QlUwu;{_Y_RMx}9Yumj_3YASb<~d?(B9Az zIA-ErD5(+J`Nt`0377CU=bIEoe2Z9Pn;JRfe0E!N~C}Na&yRovLN4t(!tbt&@hi`suQvM z@dT4moAQDEmOWDgvafGbJ=tov?pCla3}&eioJiNla&n!pxNRG*bnUD@R9X~IC?Sed z`U6$VqkkdatIgqEcMOlzuUkBc6G36QbFLlN#ab?9uhJZb0D8>t(Bm)MT>yHDOgQlb zdlq4OfaW10mp|-a!)5)l$qdv6ylr8h8D@IGZ~;LlV0yr0M*P2=1HHg!UI{c2wF^s- zCSU{t333ytUEl@6o(tasyngd3!t|Dv$6Nl+{eXaO@$C}X`||TYLdhkvM~K(Gdvg?? zcSq1r+kEw0w69aOmyz|ERO_MCEBYOln=Cf0d)sy3h1uNm)Muksks&F13M7*>ww{ba zF56fv2%D0ZClyOAOS2M=MQ=QuAQ=m7uZq{J)~$=T#72mjH^m!lfD}y6C79EWU%cFV z~yOSJzYZ)gitun%kR*u zvLcHS)M!5)xVe?)EFjI5dwQZFDatk{ z(!&qOw5Ljz$Vu@x$Aizr;+GqWRVK+2A|&B%@g>H_T8xU3FX=fZ|F%?3s+j}=>Umy%`CEEZa4lLN$@4g_$%4%4>HUa%gfm5%4;lw3fa zVC#L_hFOD6Ly_tYffpNp9FVwtBYSZ3&b)^w4yVW@WpdP&beY-wfZN`pIFuYHq*A(3 zey84Hc3`yPF;9z~kVLg-)iz9{2VrN!X*bO_Ytb}9{<;iJVE*G&yHwPvm_&pMU`h4kSgX&c(cT6H9JRv|R% zC4Np|La4Knd$zDr>$zQsn}WSyN~2NG^7nFo4w%mH9|(J#VMg{#m$u6 zC7+>QAdE(9POX)FCKzwE8hP3f4cK~4d};^06@oDrc+0DY94u!&0I53!^u*eYN5OJk z@m74J8$h0hn0dfk-p&`b$f!fu9q4o*Q3n`xOZ&9}w)BoQA*mYN+CT_i?=UQ9M{Yg^ zIR`M7Z{K@0b02Y7-U4=qEZ3K>KfnF(KL%^xwFMlh!N^N=Jri(luGN>7F0I*qra}%? zfhv5=RJ1zjANB4=jN$M(Gt2qJYnG2Nrn`JiiDQLs3XVC)1hb3gDV@};oO18PNY+QLL!Y7=0bfzd7~dxp8(QSDn4eA9 z=d3>^#lhdeu8B!ov}vbg3HdonS3d0;&Q-Q@2(}sBroP$MIA*bwVkdxlq)J~)klooo znbTnJ$|Z)>J96nnUO;z9KUaVlS;t$#KDc7a$PA@kuhX&#&EDTPHIrHN~E`6u}Xf>k{o9| zY$Pp&tG~{)7zL!xea*QN1L`X`V_B4t+`P`hdI=jY-ZfC3RTolro}p4M?S5WueUT^h zKq0LnUqMw&o=yq5?Sfau$*-Yw-*$1Vl^1xT-&TgHmlxR^IE337tWsX7L{<)D#jj%( z<7KM-b#^!i2?`OdU8!aHwvIYRy38rcN7hCii^clee)Z0h>Y6lT(+z6JrN|U%CeP1d zB+Fd&!$-f0d^;&3db)y~(C$-g6+B(4Q2vVty3sUQ^lDw59Rx}GNn6|*J5`F0!==V< zcs3$66(`D89e8F(A{0Nk`gGpMUO?myxvUGv&AOq!QLp*iRH(tpRdCY)G|qM@wh&NH z!|}sgL_;W9<|DBMh;TuHZF$Tc1QDA3CZJtm^#Fhds%ybXEr@W1ftJ4gHl^xm`;ZB?v192krK=tKf0D?VbQAM zmP?#WgytvQKnVeTuU^reUWlCtWF5@OO@ zxwcz{#YsUyoYoEdMfca@;;a)ywB4L!I7yz-PoLVzawUBv-j(%j%b5xE#=Wx*&Mm;n znwL&Mw^0#NiuF(2ITqXelv?aLnKs;f+kL9m<2CDPjjX*@=QVwg*2s9E zSgRT8yR!-fg@h$e@+uz9Y#cqhCPgoc({f9A+LEl_U+NQFgO}@|1@_2rbIU}N*g>_% z)czd8er+?s`RdLFWw(TSZojPCs?1g$K+X<85B5s{=0IQz6f0P&uw3PLC1JF=!%hi6 z8`!A!a9UBt4zGbHTWsSd&Z)ozSgs<01s`@D0Cpg-1tTu23?6ZyJb-8hFyE@0Zvc-N z01n=zuv-T=AVEoG@CMu*SZX&ehqSOy_kZD(AdC*sxuwp)zb#b&yYy>w^3Df(vbq_9 z!QzEg7fxKr{51= zwv8)wM;g25RcRU;*-5K0;hTm;q_B4qXH)&8G>XPHGZa8fmxb*;C!D)CrKWsk8Mv` zjW#vVPO*nfmh9m)#3%vTtddo}>JNn)pr5;(kRib=(+e&M0N8<@3W8amNv)d^HW^>j?8Fq?1?^~a((Qy)E;*T?JNMWd zP{?YQ&6Hgl4&xj#t6C;0PI$l`wM)C%N>?Y;f!W!6#nGaZ^up1)Q|ah!55g|JBl^-< z8M?dqX9!I_V%Ir-d#iAVi9C)Bp+*I>)?Pf(3kh9+OqS~u#b>IHdO~ZM%D<$cwh5dm zj&lF10||^{13q?4MQ)eKRtjf_Z_PO$f-Np1Dyeg-Q5pq>{*d~dw#l=BY@B*S6Nf@U z*-+8%X}s>|BROkj@5T2UQ{<%-sG5OY`9AliEf|S~@?N1@5Za-DIV0qC?~XF=cN%%X zPOjTR{C6yex>a~M!Xd#rKWAr&0uw)HS^aa1aN*hl)a|DJ3uly2RT-InTnMAjUy2vx9CK^tY+4~9_&?6?)7il7V*{*lQB2mgGnFbVgz zZ{LFpQT!+tF+`SJIMCJpxBAKdMxrhW1sG)!jR$YKJ*mM!knqNrjng058E#ppM9u@0 z31fZJ{j_#TS!8XrRN+XO6!=+aD5#s4EOoG*jdk@79(T}JkWqD(;h?l?t>~m=4ab~h zp;|NCE{Ne!v@80UMi10#uhdgh8P}ukKp8!5F1SnF%t3D#_RNj#N~TV2Dcmz!aw>){ zriR9L`m(@bKI1W$oRDs2nC30JOK|78X?2#ZVD?!vbMl-*DNZzhE&9Ri`3?HxLkyMN z=bW;ETu}qVM3-tWI~0VbDV4>%OQd{mTbHeByf)J>euLXhKfBEP+mE^4 zyJVyHK9bhB_eg0?&y-S6f41Ykd`+~Zh)9`|)<`l&Z2Oc}*y&4vPPGb0#h0rd%(8BhUQ_WKZ*4Y76soIt0OFFmV(=>br* z)FXjYg;sD;0Eel$otedm1VEfMn3)}{9X`Srogmf%Dq!`ZL{tD^W=p=uCM}lLkr0(m_X3NK&)VUn^bh&_;=LY^5(I9Xjb^O{clkq}Mw!)o~DtXyx3NDAej; zBAQNhR!djzwwJFJ?sTFEL4pIuT3Ym0Vl67fO)gQXUbPly;kGBeq|z)r7OmrcBt7}0 zjyOt0E!$nE_Cu7p(QkHE=GG^srqm#X{YuZoZYR~8LpB~>aB!wtIB3i#tn+qG7f0Q+Y0?^UKw0V*SW|fV zdzouOSc_$}+*p>4hHl?5E!NI;BP-Tr-DaQ?s-rY0lE?peZ<26s}C3$psop@o$xzJON~vwq6Cf2Yom{Ws2rJu zoeTs^;G|@w8HZ@ee?!r#>9o2T{Cx+W#wCrXAL9HcKQIwb+Wshpc2IW0+b}0#2`Rf_DC|SDQ9tgGH%S4%C>`6bPa75FCum^jF8NWxyV>aO$`iO)Feh=mv z=?K|FV~>)h5k*;9H=l+{APsv^QZTPW6J$3UD+-AQHW}9s3rT24de_8@*zD6amY=l! zQX8VE#PF@)WIZ3zSEU+C{Yj{MDyr0?DU~J_BA&a>&hD?Q*BaNkZj1!Xw;4OEc)$+{ zo+2Uf%{LUJ=Y;l689(zfA&To6UrCe_7bmGD&2}C16fVqXXpN?^<7UMZ?0hT8UiLX? zETyA1;Nz>>efhNAI{wsnfilrOw8d=%wfsP;lBVC{)EDT1A>mQbAS@q-RI{?aGeq`C4P%-rNRcc zd-+#Nt(RtCxLjWD6~UqqF(4Lz!4LKsFurE)!>366I@?dL-hBS20r8KMqyKchW}7!{ z*FDvo?79iMiatDr{t$i3c_QUs^Ue3TQt5`7eb>zUuh^bU`G7V}fv~$GO;V(+b42nZ zl?Aqt&8-Dfq)Q?hCQN%(4$A20Q9T(6d77#)N?5hd)zU;)&y$*R_MD@6+?FDD;S}L+ zM`BK=TMlZ_-Xc9k{#ySHJMh7dal6P-HCMt*5H-#vr;t6UeZo`=p%hZ3o)+C+55>V- zdY#OPkd8txb{AUOl{0;G|LOwx{s|?Bea#e?FEn z86+7hE5AeGA++v(VhRPj-4ZJ(MKTC|{$*TkkR*IC*L!X-xv)ersxXn=W|Ph9-MN$i zp}}WSUlj@j#sP^B5JAm!AmU^gORZbLsX^-&;W_+a^4+8Y>uKfKV8f0&q;-pU2cYH% z+<1`vfTrzo@B`12?;@^cX*~geoaGmNz+wWnD1VZ`nIpI~SYkVTDfeXI1F#HMx6Xe4 z<-Z&otTyDkH>FwYG$y*5?tuKb_2ciA9m%GAJw~f(QPv}PjfkNhVtOo=ASWc?v?edL*oON8Vn)YCzFVvo<~p<19IclTsfieo zz^(CdN+5bK;)&_x&A08RZ7ZP3;}Y%tgc|}>&7U8Yqflbm6#+WNeI{A;#i&>l>9HC$ z0~t9f3@#F1>$_@tz~J~{2^_#x64l)$1($JPe1L>-*;QIPiv$n>#cUh@O1IDxKxcVv zuLWHQfDFKZ`DN^OV3>mfESMgMrG)em57%EuMh8NF!RSEzB!CP=XCa3Hz_>&XQ21^+ z{|4phdst`jqv(~n@ozfoAIrvLh&qH`d7q&#%1^v(p3F+RjrcbzKzi_Lmk8ip=R)4iT1r}|wKV#o~9jdrUVV43C#J8s zKRG;`XQom*Q9+|XSz<2i&JZqUPywAeTd|`q8*i&F_Q1x5@Mc0>-N>tzTUJ+s6~;>0Wq?Zs{~XWBeI+u9oENaL2^6< z6BZkg8>ORmn*ccY1cZN}1e*GMNdyjxER7Cm;C&z&@#|M@K4IpNr@{q;JdGMU*^|CGVqDMKwE>K}c{Ud3Tg@tZ@P+Q|Vo-Rs!@eN%~8A#Et}SvLGbv z;O){b!WEEXn#|kNoo?dTTlXDevqfyNRMV~TE?j{;GB!@Lb&MO_O46DrOuPhObn5^6eL(|7o68O2AUB!BCo!|!sRJ2Gr%PgOf>j+YyT#5K$GAo0RP)$zoVgs625m3Qg-O(87K%)~Nv5vUW+ffZQL% zVf=_<59}D5=Pfro3t=tnRE(G^h+~W}4IqS(hypB=B`V4V`9uep8hiF%1}^dUQwqKW z2FnBv!uZPs$z4Ie1PQ``sRHa`G`);AL0!uUjXx$_rYmq z@!YJ;tqQ?myC<`_jH`|FAs8J>uo8|C+jD%YQIcNW4y`2pCJ#$G-P%Jh$^48Pd5b`S zJ24{Ul8Z?!xSJ+PEA_i-CNToc6s1X2jq{9khb9Za0MNRQ-ZKj;FQq$ktuLW5Qi5zMg&O~ z;2a=N0J;{8jTml6-k~eJ3UK8L43a^xN>(Cyq-wr=g9ru&{DcBr30d}Y!8ZARdWghT z%TC+>G%Z$U#<3|gMPz1p*HX~eo9@EfL;=+&=+`#iW-|LiG+?2#YyHcfS-Gl-q-iP6Xl|F9sWEYV=+)Q$C9!1*e=+jT!YZmO(?3q?$ugF&JOzB%?z@F^~`a zDRki=vBk&mh0=Zs4!vGYv(tz6LYr3~qpnF5Qs;GL*A%0I)Kw|fHt3SmW|FfNUDY;R z%q}zU&ZnHb!CVn?%)yytZTn*a_SLtkTwD1|hJQ1fr9nJ4Mx_ELytVa}pO97nSd;*7sb+Ig}wb7$cg?au$i4VC#c#%<^eRF#rePp-4j# z@jc*-lkfd+jA_^m*CSiP_?HQM-vg+X3qY-a&4Sb;fs!TjB_187)aGkILj%R>ch9sX4nm@CLV!BQ};Wsf9Bh!XJJ9fmM-Z5R|P5txF4|b3T~T+;ghPBdxB*vf9aSM$tgjhc16Yf z+sXlR1rQPCbsI^;xl8(mwOPpK=jYX+^W$HeZvL<>)j}+_dEdiSCE2QGF{O->pL=M_ri-W1gncf&vO%ldiIH#EA+mqNJ>$=joKR3Tm8z zhkgpAc3dd#jQg7uz2hm8o-%RR2Zwuuh$ot+gy&JF%4XqT>(1Ba7D}6?MyBS7x=N7# z#rW94j=p({uAyFOj1Mg?GQaw=x@&{Y)DT_Z_t$M%YE?yYtap!IGoAaD(qfc_*di3M zF>!luQuOq1jhaw;10XKkmb*6Q6Lt$vkU40?mdqKcf4$8!Bb# z1#@nwjfiqW|GA=^0h)}K(FD4SfW071S;R{Nd5{5L1cSVrpFILQ4Hi6r(*pJaY<$3J z0egwegp1k0aRq7^Ifw!-8q!)s^2X(BC|C-wB;D{`%73%aR_;=eqhwHAM4s>YKhRpv z#r~!hG|i!H1i^JmYr@OwbdLvZsfC}?HJ&AQHPSX{y+}YW-AWA#(FZQfu(Jbvo#9;mXc+S|=a@ zoy!~PRK?^0xIyM=KH)(l3QK9;yk%#ec(UeJdaNkpo>ZI{8lhzMzJF4+Dkq6A_F9*0yebkV;oFH=Or(hwEI{Cjl=cXb?#;XW1yF>6M zH}~op==dddspZrG>aw-kW<6U>*jKx}cadADa$pbXZf-6`nB%Ts{vlW%yahGSYk)}V zt=Dy{NJK*vo0Tv-!J?YRrmd%7Fx}NV*i&iq8?Y!}Y^hEC0@_);Dd^%aHMf0v;t3L^ znZZAYjtU72OKjzO=R6Wp*O-)Ukj|1ZFAB#@m9M{l!&==`z9OynhLe~yp}nk+lQmVb zDr{8dw{}eVm;w(^iSy5mk#i@c`>*yx5isFEO$=FUNZ1H!6t1D5w*wyF)hIM_zvMW5wDBL- zhNMGbuk(=!b-;2R)K{_Q+*~whC#Rx{>yq7_KJ;uk*F2$ot#P|eqsO%e*!aHYn{oLI z)Lq%GR`Nj@{hT6}wVp0>@2Ur%a?B};#>cms;@yZF?P@oM*U z&<{hW%qWs_ruY8%(*PL!qooy`e!=~2D$~|ewW`IK^zzi_BB^=K*-VP=i&5gDk1~$* znR>i>g0Kve4(J- zi4?n3n;|>390)DjDqdE0N~>H>ir~#+s7pfrnTa;8Xw`M7bn}myukm-@opBMJn5Iib zKyF9k?>gv{uA|B~#}D<=sy$Dui>@mp^N8H_`=qI!%)<@>ZE~2XO(RFSZcf_II?yKamGP`+vWa&nzIrUY?2b}X$-HTdGcDvsuuk$HgkA8Z8FUtG^vc0uYL%&*jwM zV2ns(t1InXxG3km8#%_O$Bmx2nbdL3g-#*qjDWuDt*P77@fswp89P#tg2^;BhERNq z9v!1FMZ+eE-&RN>-lofkqxGigA`IqQj1}N$YLw_KBR-D8a^4`*2yIp^q+nDs6D^F_Oy9ZA+T3Bgv!QRO=*U_2*UE zOV3)EW1MU(G~YmeR=InRl$nMv=FKl|Qo=iU&HDSQ zAy0Pzbq|LKba*o&w@X0LgW&}#IY7}bU97Kus3@i}Xz73iY(`kNfpi-Xa=74Hac!j_ zfhc-dwslN3onNjS^3T-~*~SkJmTxtYSBm(zn#jdE*opu7P{+Rk4g3-|d^jxfRaX+O znSVxd3S-ld51x+k9c}g%f7n)$`pGxqS!Z%s6VU^5JgGoQh`Dhw2c7K1i z&Vz1LvfV@hjTX-=4=@%D!dC`t4%e;rQw8?#dZQSXmh}ojvgYU5X7V_q=7r@ml5>XY zkwZ)~MNmtrAKJF1Y(NtgE@d{L5d&TBr(@3yYK03M4^e$YriL`-l}E?;7fd^}
P;R~1Vkduv0zO)Hr?cgyUMj5335xEJ`GUmI>YTTozuK6-?RbI8iNFizR_$gq60JUVK$?0F z+dx|Olek9q_O;2p=CKPFFOJyv-@PlnbYzGB8hrYfm(qWj)9Hrr>#o&+Pe|~1QViUf-H1A2)=-`Qqu3h7(J~(>nA|Ya%edcJd@xM)|2QuDzqe-pe;SvqVOW$b8K8bxvq?j- zzyLMqvu!-p&7gHJz$JIHDG8U_7q|p?v%f#+)O8oQq_2%zB4Y?}$q)|5s4Z;jlw@Tp zCCZe15gZ{?67EZ_Y?jggxvNuZk=f;Z$q6llFX><#cFQCH@!UECKq41g>&8)AAQXE{ zo)sGFCP7~t&clPeH;9$Ru_N@p+R)J(>=uz{sfwj#U` zBJaXr<_ecunUj{KY_PENgPO6nTy;ST_X%Tb%pKiXc9D=?=Fq*qpY?!Giqp{j^ z1#Bat*LQ<|QGyg4J{+ZuOxpuqwk@$HgTwi)Nx024D|kzD=mGC!skWBPL3#1}*irdS z`1s)Bj|EEVe>j5b)YMYY5RDa_`OWk6+(ipzS~qH zxg1cYBoDeIvyCI(Jmawn9f-`VidQVmbFMUwVNx-(s7zhBS<5)Wl({8BP&C}uOM~9u zU?5nYkGHYi#ULr_YayMH>y>Zen{Ap)eRRTEK}rIC z>wAv-mf5G=&VO$vZoRCNLC-Lp=)+^+yO+IEz#90+h~C-dgziz&%jJpMQ~F=EJbv#K zBWhr;iOqgQa1*z_*Qt4}Kr2{HUj@5-_e{Upeuq#LVU2y+<<%eTf-(HKq#*Q?)wf{7 zCTE1=Go_)gHe&R@ro8KSzic9fHD=jQjL6^G8z?6&btmGkX)`EL)3cuZvQ0-fVk34# z!Wd(sCUpm!y`dQ|CB6Kg?rQ&co!JSC-lz11MkGLET6AUu{$=2n7H~xZJtM8Hmwr04 z|GckTbPoLQ9n$`JQwMwoB&UBlv%eCH5|;pk`r*vh8Inj&{}GklxT0u*P{!f9S~`H@ zq@|*>04P08IcaHq08msY45dO0$?zd7$mB??Ct$t|BHD8VEX|}g*X`@Qxoa-95YV4IqX^+@C*QpLu z)_SABeYp@Z&Ih?6 zoGa`~t$-&U$-;#o&Wu57v7>D>EV&yYt51gt?N(TDn{B-hA=PulS4eWiAUAVsJ`9Gg z;Hxm3&c<$)`SkjhAaWda*3&H|H*W?S)17*2lUJQ(*vOJx(sh;>IKl%#X)E{`ptgr{ z>yG;k*n2;#;4&qBdj~Iz6|Tbv-sd;Y|2ma0b(V@eS;~m7U(Ga5wgzp68(2zb!hmp-Ro2NM)iVOwyBn`-ln%FVW7C zAh^cTieg?5%KsZD7QflwB2GPE#EYXH2WaP{d^c8-zH5(nGPVc_Xy-`@_*Bfgxt;u# zjvuqQR*RBT-W6ZF*WnO^rYxL=eYZ9Xf^Z81UUH*bAD;>^I+X64qwD-B<@nBS`3~f+ zw3bsx{JT+}CxX2ZI}4%)GZ=`7G+QlpRPW;rSe>_dr?REs`DDc{YQ12jOINx!-i2aE zQY4x8`r>r>9BsqQ^4dL~Nse{eg-5h9#E6z&!e^~5Ls#}x4x$C zbKRVRe!?eFS>fZVK((=q2^vZaHqiHR?iAKkUIHottKEy{X{dqU^`B?x27S?zez2;w zp5H*lf6>OwZa)4Z_&{A?c>q4>%S0QXf1l-6vv(+7b{N?qXgLBDBVC@B@#nQTQ`*ip zywEDU(>Q9^fAcapr@AKE!M_ID`uiuu%f=T;1$-?0#50rXx0{P!n_s_w5PHF-Hk5&^ zxxFGBS9d=2j4~j7Z$#_)BzIo3ftp^y&}t@l10nQ*O`5cuCd&@FVw~d9x&FZo0r%IP zcw)A@0g%2gpFN|7dEmOnT28+i6!Z5zxQp&=bMtj;)>twa)(b}>TkPzZOr|q%CcAB$ zC*U3cF4%sCW=BLwjzku$1CnS+K<@q-n!OmvR=iNoR{bM1d%->Mm(c9N!J*;d>wk6+ z%+5;AWdGeg@EV9j`k&5Z7lE`OeZylGrEdkpB8+5G5_>O7-;0w{H|sy7@5M>UB%GwZ z@PJcW9F(Zq@=KOT?3e}!1V)t%aEPiTo3lg};1I45fs_I4nAD02D!?J~xpT!0zDi9? zBp5=sBbJER2Axadog^H@0!paJddxs!IiU!Ob0@ zf-~%Z$n2#RHLrEXT6H%IY%ERL5)M&Rpl(B%wh3s3Oy0+GAGir>Lp2|84^%dz!RKXa zS+}|qF}59!2~}l$5>kHM_;>?XR4wbW$_LPsfESz@BSCS;X|B_f9k z4JLTEa0fqxx%HWC_|@3Rq2D1>ESl-vZcesh07weE}b&|nCb=rvoWFv%_Fj(qylyuQLt{~tWS*!Hd*@T3Vk}c zEmBrt{2(vA14I=xbRzV(yD9R+E6;uuPF?!Rp`K2Z>H>%SEKYD#zjMd}t|{S=rb5C3 zhY}Vzq{IErp}FEDgUpdBo}NrDAw_|}nMlE`Q(^JV|H2{kJL=;NXw5?trCA|06P5_K z!}Ds#Jp1vG99ATgq2?ZG8H4hQLop8f62QLsUfb`K`)dnT%hBPcCLPE~-b&vh&3B2u zy3ywk%%FY?u!W(BWvn@ceYHa;5AQ2~?13{#z>ATo%MWy7X*Kw&)4m0vq#Tm_>Bm*N zL8!`#+KU%cF**^l;!@2s7prha1rr8`?K)Ql1ZRFOt}Z`!YW^vzZvbCY11SoviMFOa zeG07H?20f~l4J`mI9;C)%Fxxoq~In@Cy$AnVSdpyE{{!L(JJR74p#npyIr5grAF9q zXnT#e521T%VGM;)br=@vhAWreC=N*WXo_2h-CF~?$YiwS|B=VPG@!DZCIm*F?@P9yqPCqR!|0!!-|N@g03mFfHUXFUe~!=oZ=K(T-%D!0 z$7e6LtS#Pz{FC#0dipPEw9kLUXG@6l&&c_UsJ+y(NLC&o%@60dAv2-tZ=K&VIufmD zX}G?wic@uy%Mi`8&ranL#nwp|~g(g56+VR9iYp}wsdZcX#Y}yY2Hh#22;`2q$@vTN zcXh>;vP{-&;z1N)SmONydr{zN2+qZVRTwy7D6dWy$K9$;y$ZwPd6z8fEC&@7P;=Ms zS-8Y{Uc%pW^%dRf!zxm1Bt)mPmpOmBI3XV@BcVl#p9&KU9x1|??U#R$rfNteaSPxn&`1lRWXYxj)=a3Kh(+QM zcq#cvxNm#syyEdm<^(Reh~kx`uWwUw#PH(BVy+39qRx>SQz_PmE{NJn zd&(@AH#74rX&gbpo~(4i&=F-U2!yalPxFxONfzQPcm@*$@_~btGszL757T73@RlH- z?iSDqenq9<_7{0{zk)-K!UyEYu|45?&Phzl7%ISp zoEr*3+d+5+XI;jH+%hPCC^=u>XWO$2l$%wZ=lj^EmIYvE<~Hn}oZA~PcRZ`d0g^TJ zi76{XlLK>BRsab&kM@abl%q}sG6Id7`xt>uz3N*~<&_gJQTE937r58m7BBbBe8v=Z zbZlHhME`L;@s)>~{2cG{to|z#|JR#?WUqG2hQ7wZ!dK%lM5kA#om9j~$i<`gYdWQM zzMT%e*rGZ4rg7z$6;i--pW4uGR~-uYHv?uvl}+r|AllrTgnO?#ng8C4v5(xw&)M0>a&o>K zy~}{}exQ4!s^;ek?q_y(cQ=qDG5`!ni++GVJ=gwqr}FcVR?@ll&nvjaC)&SqL}+V^ zj!NuJKSU(sp(_Be{zgRlV^Ks3r|Rkfz|z$uEda{^0G5Kp-DHTyEYYL_z%o!%%u!eX z7Wy1kzBoLyqQU^c74_UDbbW)5dZWTF=Zj7)NVK#XEp4oRt=ryUFGFH$_?O8vjwN^#HKisg;(` zAXcWN>`#vQ(C@%X+69X*Wto9?5soroSY1E%=XsXMU=dgr;BnG2JHB+azQ0RLfFVg^~#$gp!^rm%TC*a z=+covPjm^}uen&<#Q2P%!>8GQ*lj%Ys;*<4Kr!DsghJXBcqDAdMYc7mNJO&FPwP0_O z8R8PwA=o-$5QyixnMiIp04^s$@LJS%Hk&vQ8FrVf%{*KT| zlmF~9k-qpubKSZgGbXARBL;(SK0rP^70CsG%p=vYx)CcGs4uEZ8DLPhDrX)1Rw(bd z=X-xyEDp+?Ex0T!g`5cDUG+ry3_gBD5;-KEK3;L}Hsj>s&s3r+J)KTDv6cPSvLsPP zkQETPZp`=CGZ71X>hN+Q)jB`&0OZ$AaG)1lFxcXcGsspW%TUXP#1!@jQ_7FXLRG=O zTwsa?8814oqZ-STI?uL7iomC!#4DYJ!O?qZ_LTl4<@y2FNij4W&IJ3>v4M;%L-)Sk z>y8p&tr(BIy8(>^g$hqO2nEm2KPeJ!!x=XB@xou}?|`&VzH8+RpR?6prUz72D|FE4 zTj$d$6+1{>N;@6!*xwzy_FfrR8VM=W&FX)~d0b_`p;yN2ME4Q7ovRJ{P5P2gqMuw$ zgbvytpzR#EB7=w+B2Awjy-=#Px50c#^6TzQYHiuQ8%%>hm~x14NZfADlD-C<_Tyu2 zha_Cuq)ETIclp5pgi}1Gpk*!c2t@g5KTx-p@!(9e*eOQne{d@wV>-n8+ua-Rax?gk z1nvL9?tSPGhs*tmq`xF+|E=A7u}%BW^3mP9C}8 zqGT8FLA=N1U9s2hMd}T(HHXq{Z`#uDD35W5v~JYc ztK7+b=t~%SVK-r2&^z~%eY#P_;hh!TFbSYJA_CIYhPCbw9ofk^8G^;P;#j2j$jLYj_MA?FVp5NGB8d@2NJ3OK zYbP5A%QRQ)1_$< z2*g+Aqznk@yc~aq>I3u={$nx-(dn9o^1uBFe0-7%nmxhZI7AAJ9HZv{cJTFM@|Iy= zRZ6}?Z#lO(1T9oj%r;E&%bq*{tvrEdMdzK`o+)t26y|b-3XMkYd)F>{a{*wNM z;f-aHmH<9w=~Q`xuLq7>VaHdkzSRW429A6*IQjxN&-R&7$liOxxm~C<%FYJ81md@! z+qu+=Y#Umiim^K*jqN{ebl=|k$ug)G^?z~q-fvCj>)Lk`k`Q_by(e@CgirXkZ5kwqR)Fkv?q=WP(MXG=_6PgH$fT)NK5Rjq{c63I4@8CFVt(jSCKl|DH z{pI05;NalA&+Gc0*XI;-5Ii>U#bjIF(5|ujI$?EA-3QKkuo*N+523wM<*ZHj^Q2U-4FlO8MTpH2# z+OKChmVIVAgyG!MKBoIsbY)w|nfsP*s)n>9?^zLp&s6Yu`JDwRe8OUh921rcj5qey zal>UFh>GQM!+9I5K65J$+T`Hgy;Iw}*<{a^hLh(aECvHaYu~@FdC7TPAfxt*MbiG2 zlq4)9yg#gILi3jen3HAfL$rp!q!KZwp_gZX2d+A;!kO!9@3qNZ{Gl}?&mnx9TBAB} z?*Ia^sWr+-2tUHvh34_qimNrdxLPCeht^;qB=0z6VeC9p`AxfWf`afyDU<)rb##)* zXR#lFB#2?e*NY|sd6z_YXLDK zC>6Ql3l^z1ixD_M0EvzwV)DE`Hbs{9=jCB)*;udbT#wuhvB>k;9I(L54f*{F9WD9aXtLWA2qDJe^po+x&ERfd5po#hx_5* z<>r>1*0*TC5^dPuZ9QZ7szW-AL*#)O5&R{rGQh{0-%PG0@qXOdbrj{A4)15%j@uqH z9eeT+lzRPSZN|V`oENbVB={VlzXTU3@$iYHMpq&QM)k#X7%#vKo}c~Sh)Xi$)hzW} zUo;Om+yot0`fU-9FWlOrqdVMTyz=(8n1damPvAv%Q@hinN7!Ng^yvQn;a7FW5+aFM z287JUtM|ncy;iu zE>ZtUos2tmL9H~EqrO7`VsKsZ&;%(a8ta+5-usr=}^rj~DE6FJZ2CSsP87GhS6ZuyQko$Fjq8?v?FHSc zrBN#5Iys=6COx|3<8Q|VN2O}*T>g#W{V46*(MzV0i7eplyJ(m92^zbV$!m@yzIbFN zFcNPmx3$33-`_F{QL=}G;k4@TAiU!i3OdCiud66*%~)^u9pp8pI-24GK3H6oJn|r` z!*CI1zZKgdc`BHx_Y`%P3@ywnrEpYDcAAhls>FjBk zq92X*Ubh;+4}9RooJCbydqp8UHNQPQySjKCbACP3Z$3`5vcpqwA?;2d;^xE~BEQza z#u%Jea8}Apf1Fgtzr1pg2;mWTB}Ds9H?mT8va0tAN+GEW86u{xhzpdO@lq{Kq}gJ& z3^dm=#l_d()m$&^(_*%Pzk_;~_o_-?UVtJ4;;Y-eQkDc0vUr{?`pCMnP)EM40RJ6&(hEH6aN)XqOo~>5a>+vrO(`{WR7LZy~&B35newH|TJQu{5 zVQ^`gQn7SeQy3#SzS>YtH1h$=kjm)%*dsC)m#->|_P50Mtgkgl`85%Fc<@2b_jVcV z*A6lv1Y8nTpggR}Bo#9*m&@pdt(AA&{wmJ6D%5DL-LjLD;K{cHncZ{x)oSH2lt2!a zom>9+;ftJg^(NvqMbL}-93BlX^K0Rg&2{a4M%#U_iCaE@6(FJU+Wguj&eF?zYDPh1 z!yRqplVSUg0?M_uJa3Dxt8e@bQNq8;5+G)4@(}_RhhMiGu9u{lPjDh@>#o~}2XPQx zo?ee8$1YC{-E)+hf(u5*>IUA60Pazc7kpK4{zNvgSNhvM`2SNxZA;feN%4Q$gPTzW z053J^`#?U~58D+2WRs43C!hrWz6aM)*9N?ly0ZN-ATfzkSCo_EuEF&HD}~WHmP*H= z-XSOz;h~Nrp7_dtI*xDh z7$*G5m6>Y9@QewkH}6!Ika(?C!M*#)wtL47Jtue1Y>g2T7DDWo7EYY9o4b`#97{E= z8XCa(T0r%~EI+8E2d`bQ{L~E)P@atf60{=@AfT*inD>~)@_^t#W|9|uY639aG|9bt(J4ZyZB(TZ=RN?8LsZeQnvnN6TQH-moE+RGwT#6&gKytQsgSk zXD28N{agX%+YMGN1#T)O^3wD0@&ZWHtv-e14o39_#~^W@N}E&y6AY(%vB1fP(fla= z7p|2>W5K{#m=29b;C^CPQRqi;gk#kYYN{`Hdh_>zIJ*)81f|0L3Gh@e|4UMa_|XZJ zN#t6xz{IXIOew4p;W3COvNYyWdx}41;~u%x?(m1sn_D2Z<8Fvo$lo1uV&cX7?hhmPBYUI|u7dTmh%lXAQ+uoJkD z^LrZ~aKil1Fco?lx4p3ZcCo}?xF_89kv{{qx0#v!v~??iK-gtzN#5Lr{{yJ~M*+YO zoa8@%+JIe(jZOGxp!Vjo-Tx_2`}-pN+2(og-_W$*{TBr!z{?%bKGL$;J`&eys#jfc zB0llP;p-)dBbg@)v-kX*m@(Mc=9aiC@F9E8mR#r7`b9t7Zw9_yD@OYRu^L()XFSv~ zc7eWux?H^qb%=G;L!l%v*uYE=U9|iKIhE5v?(%skG3mnN2X!kdbRDzpv2}HgO&*w5 zIq$4X4ia4`nO?dcM^1Zy=Ab@|Y8ySMHg=BOVPkYxX*y&~-Tny)bNA6Rcdao!+vQ!l zchz1VRp4OW4BE&JYt9B3VyBH&-`YDyn4~7g(&RfoZ8HErh>q5q5A~P4iA>kq8?B&a z_Y$2cu2|8H2A4+e($;9h_`iuvOOw945$tbQ0*?BYLAH+snTx}=sTr|Cmj@T2FuL`H z?&a~~8Xgh5qpe8uRxF~D>`a-TowK~Brf2Cw3uTSO)&$8}`pHez-bdmp!#1dWs=4Ay zIxacs^X88_lu9o*2DDo`%j%AuENPloOP7=qR#L}AMe_}LGELlx&mxvOq<_=45$LR4 zoiHI6L<^W3Nl4bmC8s9p-g!||aInH}N8fRasFo)0GP}N4%G1_*X?=)|6aJxtpfryb1_D@y+wNaTG)F ztF_cQQB}C!Y@^X*ZeM}B(c)ZDXjXezhT8Bhl}~IP?GO#^>*?~JscDG!as#?6R`!X(vpz)Isw|)ML7G}#F2RI8!<*V<)vwH z9f-eG&|`4C9t6y7E;K_a=UF@48AW$wU%x?jP)xEl<+t5}WW8Ih@+UfGAqwVuA4kjJ zkzPD>&w$4;Q6TF5hfDg`jgzeGKj7Mc=Iq>Q0cehu6&Z*M*xCZ=Bre1sNGJUP*Zz(a z2o3#bgzfJ^NuVoo^YIP1fBOTj&4t9Z0(EU|zvCnO{|#Jw0oZmgz2E{Q*Iocq+V`tm zU`pdYzWw{C0PqI`a!LPqe4}_3=5SrokH@!dR0`md{_^;CT;3w^+FGb#h>ix<^Ngp) zcax;6p`@U2&N0>rFD531i4IJm>tZr8R6KGV74pTzWr|LDay7?^TVc!99OYI8rS@Pa z$u2S3ULQP1p@-Z-))*FR8>MTEWlaoHjPGKmPmF0eOm1q9llB;%vTUk*SN&z6BB#ps zt=zE0`qf;C7jCE%+BN24EyAf~H8HD1!_{2{_tY(z-r?oz%;g ze0NN=?n-F%I9%75P;Le9i?pR)3MK|S7Yc4U&%SBW@0qc02hR=#S!=$@05wK*xvVDN zaIX<3xyHgnH@7sZBS;=9q7=F)cg;)$ZM=9>NFZbOUS}4u2v%hPO^yujqcO{Ahu@v>E zaDM4^4i#b}xxk+S495_-Rd9diK9dJCe1c(@D#0>z z8JS#qXY6hP>g7vIi69wHK9yz+!WK0bV>`N7laar;FLBHiEuGV*8w2+W|u5GQerLYIBY zr=fLL@8T>Fu-O`&Qao*T5iA>ixT1VabblmD0aUCDLMu$Lnn&JD4DyRe&$5f3zVp9z zRMQ&Ws0%{S1aOzV)Jv2sLXi(AyJocQ`ay5E(w=ov)&d;0vzCm6YOs2 zI4Owp+fr#G?}z&RP6HJ8;>N}eQ$ef*I-w$n@YZ9y)yU6UN4(ST5#eu9H&~;LaNM;5 zeF=3lkZbDZ!UUQX%W4D<~xzn$=`_6Vxxz zboirjmB%Q^qL-fCWOCe~Bh{mq6}j}P?RE6YU4r)8)UOa81U}T=`Clctw*uPqAK2Of z0mr_Zp}!TT?+Na_yo>+D)&_Eu+ypleVER*n8;Aq|naO{O1aLEx-&N_4NWlL+TU*DY zFq<0>_>tf?8|Th(e@Sp3|Bc91D7_FZH4Q+aRFpQyIBiu$d3mlv=>WD!iK|drN*Ng# zK%wOF0apYllvYKBHlR=%n+jFlst5=aV2Y%BeRNtgxB{he9i=tmqjD?LVS=PT)p!5w zjLM?{iqcfpyobh23F)zs_SE7FpBW{}8`NTJ~=%GwX3RegT|DI)5c`PA4PJWq>I^=u|PKlB4R`x z9v1*H0Z1lFWGMN4YN+E(wMOm$DecN_zBU_spdIz&RED(b*Ig2w$V%R!gZk6Td`@r1 zIxgJM-X?pyK-wKcD@lW`vW< z2i7Xs;AH;bJRp23M8MxChHXnvZ}0g*vV72l=5SX@s(oiZrWSKukyw~1_}ckjR|U*d zpE5q=E)|^zK~&L99@#K-INy^Nbi{_)M)4WZWkD_NnoeKb1FPjNR{Y=0g}@Ag$p9|YNvF^ zuhOFk;?7HpFk5?$N+u~Vo0#Qx*k4)3fZ@6rrUdW;AiL~2tUOZRGY>)Oj!Qn!>!&OZ zrFeX{w=dEn6hFUk$nCX8fWC{F6+%p!29i*bFFpj8roUH9|H))#SuS1%$*zvmo@3_o z4Yv&xkl?GAssanPuGZN$(>NF4bh1^R){&*b+9LHPFlYeMXpYjpxwY2gr4a$dbHGXT zMFSh>MQ8$1@*?3Q$$7Jg;CP-oyJ^&!4A5f(#^w1AN(P`om=ki0n#HDvfmbOy<1axg z54s||t`3jd_1xV9#*2v$%Pl9uo+i{gzu7}ruXU2Y3FUqBS+($*uoN(#J=Vr6URTJs zz0^I2Q{@@-aM>Qk(;}S8KpdO4sn5h2GW)7wj;RI`R)}VgF{%CQ%ra6pyN@4--oZOT znbxTn(3zSr3ZW*fvH06ubl(y0OV++50^w~aMXR7^ym3&mi~85__8)^85CPb-Wyk+d z;q4#jw?BusC;t`w286f&q(Xo<0to;AZi5YYqd$It!7O+Eed*?4c51}bunHK=!a2Uz zF`I)~E-;uy_B6IWu-z4S2N=v;oy+SN>0!P%Pu}tQK9`;LQ2RcYaV^qWhZsj)ad9b3 z)X~s`IvB-t1r_%!2Zda537Lyw?mFe=x{lShTD7$ejgFWW1*NtiN6Aic*`9;CY=v%{ zb{nzyOlN8wgKxG#vud65KrKMrS@O#!0K*N%mSuCt}hi)hsg@*B2Dh)%Qxu zd^)LPnJpoy=z{lG9YlN+C7eLt4Ev%V$;Yw8JfYFlz0&-9K~FeQ};kbXJ6~l(a^X=$%hNWB=E;! ze!+8J@(jYg@%u{z{D(J?4~|3+kt^NW@?34=#(dOhdz8ak5h#y_D>;mr6}nk~?gh{- z9PH(oqW2-AiIW4Xp0b#Y9%_5GUvZbMlG*ED!O*4;P`T{ng@{Pr_KF7Nn6TQhSIghG z*=HCU^S~Ph%KX&^UCe;a97MBtwL55Mg__@@Bfr>~ z&V@_FhkV0C^97Qgo~>BqRX%UmQw2y++wy!ucwIXYq3Ws9&;RUFI}^gYJ>!9(>HIL{ z)JO)K4JIk4I-fF!f3oq_b!RMO@Dj#LP+Lr7R0SU82B~H`oQt;3atplim|uXw=WBX2 zru0~2^OIh zT99wqc{uIYv@RodZ6s`AX|=G&rj_vOr+07iBY77}k?U6+rIETkyoR<`d<)LMma@s) zL2DoZ(hKFmIvAP_mh_`UNh}9%Uso@h1X&3DOgePDExw0+d^ESGPEbKd(8dxip!=}4 zB{z2tBAQoEct`B|@EJ?6Y+NS_8vgBV+V|3IdHH{oW*Zoo?$}{rZoZ31{M)d$51sCJ z!w6NT9>VC68n#wDlC))oXro;tu^)b@ZWH5k3ZU+y^KTjusFckXlv+jn~e;x zYAPyRXJa5EBd@M^EQM~Mk&&SVI2+}B8Cj+1Q$Qn%0bp$O>gtM`=;bYHZNX0Roia*2 zCt5PPDeYwJkPQBY4|epR!)?-*NzUD~)7Y7QirQq>tcULO3hCk2yrHU9AJtKfu|+a^ zNbY?gofhyRP$^wF?$MfUCqG$UBPMZ>U60J zawB1c?idp*Gh}B5Jd(i#y|cTE$;L2Jh?=vDkZY+0uePpEj_!UYbn?oPOQrPV&yE(# z=?SVZC%k^~JRP|kUdSJSxgnZ->ok?(vbs=Mpj$QU{-N)-HshzNS-0JA_#_2$+rMP1 zI3cne>x8`_Ip`m{h3Gi_&?`_!X8W1WD+TnyfJ%u;oO^zsDH|oFd6S-O312&HcP&H- z=zRS2cKJ?GHl`VHHp&($dZHy1=|z&gN{{4`H2+?ihgS%?LWgC(_g+Zbal9Rpy2tkc^XLic%3_!vE!QVYojAXk_B<26l!GK$ z4`v)vcfBp7RF|s;zsFfo+lMPaA5_0Pcbs`~Pgd?!u934B11u)JY6}-KB3SVYBR_-p z1v`TwAYdc{!LMDqYtDm^4`L*f6B~V@4|Ty+VFp3kSg=@{c^{;53Akai-THvR`*ea@ zCM7kjjWx%J7asv%QN#c*Wyg^ym>^}=*FaZ#bj8EQsPPCmU0oE?S{Xf4z%O82JX;TX z6<%A1GF2tKf@);}^I3A|el|)Y^$aL&X%5e56U3M3iJ?+!*>MVw&eRL@t}PsES?UQo z26M3N9)N%S>M8>JI8xPwx}9FjIfZ?cKpA>vuMY&bYswgHzuN1+L3I%2%ui`Ndbo<( zf=y#x1M$#_5XkUnf|NPd-25^hfodetmF!~<2EtAucWk<8+B|ZU9af^Oj*=-Db{{7c zr4mGC6_BRT7J^3X#|kn58phTNPb9qBym^0@RiAgx_h^M_&O`UsDrw0yZ&+(B@K%-WYo%e?4}mQ#S6lBu*p)-yY6`~TN&8Vk z!vxj3*Ma1u@8cL0c7^HWj4!oU8RV0Y$gT^@<}$fWyD`|gia|KPEDh%$T>6~vTcj;M z%O?29KC-GYk?P{cR1uR_Kl=fCwPmWb%$Alj%dSz(6tnHO@0bm(a=fJ3n5CJ<($3A4 zH>J9Inb%E|_uek_NNbMXzs173nO1tTjtisU!rwtcad(N$OXtr)68bGBYl(L@Y|5oaQgOf7O&Z z|FKh4N^|@~9TfgD2tR2L6xDWp`~`q>f9o&hik7SUw=MHb?z7rYL0P@Mr=Iia4L|+% zl_>D*hq;d_=YD(nT#50X&rgI28v@|m%UT`65kepK@kB1yAKH6HqHoK$zA$vO=6tMb zmY=txZboYE4sqs3CJ%okTfxfc^v``f{0qa3!<`ePgR)b18#xd&Nmpj1>ZfIupS1|o zg$w*Aisw*d=NlIVOo^WsV$M5WUHDnm?^8KXx!Q_P!u;KFW{%b8eS^8iOQofHCE&X( z*pa1SpDl-+?FeAhin7wTe0@)AH!hfQ1r^#jBz*ny#%<`bePvMSx-ZC+fB8)szN3bn?@mPE zAL1m$^hy|4kYW2EouyAkU+)8Aj(hodp|rz19vR&O(0b){#!W}$eJef*BzomKX}Qi) zAYZ!}JnkTlLC`QR#laF}tY{xxl@iy#8PvZ2CN(Y8hkb+QAxh8x(tI$qW0pv{+HR@fO`UtNB%UR{qM86jrkQdT8EUAuSr_UawsBDQ{Mxtjk}QdLP)taI&?>-PZ@yDHZe~X|_%Ej;U(o zTp+)o@7U(DXr_tjL`iJ%V@1Zr+ctt7=Ak3Qf!B#)=E3Hys5Dz@>a-1H4)ra1XTJ2E zC=_3!Fe-h|>~KAFZy`El52UGj8D(don^CQ-d}$w_#PVV|`QG7JE4v#7ASRecLQJgp z+9-2Jp5oIa4>QQ<;>~%u$9@e^>+K+v&Cp| z=-R~X3)4c1KdJ-1uIj~e)v2m*-68_8RJF$lw%uo5cS||A>{Z$kCGpGKve=@ab7wz) zT=}SY{@cdKqSIi0MA1pOqF>R^{4DDyKP{Q%JmG!hQ_V%?E(5nD*2N$Q6Ft)mf+%E6 zCm@8-v)+(T)ywx`d>wve&>J@ZsAOvNB-AnZd85FHGp9tw^30M#h6q0JOi zLM`~A7xjoAnVOGkL3wSdt`Vioy+ldk^NTACkmA?}SIJ@I0NDLB>JhjjyVjETrffD9 zT%(?Utieh1vp>&W(b~fncTki;#Lb~;Sp<}Tt%7(gcR`^ElAvX|;xI4^$}_y8hmyrI zS%nA}v_4R}HZR31Hk;qn?-UdSMg)z`_VH`Cj)!cgmkatF)2*Y%jMvNT*e?J8y89;$ zo_#)CmvE6o6iqB)hZ1uRkF5M;1suu<=>LZ~4rna_)CXw9*4D-Ymuvua1Xx%Dqnw3> z4e*!-yrelfxw*L=aCi3t9@GAB`P_|7f6wOz8khc;_}r0cg{snk==?}++fh*?f0Noi zUXY=2f6XMs5O42s##2`t2aIti^nhRgs8fuSsgjbic9c&t-B?E}T~jAI*h4*632k>4 zaCsRHSq}Kx+KUZNI!&6|nbnS%4yEuePt#t_PVyC7+@O--FdaAQc-tmt@ZeqgXaZ%1 zq&?a4)CoVjOj_7xI9a(uPiuNR)<;$wM8ESf%(5Gm^1V^-ee0{;iUf8LbsQa^yAf0N zSlp*KkI9@D;uG-a>0*aXz<33v@RN?GnB1^-XU81mo*EqZ&qAr^&Xrare3SMJzl3-& z2-A0$Y|kBMpXle)HVr4Mb*iG{#S796I3+~O0g?I2Y8u(uB1Y07jGS2$8pChpc%x1X z!-^LW_8HydZGZ5k+r@3GFAQ=|M8|fYdTsoAn-j)SJa#lWwo6s}VA0V#O|g_Vo>{H4 zdLK`O)1!IEC=%D~Mor&hrK?o(gI+E!9GGP8J~AxFI<7RD6Z}h%=>Gob#&1)fD`Oyf zyXRVKZ_z|OI)3jf`684o1Bi~&Pi3FCh)Zz$N_zWL->moNHw=~ZoP96fdp+hSCD$*% zepqZ*I{)wsFZv8b*wpiUmvk5!I26--dUAP3ho|-9AEJYiz{fJ={nvE%2?;BL2n6{3 zB!W3q%*>Ys0!@Vx63d&Y=Fsir;u(N#PJNaNq0;8DrVRG8bWy)`85u(t{6Ypuo`Ko1 z)!+slA@~Xe$#hgCq#rbVQLT1i-$^DBOxq*V7phrsLlyQD@hu_W!aIn*)if6UJY7Eg zgIXcT2tO~X){BbYgFmvak>cMMVGcSf%y@?4*9_t~gjA1%Qv`OeS0QYY*y@>z)vb{T zSZfW4H)f`k&LfBqT0yB7xN<_svq9h_W9Rh+!FtIAw!UYGi@kQuB z@2K(+Wbd5$z?pLq;NjjR0OclnhM^#UzHc0Lt7Dh^+D}5=Yj_EQ9vIv!;gSs*7REe& zLlk|RAjmHyO|64^sPs-O>Y;+5jRC2+Zi|Dri?ikk!d{L>TG znKxUk2B`f)X8(GMivh?1{|xBcR&Dl#QXmA_C2-@ zY^44f(EWYHEBU=}8^{Fwp8~qSd#dky?^m0o?(fO%_aFW~xeaWj+;q9IZOaF?(U!@D z<4aAM$88#nWna#8_t?+MZQ)HieynJ(=6hMC_E+;qVes~$#pfLvds1eCnY*@xhI;Qi zrQ)u4_AG;ydLl~8J13SVxMKNo2yiEk%haEQF_YWFIV%@#kv&hGLlwh zOe^cag`QnkcNtXb^j^7u-92Cxo`k+}(WtK4YRoJ#xBU)Nr*2P!b*0*q<9+*zq8@Ab zXjo$_gAVFFCVA?9+|7=%*7FG*JUkVjAc&OR`2wq47S%6#zuZM&3gVz5e~9ci-2qnA zkrGj=+@@TX951Efb*XV6VrN2 zB64@F=dI2wYxf&H0&;1$%W*+ip6=l6*T?Y@ zcs__Sm2{2j8gC28S$>*LwsCJP2dTTK5g=0KH*EM7ERh@uEF$M16ldbVNK~Y$Mj?0v z2?U7T)bfx3+LFyK6)^E4CW|MU#KIshB#yfQv}OeyKj78JlMtOJDXU0MtrFKz1u-Bf zatX6C?}-5f(yBb}k1C1&%qfv3FgR)Z3JAVpx@_6y%ex3vECe~5zE+Asafr1y2(%;M z6&+hFN@)8T^D{eSZ7bUl%Wrgev>Okx8BHQa=7D08+t)yWXz6W)EVJ%}0fFa%Z`>+} zzCOR)W*-)G`NAD{nx6M(W%K^43LR~%9t)cZJW8z~q2Yj#^cj$plnVIpWr@aUR!@t& z=<)5(?bq(|35pl56rja!!r&z)1m@_zaWP(g8CB%+kX7Apw@Z=X>=to1LCmm_svkA@ z)@Uck+CFu2=hVGiKCuzhS0H#Z^r-Cg=LryxV4>0Oyyhz=wyu(fkCtu-oIGP3P~Toy z1_Qda8Goj9Z}I{DHOS3Xq(3O#K+85@tiHEw1IFr)WaJ<9OW&7HOlB02j7&&KPD)Bm zP0iR`I$hjMMwVA_i?(YoU*?7ZHd9If(T(%{BzI(F^p73+pYi~IVkmL*0Pi>cU3~!X z`j)?LlE1jQCO-k#D=ENU{Q#PLw^x4&a(}m1Mj`q*ePE>1(dLeHCve(YTKOA2D@5`?~q0iFhLKDg^vnOtV^vx?y)AqkGb-Gimd)pvyyE8WaS zjI~e_@!fkYFhr=e@VckMY^Ybr{ zIZ{%4&vl=Ax02a%Eal6N@a5IG+f@g8-+XyKYIpr zeZ^ct89D0@kt6XT5u!$H5Koe_7b{c3T|5UC1tEZoYzJmn>UncA7kR2atjegHkR zb*^sdXqRy6+uvyQfybA&IyCg0!`s6}X#`)CdijiCOJQK1C3Hd&$waA8&&=0UTQ@fL z?L;#6vv(~LyCN@5c?K0{%__V70=6wK#_`-h9RhWT;9u*BNml1K9!E25LAe5YbA4;H>IVC!=f&|+yN@8!7g>vp;N z%dh`KizUG928KZ$9Rnky|7n^#EiL1FvJ%j&;^N=a+&{1;SHHjO_4NS{d%(NiD6pBD zn!5YPq8vz8e($gRYoPnTk*qwDSy;h+-TSd9-#b2e<8K$`+^Nto#2AMMWDBdcDO9P!oFb@fhZ4OpiN2jzBjc&Ddv zW64!A+g7I^eR0T9_eQ$IE%LbL9iMw;H(PDB#+x5|;P3g*c~P?Zd!N(0OLQm?tkwE4 zZ%*7>BCTIxER`O}J>2N1!;$iK(T||l>GA-C?sSR8;a1QVShTePu1*Umk$=>+|9%Y{ z(FBHCs~K-U4b(C{;P;=BeNyA-9kKVDuzK}$s!c{^`iT-}om$qB$gyl2`;CH5jzzbc zejMuYmC`6XJzby;%)Fk*sYc_T+KrmfwTy;9T6h#@{>6g~3cXdA|Mg40E=TKGdUN)% z1FBfi-j|?E{)c@r0b$e^4qipq-9*|qil?EEI*$G%S8K=We}J?N_1T$NHn>ofWPO`{ zb|KQW`>a(_Z4+_J%ctxJ0i`{FY=r>rPY1@jKfw~N_nZjYbM{osGQDzN)j5STQZFCo z|NLL`LMj1u)&I`hi?yDri7W z+#W_gP8**(8wH`J&KMbogSc1|Kct)t-X&-*4kS%2-j3aln2*713=QyVmin<{>oYdy z6U?vLLBPg^8=PYrFA(0akGp|Tw7F*(CmMbi$x2f?4yxeYtv*diw{8uBWLz%4*9Uhb zPCv7gf+80{SoIP%M5=WK#;-siMe*~<%BYB8#Hr81!X?qw5V_gd0bi8qIDzLly!9aL zQO7|ri|?>YlpxDDo`E<`Xk4x;4c(Z7{+3z_0trw$EaADnc?k%6*$YeE zzuI}<-W+muY;~T|IB(BfM-@JC10U6(u027?VbdU2mrjNddEj(yb15}!8mCH_ntI&x zSV1Zi!kU*3L47nqGI_V?*;%3kr|?8L8nDSI)$kxzB8i)#G@vF$Chl!ei}ehpKi+r0 zerk?r?xpfLrKwpxU>x9>1X~K}4nG#DYo62ws#1mt5kD^C{#cH0-k1EFthepI$$AI= zZPq(3E(vf^>FHVj&8#<9k-mdXfcuigrSD0DwLfLO|3lXa5N7(9tas$aLJjVoYQ(o~ zv+l%U9H3_dPj?UGnw$fl0d*%=fx45?^*a|S&pQL~M?8S|wzlr^L+9~2SgdEHlQBkF zMa%w-r?GBwa;#IDqXwp2SuH2m(fHy;mP5(z@@7o+C5M7Ko#G%Tl@^Rzn`d3}W!pxw z?lsI%-|m5whHi(^gJT}!S8Rq!TBEM_)5j;hC>O33%{h&)JiJ3zzoxR9H-78bFC_fv z%sWa)UGm~K<@s#I^Zl_hKzVMwu_`v}@vryC3KHXNX^FP;P;z}pi(?oQQ)&?#Z*%zF z)tpp`AvN9bTdVfZEMxK&gxz%dF8Ee`ll^E7s-Y3K4uk%vk4S>;`*xb%vcju)S$`hg6^28@5SWIe0r2eg=Q^#(f{P$ zB$4ySI=>iptY4Hwe=Q7hKdH0$llpWr;&2ZBz@^w=xa7&#ZvghA(z&nQBkxx4Hy#`< z+@0S52X%z3JrN>AybzOS0g5Eg19>tWqLTW!q$6aGJKZUEeF}L#QSnQq@Waoc^T2d> z=xfi$(bt`4ufsjhg}wZK5qID)qB8tq$I=}Pfhkyozo`#Uq*zY$>J*xlhCa!DkhmK@%T*+#mAY{?Qe04;%IB40%4V2f zfQkkA2+vcNb$l(z-#Xm=>zX)R>~OrROH8h}DQ>SRF4iR^%~EkvUiiYV1HAXAcQz#0lk5tu!qp&GzwvI*<&8Fa`BE+uyjT%&}~zB(63qu~xAwk!q~7uC}O zYk<6gCEqLOfKi?s+SI5aTN3^yEIcz`CvRoOHj4k%p5@zo!t(4Ds7GqICA^GC19v;< zM8?1ckZ$#3H%!+VP^Do?v{Fc7BX~%q%iW4kiLx{#sF!+omltV^8n41xy!(|F#Kas# z`0UNuy)ErT+uJhwI;}RM@1{-%T)w~gVE5OBlhtOL0N9lq8*ksS!+i7DjSGGwld1Oh z`+%tq*fZ_lPxJOZ!l4cH?fM*vXY04y$GkG}89 ze^B500eb{cmVl8Cut$GHyf=^C{*1*1LIfZGJsaSUSmk#~a!K69T{z_e3#Tk#;S`+d zX49ZA{bI)PvZFRmRCaNMSYkJ#wlnad)q_<5-?$sMx5@7C?*F#SfEJ-m*%zkfjyrSa z93$mKgmX-oJHQH4P06>6q($$J-G|M=6c?Pw6?)m1+E-{)7t|(OUnXf*G#9W6>oZA* zaxQeG77pxcztK6E-xFDNki9D*=gO_~X|&-I#rSz%uDHsF-we}PCD(-%P1NHw zgQw!v3fv2%^}QWqQWVX$LrKl_Y;VnoC5WG(fM=GRTeG`S^l?`wXXW)59i#0-qyIn(`bBZh?6g_5I z58bV`Y4;3w3pzZVVTLa3*?2uW+@W>b==a&K{a5zk1_7~iR|0|OD#$ESLbX+A8V-R+smBwiO)5^g0|k%!{7_Zzp;Vmbe|Op`RL?#`zJPYZa($UQwEBGd@QQ)?tT&Y zQ^`E>6jT_2mQoWhMxR##ITIs!oKwFQiffw&d7Y6QxPDhgex{un$CoTk;88*~5&6{j zME1Gij--~J66>RJVtHa?A|V1U=mjN>AlefNEoy41*6v7}*LnFMFcIvc&3LM$6Aq-v zg^Y@CU__l6d+-ur9~EH6BaFp-MC7_PA2QPax#QahTfhi$Z6q6V$TN+Tf9xKL2#Hlk z9}>k)`&aQEtxIJ>r3Zi~LNVnMNQukIAWLYRI+7!bF_ra=ptx!aKnr9UmesM!;L5Ul zGR~N)gRL~u2GoK6pn6D;tu!EGij;-l3WotF;YfP}bnC!fMzdq8J9NA-CydL0rI&+-e z=#o4FV_VZ`RXpNQ?2ufDcQGjIll~E?fRHKDoVSKtGKgdhqlxfUTwT4iN*ER5dVUjz z8)h4EKvv1CMG&u35_KzR;ijaZ&NQb5>BG#c?z8oI&6526^#2c|v$-(>-r@c=uT3G5 z{tDZs{{h?nr`0tV+y<nDWQa#f<~}Eo}R* zk?sFHbbZ$r!06I{oUyN1-5xaVRn3ohzddh24(-hB+hk==m){49)ZaFHL5{3nX0J&f-(v19sSn3!-_S5>eLg zhe0SLHq`;oX2Z(apT!N|?1mcm?oF3p6BdoJ|tkms@5mLyi zGT7r&`@rFbE-RG~Ookl`df=YTtRVX4KJx;{j79=Tuy{5K9@v>1j}TDpWFTxhsD~~} zTrLH}WRApI@_8vcRA(w`Vwj}@q~ZZY%DGDwC@q&fYiRzHXlQjDZf>#cu8?zIC9gQ& z8pO7My2``i&tg|1@l9AUsSH^rO=&j%Nz?FevQPHoWVRwGN{6GqSarhj40SiwVy z#dGS%a#A@E=iUH|92fG0!xLR z5?*iRq_;Tm3Lx)tqIMQ(YuD^N)J+{Q#p)=Cl*Sv#?){%2w(acxOT>0Gu#x^FwVj#y zyL~C)zLEV85Zf=`e5V_6tGNID-R!??qzjq~byPygRzEh<9@MPSKcPh~G(TT771(?E zzJHj>QIFG}IGldSA^SiR{S?nAClhsbP2C8e#1kngxen=$+L`Ja+WFy57cWKzUnnmx zy5yK#8|PR;(QH)LZt-c;_orMXaf(}`MAA;lA4b$$)_3l-%?d9Ci>uo4kXLmKT@zflc}P~>mBNb z@Hercv>Dogth^zI+%G7tss}UoX+6eyeS>JuN)`#BqI?WsyXKBDnZ5@JL%&L-#KWjO zB-2MP11ITAr0pKtof;EvrQe#F1<}|r4#}B-+kYR1coG`*YH;`O8|mkFm<(VeT_(1i z>TVUYHr*2NOEHW2?w8v#s!~lo+fRx<;hdLBDd_(6X8CS|(l^C(r$3E9Q2P16PuouY zHenZ25cC@ zvv2hgp(;aRAb7d%TNk+Y(uR2w+Yk9H1&#;JZ^M=6JWEq`9F9Z~AU6n+qXV>sG;2i? z@TzX~sSGiAiJ+D#M=+a)x(#)JwOMv=7Sk~6!}MG@Y1~^FSCAerq?0Pig9um(D;AQ= z$YrOJ2_OzUGQ9*+Bt1JnmshO|WU+U%sDtGKco376Llm)aDsFT%0-GB8Bn zmwiy!LxnCrVXhLYmxeUA%XPyeQU^(K6y^whwR@)tQ)u+Hqm zJdWsIX5Y1o_J-hg5l3?av8%)`aBxv@z~ZoO#G7O6(Q-7Hr{#%n$hgCa;sBT|vL|x5 z^aO}mr~mZD9jLfFnl(ih2a{CP!x{}F+|~^GZaZ-4+J3i6=riUwc32384jh$yY%;bE z={%M4MY!W;a>8vH1Ar;{|1tNTe@*9Ww|^4S6A(i0p#}&gfE1N+ARry24=P}QfGAZ2 zL}WAx0qKS+AYv%eOXyWhLXjqd6%`dw5wT$%b=-2k;LPmVd-mSUAtXe&wUtU2;AKk1}S}pg8p$D`u{Mo{g*QB-wP&xlxhEGiS5SLvPPLd z8PWS(ya2V@Ol)iD^bhUs?hhVreG+Lp=vZ_0V^EZ~A4!K4e;_v6DASMOYeXPu>VyZS zCuWxTp7tc>=4uwwSS4AW=iGDHxs_EO)n`5G95ovWS}n!ZwF&N|ZbEY(r?q|1kry~j zZ5^`hu+!m99T|0;wP|QPb@R&f+?d_@MvVuz1|06(V_$vhv|xXSM|`TL*57u`f6`W$ z_bQ*eVtrv43_`jkI-CNSv_DM@+#u;!KzV9LT2K)8FeAeai@Fo=L~SHBPi55!WkIWS z0Lhud!>$E9PRnrE%eLB6u^+cCCE+(HW?tbfV`gwj>uYCw-GrJv6Yab9{#?JU)7dW` zZ58wzXC$HqWzWRcko45xiLsyk8*%4?cIOK3Q(N5&f^~T{xGKN0yGW(Dc<%!}^p^U0 za`{>TnLY!;tr!^Ic^}p(BD+mOYVjj->0Ivqn{yy@Zt}FP7fT8}w=ZLh=lxr?%)YLd z_cm;wAG(HUn@04E#nE&jV1Ks%fzk+LafYrpqr>R^@L0Lb=G4v~j(&K4t3C3mvwULw z%STB^FaPcSz}wYl$&y!pp1=6^!oa)lP)RKkCs-C+apNN$j2iYhi;|^MroGkWC|o8+ zYWWsgj>;~Fw_a>pCqqS3LO}5HG-F1JM(~ao7e5hSYk45(Jf(6xdC1zJ(0o;}}hSL>8+6oe9 zU;@Z}hrFqlvL0!)Om{OtnPMhd$w(=R`7Vr1SelBcsy0^z>B(Z#AQ-bXi~Jw6XcjOr z7uEqC%jlVMV;Q_~09@@BXQfuidk%({^r&BTG-A;z;MKZ^`2uirP907@bNlKpHM521 z0@b(J_4TE(;30%`Jg82U+Q9~v`WlCMEn7+ptx!W=6H6jG=31vyaV-%|i)}O`IrF>nsYU!`#aU=Td#Rizj_W|Qm z@E3iLI5>W=Y*RRqv+u>=W4FVQiw{-}c z|3BkvGt0{~HeBi7Bilc@+yGqZ&B*q5d6Eq-{Y{?w0eRB!ql8Bsh^6^4{8UxdT%*&{ zeKS1?+1ctT`RD9_pd{dF0o@qK%983vn_7Efz3PRg^cK6eq|WN@=C=OEixu^O+?oUj z^-H6d{T+rXJEr2h+tfSp_$G?Wh;3{AL0{qncRUmXQ>}J(xzOuJQdU%cVo$<>LB9%r z>|CfEDEeeBJlv@%2Y;~-2^!iere^T@S1ZmELRj=CN6Hw9W*q43n9pv5Fn47j&QKS| zL@XwJuLY-WKjtPWDvI_t$S2LtnXi|KA2TN_CyKuLQy88euBKZVdPP zjj5Cv?qy$MBjjgP?J&4-OG1Ky|FxymqT^;O_e{7$9URA-T8zVB8VGH7fb%z2tRz~H zO5cV89&3*-vs4^(lPqXYCW{O)Q7d!Il&fsZ4C_qu_Ggnwh2v6JWI9e=t8uD{8|X87 ze!DfOq3dVaxQMBC+1tzVcP*bhEZS!B(a|hsX?&*A;k@$?Z_!(lk9N-G#|Y2`CW_Oz z6n}Y=2n<=f8y|2N^;Tl(0D{V=fB6-vwQ?V$Ja`f#_rfF__G$497dgrXJv{k_4*E%4 zUd$U0c^3;AVqixP_(`kC;n$T;#Ho3bQ`Y@mlyDm6Yl}Zin$6jJs(!gm-z(Qx`#|8% z$da-+sfZ=IW|<4flok!6 z6+Q60V%h3kCHU2Gszt);v!7sC!W>!E1|m7rQ239KzDRl6NbZK0RkZ*yoQY3I?KxS{cvu5C|74801O zfDMdVy)+z3m&u+(4V*9^>2;{8uP-XI0%-|&a{Hm@^Zi&in%ULc8oE7-NMWt#SRe~X zT-g_0o=3>cQ>X;Kaac8r!Zkk^u)6PMv3NYCRorJvi2*O%=~FMM9FONn>Nc{;m?d?k z=F3hC7MIa6Ghx{2vY8w*+CcoxW!)#+(0Qf z`DM0+9)`um=gyavyK7cu*EHMIIp{VLs#{L9+IJAUn|p1G8ZQoJ*l+Ei51qectktM7 zQFE!Xv1>N!l1Ae|i;7B1Z#zFA(o+QqLJ?}5UCwoA`x&aMsEs>`K|sIaeij4cC_TDvHlqm|ACa4rJn4NBmEP+Gu@yZ_PMRAhhcj>DptV)@c_W)OMA-+yIUF z={A2$e1=G7WJA8}dUsI2mMHS2DkWay)>-%6hFd{W6fnRVRq6P+cai>rBmL&9mfv@Y z841(a^n+k>2F{D+?N6_=F?w9bzPF4~Wpcwu?SPnr*J`9|{F?ecgwE9-ydC%Rz33Ms z?Xf2%^n1I5u4HV(tcRJlZM@eUPQFlPQi@7hCrsI(V;wkIgGN~|2#@{_WAC$%r<8PD z@b=%TQlkcUGB8KqWX~)NuAln)nCkM7h9FTG1}{F;P~fWG*I`H~uE#tvzO$RnnBf4E zjEIowx}=+?PwfI+3}R?;>chbWilR|Im+NwMF~D*7DtSy zSQd~E{-6b{-|{o=PnkZf<@3a868WSI%Vh+$MQ#mLY8S&gQ1*?*qUNRm7S#EZ>G&~V zlp$549R1$bo>5dj%&QXiVOyb!s!@1SAm5c&i`Awd%5`9;J##&MjujLk{zi{|MQ(@nO zmJ&vWmbki{Yy&|wbJbjY)nJiO{Xp>1^ID$P>}#BsTm#>T02H{(uDcyx!^wZ$Lx+#+ zim0f_nJqji5+yD|VB!EUjUOg9Ya^!?Bdm96G0vZXgdG)00#3KNykZ3~2b$%htz3tv z<343dVzq}=5Rw;5x7XEQ%m`i~1Oc_2Xz)MJ4iJCIid z4Cp@+)PJI?{d0o)J5?wWQ*{_8_)rcPcEyhk$~xKtg#D?s|oVdZ`KS1U8%CmhWUzQ&ZpIhHeH4 zv{t$5cAn`8Aohb8PHn#Y+~EMR%W;mA_E)Z7-KTe1V&am6!Ie9K3YUpD9^T@2KXNra z-;7z=?^w-$8K{0)&Ee+uj^}Gx2RTHp&dDo&NHaRaAtO*eKmJ&>i;rBKy$eZdW??=b zb6HHiyrx;AOT)yg%A5XXEDH;Rj}1iO=9|Gv!=T2_kzMKQ=QXVilyc0gXTkU?8pso$ zWT!W0(tD>yScD`QnPJ0H;Ju!3zx$qOkbMU8{2#dq!99NMPp3PwqR;8G-hI^ z@&H>iBG3X2vHmuBMr}}3KS-UVf4t$)Ozn?YQ%<=FuE8SfdAvS9`R&Q_^T0H-SwPF9 znR7SlvB+GvNd3)vtW5_EH2CvT8h{XBB}{K;RyE9XvJ ze`B(6j1YE!eRRpm<^kjBY{C8H&5PJ~#wqKNP{^#?9%B{KnmO}goiHDvAYDinzz$1U zphqtPv!N-Y_A*9dctu4(K8$fyP-7wFF+$DCBn|Q7Hz|t@$VEIq$EKPTAgZ?Y4i&l` zcVsBbL+0S37}1>lydmx^BCdRq2#&OC$Et3Jf zs<_(Yv`0njiTD};Eh|?GnD*){86|IZV;F;fY^Ngn@t_?;?4yOS1x#fijfo}1aOiLu z^Ij;%KV?Bq)FcrUm?_VU6M%9dJ9r28HFCj?V_w$O0=GtUpeabIw?gvZ$KB9*&R^;r z#*}3XLsS!4TE%S{ebcPMi0t%3?r3$z3yYP=d6{ zCeCaX590^}8B&Vb$W_Ov3l<1M*h?$L?H7dkQ%@GorVbJIvpRugxd$!8C z4UdO?I+rC$;;!u$F|z84=n}(tjAA3jzQA|R1^0*V*u@3XL8iY+7X%nDv{eE8?Ei~7 z>()&cNnhVa&iapW30TU1Z`1zQIqUzXt37q6tgAXEp>#H4th`{t_W|2D>}YA_m0{C> zd^2E53J-J^JRN&K)bzITqw90V%90AlBaZ(Z6&xL?E&&6Bv_0Z|bPM$Z0yBKoQNRH{ zp}Z7#{lc1K2_EX~CXl*&z8fH2#q}P5bU|CIoH`5jdIGijL5gl|j>bIQVJe_qQKuN0SYVALlmXLQjsTyvTGCBnE5*2`JtR)3nmKunA z)WJO=0nfdVyPZmU&>BH^J7RJ=SPQpmQwAV8?+11i?AoQSA@p8HOL;9?4D^LT2#yZ6Y`mzd0xw*CN zb}yz!P7es@+--gOc=I84u`f0NFBAea`+o&jUH4^40XULlI9=uV{g-|q$BI3DlxI_3 z_P2yzZY)lo-u>{~-+uY^%}?h~&M%srI{_{{MUI0;Bg$fy)V%$U-1ZDv+>kDRQ+1cr z_0xhKY91T3jxroi^~io{sxk9DyoM<&oDFQ(jzbFgal@(vaJdc zX6obS&=phTM=Z+5ZL z`NhU13;PNp45BQK=re0=40Z0fK+YK@e7=ehO#N)0=jcJ_gS|MJTl+591d=r{&EKSVDW2>@6}q8fWPBT*$#BmQgh+ z87)R~p_e7i|#D>();bk^j;ZKd5ehy6BOBhqZl7`WXtXA zuY3AYVahmZLx1w6!?^+sZhrFo?n`$kG@>T)l5!E3-jeg^y<(2#2BMb&er+|^MoxuI zJ#S8niY8L<7R_QNt%jn?ph;d=ByO-i57CnDM{4k3(l5NyIl>MYW1Z z9b#LDK?2ILhg*#esaJ#r6k`x^-NuOnB<#bJ&}!XIr~W`7V*T|I`H^<>B=J8TjwBF% zOIRBj{nrWWLx&>1BO?F&xcfe30le%#C#=iM{}V6!_k{JWKN8lDHhI|qisb(+VZHsl z;*ts{%y|&By6Qr;gJvB_@vKo(c#D%*ThFoX z%w7jln?!0?6VF+`O>3};JMJJ*hmGvMIO}k(PBo(Y&Thdv$jqMGEd;_IVw+sd!>A_? z1VNb4DHq8$oqdw2rh(Ba^KwTZoFIpFNhkB+Ow=M3V7Ez?)UUK(a8uP$ z#eOK_iI_?{?F(i`EAwt-D{&WTIR#J54U`7eJvc@`aoaS@0_Zu5&mpnAgy8V!!6QlK zm`eTd@ru(Ia0=qg^lFo2biuJhi5fIYlD8E2NjgJ`5oyp6V40!d)YtLsy0f{e_eNU{ zDr}>oW6=*7+d9ev53X#792DzLdT3pK_Lqo9!?fZ9(^Fw8}elKR73TH z?OiK(?t~w=cG~18ISpy(fAh?eV3}lvfWXu)F(q>;qXND~(mIaKa>A(4C=}$&;#mf4 z-Dt%e@#YDgd;%`xO=h~>Sg=TvGsdr5pvSo`lw?)L3LGULr$GN1R5Q9~ zj;1%L0m-ldu6tw&o}iU$Xg;>BK(We^Q~}A%Q+HU71HZVTti5_3isXVn)6yKh0nzb^ zpx;2mZ(W2WZ%Zj2Mu}7v<%tq(@inj=)-eo(To{K}VAseBJm3_v^6;cQ$2+Ms)r}@8 zL5yKPt$cHnMotEDuU2TWtu7V}TP97TBAXq>tCd80&s3h)U1efDa=Dee_E>$WgPJJJ zg6kw>qBQFh-o`VPTf#`sp$-e%S8>NGwD<>!Q(ydBM}f?Ai)>U07S?`<%WRb-i9lNV za=jSsj}A{lu{ZWkR1~%Qhs)}Ss=Hv+lod@Ia(i9f_BBwZuibzSI@X#uwWLx>p|IVc zDQ0DDm#kBJ``a`o|C(E9xB`(v0$03J{n{+5Vm1LrN)o_#MTtxoda0RPVp^F(k&6Lt z*ObL5^IJkDQ9`p6-zsXzU1MP11r#SwI!eJ2>LJ4Cu-6LNix3y5dtWD-s#1Qnm(&-d z2Vwj!DQneLm$?0V!}|ZB7ft18j27fO>msBpQ23%kwzuQ z2OYQ_a}f%o1r9fCZ!JYa`vk8)uv@tOJV(LD^bQL-qAD7x0C4TJRZ9u+qSI7 z9%TXFM$eeO5v7`I>+GG3#%)DW!v;Em?Z1k7niWPmMDr2ihX)n>GqzPHHWQK4yiO3?N+-(KI8jMrH%4F*su0jbqg_q3a)k zP|@gtbXyK$UfaDBn%oDQe^njX!A~l9W$@5NV}}9_BgKj zthFnB>YtJ&GNb6#w`Bg7RjXLaevjLQjIKngzt%n?PAr`%lm#>j^24?qr4QRsfeXvJJ@e`+vGca;q}$RE5I@pl*AktS`tAAqw+}R6e=Nw$PERYCA3(EWW;ljrFnB5Ao7I zYpZx`$c0U~Dj-lSMZ#N@Des?U9lFmPPI9jiPSv&3hdjMlvNzAoPGm83H`f039=nVi z+65xW`L|#3N9BC0R4>NgbTFrT_nr(NRU2Aj_`zK7kJyIYzM6(`7HoXsAQ0|*RK=y* z1J8K(V^c;!ES`o>dZv=+UbQ^BG~|E1egE?Z8!dj|9$~z#`9?em74R|GqGF>kYsaC{ z1`-Y<2X|XNeDxI?`}}6>FSn+D?mxP=*nY-jUH;CrS1hVC)LYrP-Drw$twp*JbNDc92)b2#I{g#`+PjU`vQ;GE5?#8z@aZw#LS3(`KHW zv&|Ido%XU&<&{e$k}lY&#dCR;H1#)C*-H3gD};pKm_>xX+^Qxl8h3+NS(V@q$;eR# ziiCn5lxH}__|<2YYCe?bu<~z~T6Mh&?aOq}B9_+qHif&YIJx-*uzvlkFSUi*+Fw%O zBhDOVTbJ&lHUbYlN^Ujw%XsO1Z}5u@Y(zn|rMb;9k@GTAg?4tfuN%l7bqzhZey}xB zpZ*f&p2>Mxd?_9jacEtkJ)By40i-)*r)oBWx@Z3@20r5Dl0595*%x|Am~mF`vSXD? z^FacIM6Z!|wTO0BJi7z-lV{W(UU|l#&$UVg7AX<{BfU*Y7ruTrT#}HFeg}#PfBOWBAg4ft{t5Z?lu_gs$GC!4gT2&-|U+G zC4vpK%>Ej|4*E+3`?uTKzelhO{v5%+aN(aK*#9*$`(FYg|8vXiU##37gUUb~LlQrr zW3y}aeMlOm+>tr#6>$&fnjHhWW_SEd&3EdJ&KoL8DjbVS3_1{@CV_we^HIX7JWpUY z0vB(|Ny#s>S1Yant9j<0ueHHeg5lNY>dtF4f|>3$t>?u%bh|md`MMnvgZ|uF`3_CT zp3C{rM!~5|)2CEBR2;6{JSEg95N~^L-bPKGs@dUYM{x;!Y^N@S*fQxW*`aOc?DG7) zE-}HWI0ww5CrLt`MU3mYh-gDETOSeU@l+VXP$Ay-iDfkyNivU?I9y>RA%1#lhV2^2 zaB~;Jvsq0g<7YKbCx+ZH;M=aN5$!dg@U`mkQX4PFg*tr!w_Ix{p>qLb@byfkg@R12 zS;5o>gydJ~D5GJx#?yz|GqF(GUSU03k;FCh?`#sSantf&!wVFtPC5e|!XYqBwxjIH zvhwg;|C+J`Q0xFA*z%Gg52kwGL9%mwOQkm6W}-N=h6md8==AFxyUmr`7vf}I=x=LayNGEx?<{4xcr{?Z>|+>Z1pd050)g0=gGb?ha5SeX`LFMxe8?>RtTjO zM>6wQk%TQxJ+#4{OrdDa7a5 z@2-Qq1Zv}&S`j6oeCfEWat;Hw#hX@+Q|h=Ayo*4kgutWftqAAR-1IF`%G5LdWez=f zjY5UHGrV%?7{H>=V5C)Gd?t9j3*y?mx^jnj;X?)8zV;UR4Z)mYba~v`0V8prlA`(s z10`~;W3)S?@y*SNVQjA(dJ5YXJi=^qEMkRb<g;Mqa(FMF+O5K5mMQbfY5@W{gF5~a{~ z`NSxGpMBKgC`u{6fjMk9(DhtQzXK%DrIiD2BgD)cZZjnACZF1=yAGbJJ|$E-DXmA6 za~0u=C4^Mgit+v~CjaP61E6eK*}qbgwt?9$nuFAm7{c!+)n_18BADz@zKVox2bJLdpJP zk^eu)TSG<4pu&Kd{GPX#c7Y82Q{MXfDMx4g<+p~hTO*BCWtD*;MnOU;AqaSNX~xJmcP5$-QtxX{B`Z6+qPPF<=#c2 zMwJ(ibW<%1!3Vz<%FGUGiNntV}u=-*7(pYp_U#t$> zX$i9Hris2|2gkmM<25QNeDXt7aRsiY;8d>b8}s(tX=TMs1+%A|XE0%j<9_lcm1m{p z94)1awF3Bm9|b zI<^YQ;xc3F3MsFz*!cY{zw}E{!uJy(T_H(2!i<0*ba=mUp~YKjGj7jzTX_4oaf_Avv3*{-}9u1GDs(%@eN=-Hq*;~ zR-GNmp@2(#$Tq&zNUtWIbu7%Wy?5>xpLFK(F!jCo6|o8(|0Hy>OmC&2 z%BR#|Sdcmoj8KhPO~z=kq5^SN5`BR}T0S)O{SLJ>FkCu{!Y|2fHfJCQn(tmeOG@{& z$jcrudfqC7+>?yye>*|6^DHAti))9Fc<@1Ge}3y_+z1)55C^I*oPJv$=9=#}{wS^X zanz26b2pRkS$NxUTy$F)w-%+5uYx(ufd$>eEl5J`Wk&!0Z(d(Ax}zw45wi(!r2U?(NQgn}SgT%&MVn9y*#Ws5sX1OE3|*&As8@9VTb4C?2b$JPEW zT0joqKcY2dTb8utPfn5K4DVk!Men*ycH)QL8f;iasMX@(d zXdD@)Dm0j5{sJ^~+z6sAtD>K5tfyUJ2Xyh#Hmb6mn>&gE7z`A#A#AO11Db8Km(p%t zopNhG`iG(n?x@^JK_eOf7;Q_T;;IQ zf;TniTJK?Uo>PFi@{exLdmb0MrzWfA4gG*fI^$POqvA+0q~+5pjnXnXAZ6DGc9@gv2NEovq8b!h8Gzp=tc_E{8dl5Xxf4;q|oU!jWdP2lbW1J=3~}Um?rhJ`IQG z@bA%0-xb=I!XFqMWez%)k|N{S2@cA&z8vr@sTi)u#>PC`)jV7Q>(xP&k6P1bt5(?D-lt~=~62RdBWm3k% z&Ok+gi3$xU6LeFVQ~+hdZz_{uHxvOV6J!ts<3*?sL*+gC9i=Bhs?!nTfHK{*C(a4q ziy+QQjE~ui%spJD%FU`Tys%Z9lX?>g9~Sz^CvD?s1Inaak>-tim5K=C3gsR%Z!FGD zA#EsA4%1jq<9B6}1eD1Z0%0Ht13teglM5veFJcW}hank$w98Ogx%pfsV8^m8mvRJw@MRXPxmgu!}U z4b2!1rYIDgR&K35^~rLHE%?^pRhrV_q_#ZiN*3Ojm&_}cK5Yx?q~D#X-GTRB6YqR3 zP5d}m27n$nIw6(cX4o4Rk!&JcP#}53!>*)RDD@n9C>GM<;{3Ny>C0Eo*_{93;`R^E z?{qr+@=gBur-%3UA0?blguQ-u>C{!-X@zYe_kmNhz(pex7MCj`!M0MiHK!*QmoLoH z?iG;$IFT0z7f8xq$g%llTRQ|U9H+5PSIN_iFSk*ruE4Ph@hjy_u@cf!YNAqAMY=et zCo5SmJERh~@5+i&aAp(hQHHuY@b%vrw_=gQOfywQ>ASj8a&c7rp2LoDt>hH_o=>W@ zT^Cj!K}B`xV0hb=Rt8FmX+Cmt_h>2ZV~vN1mMIQI?Mhg~ zGv!IBq%u~3OR%^Ga{CG!&+|@3N!UhNl-n~wnpH`~Y+jv=W5Tlwc@j?o(n>ofhS8O) zs47J5A(A*wqj7skp$!+*C@XiPJ{#9t*2lbX2J%@3Jvvbw7Ha+F3oo1L>q1m^aGV@Q z4(g`JphoSNU*bsKn6vdKN7IiF_c|0&UWVbNLX`&`yon98(d`+~!MHs;UKq>X=-VO= zBJy6ak4nJ9o1RazqB;iyWU*+O%AFFx*hPHkCpA*;{2WB@D*umdtpg%3?fByb(17Na16f!$I7jUHk z&d2Ww?2V!<@NoN`^YM4#xqSH#4BEz${!a<)4P*MR3GDx|9rRVKEO}!R`rQtaoZ$m{ z^A|fPp8ldwGBCnWMFxK?%1=&QF&^-Q2+|k?0`P=X4($h_2C14nM6!Fgqx=}CbJ9<0`e(;$_PRH5 zbBWW^vm^Fmz-en=#c8ekE4CUpWnTtWwu`*=cSMiD7l`isJ!xtWvQuksg;FF@ynIbN zQ%g{r{wHUj=WYDrjfWe>s-k>vdL~Z7vG&HUp)O#HmS_g-QDBLNrX+9f5rG}+>V^zW zr0eJqi2CE1f_QHGGf0I8*^$hl2sr3zYD;mDY=LPZ=X1t$JydWK2JwW+qHt-JBK|{O zJtfrSw5o8QO!mEqk>nod9i(VmDPUzsJ8P`%BNed(6J9eI9aqwaw&kH(*usUp6kajr z{M@)GBWulhL2W z3&}8~7ma6^cg37-twCGPz{si=;gPtdc80ZF8GD^9F*qg6NR|i?-t8|GH&-4;EizY5 zlUgyEPST3jc!bmPS*u7cLU{+C(xetKG4d~p*hsR(DF3uvTRbzv+G~bRHEd*6N$Mhd zmGWR(`bkLZyJbEG*Mk>woO71S zJ*rrT#C1~>2*JvwtKj1RzyAP|a&!`+C&Xv%^CK5PIze^9i z=ipt_`Bt4##tyQoUH0%-IL6oQCAF4WckTINPjzz`J#|_5Ce|B+Uqc%p_8AcI&svMm zTZX^9r8oToY77(4Z%(*NoxR%^!F{;3p-GPz&!$(pXf}pQ5*qjNM{L)A8bzx{Mb(V2 z>H6&IQ>!wM9;fvHbKO-fi#Ispn6?cT$YPUl__)?1J7Q*(wg%b+T3$YDfBS1;^MFvy zDCVo@9;p9?vhATeHe=ZT5&$A2qx2tA*bWXZuC6};y7Qf5{ohDo|8c4aczyxpk3Sam z|IHNkqknzd8YqAKn>6D;q_E|b%2GuDx%vIFnvx52_+MOB>oUp4Prlt6YZPfhP*elP z8zmXl&GCk)D2&DG0pkt8KtxGv0OJi&Oz;d=3K(y2WdblP;Yb9ru8s)IHyRuc;1`Ma zU;{k{+!2=q1o;sK4!ek!p!(V7R$AI5^D#=x1mfVEY*RY3aOB5@TsX-V7X zvD`Kc23loPo7_m_1$E*Fru^@15=PBR@SgibOPz>_43w-5QyAEM;2uLDifxcPL2bH<- zl7y`_{9$})?_nUy=*<+8b6iHb$!j>;S=X}^w#sUB3V0?1O1RdkS z#Pd%c>|!&}9*$q0<>{D~5L!Gs)_AQ-wLs2Vt7;*Pz5Ubnrx@3=g(qhsz34-&^C|dX zNdr@2M1bd5v08^-BKtKMIirvR>7L*DfscHj&A!t!ozk}lb0h8zW6)*>^t$!MIhWVS z{)@Co^tlHtEon9E3m+WfdjBy0x_;3sZn3=abR?RgVLP>d+ELr_Io-hatIo9MZjrY=TQHVfO<`lIHNIPOFXDA z%SGNGbHzwHWzrpi-Fn))I~0C9^oiktDUN@KUf9mrfe#Qfv>@qEht~el^!_ej8XE{% zLw$Xd?<{^ZGYe~L2Y`|0_|N3)-^Qmu9&P`ge7%85D=+_zeEo;-4ZPd_H_6xkI~u0u z!u)p{cJF@dhK6b2H#JOF4bZTYRH7nINN_{LbYU=*jAmr6A5naZV4XCeVWMR)gpkID zhV=+;h?wT4h)MJciVQTlBe^i4p$MH(!41<}`3g*XCPLx*Y5R)~26v_IM;KgJ1Wa$~ zy9O%}YS)V$9@**KReBdGJgQ3?KLsVX3w(PpZ=kM?vXCcqoU{D|Pij4|)cmZ+pDk^W zuDzFaOh1c>Be{&Kf&pIS8Bx)OjxoH&&_ykL^|<8{G+k_6mDCZg(Fvk4irlRnS=_Bw zJ!&SI7Up+H?Ap({Q#?RiPi}IJt(!M+RRnTVjo`M8CA<`TMp90U`(@h`f!qBc?2J=% zpw*o=vACaeX3ERYib{!Tu%iP&5Bk9*ic|E`>-|Cz^k&dLYwPqWo4uy-UyFQi2^CIe zFF1;%VX;+jc1CHolMl6Z?A1ew{2D=T_tkn>NbxrqkwhdMf$6`nPQ51?(!Dds>?7>a z5x=lcJHXJ;7y~V6{FFK8lDI?hUQ)|Go3vFB#N&E6nVfv_Wh@mBVh{attjxb=A13_C z@7Qas@z^j*(n@2IDdq=~W0+7kP8oI0u3IGI?dRx8@`bhKLW(KKrBuO^5ao2OX4{Gk zdA^iNvbKS3V3zO$)5T=OtFiJVtM3|yx+18Jti5;g>EQ*s|L6N_e2k0GBQioR<}*EJ zx1VNk;kmS#C&h9_=D|7!shZV!v{IUSi6U)zi%`Te>VPD1YTHvpXz-Z>W%SiG2I54; zxL-lia_mnP%vw7&#v=%(If`VYwv`lczAHSnyATGaR?$#L7$I2e>30- zI^%7SmZojT8vT6dswlrjC2V;V(^1dnmw5?&xsURR+jCIzk~NWmIoCva(dn0;@T5$S z$+bWpS7;@7%%;2}qgD!8t9LqYchy6&KkeK;Qb0Aei9k}SSrI6Y32t*MbqTK(_{+!2 z;lUMMf1Q4c?%d0ZY$Y>AoXOV)KKH(unLZ9@ILp6uQNecMVo%>GQoY0}hn$O#-NxUH zI}T9vlQhMq_Fi`PexbX|Kx}?(^4Hu$`lCVlQFcq9+{J2CNfhxhxe zZ7`}c&*I*+wh}vBLdHF~Y(DZ5dD{muQ`*n!Z*?ZLeiRF@Z?ppHB<4dmJ?1YO z2pZgYbMyq`S3tg8Wp$5+eyM)`*6hF((75&TdvLe+*()E1e|;zNA76Zb3TN-Kva)w{ zbaQd}nH9P@| ze|^6L~Et|;^FbG z?Zp}7Mn1`I$^Y)CuBxqv>tQ7bJl@lcv~L4ZqG>xIO}q)f-`7DX4`;BF62o=N-TawP zAIxhd38R@V$MnH8Pq29I15*oL?QNuUF$=i#z(5q8*{bRSt3V?fqQGJy4PwK$TST38 z^(PjY1e}DJDw`Z&?$ZO-o^fC}ODWpexvoR6v+vJ{dp}fBGV6Rz)iyA--hS^r z6nsjus^?Ti?JOGJkP#wePHRt5Rd(d=`P&$5NY-{=hX2yhSaC(&Zopx>w7wBSVxc6& zHb$_$__H*>DAqy}Jeo_96(WCPGe!LZ7n7wA^{gu~q~g3`bVY?8cIt0CJ8yYGt+Au0 zGjFlkU<9GidI+O8qk+K4hTy4)FR0;1Io1sP<6K$RLM35`LK@XzYd+_3flTSmvV5PN zK&;w3;12yvMAX6RGulzY%LNn9Le$Ur4deMG4khO51(6Dx;-bda>MW2S7O2gZK8 zfd%ar(Oim-uU*L5YdFnBhnDbzI^Jg=;+B`KXS=K5NJi&db*io?G4WpT@lSgiJO>Am-@A0vW5Ar{9t7 zA?a#luZFQgbetR`?dzJ1zBeOHvfXu1D-9-KA?q^%~odh0%2~oaEvMMJ6gCn#Qaa)9Re2)9*z~LAfLPTt!ri8Fiwe*=( z57D!5gwXluis}v_Esr910&tzF%~!HhD8L;EiVVQFT%zjmg;Lx`?Ulyi#3`!6)hyfV zwtBau?i{(Qc&*-E`j*~fs_NB3`-j%VTliPuB78}Q_r}7xYGb$6N7}{SU6a@Mzaq)g zm1bJlBGv7(1jbXJ?4vhj82Y=i5|35Pjv+#|M~hO`gLb8$WFEVIUTeIcqrRIggF54A zd1hS<3(+R&t3i`dww5stWJ_;oMW8kQQKy(sGRPa@Q(LkGxz-}ew%7Du46?ZFr)2#DBJ_u^xh--b5_yHk$yrMybHD4mq*e%Y`jd( zGe6DeO3KS6iCcVLbjFrG-MMh@8e^qJ$Vm~Lvo`|V>ML`pEK2F^kObmT;D;9})~UB8 zy?@*)Vix;4Ovm`~1yDsym!vopAHgmyPOr4po6r53Y4r{y;Js5@pT}^1Yi%HgoZ%%H z%McRt4$vhAH#KO129=11!Z)9RQp0dI9JDz?LD=9VDfKxEI?`ihy_|`p7A>Yg<35$2 zQc54grwNqAD<^B#*WxoEeV>$54Rlu)P68uT`EEE|^Dzq;p{R<)xucJF%O}#vw5>DX z{TO+VJF3BLvlh%;>HvvR;8nuCpuHE@s-g9n?{JtaMCAULH7Z{km=zx;mr(TXMX_BzN0D#~R zzuS3d!kUTEpK|$)L-N~`P624x{!Y6FUUEBr_NggJVo+g2*ER9K^kREf*KwtJk%~+sH>-n zHw(JCw+(i}gnGh={ep>(mmCy%FwNmGxywwONjsfs$=NW{W%&t~gVeOne3;5*qW_Ye z=Cs1o`YrtuFDmS}@DOk736}}^K89reou(61-4`;2)CH^n50BrP3%M&9*iTkH47qSS zM`+rErfE@OkH+E*8XJ}ti+WX*hC|G9b-Yvb2og}2C>K=fIts@)QJXS+mWceJhG{OG zso{hMSDbQcS@B+re3k3Y_Chp~x}O109^G;wFI{^_DoH zKBM=iu7zScf^*|Lp_nYo77}R3paDIFVPg=N-C#g6tm}n$msR&@v*C9HiQ(B_i3Td0)L;vF9D;r3c@|3ck_}9MG7PHsNvM)#F zehlSk=_DpLWN8z5o!gBcgxw|6=Yv{F==7rr{)nkOqd(dk6tS5+D>6 z*Rr7rgy@DUDquiBkRk{u_7FNE0@9oGE`};a+z@(EK@kC61w;izMc3}GyjNiLY&(0O z^E~(G`MmibGS|%f<~xJ>PNHxSsg=9MbRoi(YYl^-vVTGvYq29UbN)cR@| zDnqc=8=i`ziB|n|?Fs37>`^7V87tX|%qO1sQ4-^s1#v=o`4Fc2vGu!yTb!a<4|60& z8K9czNNDqJ*iX*5cPzI|b&+)ASSO*V<{hJA>R_QB*%Yyf`D3c!WF!(TpcHyc5N9Y^b;Vsr4Y}w7}{62LoA&_Yl6B#9psz|^wGipI7N2}$>?cv%# zNV;}367>ua@vw6WdMZywVBQF9#aw&rwtXe z?0`$fKQC?dpE+cP?RD8D`=u-@dO+EJv#*{TZ9nYBl|ou}8J#GhkBitPGvrl_PFqYrau)C&bfW}294!KmU_ z6r{Ux()XqmD3#a5PkWXW_kLR3pv~ri;b}!YQuS=+boFU^KYh`kY`-T0-F{eJ0r_M0 zbnXSdMz-GxOT%Z+u>304lD{@Vfgd=&XOn5OMSK#4N{<}MF+TTs6-fc!th3-2BN`87U!^)Y`79&)c&hp4zSXa*b+BjdU~444=i z>{HX@Rxa`(obVM9QbuY&a8Mq1i0+4Jz@*X6Q{buie2a(7Yb-m z;gOqlDXLD+v?3(DI#87B>D~ocJMxWsTJn$y1xbZDhH)}3;J&D>!~G7_?2^6oo{nK= zkUj#1h!%aiAFI|qd-w zxaeQO`ZCo6|Frm9q3jB%YNS(uH#j2b2#vRjH(;gM!0AXRq)$a?omW3j2y1J!QW*8w zt->u@@%RT-Ha>Bl6{jH&FFLJN)l$gTmY$bCgB+Y-iGbEwO_9 zY2>sF8Uzxtfc?yYJH^xZDZdca*5!k`)J(1!I9v>EKA3<#t&tK7uHVu)Ngd7$hW; zh{Zs3y{ed{+_55DHMSq$J^=NHF^xU+GI1u}IZSJRTS^J)mR$2>FRcoR08w3K29Dcg zv}%+*;j~dow)?g(r{c1aAM&}-9~X2+Yumq%KC2rH7iwQVPn<>_=nmO|E#k@N z2+q+hZYykvV%9y%$(NBGWe`_s5oTh`kxhE%=%{sa+pbpY^Y;Qx{w28Z@Er~rD^eKr z7Vk+j)97NtHLXhHC5V~6dg@2pY$(t?;w0`}5WinIrkG^_+K)ePB8*n^3i!0l>LghJW?>Wr&VBuZ5>upw0Fs&?D11aeiJWZ+R1+6 zEPa1-pr_f8vguAi2%tcu>Eqo_5D)^Gi4+RK@j0^i%tSVd35;1sqMS2TqZMEiGcn51 zM))|P{Mgw@Qf&n*4kU1YV1t>gh+nsc6-RCpC$73bbIHdVla#iQPmbK*{yCYZd{71s zV()M6r1I0%Qj;zkt4V@*nc(^TOi|6i0rm5rc>q@J@BN6{LaL}N%UDjsdF7sT#SWi7 z@}QNVt-Um$dC@opEQAQJ`Z%{;Me+DN=sSmSuVUw&2o6(G-iP~h! zv`=oFMjgLm-)xczQafQbT6Dehc1~LUo}_&!b?B#gaVj?ia;aQ7*|*ju5T^z1*L$^? z?J7HDi>#Y%qBJplJ_JML}jRY1SkljNAw`?hmL;Q{R4&O6J!a;$wQafJK^HYoY z+}&91mLZeiSNVG&*BI~GBYDpcD!fecuBw*oqEKy?lZX|Y)qAA(ZDG}64LXDR?qMfh z7OP#jTEkwbvNj(SyNqUakM|;jhhM)d=d}4L2mNfTe9xkxj{hq1e=hN+a%E5gyl%Q{`9hLKCx`xFf1FIpVT&47nhXjx*ZUdZOuG z=aRUzX5;ZV8@}E-Neo)y1uZHnrpMLXGTKrN2D=`pK3AGjM4m6wur&C{{-g~l43PZs zT9R8xgCz3c-nSqM%w|N+(Uc&r_*Qr*z$wHj!T#N&s%VuDr!x4yho4z)H`HaZ)XjS2 zhWFlN7l1^TE!}fvg}3#H%rAc>QR8{sRT4D~yZ1b!6SUeQBILpC50@0n{NW6OR^b+b zU^uPJgv-3nn2DA@@_%o8%Q{*3Qr;lr@P5{7jH_Nu0~v4yZ|nN z25#s<#B-Llu-7*1-F=#3wp<31uXr$lK?PMii-nx##*WKKZ4>fkxmt-e}(r`5V))9oxl8EkH5tZ;8l1YPN3y zY~VQ_=)X2L-oDy@{p}(C&*|%LD~sRK*U76R)NASM;$oox`nU9TeSK4N^WUehfeW|MLafHyip79+4tIh6Hf))g#g#i2>l|Z#<$kGDHp5P+biZDH2xUMhhn` zDY@zqA(3JV8Ul|iMv&8tuUTB=SjHvoc_=vci`!Z04e?>>o@BqQuO-Y z!+H!PzuZ!tOdFOl)>q6|M>lvF>m%3sR`8yb_84I4Jeq1WG;)2S3*D@^s7MI5?sY}v z^cvjkak9Q6+#|FiB&Mh%mkf@u5&tQ*ALC_AloIa`Q{QoGmJ?nLr!p>uyGM*(md(}B z3tHsFW;)mhhOunIV@b-jgX^c$2hdnn=RsQQ96xFu{Aub4?f?=24SwpCc@Tf-!8-5r zjh1zH&Y~rf*KfDX{Qv|Zaf%WCsmbvPz*87~db4>HY;>Pc#!d*n=|0rGGMDWiV*1!G z*Kgn3E!Ms82}LIf!#duE=;44pVf{Jag(Z1yilQZYM%q})`~>-orAfFm6n9|bc+!_o z;-Uz2Sl}5mSp36}_H6dfZ)9k)U}TjHu|(>BEeC^F$q>{VBOpVv95!;53?ctWh7^l3 zi(<(dPI$Iv8?g`q>jlWrm#yB#k-uWTk|CEG_QlPx#P>-^e8RNSDJe9F=ibnS#E3-8(|LPc3I^uWecPVel$_8>^4XdZ;KO&c{=(rva`~;DlElbC6(q5O zxk$k~$@zdXsG|@B`@8r&1g~iNzy^6UI`3pn*~bMZ9&9t+$DgmogQh(vnINodNBkP- zP1F9U21hpt1ek--l6sI{m#xk9KK1#z>0YlAejBiN6wqd=6ExXo_0#61Bx22Gb%*y) zd|$R{l(-%0gy}ZcUih-Xc^!XV-*5Taz1K29UEo9Qlq1q=aX}3~`sZFgrD^z#-2dX! zd%sdr$bFms1}Wg`L%)VvGtkf}@Q5Nm!*0sm0SAbiXwnUgLuu|T%3Fr)Abc@zTJDQTGIb6fDPb|x%qGJ@Bf&=4qLn12Tba(P1ye~gUxMh zY;JCD`F#O@fB)c`2>W*a@kp>a{dZ+)|0aVCz)dc7SM~E%c4NOgUs?))n{mHQtCsX; zrgfk7&Z&cwd5N*)_M-s1NicXJU^fA)7SV=a9U=u_H$*&X6>g|RWd#KTfZb5VvC?>L z0B)!_#dHM%fH#WbmnGz41lo%V;End>4spPeR&7>LZmqGCx+X5)8DP+@(7lXX0*%GdN2)oi+RIEiEByIBnH3pn zd3*0lGvU}`ob6R>PK1+4k)18msabLWy-u|LJCM!WD0qow_zpL>xCjwRgN?~t+>BH_ zNxgp1A2Z`G!DX3N*w1!GAfkeu*hvPSJrS+Jt@=UXGMD3QED!Q37KJU&Hd?Y+w1f$$ zl%j@wghR5%tfV5&=;n3q-N(B|ExTeap-Atn%^$lbhz8`C^a`koiEqi9(Sz-}-Vn?%swMXj8a#*zYF&PlNX;|y1i z-Q{_uSuml@Q?C&vDiPxdZ!WpD7zd+C4<|0aGY%v-o51?MdW2U%C5h9gl zUc;>VBvIdgja3B~+CqL&yqWva3oOs{dR>O35H|^3xvyhmCQj$!YFlK(Iypi@hRn*k zGX7bLN9ge9b0Y7zp{lT2NegH+qg8sM+tz#epm{Y`_fY5-vJe8r ztT-dzHxxO*;DTO@sG-orVTLoPzU=c=GF8e5IBV@c^^1(2r?D;=(%%|H;5OS4I?P($ z>x}Fh>i?qAge9_E6Ud0WfyUYf>@Mo7^4@z?k1!@yHsC83t1{NC1p!;B5~94{JIa0E!8W zZe4M4DOJj$Bo7^&VwwUz6F{+CajYykI6$YoT*o2Ho>E&|(BO${R#0lKwv+4-m*WNK zbt%NywJ|gX#apg>YK)wrkI^^W#Q`Es<8~h%clW_#7t%@ z3SREGdISE;m@}Bh@hk@D#9=_0TJu$caL52dHnE1fnq!Zn)({X&;;Kn!N5~VXHpbp=+HsZ-m{_*D= zex@i89nS*Arfy4@9((a>s>edb6cptpn`w%&S|we1D#qfS+#BcOO-G{PoMrfP3%|zx zOF!6pzFA&9Tf6q_JHl(=!TzFI=u=>3Lh!N{OSAn|z2f1~SLUqg2%+t44v<%YUyQ(P zBdSIr_QV3kBXZI$sxiMDt5Awn-98VA`{mcCd)Qi7%NwT*$Gsn&GkP-LbE38t$44#q zByo^Biw$6iFz!jVC~&7yf?V?1Zvqjv_n~e3#CS57Zgxia!XEg7P?u8b;g(?u%s?L4J~I$hA|J~!L!T~^n-5kB1$sOv ztUwwd2dE?o+7H;Ubm`YaJOzURdK za2c{8lO_~XcBQH%DcSc0R;Ewj z007p%QrBB{=cfyv=6XHWukx-nz#4R)%sFRCZa)M77Q^7d#LpoB@4E6ZG*myBq(O8& z>8g%f1uTlXlDvG9U7P~|Sduu>p$u1wib9$^5EgJz002v-AUL_aoZ^sWM_QG6xF&f( z<}oC%ip%~Opv#xn>Z!I<9}vGX3@ExY*1cASP!mUEgJ_uNvvU3|o$k^pID65TcU!AwuDQ#($AcrLM<`{XhTwSq)za6LGX?wDfD``UWD&PH^RG&BfyRdd1s zU@3$Y9MtU|y{wW?va#_o6_Iexx(c`HOp7Doxr3gd8KCrpW!zYBt5Ya0)sq=k!3;+t zMS`CmpRR)Fx?-JuxR%eNqT>_kPEMA&VNfY~b;Ss!s-Q}d8^L-Y$7c?2M(>nb6{LS= zhh#|Ao{ulc^}p>`lYgc#P#e;)J-XpaO0h9SxA>N&cc6Dt3uI{@C1LSe?MpLgtEk^I zU$n{9?d#UbmT;6$>3=3rEM?F9@Z&W>Q_{1`Di%>`gz3 zgmWa7;l>f`ykrYcNjO@r2(s4|`(l(e;O?U$q&E!fGhOe?Z(>$c7 z*-pXS>Cy}m$UaTu$ezzU6zp`ZNV+1ZPXuy6#F;7;p8x4sX$u*(}oXDamVZ~@Wmd7iYf+0 zE{cJRcNYCR^<;PXNaw=%dQe$&~p+e>a%c4miraro!0CeaEN18$p!zrSPCxiA zX9rR!BjjRx`%arq-lxUefwdpR7$e;e9T`i!CtE`TjiLS3>{Foc&GDRvsq^|J|TP&2yrEQwdkM@l4T|)yq zo7D7p%Fbl*W+nsROMiKCJFI9L@Z+;kgJ6m#+4Y30<{Dkn)>KhaI&B~8K$Vb` zQH>5b@1d=lnyTiKX|E(vBPns zjow1n9FS-p_RzeUeyf+Ueq41jo*Dmq`6=N zYuRSPg1yt(4cx)l17EJG7bYc`n##Vu+8@>n7nEhEq;k{i&c-L&u~OkSMM@X^`E8rR zIr`4};`KU4+yWr`xFW8~De`bPoe+rzp2{9Q*0&N}Cst(gVWjavY=M)h;;_S_P<)j& zE1`uJ#NR|B6jg=dW|pv0v<8@x&EWwNj7D?14S1F>Owz*FIDBT4F4!Dy$oJk;EIgsJ z-f_(Q7QSn`Q@vu$DA~yOW_0%V&aOGex)ODHb=fc%_r^Vli>jq!^x0RsJ8Fx)64UVO z;|4xTwrv=$iAJ=ZrKwep&UCWS)%!bR6*!To$CkDXCd$qGnw08xoWHC|;P*>L^7l0E z@}YrW`O>L3$vfwPqmMHoORAJrzSKg4YrQFFoq5oy86J)iBN}s1juW`!>$byZBBl0t zuk4GKm+p6qLAu5Qe2Jc^0`R4BXMismed9~AL&uj!r7oh$++|l&1tNm{=K;+Nhd7QAu<+Bz&UwXbX!UeuaB;@PwofXdSuq@kuJXDh zCKw{Z3^IY73*coIo;qUFU4D9&X95#}V`w0pJ(!<|%9U|Uk5jhk=GH|sd6)V%kV3G1 z$_3%&yKWpaQ|gi~G!p@NplFuBRurZFWJnz_Q)@&c8l86Zy>ST(_eOyrcTb3<<+-+Tx#1(mmaF*(| zc1{Z9el*-dk-{Cy=F)!Nolt+x{$vt2PW{nd^FeFH&)Pz-TYsr<2dZ%c)8SbX@+CY!=1%Xc?NfXdP<>Q$Z=y}ety=ra$3MKg{m}>q&T4^E+OOr<3?M8Cq$^wWYDyOF60Em*$!Ai&i5JfC4)dC<&qoxKxsFFq{0HCDW zv9i}Z$&INU06^jUu*5-6{Pi@uQA_F=|L&u$;i^f!;|Sr<575 z<@zMw2Y9V-fIWA{y7c9PYak}~QUW9rJ)K(Ids@71@@R4w2+;LsT^XtK^(M)&p>~$u zd!Is)#cB@|7oKs7OoWigb*Gnk!5$eaUWz+YRgGt4>FU%ChE9uYAt^~*82v3RFn%*# z$x<<|o*yCXs3xnUbPvbrP}eBi`70>JDn<-n)uuPv$q^6iMy6SpqeceX=pEYf2*d;95pdNHa z1z0)y2z0VF?A0q0bV*vot~^i;7ceBvc@{7?`+j^k@UMqHI68G^MYv^zEsPDrab9V` zF%hCq-s2))T7|9q)+O2J0(42rB!2CZoG|yjeGE6dHS*X-R~Q^Ko$9^5Xj(1dZe#%n zY$hK#etero96zCUHw%=^+*Y6}MJD=q%BROs38~JmJc88LJz0dKM85&`49yhrh)hR_ zR-(v({5YDEtNlRP`Q?)$La?C2a^S-c?k_ybxRwefA~A0ep4pD@DS33jPB0$|lchz$ zMc(WN!S+UF5t5QjKJ~i8pe#}`Jp^+A(xC13w7@k|zDl7g`ylxO*$Gq%&b1XcMG^z0 zt80ipAYL8FJIM^$Jav56W>E|el*e-ah_ADjWm7=u8imFUWppAxc?ol3tho=bUI%JH zmw4+)%tN?P_%v*!>ex&ESse)!do%m^M;-A)I&Tk0>NeY5r+^`c4hcny zuN2at)3{^XIhnxjen(?a3o_}wUjKsY9^KY0H>S*c?TlE@K*-4D?fG482m=Yt%sn(= z$}XEo-2Lan-7x7ej23ovk=FXAo1ui!E}K4NDD9{FW3yw)9PQl_9ZAjoN7_f^D3V|a zBj!=BHO>)SNn4d+Znck+%oj z1TNDyIp$t^>|x|JeB}22y#atq1I}RyIGX^k0E&jPqT(sL7<-C@gfuS7KXgACr<9_I zcTTrc%#x6l%?op;l$22HE3Apt)t9;UxCTY#=0JO?HVL_o{q?-7R#&VDeG;U>{REz( zH+{rH54h+*IjL^@({|kL)LDDtnSF#MkK~53``vW;KFN3e75$FS<-RAhCT>C* znM1i^pLxW>KtEHObW>Y*|C6O52|ddarJ;V|9uq*tMB>2b2R0LS=_JIZ=%SkFzoH7qX_>&FFd#VDTH9t#{r8E!3h2vj{OUZosa;KaSjo|yo z=;w-eMa(tGDv}H1KQ4Ny6Sn1?E7&wJeM@zFSW~YFXR%z3RoAn{#Bj4@^Y=$HFV#iv z6~A=C|K##r&QGo-5%0F0>NX1$S=T$IkdXTwcAdB)v#ge5)Sh~+qk7-XYXTG!%FYCI z+9`>J$`eeU;5iN%82XU?v$_lu3euR^2Zdt23%0^ZnYaki2k&v4#pxeZqNK);t`r&p zH?pjlcaM)woyLFCbT~hN@h74phpFB z;I|W9{3KI(1PUch^eF|eJLx2s%6u?kjj(d{@$?Rx>-WrfP>Ctabd0{;o8?TeM8o}D zv)Fqwcyf9)394CF65gX&qygC(U!|o$Q#Tnj^i1CYh;(i=3SI)l2y-Q2uiz z9vPI1uQTQr12at*UTU}dV)bI>{e<-CZrUJvEXW_!8k*C6#hMBV*9Jey_tn;U#2I^m zp4YMIY-!=|dg=WLV)*hJJ%suKv2ty*Ie0{exm<6bMAd21hg^*mx-3=z>ei#zL?Xd( z7EM?-*e&X~yvWtKa)YZpzS3Bl^Q5~@&G2h4ok#P0BzZ*dwb$V5DT=9ABMo|hgub3s zd-an%Mx6X_ANl_=n7wny4%>g3D>~ANp|8IM;Jwo%9qycX8)vh)lN$md{yZZ3e zRrzHYtV7ZUxD82zESM(JBN6a;0k_eUl~qvJIdtAbPa`#z2yh$K99cQ#=wra)oE|`J zbZTlY)_IgP5SoJ=6xw8!J3<;#uQIOCNxibV1D>Rz{dPAkH{9yHb83P#)x{v(N}qP2 zOe|R5+mzi~zUZkoq;cahU8Pt4ZGbzgxXeQVtYhlTW->vTi8bx%?n4KMS2V* z(iZUkQx_P1-0SHIvF9koQ>SbsMJ)Lc z;jE$a-AA9y%1YEzMWi7Jc`OnoCUGH&zUHN(UH0SiE zR~xg=fWBzr!avGYU^s~JE4YZIO>j)4I4n~+>RHE?73Y(3x87erMo9ObjT7A5OX{Rf zs|M=%Y37TFQASct^q$BnBQca|H6d=enp2|QX_+Ck0(JUPiX<;(ILU0WB^S9>$46bH zuqDV8xQBmglIFN)6Q1CV-K30gi~h*l?LgaImdrbrRF)>gc&d?M(Zu4P&9aO+D;%t| zNyF2#*U20#Y)P%qm8J54=QBf0g@{GR?j8{k2txzQ{NgAjf>s2YeK(R+O|mhpE0H<( zdy*Eag)Gf_;mCx8zUlOCZf6QQgqzLUzGr!{+9aIDtAqAeG=H(E_ZyB_gCuEB#IvS^p9tVe2~$j|RkOavUdTqWf4p{5(!j9+Gt*iY|?LP%j) zjYD+J8GZ%I8}wGv96q}}P`bd`eB3IQ3q}Mg8=Io3Ohb{rO$9q96+``YncWMR_{myH zmuV*=bHV4V-xXxuYDBxY#iSQcuKVsE?CSp}qAhq_^IhG^K62#v*LEX8LH4(Z_SXY_ zK`SjF%>Fr|ee2f$c0soDvHW~NOyH|uWX?Pf0M=jqqWi!3McQNmU}>qZiZLo#T}^G( zFOri}R2PUbDgaoTtAHgZuMCJWYH2AIKrHRw#25h(V+!qZD%V2Rw3t?(T=SrZ*05Se zH)H*6{)u%Iz;Z zzZWaoMiJdaiNcJB7>FrW>RAAhV9uD9l4%xhpi;d?D*2anP)qz>}|ZY zZSYYJ`s7W41@(OXL|s}@k$F4b^W2qygN>Gm;;x_CKek<(uuk*ltI4c8{~Y9GW!1Zl zyn-UPE(qtjuvjmA-sz#yc{v)&k(;6%J;_XK=~q+M=X$)A_U_#?qa*UunTj&_TchR) zWWn85qhv@}i?|FiGwf>95hK}ymA=5_EU=b6-L>LoED&RqniYjt1p*qRlHeVF?ewvy zD>~f|Uw(m{`uuk0!1>d^Jb$Xf2FF{l!k3j|r;kBu8*mZ7-dUbLwm8|P9QD#iZRJ4> zE}A$SOGr1eL}X8zjviGpDxksd*%0<0)!b6RJBO~3PE6QRX6z!WKnZ-5BxPoaJ-;O& z0|GVOP)QS!(+QtTz1PYsxv=B7>_n>7aSKTLj_;UL$QaA0_A%4Qk zGqs%xo}Al5-|ZzOED0<@d8V?#LMUdqi4aQ%RBCST_zDaZt222AJR5nP5SRy2Nz8F2Gf_F_z+Q0 z17TDQnL)?!%c>$z+ zIbUOj%F-zSkJw47TC!A~l7epN?h@z22xf6zf^>Go-PcKljj6$7U{j_2zDM5$=(kLp zFl_CfF4c}|gltEf)5cAJ>)bZq%kTbR75y>91crE=K^1`0 zaDw%SCGK|Gvds>}Log*2#MSI-Po`E$e!0CHH;7ag~sApn>hk{K`xWPPx-DTy?4* z1W`(zI13lWO}j%rR(!ZCjA-#Lh7JydK@r+h^J*~3^cIuz+dgF$COWX09?9s0s5vav zgIjW5a?YqPwxfp1`GLrwmY!qWG2nsLMedGouIeJ5XVX<5hy-#JbM%6MI_iOyCvr?9G=0+RVU>fNce@f{Yxv456q(E$K~I6oimgwqpjrpbs%Oy|^fIRplR;i+w04pN&bzfMlebYU-wJSN`gYkqs&1Zc`G zXdG_2CQsgffXg)7PxQ-6D$B)x`axW)5jd{>EvNm*%A!9$;D5_$JN~v({4j#Ov?7er=0*M0ccNxV>%c1*}jMLQ*Qj z`RBBffeS>77Adt+ARmpCW9irg@gsj&iKL%A=VS~M28u1NgctBqA@CH9Q*_}<4;KPf zD@7;H*j>mBt(KAGJvGMPN+6e1ZLJK2A;v#3)eWj`R)%nEqQB<=&Z_* zkx{Gm^mIP8JK{Z%I68wd={WUfMtk_-x`+H6RlSiN6G`8#4EtUNwdVCRT%V>wfhTM0j z?|^o>devenloQ5BHPAzyk}pYMetoD$B(Ji6_TF>J_#>Zqq5S;CbG#Z`H-3FhmIfaT z!L)&7KI*7;7Qu}$b=?ve3<&fqJ~_zYIEf9ev~$wS6_Ff^dc^~t(ZUG<0<(yd5cJyd z@JOA(&E#M2=b*?nw3wmfOWBpx$yuWi@$gDos7ZzwQfI4K&EHKl{`-vf)~%*An)zQc z+OELE*xIYTx3~YA3JVSWS4Mm7NaX9GtYA3yTTk}yU+w>=jP`%mll_N`c4TrsK^CAl zUo+Y^Ozhy_WV8?GrfS}OwjtPnY5=es9g;3!7KKpBB$B^FjDrylhbP$vB%Y?Er0BQ+ zjf`1YHm6P(6{Xsh?WnBGt8po;C8Y&9;2Ux3S1z?h)pgkE@Nm6dF1l^)eQtJ{yjwS1 zN1N&OR-_^Bq=Vk*tmOj>gCXrlo}(1T!sd!b)fb-YN3YNKTTzEvW~y)Dr&2WMJY4dL=%9mZ7>V=hRX$mc2n; zp=QiV9K)zLVUjw4wjr}5McW{na9exFH@R({LSyQ>F=8%l`+JaC$5HL?yGAHA{IPl$o9g}LYFG?vRKdu(XIEDbYT^;IU~6kj zNV6Oz;jZhAtAd%>;&!r0N84NcEgPo^KztoV`CdL-UVG9x=H-0r(Fz0ClOO$_-Y(wv z@WH7!A6|FdzI^D{4ufAlR$dW0Gwvx!%4_cbrzt4bBS(38-NH`zF91mL;OmsfxDf~QShA-rDD;Ats6^AQJQ8at!kqt7U z&4|0#4VZ~iPC|u54!zENEM~w;Dg$XUli3hi!gn!9WlNx4oWdrSK^cQ~pj4Il#%{O} znnr^tG8Tl0}TH z#WU)GwZ9k?MZoRPvM(>f$rO0`L5wlX(>9!6VBLc8ueh%vz7*aBHyb(ET>T}?40S_H zqO(;vw=1B@+6bfzLj@cQNdJuIMk1Fta5)@UE($CmY!C##y3SID-zs#!)wJ81m&B#s zTsR&OgL%2RM+EU~6B;I4-unu>p0E@iOkp{XOX}*nnegQwJ>s>(?2>=Rit~KI!CI_b z6Dd=J^uUf61wdx0edmbzZMp}pMo5abqsQE(q`(+b_$~oDzEUF(hP(b?V}=WuX7XVh z4g3$wRMfnU7B%Q+nqKfLx@2}CbeQLQ!2^EUT1l^)D|908QA2Ih3$YNG=)_hr(?6xBc66c6|IlrL)&&A=lE` zU0uK~q+ng-e?Ofa0sxrI@9ge10Q*Zidkw%0gY|Uu005(q1oA9Ihoq$y9pthBz%MP` zLy4#3QnV;8F%BA;nE-wj7W&(l+UZtQoUL}DT+$*r)G+`AJ9))*Lz`BV-8DL;6F1Q9 zqSMDsV`OyhANA;KrVm*XZ(P3TqSrTPHNDB;M)6~hNgm34avQ?^t>&2w9)92-P{m+XOQ#ZM^UJqu4N0hKn?arzec2E9N1kb_M8>W zhcIWJfsA$76AAYk=#E~ws3^I!POpKuUH$11t;73Gg{h1;nH3+bLL*`-tYW3t)6Jub zidAi5G0DlMcd9ga2Y>ob;=uS`v(8>j(7PJChW_NiHvCp_=Sk5_YsA=jAp-JJ1!<21@rbi%k<9C;t zArtIY-GDGX$6wMJf}QLB3*>d)#R33}5ixWt6zDT;V#1A|J{}gE?ArU3+PeAu%h{d_ z8_&3I`tWA*ZbM9>^0p%%f9@cc2duP>JpQfs$SCG}r?*l<$ZGTbLLwjxJ3I)_#26!D zlY#HMqB3;_?M|}CbjD)eG!G(Cffeo`NyC9L`{a{N* z7)~QbG;9G9pP(AY$~Xh}%o2}d3QIF#Cv^~TwFwmJuFb(|Rm z7xu{J!5Fg$6R0SaM=P?(1bGTee)J3nk!%B>V)Z;oWQa$y8(*mC$)|hj26PNZ3jr!% z$I-oU)ip=s*}VG3-c;XOmB>_MsBBnPB%(y4lV6v$J;w|>jK_py)wYlimRoSS4@|aU z0)0W-XLQ=lDsH-BaB277$>~C@3s^cr-Pog`E9DHpGOB*pdOnVk8%U)2**C z21PVw=i`w)P=ltEyIZlBS1Pk2x^n~w3yP+ z#Q*Ce6!`EkLT@hqJ#$BV+$qi46>}{fCvs_o9#YS|at;+mCDv|hM;vBl~~I*G5G(_=^OOR^oZy5TV{>n&Ey%fbBOAS@$ddHMQ<&`uxGVbyu5B4T zLg;DX{G8f2VH7Rg1ibQx`5vgwZe1t0#bXP8|D)d1wuz-|E&swxR%-h5V>FXN^hyTJ z2fyjPmbt#8rpbi!vAM__<#I+>t#4t8Op=yu4Q9|YDh{Js;?G7lnSGb;czfpzy)0@( z8rPq)zH-idsz9u?pQtKx5bkaJV)pvpx|g>_8Iy=3R!%UHuJ6QWE01R^$BRW zGJXBDcOzBhk>aP|h1;$6R}vLZywkeZYO%62s^!C@p@G$R{}UU*<=6ll2z85`JP6I@ zDnvrzqMd3S5J=LA<`kJn14Gfo=CRaLnEa0~+~j#XN6=%WA2+IXn8B3BD zaG+E`Dm8VB_c`z40ty#)#EbW-mc2kc6JJ+zoF`-zIlWkL#!L9TP^&cP!sRNGYDKja z)WW0|nmMopoPpdwOF$E+35gn=8160XQa;X=H2Ob z;3k=I>$K*uCuxwT{OF-2Nxb*xrzG@T{By}Kq@c=bi2_GR)57S9Wl2r%A%8!VBu)$J zY{np!p&83Telj?2d5lJc;k=Myjk63cI5IF?#HBko60VdwQY21o479-Q|G-F743Rx$ zXiPuz4uYbLxJ8+E)FLUyUM)1JsD90I)3(amJ(b(cxPY%@@aJguY8UqZvuO63$ope7 z`_3Pu*@7kj;0LrtzId_xa{0~kS04mbwEuY za2aW`>bKMyx|=<6%Z+j2$BWYrBlGue(=~onTbSv-e&~fIb!h5mMoV7bvXb~K>mPn} z>rMd9ZhPc`S8-m-S9zFGRcH@k{U;~0%xAMH($~B~D}#z6 zu8YCQ(vzDS>`*JGs~nSX-u3bEIUB#9-&1t>fOv+{o?jxr>oG@S2^EdYY)PM;>N~q? zb4{A8aT@yDL!Qg;D4!@7$(pEWefK1`en(I5j{2g2TNfN2yr8s~_lo?u;ocW<#)q9K z%;_HtH54{@-j~-HPXz4=TYgXxa|j~s74%wJGDhk2m#c$s7VmQR59ROp+yDc$1V4Kq zN{d*MkmaCMb}9-%9`yfz)V)_&)A{=KorEN$fe?B%K!6Y+gd(D%lLVwCU}%a67^;9& z5d}mi2?1#$MGz1%6p>DlB27#H5fBv+6|8`Yhz-lAqmDd3bjCfi_w4=O?^6!mvz+F- zl68IWb+7fgW3;mGm373-Udq$jsowo-%#-ocuc{>Pe2Sf$ZqwiO_58>1*IfrM!F>+J zy;w1pPHp)qH1+g>lO3hkH7FcR-4T`uDjId|1A*~zl&#S?- zWVnV+SqAfP5oBd0vRBk>8W_jwqv~5C<}ya_z6Pfg)X9EC?cVB#(4DcqG_YAIqAyhU z`Nwitx^XiEO7%$}v!HAgy2@fkSVAupJcQM1IQPQQIe5psE~4+5j+-hrY%z-Y(TRUpqR?sPgD(MMmG4k{V_qg zg2AZgLX*86`xyjFFs3zS-Tx@ne87(X9K0R>`gsGLLNR2woaEPoFC~2LeSy_uJ_FUC z(&igLBO3v?Y0?I#f_Q@c`~vc|xrF`_yX^Fu)BSmvBkC;C_R8w!9%}FFtaZ{b zmeKCm-C($iP)CtdG1UMB>v>?~+2GpG_0BJyrmi6+RmYw}y^oDr!z*blaE~j2cNmVA z4Q;q;v~GzFT|LA|Ssjxppbp~i?AVN4Z8txNG0MCF_q98&C9ZbRtfb|J^T-TD^5E#$ z(UuOI4cC;639a_hZ>Q4h8gG4Du>Dn%H2wn)n@(r`L1$aRVf*{9;IO~{eO zGN3DzK zDb@w0WAoAZp7u?~iqCJmHM$W=(#nrVXl2eL+M6QoY@S|32gM9;iAEmLnVw}wvyzC6 zZE@OOq{PIZIh?&oTMx&1X=ZBRkDjpRu~HmUx9JyZ@JraFQeT&Hm(#k{C3RUgjdq07 zXG=`#8uIOS73Osx&0!6+3vCY+UhJtm<9~T`Mq%5vs7u7*>j8GB)23TWCv*dvZ7K^V zTw=maUPslI+L8jY`ZD#xGgNW+xEFWd8n}+)I&Ssy!`s*(C8ai`=9vimtOE1}-Z?pb z&{J$17mDhzNNfl%XP7mT${bIV*0PDk*-s1%9@ASZzhgoh>bP9|C1Ot1LUOGCl$LF) znTcEAxQ=Fyjip}eQ`f51l{8Fx?b8Ww{j-{eujSOQDs6kHs;xw;s4of0;Az{p74~%4 zIE`9!&P5)V4g3wI&gc-#_NO+nK*EmZhnGNPMN)Lx*~ga)jgDD>I%6J+rECaL5APJ) zb?qcoLEbT;HDt2J>fFAA%I*F)c-yb_-t}z`zm$u1y?-#?Z*FCN+j+Ib&SUFA??S}g zSSt`j0eZL^M|Hg|4S}Stm6C}BNG}sxWG%8@P8FB(At^ zGXA3+0gRYb8yEe&tRz@XB=L8#IFLnWP}0|fI1i+ZyvH*5fJ^lZC}n9o<$>$2y{Ql2 z?+oqyKoaZ)FQjfUhigL$Zpw}NUWA(ZMb zM>Y9n&QOuTFl-XqP`G3$!3j?sxMCs{@Z{I_m%SxzY!O1P;?KZp%h5mOUqpNURaSm4 z?f)0q>cGFvRwpO_z+vYfKVDo|cmmLrva*$Hk99!DW2NNL*4EbXqv!F>3R=llkB_fp ziN2$b9s|4kZ$nKHmj=U-4qd+x6I z+T<9MB)}CS5>{NH2ou28PLB3A(a_LLi#!r&n3I$4mg25+ybxb@(EHRW?~0ZAs;1Vh zv|hjRn49KV4SZW*eNMP*6P?(raZ!}tpF7yi81cUnaBbA#l09MM=H6@LzKnw2u?L6y zTW#;yYWHd`L|hB8f6?6g?2Tad_JrN}fY;NyVIJ+uEWVpn?&vM5N9UvAg_Wy9o|8ST zAQ70?>p8`PnYpJy59g`D%TFK{HRO~CHc-n;(2K(-R4vC^Z4W*Rp32$6a=xu1>h#f2sapK;le-3DKj}zpkKq|NA?bJlm#rch7f0 zhfl_wQC@Rm{{!p#gJS4!vSO(SBKVAU7=the9a)8p&a;6S9Z8G(Js&AMC68OV&hv}j z23?D%W=J~Te)sfR-S*@At|eAWC~oP32+a5flxum1DCIBEMh;0 z(ZK?ijJn+tTMPi8Ly?l6O3BP- zcw}#p0|JGwr6BBES!YhlH|C0) zpw(%l*N-cDVK#kLa7APtgkH$3730EFgjIlxqc0hBe4w*~OY93e!LLlyfXCXCmYd`SB|PEq2_34SIQ6SA8~Y1)4urUn4ldBt`fy>@LJ$SnfH)ZgN-zaRDZeVF?9=zTz6{(--4 zZ7wxX`IGJJ%`CY5d&-(%*xkS7+?}A&=Esp1y^J&0--O}%)YiFLlM918tixZ5^WL#1BOM6^VLw*DjDY_9*=)6dAQ}&Oz>x?AQTFuN=*SHZ zOu^{6C~5L$h8LC#8a@HC!1xb^_{uCR5I!DMl{M8#%d_?KP)y6K1YzCQm!*p!o4fUl zZDbACo2DJEa#Uh;?;jXkqoUg$5ze^`_9&63txnhyRU$LE$dnt|ONh`6S{Y(+AYyT5WcE*^~*RIr; z56&O{X;ZJ|uWz5;$k@NEe(=kaXGhMRIePHR!G-H;+thxZ3aPsL{kSZ~#0(PfVSvw# zx^Nf71*4)UB}ipf)Uw?6RZ2Kbv3&3#usyFVTGK8J#qmx-Qo~Mi>xeM zr~qRU20}c- z-MR}TCKV?&Z;5A7M1UW{;T~71pGk)!goV@-a|ScDb&|)JaFl#v=x(3P*+NeJ)=exB z6ab-#>Y7FZA!WP*LRLe2*33n;I*T8our+5E(%cwP#DfjdSRAYl`LkYF3Lz*9HZ_0v zru8`7&2@vis;Pe|`rYCPM2krLTM zC-?9WuXOCMz~7a|^Da6}Ekz(MHdC5H!7aNVcb{-E1-Gwq1HZwxnRJVyN_=-bzC?U@ zwkcfCPAIHv8@_8Qr#|J$fqyZXHI}X8)%h1JAye>H z)@%UOk5Sgjc{D|D^}dNQ9ut|fqKvFAp#{_Te%W|e^RwahT|-Rk?IhJh*P4fD3`c3B zQD(oypVLHm-~igU75|^|)#m>mfz4vE0ssW|w?2Lp(8vFguV%A(JYH&Q>JJ3=3cLs~ zohvJ=&Yb!49mf9wf&C3$^xgFN=gQfC#yBlyxA<^0NQYUb7{TuH`B-b8xCX# zb1NWK-}2SprK&q<;CHFI_C630DzYIN5UM?EGJUw-Yjkz>0HI1x%q;dk>aL%gt5?9z zEka7(V#4(&xx5UhP`owMdk`||-TrpFG@0}sW6m**$)X`C?-cEQAS`dwI? zw8}bp#o70Wxs$m&Z%lzG!sM%VTeB6xQ#&$Nx!=24&FgA^ac9N!+1TFC2JB|^>M`p6 zbjg(o>%PWC?(7)HXv~n?`O72CQrp9uHtzrB+0B;7Cr)aKaW5Vw?Z5Qfy`DFVPm>j{ z9lU$~&FP-sA+toXAV>vMKKY&lMh>{0K&k|=u6pRGvV=Ue;`~jNY5>0s-hBS-G7Tz| z5)6WurI~YqzwZ(?jTek7PsNnXY(*Jeb2;+DqFbhQMD z;Cn}!X$T-uv>B}&mZl{GXpiE$9_7(rov>I*}Dv__KcO8E90d6;Mz9@ z3)PYyQ!tc*TkRraO*Xq6UPX!qI`tGm4OT64{o-bA%b90lRX6#ywI#9OesQHZPz^qy zmH(_ zo?_Rw3ZXrWsO$z<_Yon9^=00=sk>SvjOcQZ1qAAy-|#5>dDlY$wl7GfAzWXu<9Y8R zmuSfO`->)`7D>10*Vr1#Zff|Ejh}=1HC&A&+uvjJ`kij~;SD(X^TgH2W6te6Ld5id-$iHm zFYB&<{nWB{*8r1eZulj9Ra-OGm4`MNWBra-`I&HbI2ssR%;-sTLg{IHoJXX=RO zL}=>zcozj3S&Rn&3mu=LEEmh|ikGHRp3o$(dx0BLov%7nfKXGsb$)uHng~w@*>mP$ zqr5w(_il_P_!3AuA%W&Q;g?o;fUxo%>jeJX#3p)2~OjH>yV=> z22i#Zom9bL0|t<(Ow@uR?C>?dRmMD<#+ko=D)))$3s&u$6=ulXEQ z*&lYVFl24}y$xomBSPbti07Sg3j=u-^ixjf*FTcSpxGDmAqz~k%E0~WS$IiB zj|=R9{x^zqyTy5szE7Xwq=kF>Ko=jQ{(P+@{NwC73UaVo02n}Nplx!iWj$sfZ(}vZ z5;33l`zUGSamyNq_G!n`QkFxQ8dxG@Y4)I!27_o2Twpb{fzbp(xG1RjLmrTWS9Y zs}oQS-fP0*-%t4Du8{wGYeQRr)wn@F-VH z7D?c1Y#pbGD`rl^kOtAry;wkPOikBW zTG9YGk(HG_a19n%zq`A8exKOBX-+T@bNoYd4ge%az;p&4L&?c$-%V#=X!~wD12M;M z2GL)tv41zTt;o*zq3z+rM}NKt^4|mO$E8@4HyeJ|z4l~H^jb}Y)qp2t=C^;>-az1vAsA%no$75^ zlo6g4po7c{Bim42D1L@}k_70%o}Jtk$=C{4b`- zLG$hoG1=@Z=$DPZC`*-R3YT~Ic$O%p_rc__h%llyKMaL%24h&&ZZ?Arg&$HvH|A(Q zkycVFAgv+qP6vz0e7V=jIhvj+yW?De7nWA*xjQulXc zdH`+v1B+6lmshV6eNOxEar#v1Pdg9&_VUBy!w(Mq_Uo=wY_T`naPiC03OMeIlT!D& zkIHVHOpt2dc5nahMUE7YeB`+H{AkdtOaWWWaouqULY;Ta1BEeQX+iZ^A7}{mcOR)~ z4INC*5o;46Rrk}~s6O$H=JtKjX?rP;j-e?yf9eMFn$zONZ7z^}HyWtYZ0%CV=>nCl z004;PR3pF7u%t#C;ZIDVp0GZ|E)Uilnhrn`4y8STC>$g7M;sK~IF8Z&IPG6NJUdOv za%D0_;@b+wX-GAu*+n#C#QrJvGiM!5?lTnxhG|X~4FswMXH(%t#OA&tjmnyS3H8Zf zfALHA_=^IWV~;PQR7Pu`mpYjLDynAGlSL5Og<@+&zvMF~le~Nn6Fnm`QEGA(-^Lx_q$3w{mnBi4hR^qHTwgn{kKu=e*o709Mvu;_;XbIcjM`waN0mmWO(>*aN58f*>79?=igWO zz}DKOfoy0PRP$ExTHIqmz131 zJD@8-VpTiN!NiV|At5Cu8I^jF_sa1+*{)~iWdEvfNynX6 zzjPp=W57cxOBlFE0e^P)gT{@JUtW!C5o|^06ZgHExsb8N>AvOucTdkW+1|f@@WaQ+ zC##zxPYuL;nb>|DA+w|=*rhOR_GfO<1LD8fwy7nxu5MwDUXFy^~~oXM&me|7hvf+eFxjKoL#6^yd09iJ+TP!B_(~fXd`zuEDKq+*e8Cb6$FSHMDtZU&Ls$ z*?KYt>|#Q5gHOD*_>kuq2TLSBds=%Suofmh+7eU3vK*K2`bFG1R+JuWxGE~j== zYX+RzFW`XX#6!#-qTfZnqY(rSpS~)cka#zEVxW&+!fz_c=24nlWOXZ>+9?yyo_9T8 zEH~=R4rYhLE*?`&7N7H*azejrAKP=TcwzTTWrF}Rr>^^6=5ty6H$L_o8G&xoPTtm3ao183{s+Tp16XnaZ#IJ9aRy>vS-V_ybWYxJL<-1vT z_tqL;Z5|?iW=Q|;EdA94|1L+s^!7uMzQc@cZ2pnG-mzon|6%s}@5tDI2|o7S1pgWHNj(Pull(nGa^TEb`bAQrrSjgxMQuL z?iC*D!i)^q2qq|ZY|YCu6qtgck~H^ytVRr9#Bg^t$q%KY-HeuwNd~}MHM?ch+H?@E$iU1LRC-D8Cj`P zh^kOZZ&yvet>02fG40~0s;QZjcEXH%o|rh{`2l~e5)C=Gny+pUzh_$!jtxZ}%7X@>5~ zEO9k{%@g0(!iLdHwqE@Cnm46LF)Nw4ggA#lNA+CJzW@%ww{v^{)cZn*ju4H82t5ne8{5P0CHkDUDJYQX>2p(F>EV7$h> zFm2!`G>Um))RQB=>t9pF0ylvIW#l}TL>0RQOs+Wh%O1jMhY~4jf&ZG>5Gd9S*B7&H zfXx+GX&rfr4RIPSS*va_<1fygmJ&5~yO6cy^!JV}3XVyK1fX22DPS=r^Cn#a zCGWOd)MSp?@Vv-zfC53_TlJDrO<%Du8np?c8BUwL-7y~OcKatUZAf@jBa|-K@dB$l z@XRBbSn@fb_Y-NH)}yk3xC4C>D&+OvGmxhByxh8rE4)Hwtm=ELeCAmvL9@(QMhC}u zLdGF_CWbEKMh%ZZE*R_)ISN&bYR?5kkzlTZQJ&y-ih&dwvf%*l8oh%p=2mH*3Y!{mx!gCZyt8ux>_WT%^s~72e2m>Q;qtBP+lT zAMpL)AODlgCA8P4dzVbL4=I7gamhSNzWLIzKCd@<>632x0~h;3j0O83b7d;6|?;^kmq5Ha4-DBVAR zy&VrIRh~pD-8j9dU<*F46ofxvS5#c?h&ly=R#l#^q7!OB>L<(^!kZjr&UVC~%j~2Z zos~;%ZxA`Dp4IDZ5DwGDYS5AA&X3bi)@VhXo8E${fsAdx)uf}dop@Gd?}MnvbR7&# z;xJSGtig^89%e*lb@pK%94-dKdJ1(6Zm?H*X65wtL6R@Zeko41%NF>9J)JBWSk??= zlSL&W>+FyVj+&&tQJpY5z~&$|@2bW?1c8^A}q{_-Dwlf<4RZCZm5*4 zmNvB;u)_^-J@>CDL!QcC zOiza&uyOpxessKmGyW{Fqg$`Qe2Z<4o+H@F3FZaYbLUAh!;g78fJf6k)0nhy9|LBlg~Unoz3X^fJNGD?RX%a3x3K@W4JLn;$9J) zW8!gUwdZ0vhF2 zRJW@*wzRxS<(8adf~w3FY#X*Wi&0jMB)m%;M+1pHic7S>5`aMs&arnhEOrSISY0;yTH~>w&SRk!v&+ zSNkLegs)K9bQHwFV14g2@6Bs6BC-Os(PDXEse)+l*rF4Me00job=;4;ZEihT=Z$Fu z!<(zzs#|N%x$AX-54)aav~BK>kQ+>3j5v(4uLhC_6^481!q%w>^}&4lq}|QANNAVD z_51cSx1I%R4{ASo{dDw~NXafZ!fNf7!WJ3bp?b28_6h^L_7~Rx<}gwmu3lKj6?tUf zo%m*tw$%ZNYkkkc0cWdzuo&6c?nL<&caBuVd_1SQ{7L$95#7cBnD;=bM4S%NBAc_> z$?;0<X%%0vI3h1IC4WOO zv0Ab;wk~&F8O6w1`p^Z~`{D9exos&D1|JI*#qV9r3JD^Q^6MTbAHOzovIWAuDW+hP zA;!pmvtGu?mo&7kC~#pkCM=Q6XIX{g$sYBB#|ndpTNk32|0vpCLpJkQdTI(YiT5F8 zA70H!w`XUc?}{;4RM5ktI?q2|5nn6+R0t)y!TU3QG9R8JYAc33f|^RYisd<)r}@ee z?QnrPt-sx*6>QI9K9)8NSbBV9H6k8>*O|xnIXE{yrNDQ*c{DGr>=R2X`6*(1zxb*| zB~cy&Fv}74SI4HBwoGxRzxHq{Hqi{gwR(&Cfev zGoR)oI~ke$M)C0?;j4moe&na;?~!!%J8(MEuVr=bc0bwsrMUIA`v=b*N8z_jh_{%4?yQ8Ld)FSCyEQXPpetNphP8qGwb^AE<6a`OsF(_uARE`^`2Mm!R>&T?v_`9>3`6P=y4*_3K^soY zl}KB;@i)64Z5c!9J4usq1b%Cl@0hx|C+}B z!x&$ou>DgS`-d?Oq?sxzs!snwVQX$~0rqhn9bEt+TO{fS(oEm?ag&ob{#;G_ZYlwT z+;>+TFqQsuDdY!_7WlA&q+Nnle5Ky0q6#wNcNf+y49|SFsAr=zv2_ z-WXl0QOn`1-L=~ci3-TH*^JFpn|866UZaY=6Vv7Dpm(jEwggP_a;-;H8)P`e=xyKQ zhi7RQQG1QasszewTI0?NM52^dRvKCkx6R8^lLo$+2eV}UDzIa7&}<7EF7#|wzrC>u z-#UKg9(GwwTqn-7_1bo;6KiZIJ_=%Vd0dCB$C$N8U@nylTdjlBO~ksQ?Kb&1u0L%J zY1E~%W6j&=tw@Y^$Y-G1GFRHzN&l; z_>{S9IT-r-q-(08#0y>$9OMv13n67n^>H-tI)f;A&;nmfb<}nkiO}@m@^0;&nMskb zV=wo4!nS(M9`?%=Y8=KAIvg1&NDSD z?I-gnaHdU1HaGiLPpl(yv%1GNjQW@Tb7Ep9z8u(UXh4eF>Y3xb;LYjwR!Gx57SmX5 zJDdm#JU?wPx`{$jX{gQPIYi~~m`F_0W-6^Dbt?dUK|xk?N>@UUIYxmoh|-Yq z)S#F?7~f~?@%pUwT?9OyN1^%YW_u)~OGZMpuxh*nuz@X~xmc>$#rIQG8CcK3wsUI- z8dZ5hPgJu5Iiy*^IytP0bognEG`;Wj+od8M}P@IXhDCR$r% zwb=os?pwIs>Sp?82VP0PBj!NPUU12!*7q@hW!#a1+UFLdg9)Syx1E~%S~31)a5+** z^|h>)#cd$%u9+k5i*v*65{lot%n{e-8SIe`Vs=Dg^*-gy*d|^x$lYeJ%DrNnmF;yJ=H^;8=_#e1y+P}eF|8GXJfkprKNcO+ruK%*= z|Gyc@z6)rJ#Ge-ZtC&L3AB%qd?%lvyA_LQ#E9W4A7tqdFa-<1PUhP2ip+MjPgqMdy zz(nuF^uQwlc$65pR5Cy9c!evz^b8p9UQpTKfUX9^>dG72b(?`lPknp4Y^PyQTW^D5 zr(D19#a`7;0^|H>1GE`4K5)H4t5cIcal1mISuDYBX4W3B9YE-Gv1c*;pVGA@;F4qB z@}2tjPJE$h6-`l2NfFp}2a9Ho`Bx+2s&%cBH_Oczq%sA93Qn4vWt?)<3`9Fz&dAd% zM>;JNqrOp-`O9M=G;-E$F)VGsYIM0!%8BSq?bB$HU%%hQS!4FhC5&bNX-4QcAs>q@ z*#~uQ8g#2&zMnYO6~!5=a5J*`Wdf3P6ZX7S<8;?eiFEOwR2&>b^JS6Afg$B3yNxAU zB;nZLh2pb~b@I5Y4lf)!SDGHCyGakJoF~AdUmvu+Gdb-#pe^R(n%sq3r?k9mn!C(H zWgC4j6oePGzqs8I`>OOemAHsme*Cug-j-|9uMSc3s=~VB7kf{vkkrl}n3vzIL@(9p zqw=2KW~L&H@8_q9OU}{BIgJ-nr9N(EZL92~eOX==H8Vw6oZZDjitW>|5?@}kz=nQS zjXlMYwXwK_kX%m?9jY86FKZ;rw%fuYl*|bpPB?D$>K%&5KAsXs-saNMWs8~H;z{e- z)B}cmDJ>b(R;hf9&R8((fJxkpCRCRR=!m+92i$peB9JP2Hcrq6BqUqI$+ZwbEz0wR zWmxM&LQ%1vTNy1~-)R<{_!{YvjPak}4n7!AJtHb+Cm8!5+M&at!6e;qepuY2qFpvR zESw%ZQC&lf&)%9Kh1B3}gQ1d1cWg3>Oy9BQUUM;n`q;U=~ zDA_DRcg&@Wu*8lLQTZ&BvgmhiZiI(uEWag(yx^y6AalG+dC@E`cSKI+mWeaB`KR1B zqNd%+-B|;e!Q$E@s0&>gye@j{Vr_jx043DKZLE9XRN)~NNz{di9Z44)T3H6Y$N6l| zS^q{)Sf2x>J4hVIOCDAs$eL8u%j)Jdh}WM7i29L*Aa0KXFRU6lWCFHA8-Q{F66XGo z-0aQAp4nVIKH1#&6L50~Q=8}DH45zbeQQuo3NlYCi@W}^2XKa6jRu zBe(!6Zwr*_fTOw_T%ke`vOmIL5T1H@gsy%CL>!Ayy8bhxhi-hk?p~nrb>*ABu5!1F z76NhC4d!my5pS!$jYJM=&cvJxpqhe1zT_9{7z|tB@vS+`k2YLmDDtS~sIL~K#aPxg z>aFIL!ee+ApKaYoy|Xcyh&L!)Iy(Z7vM-^miyuffUq%On4a5x$0EZdTxe^rC)Z7dGAzY1uvxV zco10afLci`Dy=KlkncDL*?eQIF{4%BP#9&SO(NmGE>iU`YDej>(yo{j1vSb1WGcNe z?&|DyG|u4b==ztBO-$F9q>x==vu>9@Y2`DIi{LJ&tQ4wJAt5e^xPz-T3^pE4g-Kev z+3s0maZyn_DDscH9(Av5AY1??`_RfRd=orl3;5)yu^x^^Nd?&9Z>4C-5LKrzVLznv(wdc=>So`Tp}w+S2kXU z$r7bbtO?@AeXXa6j>@vePDC2>S$#RWe8ds7DhOGrb)z||FUPHRMomrA;wc`!Mtc`N zpSAB-ILb3Ljg$LUh?p~0q zwFHqd?EqD?MAQ5}zU`afe#F78xFD=*6s51qr-KhcTIe`G;#ArEIK36EMF(ecJIipYwXIkevHg>7IERSVM2YZj_eKtXM?>n z;o{!6g$6A{@@s1HOV|#xS?$eNL++hZAJcWh{Au!6!#FRP@Z! zkSYULj5Khkk1~FHt$&axa-~_l{e)70)TA_j9z~Pv>oj2x6tX%KjtnkFJB;&^qpU{ zdj){KZ~y+k0bm28SN^x_vOp&3k0@k4aN6)Yzo?_*A150xU%mpA*1ks}zwglgDUd)O3D^I|WW^i8t7rhKrS`jO>8_}j zA)s3NAP`he8&ECXKU7Pi6a*G8kIAd4(FH_HTOep{3y?YoM|Cy0iuHmJq6qx~c{NM6LV1ZBkq9Gh|#I2no&}X%8;BdwNNg zwDoJHxvpORCASY8STAjCI^Lu7>PflOOxh+|LO8kXlm^@DUh&QhRHQ;!hk>W*yo|N; z6VD?9M$xJovKEvBJ&Vz*87e=0TcfQYX4kHr;{euB|4&n)=iwPEL)R|nhun`J9vHDA zn|n7U3@^=IzTouW(7`Xirky(#``fQ))Y)L}T2?GfId12EB-hp_c79!)b}kF>zXOlLj5J4BbbmWu}HvxQ9pOEcV>>T_@k!mlZLI z>pRMDp=d>~nehn7ndpqB(s7?Eb^w;Vmpp$|t6onz zCwM*%FSo7No+^&NImRvV77F|&^e2CP9IVw7LOtRTB@`htKjqMn``4v#%iPs-`d}Uf z!`3Jz-UtWDTHj7XYE>5NVRuy_s}RN`ghy^=H@ie(-mMf`ZBL5X<67H#J{YC~%CJVZ z-AtH9shd5c9$B+Avb&N#$?rpk?x8hU45tvcVKptDaS$o?Cy4y|vS*jzh`1|OZq8nFt8w9PnyF(9)F)Hg5-OPzH z0#FdUNsX68QAR`dd%YSv7bD(M&#Acip2c=MbdSXt-rfEDa@c!%i@5USdI>oTU0-rj zW!4)Tw04wK?FFjB@ld4x$GR19iY5-z&5l^3^(}h_008!iI0c_~RO8C$yip0dpp%4N zniM4m&#tF81_Rk_=x)R3N0eHwMm%Huogws(9<9E<$=~I&S5T1Oa@i3-tRNtlotOyZ zvj0&S$<6&oE*ogj{wbH;+5N|*v>!eYu+aaJ%YO9#0)KrMQOaEz+Wx>_OEbZMHvJ3! zx_vDP*Yw6PmJ~_GDX0S4q$H#I?M0;}kAOl6fHvuXKw?-NpiP<>*m0;d@S;Ki+64Wk zOt-lj2H~$p$N}1P!$E&a>Q03Ixcu;tgY?vc z`2f{%otfu$+Ea?JBjE#*@B7H>1O|XMX_lvXU|*(+hY2Nfv za~kdtOwmvwpA0HUDOE1FabL=@=R)P=ufASl2|;O+7t>E>yCc)39j|e!^`&93PG?g~ zF5Lo>NeAHHVjGfkzrUJF{}J0l4kajD5|t6yuJMc=qPg z3lE_(B;e}n*(<<100E{a;_zys-3CKd5THOh>Hr>FDeAN!@1w2lm*Di)EI z;?<#KIV_=meQ<%T5LBY>B*6-frofQuBS8)?KUFEbfr0tnrXa z*r$xJv$*q?htc}gD{@mE=A^bm-grrcw!zgFAYU`Z6?n7hi;dWmBAT?QoV~`Ys=TYo zbaUlcAKLhDd;9-1!Tn20d&{3v+P^DMNXSY`d(WPIKxGZ6)*d?aBc+{{m9{gKix zF9&M;KuUY%R^xXw`p+qCz>NM@tz9`G`$tOq;lE31|GO8_UsBqtYNdyz0lk?BwfI(6 z(-;#QSV?Jb_s)vb?~VmbqD0fh6_e-??(!S6*fo)BbysTxdZVF)|E4$k>QZR55ui7Q zP$)u)0O$=-26G&(2?S`+b;`Gl?0<|Vcj5+(0qpROUN?eqCx!r1xUBo#Q z>0(E3hCYy%nGV+28&g(jsx28Q%Q6p|OAq(0zUrw2@8ZQe8YYNtd* zUXRD?)=Z3SQBEss>7(%lJtK1uk_zPcK(vCxlUN~ko_8bQXs;85X6^&&I`1|p!RZU& zkuV?U6V`7*+?9iFu`Ki2m;5l&CqVE;w1%c61F`hMoxGENnxS{>lt=k`HfYz*<7_hL z)l0l09JDZVuslA`<2@EyM`Uhy;Ih`$A~cT5_@v^psqdf6jelnIZeZ3G_-r^buL`#*fcd9ejhjp5Rp36 zE_w^Z)W9%rwG@LUBWv0W>Ay&_LyD#jW*!>?Zy7KY8Ez>#+pM`Z4syw1#4>qkM%jWa z+Wah&EQdB7T{P8_!qDVsTZ~DA$}v5WH%vDi!JXIEQdvDh-zI`|5~9o<_UZB1VJE%z zpX8#qJYxcPuUoTe6Al9>Z=h35oRcud&^`PIh#RkcrDLzPwB(x!XClsm;QZy1OFkZ z4X{XFej}~@j~lgbja%~*-y64hjZ(zQdD*MM-y64DOlv^ICW5x#J>sF?9Sw+>m+9P! zh-CpHwqirAA>ecX5z|!B{w87uIB5w9G9Y3kF)^ev5fCv0ImzP^N`Q#Tl#0P52r&@` zH8lo+i0KIgdTkN%9TNU-J+6ogVv>Ckq>B=%BMl7AQ87To)BzD2b}*S%ToJL=fQTut zh?w?75q-|?&B?el`0Q9uAqvQS~BCNA6e!77D5;^wRb@VU3QrowB|xr zVIGtS`8aUC4CLM7#cVlbx{$N3V>2WPX0cb#e0B6J=S%kzKt1}4p7yajK+`JXsQDHn{Lf9k`dv8Sdh|N$fX-Z{}kMq!)sX9MIjDSPQe-klJvMP6T zK=o|O=9#f&YBJ7YikcJ~73?RyCQ(r{Rm;Rh$cT-7j!#h*D>1b;WOgi?_;X?`>xhNG3tt4XAa!B zA*?=WWI+@|=Juv>E0(samjmci_mVVWEwlHOVEdM^B{&E zBUz8=Ho0|x`kFQC1+_)`)iVZV79T@(F|OsHpu#;{efyj5rc;6xOf2*x{M;ssbXv(k zI+2PPQ!j&@ySoV{hJ2SRnC`gxwP>JdavwOU*KQQ_s`+IZ(+JrkVmG1qHw8o`9n2Rm ztoZfrfxgLgg)fEW?wPA4XXieXX&M;D>WgxwqP{-KcHHZI>Q-%07?J~nG$OvGjNFUq z-5~hccuO<60Xc$uea-=T#d_#rmKPlbEXuK*W0ZkcogN7!u|MiJJ7sS&_fG0>9+Ag1payv{h__VZQR?) zRf7iP;lq!pEn;8q-!;)OK#Ej#T8r#H&U2f0%{4w2`0|xZ()ED@R>t8xESWio|CR4p zsURa$ClE?${4eg_`>n}*?-ou%2x*jr-jfhoLLeX_mT`w(#ZX0>0Rd?u3Zhsb3B4&G z(#6nw??nxv2#5+61S_DRA|g5#MrVfi4$jP;*|Ya^&U3Ewyw`iZzvK_d59?lQeb;BL z!7C)?$}tn5MO$KnsM8*(Q30Z{^Bj#WleiM5-Kqv@KhPcyTeV$s1@q9tv3h}nNqz=K;b z1Z8mLA48nMowjI+g7eJ*AX&Y>dIjxV$*FuomJFX;%{izE-uDgc@dCKjQ^=t{*Ac}M zh+m4f$okS(?>u3#ZpyvL!^S-!sOvAgCqb_4yH6~9=x|UJxGRp7qt`%{IU|Cd21Bbm zfo&b+nI{KvAf`!h%w@kWdDP*ae{!qQIK*$TB&NVN;KPza=fEZ`jk01DbE>^XloJ4M zC0r0dNFg;^mZmE5WK`m{^ehjii#;`*j~7}UEr~Ui3VZ>;5+Yrg4DWsv^Xl;AfcNU` z92-S9z6&5y#Or~GyV|v15zjSAWT~4!tZm#4V}@yU|gjnPWSH zJ5;JL6BP$1FkMnFlC-RsYZ_YSSeH9VMmRVwiJLF4eXqb6dD@`hWsF+bY(<49hEXjurwKF(xv=If~sSS13?LR@v9X+f@!k5?}HRPKt znjd;qsc%WR%*EUI>Mt5oO}#cAZ?yAJ(S=6>PJGSjn(44@vshRY{MVq+ zu6LB8ppoYeaZNo=(e--b+P)JwB)kjuK|*%W#vTnf(F(uj1X5TV`S_ynGH=V?d1|Mz zO5z&Id1aU2h=p=qV-HQ_N~knJxekKLEwvp+0nx9J92ZBtL2W2s8xEUaGJWLO4)FNR zG84-atgahdhUh|btHP^$fuYE=>yI1X_k~XUSi~QSbWQFFe%<&cobvB|^3C?zzb3b7 zf9lQt^D@$(d$XgyS1oNe1tcf^-{{R=T;f-l{G00R|FXCCdqfGKRRtNa*xAhkIH+Q= z5dU?L=hMDHpU z>I$ML6dCBzCIhliTJ_jrb#ZhSO8R1gvsgY<5Ot~8OTDa2-8siewYC;mViRvgiF8ys z3iUwI{l4UDsJNj)8|4wG=9sViM58Y;^6dS>&ia(=6cB;?}sDW zD&|gB-e8{KN#`9@cYf=Mre(h@`Tn9QWCH|uvinI4%$^c?m_4z+NUN4sA4#Jh#e+{w2UE;u~1&F9*+L0WE@r(1{Mpb`#AWZ32UdV+dB|fg^|SKIC?%b zk8Ut&($;uk^$9v4ym*q-X!=4$Q%YgC2auK$K6fpe^LR2L6N}N^ef73vG{3kgTXerT+haG7xpws#W95d1 z1y<&gL&TOYj=v62%k=_I+zM=RXlfUaC}~QH8{EkU!#^vwlx;0vjPiBR&!)YEnLQLU zhO6mY52MKePVpsf6RIQkQuK6?q>i}$q|HjmmhMM^J>Ncj zdmE$HZR0w4ruLCCdbO6?(&;#Lx=MaQ=|-`uMA!7YXzlLPYZ!sO%kOgtk5MEO=XUf; zqsGuoLaocX>ccuyoE?vIN zk8uM8>VFmE{+9;rl{bH@&j#8h|Lf9P;0U*XD%G|bklgNOC|w40_os~oT`vK;`>l&n zRwvT3hnqXy(#%620p0!iF6|AAE81stZ*{%acaH(wsZ(K|czKoRgZ`l;WpPmvipOaW z3QPzkryhFzpr(|VNTqCUl9M>BK}h8Cv4f<_4iS=5o}+rh6jhq%{} z3Rce&Kl9VEFfF^``?@-I^*^-o1{Q{2=k&i4+h3n_19RGE-9wu9ELX}pF+T4r96lW( zobeX2|8pEFTcy*G=^h-gP2YI*>e`M{1hkuVB)Em8BPdqgb)_1|I2yZj%W378^t#U& z>`+&4nyU|6uy`rmS3`_r^7*j79dz4mY&TX}{8p`*z&ODIk z&CaMWaxYHyr;?k;mV^Qc>Mx5+(x!MqkqL<6s59d|L}3OjXb};BmN`^XeZM9^NabS` zRQMZy+i=+#>!a*arT#!Df>=IhoUhZ4tHl%@i;_e!TlW`BP~ybcaH7Vnd9BiGYr)Ia zm*xg8sy{yTrbVTGSps$C)IGBz2Rr*JY%g~H^U(x>xzZ~}FB_?FGddpuN>8{Ps%dW_zB+vx^=5cQ&<>(lNC zreb8!!9tTnly-=wWzd_}x)vjUE-g-2zdh_k(Bo6?@)&KP+T{1#_TQu(;4*Dq-x>qg zw?GA@t*t#!2H@i2?(Poc27-cvk9;2!Iet6}c&3YvW`8F|n-?V+85!9?Yye0)m6VhL z&vbtXxxU}u=l~V>dw0@57qd4T-If75^xrzV{mzB{Z!_Xd!5lyJO)GN9}fq?KcQf!vd-ycinI zf2C803L>NlM>2hh;=(y->HK78F=!JEg%1x^t*%yeE^s0=U4^!_`$=@64?6V$juYQD zS06?vI*!>WOh9{X`^nuoXEkj_nw5Oayd!tN-bQMc^fFZWj=JrFh3YI2ArKi}vRNGq zurToECaLc#vv?rtXYv9_rk4XO{+8ApUu#@a%FF0$gg7jKXMF z*Yk|zb^(VcmPW?s@@qG=iCCzmSW9vo+;Th9@k8lMY^n1Ot#2I>MR6ckA$m3GAXKoN zp+a+p@Eio-3ZbXAv+yi)$j+(&uJtx1tJ}&e0xlm3z>*jtz|~O5RB*fFZgjPK7f&Pc z%uhb_osH0aIwa!>TL&NT!I9<4>QS-nA&EDze$~}$J)r{PUe;$Q>H1E~!40n=r^VR@ zcaYht#ncS>H!$y0f&13Uy3qI2;_TZ-EPU&oM;1<&Vq8}+@IRjW^;hlpgFk{G)lXm; zZ?@%%)nma?=GVumm^()<&oL2KH>nXHmb&BMQk$^k#(2b({tcG6f^z!RCF~O6fDL9m z&MttKARjbS!rYX0ss*l$6q3uRPb#`t2C&Ujl5pv$-5QLz?GEb~SiecT{6xejO)GPR zTnJ5usiUtsfspg90Sgs+?_12RX_;i@xFs-Dj~#FsyN$wUSgGayTA`_aGPE~J@yxNM z?TSLjv#g#Tj=J@F7^VENW-(g;hV+-D%hejG*!E{!mJhTosV;C#W4wZSs=Xf&TAw1k zMqFB|(2)Fg|EHH2^@zD;p&YO=spgZQTRhyiU^c$4Kbjs?-gayGdZ`nK>MwNR*a*4l zVyzmljR2L_syT1(ty&YU^(H7+l}3hy>)3v)W8wq8d10UK?(2x_9{aV5-8rh1w~C#& zJ6&n26tFV~{rcG19?P2F%?C`5s-gCbl8nCSftucw*8#nr4dmpVDoeJEkJ;=4Q zY3y9q9nckDfvh)nzCG6uMK2hfcK83OH>G-1!f}4BUIXWGSdx^z#;W^NW2@JpeS+^A z714R!mhe3~m7(n%W26>tCE;#xE5}&Tc`&i#tQLofcwkvIO=+*&9X^6IQ^15is;QZK zI~*>-f}pgy|JqWr**5tdldl{OQYvV=_}(on*Ri14#aBp5J@tO_8JhNNf?P{W+;jJ*UC z5+(u(%<5_l0Etwano8RJB)dfTK!mso6B!644T-2+ueVjc0qeQtr!aNSYSfxCBlUgiS$DE!!~q)f++fA76OhG z&x&5JG=;Um&FYx+rPRPIDG7ieF$RK!#ig=RE{QoK5H_O3lifX5gY12{+Ax410Z3%y z%aqxf10WHW7)CctjEfgURj1+TxsA+5Tg$b@J{D!Kgx8gJ4c#q>6j-`^RpA}>;ENWV zUU-N%KEhMzQdRa2N)FXRRmtNnh2ELs`%qlV)u4KT31sqqT>0Vf{1H>^i03|;Un}Di z#+00P2J3p$4#IAAmCy>>e|k$KlnTk=B98~mgOSrSj5qazG+Tmau>0=)0`Q4a5{?I~bMO$j8sC{K#u4&*2gMOH}b zB{eVRDP&}f4fslZW6coQ#0WNp?FdV!{)0l@6H-R`W=KZN83$)meQ)t1*fCSfxW#A2je09HD6OWlw~TB$5jF2+|S~x&YQ_qflasBmir)lmM)ezJx+!HGyZg z>S`?jYe<_|Bi|*##~RVADDi<%?IDRo$59*N4HSSicmQkeyUZv6P(!#^Z=*Pqx9F!f zrENQJL792=F0`uah0Uk!8d|}ecj*)#@~<@}Y{;W_wx6M?ql`Zy)^7yanfG$hOkdNA zOB*|B3N<+AN#9kp092uh>h!1a!$}eu7CsEe`|*O%4FORXZOu$@tUdNw_6*M72sk7W z$x+>dRf%QQ!S!u{cunk7lT4AC5eq4RIN{}H+}+JIl@#0eTrS|oPy(Wvu{GeJk3O_{ zn})$?KAXVu=#j6i<)%tQ-Dse;&Lw#J#u(`$JyX`&~$;NmZd53&X^pRXRY z*YAp)QOlO6F~jwdXt{C6+XF@{uvp;qBl=WPZz|@~1AaJZ(-6vwMJjF@LToHU2&(^T zE>;XX$$}$X0vKVx=!(rJi0IKaO5!DbMlUBQgaTp=53}@17AsC7unDVOgj7ZB`U0!z z({)_BXe4g#JPoD^h%wl~SX7qe5Cncb-2j0=ygxAj0)=JxQgxCz6>y^deldg~2X+`?KQJynwLIo1tDCW=Uf^Z? z(WoRI%klEm&?-=4>binzibc)c1e9}q3xPKNYYX& z7C}hrOzxN_4L{)ZW@@&)ZK$lx0D)c{Z>g7#ED2@@X*b_s2X$UW?M0N;aNZ$o*83Ve z-xXLt>Ha!h)!h8fzfKwXb$t6#Pf64(_SGd)%h5x^Lh#n+?P>j{+((d6$f#5G#9F6F z?ggFR^zr&3VZ|?psJ)$vC2f7G?@qLJSc&Y3xbe+ClHFlHQXkf!f4jxKfx=MuAYrZJ zxdm&6{$P&Q)=x2gVD)%y>v!`y_<>%>8NPY__)Q6rsMHyX=$a|}bfa;0VAH%-NL~*x zSeHK`{qN1|zqD}wUk-T#Km`~_wYC2~6fO+F7WRFQ5hzuxAlC7w_aB zU^lc(ho;!Y(lS%FfID& z1N>NZt96`kpV1-~En}<^5$+=Z1Hcdy6p+}Gfj#?Hf*QVCk&?kB?-4I_+bUDpbgkWxNXyu?H_I}tv#GWzG}zZ|D>H}C&JibKaaW1s%z@XRB9Q8(R`s~rT*LAV zV^mqc{h%MwX|_giy@L+noKpe|*r-ngEn~W#J`@zn#4;7c8*5(+wrEv=$X;V4_jr^z zSC%H2JHX(<)ih=y9a@y(>%3mAGZz{#8pJ0>J+3;OaDt_jp|I_ zi>o%Ee(lb8$SAd5Yt0FWxBw~{((7Ptdvq8gg3=Y2J5uzP`E7?>>*yHlq;{`U(L~tz z#t*iXdhKgyofs0QZwa$iXZYw@J#n(f?cL`m4*1_=kGJtWfA%nM*wd8(v6;nq>QexO zf}trdQe*Fb+ic-h_y(I=~gKSjNPS2ef&`#n89|5F7wKcEyJ&#&MHf|mbZso+)su!$cG_+7J6 zCKCZ{`Zt>GJ2p|n)o`1+00rWA&4vT8X;ZTyks|VHe9a~UV3PuXO;VSTXzV67@g_jqPU7y?+sHitcocDR)q2jN zXq?ZZI^}FXZPm~?$ayD>4CsDUW8$#zu!-$!fUavUe+u!Fz}M1^Dh2feEx9z!1nAJ# zb6(cWqEfa%g2<26%vXFKrD^Hr@n}wPSYSgy#M%kND$#&po@S5A_|MNz!p5`I0*?+b z?+eJ3Pt!^Us_m<+Z8^O-g8#)FQEif#{c!C4F4(kQrY^7U0a_#9qk9fNFOQXdVT)&h zv>&4#_RMs=8Cc1b(r7;gtUMnTmc*dtKhr9P6NkMlEE8N!%wadf)L>mXcqUs#|UW zv%VgNl!QuL8{v3IY>`9-x&H#Ph1pNayO?NU6t=={gu0z{O>_GEyfy*9ezuBN2U{$+ z(%%-wP&FNvn{a=S!KDeknWv|*n;_7L_3t6?YcU%dVK}~fG&&IZEs)0D)NEimEgxWz zcIobAh^YT42ZD77*x|O1hpm53%pY$!+urwBMk8mkpYq}Q_z(8>;`>Uqm!PsAa ze);@6kCOZ8vj|d=X;Fa0Co#)Hq{KiVpXm;qG2HcB*t4BD2@p3I!ktM&t1<#BFRXWn z8G#OT=F>tJIgF(ud;sDy+^e(ZCDgsuT>Vn%RBl!AsSgrQF2)qp5Cav&tTn(P$Bp)v z`tL>@KuH?bste?JnQP{#1^5xE8XBCy!US#np;AA476eI3vrdHz6uGhdTz>6&bx`di zGB{e!&<%9Rk;4ptUm{GsX}!4kfDJv2q_KP{8DhpNUe(-?ChNoPnf1L9&-NsPwb8ufi~eexJ9LBB_8@$VW<8^67{_Em3+*Xw}s2y=a;UAxBn zJaYqkRZMw6r|ruR{b5%g6`Sb}N$cz^82LKRJ=z31@cC%;k5;uj#N*Iby)yvZB%t5< z?`#X9@&}aWt{Ul?9&e`$O@4gqL02T#)7@@5_oCj(1KUY)!z7PAa<`ts0JtIdiw*w! z9MZqM;{yfUd-noG!heik`}_F?2K{OL8fX~#a~Sg6xh%l12A<9efx`ddlCm;>7!qi! z2KF9-Z8ji#^gYxKSVZ5mM}S3iA9y*N{%xD>#f#snx0jcff$`Zt7!W{!{!^&?Z)WwM zw%PvsaD(5Bc>e}Bntz8I*_@o;&<4dvo2n{JKH30Bd~LpR9RLyPaTM-HVy}ggcmUdr z*x<*Iq=``6?Q>Rlt@NhlW|_Bfcj|29r}JL;5pTb>er8cL_Hs2;k|%HbajSTi?&ufT z@D>T1S8uJCQgN~(x3QHbtvFf1#H~(@AMY&4B7k>%F%t+6c*j>QwFgGZVuhldjKggB z@gpLozG9iZzyfaw3FoGbGE1tHLalw_ZDQFeaNqunO}KG}^5LeXqoR+pOa8Vkk5OX*#GbIgOv}irE(<~k~USVUyHl#~cAAuN@HEWL7JC$R*l%|72IA51&)OHu+9wyXUg z1cBjqXGpYNm;azb1{x8YRA`13@+*Kjd@6(o%f<1jP=Xj|lM0pml?p8+sF%u=rogk- zFDFyXt7$AMVU!UgGA%Q2_&XIUmnJ`cX~$aFUe1QAL~J`CC;)1n388Gtww0G6d@584 z((4VM&2e9SMMq)afNVolZx=!al+IQhC&c}_P zCDm{sE;!o(d?{4+3GB2>_xz4>RdZ7NX&!d1@$?I9Zbz!q)nR0^ao+;CzX?le4>p#A zzdYUS3f=3yHYlrE-#94x<W#3RcDTe9De|S*L`Gtg|4_DWfW0rp!^FDNxlahmQ={Ty#@G0MwgLp2iwED zZ2&*}KX(5Eul7Lr5uiB~%Kv^KJ18I^BqW5tg#^5rojL`)nX!Ntwm${3`EO5%Q4 z&tp63HrH+J9tO=`I+sN5I{`e8rEOW|KaYiO8bt=-+8SDb_|hPdHVF<@16Z!x0*Egv z7Ar-d00f7MQ^=7g0t83#5>{L`kuSce0OU|MeIk6Pyi!lSqvRE=95-~!pnRKcudT*7 zw)>`^8lT`;8$Q4T1V`O*&WiBh>7p}vGS6oDJHb&LB;37jWuQ^Ud3O^Pp#2KGi?>kF z&h|A$Kj%;gkP-5UU1sJ6G+!y~ z4q+oj#M1_9Ed`DuMZ^jh{U;yY34T=;V?)->+z|?`a+10R!~3)v*mX2TR>qqQzroah z+FJk1{QDwV&b!LBC-n*U2c@$F$e*0!BF~bDL&r1PA{ZF5uMPrS!Xkaj@TA8GJs zo#1S2Saj2P{8xJ%qUF6h1Ok}SbFuIwCXXe7b=?<(p;ddwMmW1}%*X%i*IkmJcm@ zWKUJ`4_`5_ilUA6c_pU^84y2htrXSlz)(tZn7Hw zW$A^ZzC?)8@qs2G5YXg?dvn#EF9*oF7kABu*y=V6oC|o9k zwk%>Wfin?~=_~ny9a(jc%`}s+8<}6chcRgeixS+q>2)Vy!g3asM+5iXa4|)1eVp-I zedJ%Q?(gvRy=r^QmhFG)+2)6izCZH=g(lw%0{%G21x8E$^wJM3P5$=M51`ifrAfd$ z`s1-5K&`&ME8i=WHks4EmTW(N4tPiZhwuIT+)=Ys>XS_b)3+~{;9K1zzFRjDY%4uw z#KvyiXSOiilH7L$Krq`aPx%ODw~1hS;Uwaw)s5p%+WKh`6=Y>Mui`{S#g$1%GJLg^ zV^h}CeGv37-#4J zrKk^+ZkGJ^>5b4uYr`;^%rFt8sDv8bXbKnlSj5TsUV{yrBrN4|Ws-h$+DmXS!HiyF zSIq5=g8kZ8PVJU6(8ppc=68Uu1b?y@%j`IulJ5MYmYkYPEKru}z0$Dg z!>zBo_eoezj_QaLNt3uUf9rhSNwIw|&4-l(Og_>LO+TyXyS$iIulev3&}?$!^4@E^ zPh=n8Z*ePL_7JNT2urh;w%ZHck-5E7-Zbxxc<;lfn zu7Ba-uLAH3$AS>*rntG}mta*=iScDOEMf{J1AnLnJ*$f$ma12Co#nXwG+@8da4sNE z4``k(-Rm$lg$g9$*-)4aO%MS)lfu%l?B`bH$LxM!Z&CAiEC#u}xaEA2g}WGlhara2WASwB3Q!s^Gp5kcLxb7x6wYSA8XA@QZTwOtu3@+wv? zd#6^uW8UO+>DoBCai>1qeHF50_tIO3jfB29_-9Di;+eJ8JgPHtW+&||>>oRahiuCy zsX`yk`j7JN>i>N3jLyfMAFes}Pc}n84AfD^93v*Fm%f&-9F|mYG-6&s^zRes&(oXw zQG%%db69|W`&vlj?I~M9fxAd1_m1b}LqSZRwb~~M5=e{&mSA|A0enmMh_r>{fRSML z_77~7?#J5C51eSiq3CKU?`?`FrJXEL{{WgzvVs#MVQ4eXb>ru@>LT_S%AW#Be~guE z+TH)6@ix08ZS3qE?Ct-a)eZ+JRz$@ABCEZbO!_`I2~2PU9IN|#0TUqeHj@B1{*ZaU z8{NOjyuW9)|92+1|B}_#cP^IX;}y?Ge-p2^O^yS2HNx2Mo^D9)I}G5}t}PE|evH`W zh3|TH{J3tormDKv884#pCSH;Gc$MLp?5r&&Ca$b`B-e|~$19-p#8a+F3^-yB&#bB< zJLfxUZfZQ`4p~6s*^2jzNnZ=q=E-Ud*Etf$#JVQ@RBp%Ej96`%R-6spa+{cU*G75z z$qO&_+uF9zEXdO;?~cgxls_(8QHd7-#+7ntChOi#@0myn4-Hc zIChYvN+deg4*iB#L81WTQYt1{*;@%DVmB_4GMJR@ zXBWYtvBr~O;V&cS3IL6V@iWXrR!oa2=4#8|RNx z_bV(oId7N|(vpqm6F5bO?}pSD$6N|igtVC_v~^__>OyqN?pXSVFf#HWD+kDF%U2t3 zL!mwBkT=0U8}*Nfh)9*QmCovYBa+Q!V)kCU`U}5_sYy8|jvq)GRg6$l*wlC@nL=vN zR}AL%CtsLs38i&ftf;?C$ysq1OMr3722~$OR8oWcB#DH&DkrPD%_ygUL|oli6vC^4 zXv3xI=jV2P9z`D!Yyk1jRP==L{D4V65IEInn*frmi10N~!O^%E1z$Ld36o8Gut+_< z=f;Bja;#_qJ~yW-a_uXri(0BgMrFRVm{me%$f^9w-DKD8Rrxz&O)9nr?Hp@I^8yrQ2n@{Mf` zJQSgDG`m(<)0Gam)gY>fq~g!X+*7vAAiqkb#oAz5CA8Q|dzX@~f4<Tdx}lDtjozq9|P2v9t0zf&#T>9&evx zjyE^&Q}j6V7LL}D0DndX749*|XmN1@zh@%<3PJy?s5T#n_V4!sYE1n7ziYjt01*9$ z#_iwsx&IW^ZUFqIKWn|g!C?T1{-+wZZM}>0BmfBd{l)DEdKw`5{`TT_Ou;1d+MDBB z!nM@Nz~Gy@$|eF))Rh$#qn(nRsp1mS_=M2&z7)JtwxWt>o|B?@gM{4WC@)H7CB?bc zmfX-U4kWb+9g51`N1dgvh|6*PsDp~vtb450$HlvD`l?Un+`VqQ6%c(9fatqtiRX(x z(j?V(*^u%;?OkX^N43o-`E2LOmkHC&Ay)Tly4BJd7crB+vTTfvWQ7u`OHrBNbj;?J zo959y2c;#Is<;}M(zu;!j}xN8A*vOIeguEdlMExXiyIOu#_&C3LnFw1M!1(0<%jI?h0QOFJwvAp&yBQgbv+5h|;wdaKZT-^OeHR$L( zp#7nT`at~ssC9f?W>VgPnESt+C}qC5r~dpqWoqT* zKJ|F_!wBTG$YBl>tXw`nd5}yT%R8;A#o%5LdSOCGS-BwgpQd_*aW8lngNo&;u7QhL z_b+ilxdCz+;EZ$0nrf*x+vj`>0!A!_P@!%$2e%L=lPe*IjvM(ETeZI4FD$n{rfQIf zsU_x|)E!_$Q+5YdVZE_P7vZ9DV`D+M0&N(9SdZeuQiN*{Nt=cBs*7m(h5=j+3Nn_& zP4q1{Z2b(`A(!qF&Q9ntwiXDv#`q*!n(*IAY3J66!v#QVtn}FW2W+-sM(&)3=()0^P9av=s zj#p>6`RtbQcH}{xF+~84s(agU%&oK~_~#P&i?K)`5b>O5#rY zhdPjPib)D8`_t^@&tt`9E*zng3kt{%#a5anB^8xc_!@-+seulX%~;vC^iG9Viv|nT zE7&@&y(%wdxYtT|OnJgVm#0b}F~f~bKCsl}QLLV9A&)&;aLBL0zr151cSYju{_4&f z=1-cg46Wg7E+Y3`i!xLD_%N&?emiA0q{NU{k!(aDX8kb1_90|R5sfq8xkE!+RBQ^M z1mlK%{bwZQ=yEl`nY>5Y4!Y+KAx(|1ec((kYpKfVvpBTUGZ2XxjgAS3@#CtnL@5+JU=j( z&Y^*KDbaYz2C&(M6BJkO^Gv~AI8O-*^ffV6t_#}J6f|O(j+{nBdw%=$6#|2BK(bdoU+*+&5FAW zaltng=!ak_>lLb@y1u>DNNE`y4Fr}rC6$Lvnp4Xsjc$*vEGT#n26IMI{7}*gQ6Sj7 z>$qQXeL@=;#D#FhfcX*RJ}FH@I!)kktAt+@QBh0_lp)t*)WXrWf}VOnv$@mGRl*Eb z4I40&+O3$VbP!gBAx{gQk1EvewxTlMf?kyDeAnLCeS>xK>#Dq#gk*Oei3(OJS@m0e z`lBZgdABdV4^<0)k3m`3gE~>T6S^Z<6MJ^w&B#Z=QnD8Fw0elfTG{pdpiDgp5)?-R zOJ*yWsX}h{#|z@Mkb?uk>uAB-;r+CavgWCGVJI!e`@Hr67xJWxHXH-}|9k7UzIU+< zUx@www!fW@23XMF-u8cELDX=Png+mvh~Ir9iW-16d=^9z7nj2ESrC9W*$M=J1t}DY zOUV3_1!*)i03-<4p`ZkiAjy7l*=rd*g{uGuB94iZCj5xE0&VVC>fKkKiMW;aWW*MC zKj*op#;q00r&|lgh;KtLbX33ewv`*xmu|UQSM7bg(LRLxNxo|CDc!>a=nEj4rnhwpdcP4hfH%nKyf z`_WG}Gg#vYc;MYr0ksfqk0x8+_BjI!SW1tj69cZ0cfdzH;TiV0>s^7xb{Sl3N5OWe z*R8FVXUyfjf6U@ln53Ris8}%qp#KFQS{^v9Y|4YmUErt=8*P zx?D11UPLK-c%Na^C!!L;u=!_Cv-gptn3w~=>@A-K?K|&V$`@ky_kH1T_!&vk92mI{ zRN@{JFcX_&|Jva{7aKoRg^NY)fP1sx3tRBQytmPRkJ)Ow;O{b7ki#kJnKMl+4@<@E7zwUZw>p-vT9N zSW^KOjWaYm@1)f8Tt`*Ery{3h4C0^XlXGY(-!0|G5oCx%;GzzW+v5ibx#@7|;@VgS ztJuvN^aK+;y}eS4WK;!##_f1ricL=FDTa$Hgn=Z9I9dQ~&lv4c-ifOvJV7C}7!7nm zdmdbb%&@4rv=T+*)^=AWRpbaU=#R5gPqlzSLl7ngOP)&!KCo)Ypb4DiouIXVLJEdp z%_R9hVFYeVZ>jjl`WB}|a%s?gf>5Y zh|1}OymlA3W*fm-MZi=hOu@6-lg(Vm3{Gg*;*N5FXv8ayT`@yZ0u!<25q|JHln$Z4!=&j?#{m@&!uhRDLU-ZRqRPS-G?-02(Z;VN*1$CGVN}XPz znbofuqqqF|ES3oHm`%IqUy|5Bjz~|>5ZIQUfX6tzdibIYTJ%I-qc!K!*$3y0LqZnwfOT!dSq1<6+X)7 z$;v9K@li%kJv&j^IxZXn&t$T)gsqT)9sTX20rpcVDK?E1o0m}JSm?-y z<52@8JXn^E2gh(gT>Zj^pK5{g{+0n5>retoqhs=Da+<`hvSP8?7iKkBt#dnmm;(DG z9CfnOP;>_i%&6*=TkpZ#@klm~a?5@-$+AYFe8;kA`7RCjF4%^)-wc0lra`3ccyZH4 zhl;x9P@`shEOyAJRT<_Uhs>{98r$LEp>%rSkfh9|sLII#+q(f3=`Y(~^~<%3#Fmkr z`${ZH$h*s-#G8+dj%ms6bdLE|I$cX;GSE?GW8Z?YV1DQMQAWe6=9iW4Jf{Dr7(Mga z1Gl4Jd{|K>i~{y_bR6gHk9C(tzOsMW_|bEX9sTwFw)_~-uj)9~PqKMpY{YaIE_P-6 zx@a5*mZuc|=E|WB_cOA0zTAu=<^(Jx^H1|7bn@oB!}LPbp9+amC!LISmt?$<80y?X zffkmE>p9(MX_T;n{@n8{Np7orCf&cw_`HqF>j7`SInZLx>=l~dMdx$yu^iKL`yhD? z<1iOVlPpb@sBLGM{ugCzt11eQEJg5A^DPr^2!?BGs`;IC@n(X>(bgjfS^Y_nq^6?c0Cf)0-3j?`yd`bI2wIWt)s@>LQqX55s1ePkodYD-l!W{^uXxKJtg}!EM={) z{-n;m-~kCyofh!5Gt(wUSKj&6$Dw}?qCQ1_BE;(UIi+#mbuVj#9lq+6)F0Py(_HK+ z;!|yJ+)e9pZqv1mybKzsdH1B?q%}P(7$PRN$E?wNKOJ<3y5-Uks!Xq$bEJ;0AleY0l&LLX7uv_ zV*TA6`i@vz!YO15fLNNUo9+C4d%DD=Me}WKrtt zn_E1~+lgIAo#p#vm9Iv$XJ4`Iw${8Z+d1y5IiZp}WV`h)Z`yB`I zrMT_!E`DUXjnw;xHtE9witg@i^V&jBVyY|QpA0)^kemlShMAC)-56<&yp#PMk%lrs zHT*S_K7Q%;hPM%a22!hjL;gL7&x@4P0$5k0qh4-k4?TPLE9C6APxFV)NB{ixC7`@g zEEudc#iY3?NMjo=_Luu>b5YB)gG%x50#!Diepg<^979V)!K}&D31veL4gScUc<_We zjl)ex*GrvC+jVT;APn_b!&eZKHFWU&!wN=OhHYfVJl4Xz=Mu_BZ>&6#WtQxFg6JAp zAy6S(vzRh}f0C7J`*q)N-j*eHsZJ^QK3gyVnXH<9(8Znx#y;L}j*y`?gCsTdnM)8m zH=>`UG6=A51<$ycqZ9z&se-Pn%gz;@Bvu}$8j@;3V;Q=}klf0za%g$@7_HPN%bQhQ z`uW2Es9S`-jG>kn)c(V>p2~uV$06h!&OuU#AUz_~0Ic%*Da~k2nYszcC~VEHty`PL zY{$k~LRvxV$pT#hTHe>$?XXwtmq4Q=F0|Ly6i0z5AEPyPe5@VPPMhnY0jskg`{H0L zmFu^mFI@bau~)1M2To{aJOWFKk};6JG1WLw>uaBh!;(l#l+g**j5mP;DzU?jeH+X}UkgU>~#L2p^NhrNc#t?vRz6jX{WDE;j5F-d#~jd$U@ zClp2zm9;e4ZlOrMhv|&;dk2(mYY#!U9-mnH8e+^Z-S(xdT$*g?Sq<9z|Ajm@@XY`F zS^r;_k`|ZV{{5`~|1cnFdbC)9?_B?`*^KBS05<(yvlVT!DQY-Hg9Koc+IQzVj)2E+ zN;Vl8IRYP=D8#G_YM!}H$^``q#ei*np%qVYuC^uB)d5XM#5Ozupi^?aGKyCsxcGkS zE^D>xG9BZ-8WTA~wt9SMnn<&mv?ScUIOj>4cx}13HUE0$vR`?ts_mN6b=gm$Elg({ z2ki&C05;`;KBv!h67TLJX3vMFp#3+o$@F0h%bA|mmc)YsY^oXTxBwj=4ZUuD(ms;~ zNyxNu%9{y<%wsnab{ERrjmIXZiArR-%#FTl3vo*d%Np?ax)EleC_0Ii^66(U{{+z2=HuGusMbA3RT@Q9E#-+0>sd4`cJ>_ zmvwjDt9&J1>fMiZNteT-&wl;#`ioM`#`>4br@%<~fk>EAz~vK2U=Y9<7zFTwKmKD7 zARz>^UP2Mp;ND9L&sbwZw6rrsQ)2v@L84Y_l5{~9$Qn9RoDcc zFqZ_R8~{AUzG`6OED=K?JJc~LYnq-fGlN^4=J3E6rmxpLQ0V1E4=Cx6pm8e`)ute2 zX6dvf3tgnA?>|0=c_ zis+ETy*e&XUjPyx(*qkdzyqpSEgls6!`3&gBNR*O?5M+CHjK%V`lM+~#)|JN()+*$ zY1c#S7I`|R39GCh>|rcaUt53ms!NMTwW#U7m0DqYcdDeS{x_ds0$^5^pd(t|Va2JZ zXq+R=g?PAx1n%WE%aHmw^c&lQX$R zUGrkK6Run7OrO`btLnYh9X6Cfz1X(F{aqf$cUvb*`$yc2Hnm$IC zb*`N<`g#;`-^;G@lk8V>gzyO?%T<%vW3N;wZigngcJ2#xY2gM zq0R|X8J`jP+3r12%KiyJoqc%{SFe0||IDEJa!mA~@R!y3eHZq|Ts`~q+t-Qcm|rTs zC^P2}-6)pe^a*9)B5vI}O1SjFRHTeQzaBF3LVR;)Vsnz2P z$3{~Zvtb!SdFUNMJ>?fYi)h?j2R7{q!e4tk>%49I9H`LPi{ZOtTbx)`mVCsLYB7k4 zTS(Mc*>0v`c!e`?d1oo&w&0d%O>VjkF@q_%=Vm5EXeWs{aM?o-&ns|@RWo#!nj?dOZP(Beo2Z0L!}voAL9^N#%&FCiv%#ZTZlF{(cQV@b!P8b+FB_1?c}$& z*p73j2O@*6J_`JQN;?~WruV;(Z?iEoY|DLOn41|hsYnve%q(?gq;hxMB_SbqN1U^n zA(Tx>QbyFWXimaT(zfO<g~dROS%DY-PnUjMX^O%c1HsLchuis@|hAfh-TZuLwu zgYAP$NoP~sva(|L=i)u|G774Q>Slhpaf3;fjYCMtU#^6 zAA)s{?M(cod3A}_(dyQqpld z6AmUW#X2Ax{yAd%SQHyJ;H}y$X?46LlH39|OAKn~%u;q_X()$IWMfA?T&L%Uc}~YX zpXOvNjSKG+zA5+)M`p?l{~Fu6(&COOK`*d-kGDY_6=KNz9~2lBS?(XC)vvAIDM z=a5TP!W_r4k0k>+P^j8TcK1u7VfVPtWop}fO2C}5lgfF{Ci2Y~9>@)Aj$WH&sA>Ho zkw_~wCu*VUzKB$rzNQ^hT6PZ$wn&d|Ff{#H%uKdecb8PT*Ox(&vsv##oBLiKZtrB|Ejw0@L@C=3 zzOxLx+ilh}P;iUlA4tO38ww^)z`H`OFIliH3hfusk{}B+09x82yH#=5;U$n zkF0*qoz5EG|HP^oVS?i>%6)rG6?`<)>xNz^(i^U0ovaWIeS8Oo1XVsEv5{MwbIMIU z8>|m%yD0gbN0o6q_h~!JLA0?N&FRDr<{@vk0XYZk8Yb-ekmw#Nr{C4y{<}5)zm2B9 z)4ClR`b9)UG+>JVZGOA{Kk(Z?>-KL*B#`}o_)z7G|90#DKfd@M@6g)XkAHWQGJ|&! zr;=6w)4Cl<$K3mil9Kd#m8{xw+?nVM{N)_%RX$S&(H@TnG}JaM))Mb@?DSVBEAb8y z#rte(YXM2s*myL!CCEu2C=*6FwBhadbp%*;V)MEqw|$G}1ohDzq}XA31aVMQ9dK3} zI~F(CMH`{ojb5LQa2|Z&uiWl3dTAk!*Y=OuiP_QRj90sr#L;K(TVEvh3nOc-M+08m z;0-)jTJQ?6lDa5gTmA2Ia+%oFE25GY@2IxCnDq|I7Y4Hl)w5B+za2ch?0Gw zh4A=cdC{i^Q@y<%&Nu8R){9yA^w`f}q=2KL5+=zfOW}s&5vd7e&vb zSH8P-?AmEWYRS*Nx+tO32ZB8Z4m7BPQP>==!ffY#O<5^uTgZp-IP%L#&uCe2X z9OkKRId+cg^Whao6NbBL1s}KoYT@ePdZ1c52d>V+h&8cnc-ZI=m>Q6SwJFxlS%R>g zS|#xqVlww-2?MyY!#3J%_iCWxxDr@l7Er5Xm9^Eo&XQ?e0QS$NbKtPJI*EF~oTd*{ znEkiFuNifE8ZLE@eu- z=^Us^YBw*e@`f7aoGa99wvoy@&QZ>jq4zCOER2;0A@PczNc7Cd6P20-qC6+wA`8BY zL}9C+{$%U~+0Bn4s>w0gpl)4Khtmdw+AvW%HZ_cSR>SGJ?2fsKA)(ti0KI}S`xy3e zo1t6y)WBE2OiR-UZXbmME3$XjZ!T|6_~4q|-2wMBY>iH;<|s+*X)67w zXsYIZpdT{x{;4Mu^6?djZT^`Hx;^(#Z&Vm>)=Ps1o?g7Rqiyj@;VQCV53%IN-#>R+rX4~mP3gxCpCPtnHko$@MvZ}-p;n6G^i*TS8Zl)c`h$_ zb3?mra#LjxfKIjwgDTqb!Iv1=F0&KjGuIn>{O{20WoGC5g9w9M#)$uD%vi*D%lYFk)|7sP`VNI_{1ict_BtO$DaUrl4)=MC zW#RgJ3RbI-G#d`=CT`EgoTS6TI_(tvQqbo(_e*X_cp0TW5R~VAA|=C zz_nv{87;VMC!Nwim1!3FsB*On6SIf7?E%9^HTw4E*#kg8Nv!SR=6ic{IG8(w$)wS| z^`aLMHLiz$HFeit`o3&`HxYIsYw_t7=%>A=U#_eCr!PLY=8sDpX=@zY&(wgkbqbpc zYP9e`LsSAP3YGRg5WHFx)2q*+rns6Z#5KyQnk%^%r9RyHGAS0!@2OeAUoMYb8 zMb^L;9FP<>pUau!cr18(m6>OyhH1LQxJgg!ZkB*fqe8qIJvZkm<~b(i17IG62x>+X zs#0-;S`tqspi0PE`cURP$jXxC1<|jX?hJDpiKOEIq@csZB1kxn+$YDH6sTN$L*?sBk z*~nI_{f1sq(kiMvje0e=FITSCYPRf!vFNlHG#rqwf`Bm3cv343I+X~!&0`Y4hlnS< z++;+o{ZV!0lms(D^k#`>Ur$IoJBx(Pa>S%TPMFsBkyy^Rv{dff>giz8+k~~f)o(9k zw~&rrQ4)7>;FBN32(_Nb9lm#H2c}*_FISV=zFal&=+~S~`FRQgBO}0uC_rnAyA7<3HPvVk5Fq^47bpM`epD5{1HXPO-pk9&$Hyl)I5;9A!pn=}G7%@`~8{l>&jnWbG*hXy;v+(YHDhBcJ`SwXR4~I>gwuxdMex7+q=8FIXz1~V?C8) zYduSAOFf*mu}a~GzP`R&w{G3Lckl7z$75?_V{5{4Q~4L&x;WM(TnsnjKrmn?i2x4Zkwo7Pd$2%$?^QdRLEMdb-jX z_0wzYP1vQex`={YU^7X&6`{5+RWO|Rh&1y*je0d(sMcQigBMHbHM1@_2i-5H;3bH8;*=dk15}O z5IX+o@yRFU2dQW&M_Caf2_@5!STk!ox8U%ccy7l2y~!K^z!cfR^l33VOrC@X2z2=; z-61b%IMRrfu^=Avh81~Tc`7H`XmAtmF2E4PDa%wn&L5HgD;aUOTC0#hNiW>EIXnj( zWG1>MBC}8OtoJ_7Xj zCZSpHO@;1RCzgVUO5QR1a{(i1Dt1*W0_X-ETQc|kb34ALDI8lTs5hyTb$^voafoEj zG!{M3F?m;W)-{IVK+(yC=+=#a?=%Xo`?C zT3O>m#`f2-5n%W~C2;H@le+0iywrt{p=!?%3_5=@QE*`l^c94Q1c<;u#d4L9Fgpy}d3*`(y- z3&Q&~SQ`|e@wFbZn|->ni^%LHkldTgZ)ekwOO{ihw%E4m(m*zkoV7a)VOWrph2U;p zr{!B+0mx_ox%==%wc9OoXbX6XkHcp1FSqO(aEt>(a&RZd{m<8t_uvdfX2O{i@wc}= zH{eJI96;;H`Zy+}>%iH@b(>5W&7z}MzYw9Ll(&6#CSEEAz#NQbP-?d4=9&>4Z~wv{ z`UDRWB;t&wK`e?b%`@q`oU1|CJa$B#QmfZ_Q}j)*N?(JC{ZWIOy-b<`)65A;<1a2d zuB<1JifL`81=is18|*e41kNeyEl*~*Ogus|?E7m`(!NXqR2hN>_22a`Hcr;Ogwl|b zn{#Rb-r`?suHPiOi3Q!Z)l~qPWZw)T?mUrccwTNF|D+_ry5!_Fr@CZw5jpo4Cdg+l z-}w(63icW!ko}ko<8zcvp$`IrRr~nICpYkm^?Q{}k@7}A*oe>FUA~bqgBaZhmiu1I zJH~nRim)P?8(a{f1;dn`QOT=?_e;16P?*7_nx$)uD+SkpkrdxEyJ07-t zeU-S_qLp{@%YQMA1etbPW)JMsG_~wyy3td zWB7XgsLnyIdQ9}>`hl|EKJ`XN@Q<@`C(gycyDk>JKB=v&VP!Gt^Fa{w$BQx%ICUEc z*%n=h_l+d*cVpbFBTc9v__|Ib`G7%)9L=qC z56_6~Wf?baW{1ot7_CK%Ci@&KrgV=R8;z@{xE0TERI4tK>1)(fyWI~&KdrLD+V&^C z6rVsO0ar85dLIp&bAYe<7#;k6mK(mIQj*TRu8(A8MrsL&rmH&$-L+YAeWYpJXH#tV zzBKzfj~=6NHeUbT{?a+Y`Z4JZhw$||HHOvemAi}%%dnD94|}Sf54f%+nVD%GHb>Z} zyGNCvnM(XXrnxNXgpJHVa&2R^wtX?RI?z(s4X)PK7~+~11sP@KNNSJ5FCRC_Ox?K$ zuXF0WnQF}Sl1Z%z-O>7+$^oNil=+HbpN1NOrwn+5wCCG~bh(B%Tr;EC9$O`lSQEAP zK|emoZM{@G+P=S|^1wH$*%#eAnUb_hN-Dv^hAYTz?}&?4i&k1^tUOkDt)m9pT))?{ zVeH6V+gjaMzSgX-HpP-?-j3s*(pMEnt0d*2Z_!Y8jZc4rn|JTtee&eVvuDpH;BnW z*4xFP0JKX(6!scbK+AA}-Pe8^^p*<;et_y!WC;PLZKbJu_0g&$6eAEwWrm^p+*F*& zKl*(`3$gPx6;y7f0 zZo85dR=$~!0{g5XN!{y`Yz0O&KcLp}Ae#md)bt3Z?~%Gs5gc8m@SM|uKGar4a8d~a zTn+|`#z->GBq93FhaN}pr1?{Au+188Zif7DG(R@c==-oYaN~C0Czpm+U840m-##16Ryoo;zTmN7 zDZ#!c3j(tj(+Fnyy|i;5-y9tEf9fyo`|-_#vnsx{n5fTJpFeB7KH7WPdG+ml?WoIX z{ipmdS8Lf}Kg{i%!ay;fC%-{NEWC3R-ruK9gd-B>>2diQe7;qPtz8Ok{cIaOdMy>` z15-5v#w2n2)BNN+`#Gf;sjPe`SI4m?ey{qc0(Q!sk~)6e!ZgPnfz#r7K+qq@pLvps z^Vz2$GD!-D@2M6hTUp7$9UzB_$bu}(qUnlkYr~L=T&>LdDuk2X2KfVMdxz39^Cc7R zNg4Bu`Tb!*_vedS+2#j%D)f=+{B9nDY~i0Z>RHrngj?|BD7QcNV#w6nBMMu1i^)-k zWEM`A3%aP~-%fGe!Y>#p50t97)!3ALHn8x*SGinwNY1Hg;Ixh)P)`in$h8@mbEB2=4DZvg=TQBhGsi^}D4^YZe97WI$V+S=NBdU^x`!HpX??%%)v z=+UD;Vtf1c?Y}NIp*~lZ-+9QVsBN=>r$UIL;ZR-m zXexvW5{V;=B|vQ`TnZ``6q!LnW*aHylW;}HN~*Gv$5GZ|ZiYNz;y z*ODt0L{h<*DPal4r2f;Xv4cc-Lb{-n2u|ggV~1&33Ax+0PbwgbE@)sziC8!czN}uB za8_JdHMcqyp^1e6Xdfw87Ap=WIk^>7E@L2p>Hs;~g9RW!8U$Sz2$L5io@wWjMsF7EXIhBEb|~ntG!Gbv5L{_=04fp(s5x#9#Jx?Yumc^Whp=4`BN zus>bBI!X99E8hg~)0OM|y8oy_>juc2tU*o_3$mwP=x!v5_vJN`@4mdxY_aRyA!nak z-TE*&n7s2Z9=2Vt zODiW_IR5aA_nErr$07btN+Z6((qb>JJiL-*%835{(Q$sH(z49T`Rmd5A3?vMgw zCW=bu^I0!w^6X*xG}Wr%WehCCVzRdOd0)9mq?Q^z<{2(iiSu@P1e?$L8d zhm7Wv2eqc>JXe{z69tYzAqzHsRw2a9jd_7Jk%4Zy6kiQkl5MG%wL>k=yBAK)inMUA z$yR7^5Xn6b>+{T*-*m&eqMa5{W0khk!lUZ1J;*ulJeWmQY!Ud2Q$1&PmCxIqCIe|4 z3WNCJs29wS8b2Myfq$zCD*Rtpl^0U%x2lB6@YJbOk&%&qvR`Iq=0CHakYd8%_b20x zjg1L2-onDdix)5c1Bxxt_SRb%2`N@t6>vQJPLMS07sWhi1gel?%dF|Q61xa9LW*I` zsz1#H?>u(b_m=B=mH zAWH8gqGI~Au@{IqBpi8*hGvs6^s7mMLV$^Ypd)xRdW{IS)NE5r^ETOC)fJkzEfHnoy^`bb{&bq4xv0#yF@UT^y!C#{5Ro0Z- zwhQ5vmnv(&&NY!_Zbnj2HA7g>Hj~8h<5A-f7_<}+`6=7SsOtw=c+2ng4yxzMTfLvL z#e+88fo{#u3Uu6-(UAjdUKlWK2d>li+#`oIUg!f7!Q3Z?N%Yo7;s_J}gB$xm!&mSG z8a%o4?6d0`M9b1W4o0yz3%0taaqU6OJG|Y=FdqHf(oNxukn}B?56rO|8&j7jMIVoj z7kcilaX$Rv_+*`m<@A%s+g5G~c1Vd~tUBK>{!-QJCECX=D9Hd9nZB=N_{2H&w8_ig z@4zvF#HUjYJ(2sd_Zm098NVFe`EI`U_^~Tj@GD>HO{Ls^JXy4g0C`=P``{{4WM_y) zsEsgBO_e-kgi?$K3!oUSmAhnddRsYEDndYyf!rP7bL9@%8**^^E9DrG2HevK^QJm? z2ysE8GDS0Jo|lArY1a?YTV9>rdZ!Ia%24CdsuXuv6wYxU=<}-}vRxlMxM?K;)v1Sz z-V-wpI^MsZOUqTdlh62hpP&1#vrAB@SreY@cC3Z5hzu|ZznP0huht@6c5c{^lqg&CMMh9hWX$x_0fF&@29FQf6jmUcGwtZ>j9>_}bkB{f)2rKD?+9U*WBnd9+W& zVM4!)`)I~`&t$fW?nzZF41)i}-T{LcR+vZY;wFy8t|o8dPlLOT1yzk<{lDF3_AdsL zeL{8BovF|m2#iG)3w2ej7UAvfC|qHU?WO!kbSWyC$@Yzl0_^OJM!N7ZFwhFopPX zhnV4v&mSL)IfKc#_3b0`(Zz#{au+UbfAh5OxY)yklVQi^hHTUm?@xBUxjVXF@xlE^ zdM~3Y`;#~C>+K1zF1&LyfXCV1Bt`~`1Ee<^S3$)G%Pj#t2!*jxs(d~*(NN~t!h zWEfe>|ZO zT|!SNMAv`h2}w(;d+SYv^qQ}r1sqRbbd?@?)qCMOgKnndZ??|uqUCA~`?0HzR#ldn zXm)s$LFG2l+(%cZ@*c;%x+EutUYK*gbg5;WmJqqZQIrbSr-dowBCTS~a4b}uH4PED zBgqWIidJTm4Ej-$3%uSY)7yP)5(#3Wnu-}lY_NLqPu#C zsK_hYm~-M{2srX4jTxM+fZo-wkl#E?QFJZw7N1uldI-cCVLnvsu;Wk)w+@eBx2X?$)fHD^}%tnYsGuA zvSznJ2nG>`^-R*P_zotSvor!+71jRYJX{|uzb_K%C}Rci+UIW;fap`jOx0OX;qJo==!y5PBNe-|V~#zdE#E7!`^(>Xb=%9) z_NQuT^e><0pYY>Qo2`1nl0=!Qk9E${+uy~aD%2UgkKqVm0<>&B>I^;kYV`i8Bl6Nc zA;r(+3q+4R(P6`0RR48aZdXKH?vT{OwMTo%WH_+U;SwoEV=y4E)`J<<%#Nr;Fdk+S zR<;49W`+tGo3~@IVJ?gO#Gjeg^jPoX9lxMPg*dBnu~23=J-;h-V;P!|(( z1>3_WaQi|pnV|z)#cxZ2&OFp`kc5hH3a{q!iwmVn5x0jFX-`IVOOXk3-9ubf1OAV% z`(66W3Dc7Kue9{1@fWre|MYc5MMZx)eW9-t66f#Ty|A+X&wQP4si%9B$#2|{1TygE zH&MTEgZs2~SYh{6<%|$Fsm5EC;%Im{G;1~401oY+HHh9JG4WF26I-6o7OP|;Y$(0Cg~4h548jYy-Q;~kTn6~*(BMdc;vvM5EQkTzs& zN#RZ&`ABkIt71tNC5L$8v`9Bqtb|3pg2(1(4aAl7o+pYVCwSt{(Zow`EDxmWp zsbi-upb)4Q_2T%~%BpI_isYjjVlW77iHO0&_l)qLw3unh*nV?wGh#y_3fSkKv%`GW zn#sTo!!~&&9EDbGN{nS0B|**BvfyEXJn%^pRFiJf&jJ&u1tt3RyqUPXEgQm8fWBv$ zqBJsH=NE3)iMIfo>fSj(MfUEKGqV84#@0i8^E3;$DX>x$V`BG?ykE}-dlGj(>BB$2 zX@{NmI<7(zbmtuu*>SA4?jO-?$OA-n;SRfJ_y7Oe`tC1V|??Xx*RnI=S z>uN{2b@|fgH`7<7UZJy8v|*U0zbtS7VBCkEt-Q0Rngsx>ASf2!$BO#0ykEQz^kv?Z z&fKcM@^tNVajx4DmPmvkZaqq~4h8*eU_TwAVKhRIUn{h`4wjLW=Esmeh$=97fi`Y2 zB6X%ST&%S5Q=FK@ib9Mmmq*}WN}0FAzI#5PN0KeZ?rY z#Z@wdL@K}aHjd>U^eNl&bIGRC=7H{`vIpDzo>V40cuOj{YVGJ-$onyrTcfW3bptdx zLD{DvK88}ip`wDfyj84YxuN*+q~AnSNAIJ?>TV}kO@1BL((i0jZ~eaJwh(1PW;Feq z1?W#l0sfVyesvV)zf9ggJHdp61R;|Cbb>;(T))z!E+CHz*Mhd>7L-&M!` zt-1|yTEA7-D2YtC8uvAp+CC9~4rLj2B~fDnYEUUZx$))On461a?+{(}eeuyEaHis^ z5V#E`K@r0d2}`D+(;TT;Wbs^Nfui^sOvy0{D)(?D8GELgR7%9<*0w0xhxldIli(ba zE=933r->bSZ0_Iy33aA7f}G3tz~yUHr)B(6UG5_qc8ZKcA<^wr%vqAMY6g#UIT8lh zqK-uZ>!)L9sH}5R7&IZ`vr->35o)yFT?#kd7w&`CVsP9_1nQ7|v@o+EIxBk`HIy-q5QSRg+45KVZsfi;GnfvW1DV1_gO@#+3gEc1^<(o~9^Ka*x@C#p zOkHOUX(XY{jAu?Z#)=qakAuHu_@=`SOL>s{(W-aktxi`!CFBimXNfL+qOG%5JKK%B zj#X+5yB%BX?`%x_x+gZbBlk}y=zT{_@>eI=A$=PKt#i56eV$3JaZjGIY+}B6+~|5! zd+%TQ$0skIdP8~g`2LCM=6JEPTVHhE-7nA2eyykc@#KTDb4Q=vzI-WEJXXqpfh*qt5Ca8U)0rBoZ_8Gqup?4z$mjKD1V#Pg zi_@pO=(ut=bb$zolKPo1w;mN>&jV7ErjKym%IlaaQSd%YhGfDx!=`IRoERgQ#$#}N zcdYQOyR`VFNeCKrHg^7F;_Zxq9BMg`nY-c+fmc+LJ#FOa41lXO|1|ZWPyM{&gvT=; zT1@z=07^A(ThR2%(lvzo;&l^GGwIfg2H{@spD3PsGwokbydi_4WI=sNI1X_b5hsC6 zyy~tTOKll99+R?+Lcs>YkbRHDGq!yD7ZXEd*;P%Y8t@?!lpv=(AKzn^0ewJnp3^Q7B9ei~NSXK)ZFrMayi? z)Hw-`gi}d8Kmd;U4$cZ=)Rq}YEMR-yhQ{^@;zd3fu&FHrJ7IYDwddbhg1+ndVkT*O zLKO^$Hi^qQHNAgFu0N^y#dn=V#bwvWibxHGB{gKQENW2x z+J=$`4IaeN<%4?G%NyK*xLu;7UuYS#(rr!-q#OtxPzJjU&FP=1N6z&AGJV6H8tEd! z$|9}!?h+UzEZ(o_cWs?J&p{oN+rmHTJrZr4{oq)H=5lv~-AVsVU(Sz>xBJ@oM>%MF zUH@bH+T2bChS~;Z=-YrnfCM3Fg!eV8-%JJ#@OLneONh(bUvvq#s0Sv;q^P?BzlVvA zvvkHwdt>s{UO!p9kG$M_I)cc~e;RgcTRZdgPXsQh0}nZ5H%&b*Z(jzwuVwG-`4%*q z$X+@)I_)5)4;UoqYcWgN;O>V`R`T5Ohb+W_ZE}&e=cN^r^mDRYfD|~q42>I?u0Y(k z%^re40Xncw+=E(WCAwa>Lgm|KTvdjV#TSB`>LZ_wyu+V9R@pP~4?UBmea$Bed@Xb* zbG04oYXbI_9`p*>mls;=?mabrwKxjtFkKoYK#+KS6YNdpSAQ&dRVMC4DxtO4ClLd) zrvB~$f6?f7auyQbvoKTHhO;+MFpk2petHyBt!eIPAD+kdS7=lF=|5G_&xG-Vm zfXPUq=8(kmQAKGbn6gL;>UZPNLgFbL;nuZM?L(_}Hjofp(Jo=|30YK}(XOoe1Yf~Ds(}-QiY^kdD6kqY5u61+t%U#L zYo`zk2IEj4^fIk@bT(eDYX3B|oCrf=aH@Skg*jMZ{~FNYb5<51f|TjZdCLIBx+*obu@u@~NTU}Z$iADDANJX-hn)_|#XByAR6gzse6tY!D3mbW z=Pah^@D2xiT6&@5goTRZ*X<1{~71Yc*2d%LBR7mhPAn~v15^_hucXz*NF z5b1|c6Q6_3t`doO&Jap2hC_(g-0wk8UJbNIaW@t2cfes}2~0p;XJm@At_Vlu&~~l> z+L#9dIly*VM*x<=wr#fi>99DLzw0)Woa^C5A+W&q?`=Sr_Zlk&~k}Q%ADhEZ}u0(GmEafpYzAo%3D5dku zL17CEXVUZ|1dyzR%EIdK_y{mK%cO9i{)nJ%*(PfiD%sSH|0)1y-PU2(GW^b|AVIPg z{8na2=S#{Ny|}#^?KhC9-Jnx`2+92c7L8jr+aj4jZ8cgsu8B5YbtsJ3)`;oB?6qv& z|7j|c-OY&qTQMjH(1ZEAr#zj#OfPdy{KqQ&P$@9Ss!D>r(v&-gtET~xfnyY_k) z@qSPr?_*d7&$^E)a|9XpDI;K~bHtoC2TRKGd~Ttqa6j(Yw?Evob3 z6~6~5NRbaB=|mj*`8U)nVzHs54ku9o41vD6SK?#cS_(QPw))n6r3u;%TOV$uA1gT2 zpYWMvlsVY?C<(ryY|SW)jx&r+-)x?gVUksL#VJLSf2@E|-BLy@M z`pQ9k)g3# z_Q}nQtxvBoA^peczd8(Q5leg8uMQ(k+){1$LMv#nVB@}0r@}Y$!x`HxU-x|8`h2iL zEc@EguOFEA5=RA|FT2mqKJGmEV(QjosNJPQ{kJoISo8rPdCTTtezE6M7!+zIMc9^( zUKmf>$YnCV23H-AVQhXQ+Zy+Ls#bAzuYzFp^VU^EdRa`wlkA5xTfNt~2GMUI!IaV% ztWUlr6!CrglZT)?ou&*{R9Ai$6=@-LoB1YJ>V|W;Rsb`2i%!7g>9FCP%^@!hcnXQu zBsf2Ls8D!YZp{P?Vg{N!XV;;jE3@fW0vDZ=rUnCSBJ~&<8;MTxl@fAhG zELD@cbIGP@{Nf<{g&Fs35xAsR;$g7$6Bm2Oa6`~x*ou^ex!*f_k%r*DmlC{c$!lZq z@^jmweY58mRZvwEo^q_$oNVAQp5arnTQ_6DFP!v6Q4IE78UP*Dn}2?A510Ue3;Yhu zyP!w`M@}#W$}gHazOMgU>me^B-v8xBTv1UW9Ax~r8}a{JA1J&LyTvt`{U%=KAL0pb z#JrUcyV2=2rv36NzpNp?+LnaRC|C#6kj9SsE}iXk+3@Iy>dZ%ls@cK*V=?>-RMShC z^!z1V^)N-zNSH|=5f^M1O^zdD5?~=oL`(`I)=$wn0hLECR5L23pt2pxiP*x1^cs>_ zc2y(sP%w{@p>Qlx^n!a~E~zIXA+7Ip@TIc~*+r(fR;R)=ZB-T#UB4AOB>oF^_oxLa zncL6LWOviVgrFP3qCTTuQd5xAikSFM156&1*#~}Pl+l-%KAv>QPC|?J87zop!an3O z7;QvW3hAYWhuPaaFbwOvHvSi&x(}2tx4y?w2mf@yN-2~cVEqmRE})HOFo9~y&eP>^ z@J9}z7M^Uf5w@-`u-*V-W;&v!tW^(cgk6eAcJ$AcYt)S7G}iA&_vP;?Ssv$V7F4B) zw75yFJsV7MdYu>i<~7w{Eas)=)L{e(W!6IHk{=oV$a5^hlH673>A!?Mikr zeiZC`ub$kBz5nQ=*Z5iaI~Qype_EQ%*>L1j^Ourmzc(2zt8LRFx8q*UCF!u30HQkj zv0OAf4g?aQ#&e0^ptzAQI_zwu}SG zw6E9)1{lwnWKt)Cfz``!)zQo=;H4VriGskd5X?d8owspwS|`QL=dz%ZLWmvDT_uSj z&3xUDh-=YZQVc##lL090f~Od|ctgRKeR=j^kPB?YsnAd-z$?VOS!n>|eWO0R%#a@7 zW!Z?+Gs<^~9ok(S2%Vk>l4g}mAl_-Zbt!og1ae%iq3;kxTe-eI_`*2z8Cw2tEc&yt z5cU`U);0J~Yxr+XeE%z2Eo3(h{npQ20R{DEV0hsMLl#4MSLLB9nYo}Y zX+XfE2Roo=U8FFtwp>_=SbtYzE=uxBu{!7R@y*G@!L%@H%HNtirC;-Y@kY6^J7ve!556}Www^PY{kn}c zaCXD4PwOTw%=Q0{R!%z8N+Rj+IV(WyJ7N8amgYbO7Z$=cNl5df>DLGkTDPC>)i?P3 zS~TPgL+xjGgxsS$Wp?z^=*Z8Ui#K;&!JDjpdz>K!g?uY9<%g2Ki}Kc(K1$Yvh~9D0 z>Bzrc=HQ^B`h(7=@!VS5t%h1mAoQD=-L$5jk~Bf;7X0~b05mXOhJfBMWggOS4s}Z2 zvdm`!8n6jF=)$Q)g$?7k2Hdq#z%&Vf7~niIOj11f0F2N%nMFab2)`Gl>6vm#>DqAC zY}8T}f^OwYcl9adQ2>e-%?oe@udhX%EVbqrfYBEe%lt}L_$Bw2hMu9K@qvnQ>w}UE zD_=ZG;;Y5oaG)Ylle!x*KA()25Hu?XK)KNGD;bTQEL3#N((GPB!JtZfR{IC({yN(M z9XhyG^4bf8_OQ-m8*RNQxc!D;dOq7#yK#5+K8l|4KU%}zUA;V@DRh8F0Nc;cFElh% zSZKt>#R->$85tSH#l^zbu%V&h{Q2|34TkWLCA+t`>`S>y{2V#)*#Eg{@espOJe(TI-7D&wG z@M_!4z$vM3$6j`-dvs?VJoYFRArdohlpqI9W z{=vV-tlrup!;1n*MK*L-?@Vf9;Y)X`-cJxgRRlv;68Fgl;V z!qPFS(93Zs2Tu2Gn5oWu4H(2jNc1J&f@NN^ePdF_vRpG*#1w?_WZ@Jy5Wgxzk6<5utk6SP4I7u&GZu+at;r7o;4Preo?GTlf_Nj zx|I^eZ(ke|)k>~;QTN{aPPwV~LX^z;<@<4aFV;lS-@XW9LX1oI>QZK({-)TZ_|W8T zg8pFF9--8FGgXhIIhn;RLfTKRuZYt7cnF8{*u0BRf2uZh*={kgME^^b;oaIJSDt}F zK0m8OWxv@$gM6P8Z*$)CeXr?}AOxTzcbQ@?F(|8qQ5s8(o%r%#)9DMe0D6eJ7F|9{ z(Mf015d@4;5rdjG<-4TUNezR+1ypwj97)H8s7?(fAd$c{5x6%_s!ZVzObg{DK_e(Z zzQg$dnM$ilTHMw~QnLE$Bgg?sSQjH4zzi_N$>q!80!0a0HE<-0>4kKHeVIQ)A@JwZ zZjLyJ<{RHGoJXMo%!^zjig3>|pdAiA2u#jWZMKFqv#yZ6MK3D}LZJIrpT5R`B=P3cfAI6} z-MfDsKmSyW`Oe$!MdmMBs{3^Ujz7%kQ5EhewBg`PMxDQztoy~It1(HB-E?eav&Y5R zLoe_1MjyplT=qI=sn!qk$`K}VnF z+Ka_y6VpkCC#-UkLrTLFD9Grtlc$^t#ETT%PlVN(W8ze+NYR1k6mU%{4ST{+yM&X! zEOTtCj*vuGG%k>^yM}`~W@18<_mConnZ>kILQL%MpV)pF_FD8B|JnO_V%}d{M=3Zo z!uBayrgNjuG{Coek6(7DRhFiT{tz?;1TYDGVPpZhIJE6yt>_g(z&SJPdjqK-!q&(R z^ei4Y+R^%UoUSF~X6PnYpB&!<u5%Zq}Cp2JD={-w!zb}l1P*9FeMn!<-|uDey62Om0$Kw*pzOO2tA zU?MR1W?IMa~r^RzUtFLVJK=1IN?JxorWk(Nm%=nxe zj`4zLoArwmMp+-qD*%85ZnIS1;I&$A1w%8K5l$Fu1pt!6qjNEO7tl^yvwXmDN;0^O z=pA5&Aw&m8mp^9QVhyB$(Y}V+)1)tqW41#3lJ%-S*AsywB{6e|Q3%&8+Pm>e3}o6K zC=@T)V4Y>zLh(kxJg9uO$5gl>07hrfOF~+djKu@E(~1R2%6>kT=7aWbsTmXvwFR?J1(h3eSSd}(aIKbGo3~|JYZZ*y3N*-pxXhF;g_x5)suXs(uB&)GjeAlUkZwk2-Zt+Gv~E>D zbXsY9YjgZL+OHAqBLy7x4ff^PWG%6wW437cH+XT9^~#j1N?^mDi{4lX(qCo*(5@JS zbT>*mV49;Mrg}~1JRrpt72ExFqeg-oJwZWh?Jkp{A&AY8zf}nMyerYSz%X_?@ifV| zigwiM-0M>ByJfU(rrhW*_xa93JxbB=_>$Cqn1TEE4hQAf-i#LoCBw?lyZzOM7IMaS z2_SGCXHaef(XQahrLgzQPa>saf0cFTh9C2pzXnGeR~0(nKJ7tBSnfP_@2vY^wxZny zRq2ynSI_7|K7HR1=rbDkR#GiBjPz8v;=5V8cjJTl?j1!F&I}%X+s<3Di$Noon1P+U zV^MD!_?_>;@COI>xAfeLo4u3z9&LCz((dI%>ZO9Xr6q1ISp!!L|;N)(`76^1DRS93=%+5t*=B_V*~gu7^kJ8JW#I=9U-*kipdHq&@jxKL+q~We`PX`3U%Xey*lh{XA-)p?Nh9D($d<;uf`4q{I05 znoLpdh%dt1uy8?`of+=gv|>jvSQQT_sA3Vcnf>iwD_lXyCcSt&xRK2BDh=ASv5UvY zBD3RU9n>q7#cTKrM2Fs7C$TK*ADH?bl>Rxd5E{FG{qp-C%xM3so}hFzq1eA30rBWp z!~9)+t?&V1Jt2ps;3ZkwLAQ>mR#>Z6*w_lyx3m4Cbme1Dv;NB8>N|qd{)UmtT*QX> zs-q&1=x9pNNlX;UiYk_XJe5QiOR-nXP|PmM+m_;eCX|BB<|*O|b9YvgoDwSQ$%QOR zG3jVRhhp-{W@48@ctYA`d_hWQt3o!%RlJW@7^SURHk3U^wX_wR-r9Imct|W*j&6Lf-C#nhW3IDIgJx1`RITJ{A7_II$;@^ zPqyhJ6im?6@*7uKAN1C^D$=ejv&B%%7` z>o8-}%wOu;TzBST+tft_ROP4TIBn{(4PO1w&ao^O*w(i{Ab`hw1NJ$Uynp4}c5r+5<_~H=BO3!WZWgZH{?Wtw zFbfmxRPUPpdZIjupi{7E(FFlV^n9ziy_*j}Uv8>VUzzQD_2PD>@cDQGA6S_UHsv$# zIb5Fv^?k&Frca}hKq~qHhFWg1<%btj+?B*9#GRlK_=#A7LOB~b2!OyM1l}ewv15Zr zl1LIj1@K`>bCx+6zs>}t24e_PHWvjDLGXe5%wzxxtpaM$g$!j-r@cGEvNV97apKjY zoBhEW+Faaa)#q-Riow3I;N4l*Az(8v56b@Cg6HeAr1KDSC^WijRsz~NIEOk>WX(?% z9hn8P_F3S35Llf;i^~1)yy@uVJSLw5BSj4C2CrhxeRS|Ca73*Pav<>@ znuq`B)b#kO&a<5Jv%18By#FpL3*l;sE%bgdF)_mG;eYpjmoH!bQ#}ZW>Eq+$LhmO$ zKK*Cj&$o2pzmP`$jkJFZ(}hT*4fY#<9};$cnl;DlJ&pYo$~jg?aCPTre5Tw|wp{$U z!{C}bT=iQ--Tk}T=IFA&jvzx3CJ~eq0WQ>FMQki0C|-$!QBS6%l3oBAcm+0U4!r#E{sMi^M4RotG6@p}GQU@wV+Z`_nGbEH%Zj zeTvl_VLB=)(EN=vqAT{ry<41D>ewMaA5U$mA6#xlMe~-M+@$_tK=ir58m6a_1LxwftPz#{(3n>3$A(o-PbXYgV&$- z;nf!SFHuEGA|Q}oNIS{|J-Kr7K4scc=M9n15s^}hl74&SYVsHD5Lum9(}R)gm{qEw zubhV?^1C+)uf)P(Ix)B5j9wlKTyc0;xHIpQ^+cz{y(wp)@6ZI+=Y7kT^`ZEg{-f8m z)hY~vreOYC6+cH^JaHdmpA4^j1&Uq1fkNN{7+;dD&p%_OPk4ctpTRA6!g!I)==bQX zjksi};M*DqrvQOK$Gr)b_g;Bf4sL{h|9nIa1tqvLfek*>vG--I`JlURry3^}015y_xJ5!JVFT!g(LJ3xDWHN8dg}M`^#BK2%zuUut+KCjME2<1 z%T&5Y<V`AvvuyT-|Kr5s?|x7?`1|7rg&Xug)t%4}3iTu0p#Q1vgnsZps_uS0lz6WR^P5Q3 z{o2@nPArZJs|Gmfj~_fx!(QNAvG+L3Fsg0k+@A?!oG?<$mlw%bnCp!D64XoZJN0<4 zO!lo)4(jM|lu49gkVmj$h|mwBQaB_W*Df_yF|#0N8#j`awk@-i8o;Gi5)a2SYbg1x z6-5=*ZHje4*$R#Lu=w&$VvNVm^9q@X{Yl&&ZPgNdMtlzyCr}#SnpdB@y}Z~~xUZdP z8Xtdf_O=#|9ljUw9(hx7Y4t@@px9!U*vfEU7_F577CC1|?Mpnt*cDAv)nEjevJB$x zj%avDFAQcmq19aWta`cc^dicxakK^jH*)rpaBS0=ReHsVHde@Gob>`{X-O7o#n;yC zkf(TJeMinQEO*Mf8u&C!*JQ+7r0cX5i0^+ubnC5|*qo3!SU_8`TFuZk}Gp4mQ& z@LrFQ?bMe5;28|*IEe81LtlWW4S?F8=+haz&mf+G9Ioy7H(+_g;Ru!O8N6UTbRg;3 zr;f-k?`n5Q8l|i8b<^QJ&FYIy%KVU7RDv$<%J++CxXA6tCILOBP}s{{6=t3DP9~V{ zaNsFJtZD1Pn9K99(zPhi97O;?3DX4h;g6pLkhZg?qX;y-%{d|tiemy0+xgpIm;`T@ zjn^W`xzy6_iY>)CKF@%S+L;wx<-44U6S@>l0DuCfhG6YSI>MI?t)xmr{daITBLvOc zLtQluFvwD{Qi=sxVHtD;+Ni$bq?prC9LNdDFf7mw zfQjd*y3#gc`YAz>Vt&juKLO-qgDx8)0w`DT+Fm1egZFoP9|c1IzuXq3Iv+l`*J_l$ zSyz+(q8}V{AS?F*#fOXPthfr)WDn#uLb9!jEX@D*ps<|qp%7!h@c*wtg|3OUN6}v4 zBaI*E!bcjPKhwE5*Lz{mtuLT1!fgLs`Qy=JR~|HL$ZD4k9rn1s&9Ji1?_tanCV zd+_CjIBQ%h7FxN}vRi7hV0M8c(iUq72uvk|nF=%~)f+g|i8EZb-}NZpt6a^fg?v{I*A-uXsH{aCGarA6u-z`EaP-)gnDg3xH!csMio zN71%p>1RF87oBHmZ;3sx-Ow$9y4dn7qZu-Awh!~Tp1)+qR1(U}%ij+NFx^4ieLICR zdk4yMkdp`)-oOX(1KETYCtZUh>%?)vuT`guuMSnYZyZVT=v%%Iw)$+oHZW^I@D|n=)W|LwwFYVO=fTVto^+9OBku`Q$;qv!AkZFn|FbO}jML0+G zrMG-z3dIoHN^v1x5q1|;-bOu?v^AggI%$MHa{>;;(cRN_NDZ8pzy>^(fXRjNb{S@P z9Z~=<@NWXf!@oa+X(~@cn8Q6NG5H$3H=#2h5(<;4*+@h_p2rqApjrab1mc zTO~jNx+)OHlGgS%Sk(=M*$`nU%ORC&@zV^om*$Xgi4BwkDAlA5c~^}J3990%y43}A zNjy2&lh9VR{a6dmAP0&2$j_3>8(BnRjC2{2A}CUT zxzV-Pwf6I#^PYX}eLedx;1_1@?;LZC@k!T9CN-jqrH1ye*;5`S#+MXlic<=PCpeIO zQ|5DpC*{4x8!famIh888{XLMP;y+!tzeM%Fg2Mlu_&vI8znq4DQ+~$#uAs8(=^iK6 z`E5=SK~Je<19!dV$L}A>byI}iT2rkCUZ)YMh{i{I7mvSw)ODXHRRXOq#yy2zH~;+Z^7bObFudBKbSTdMWL76((&+&7mDVoS18#;vZs|K@ap6l^#h=S7Sui zyQPNUHy)!W)S3|sXo_{2jnx|qg3`1&Xzcl}uDlBK8rKbY^aFIeML)~M@uG4HZu|K& z4SFfOUPE-}^1&W_ivv>k5k#}0lf>HBcy&PKU25y6d*t6eT+lfItu-f?pInV1q{ zYjcz&XW3N^{5!(*SIVilkYK#+jiC-__B!^6j@{NT{4pfl6=@C{dIWizvtn>;BK}n40tkYjaCSnQ(-yfA zQ?l$)5F%GBj(b-o9ivbx!>$4;m4@xbfH8?rZ1JfwoE|14k&xJ)^W2)Nl$hkcvupiZ5w8eZz&C{<@{-~_$9V4o0K@q(X8JK*Ke^MNQnHOV*BsbnE!a; z8hg-uds#!QCOp#v{Oe2Se~NdWAgg9mEQjotcpa$>%M~m4^iWdZSHLlK^4tSwcHj1r z-RrGqcy{mYsrG>L@lM-u9gkIAT5^V_BN|(N z{RXXTJu#eTjedb4Kf11w#3erNeTKb#;l&&D=-9YA@#Bo*RvhjF=Ixtzi&L|Uu@DIK z*xLs97R?1SXzbgiG)GpO+nU5Tl5NnA0cvct%!==t#`ngcnW(^@##nE%l=b2G=tMs> zuGZZ2Qh*FI$NqLDNDW(3uMG1s?qTEBrmBu)V3Jn2T!_X$ z%$prN4NTJHX76!j6#j@goHU}e6@kQA!g@gbeIUpZ@UsGFh)|9X>GQWw{O7A3aW*=c z;@4TwR9UQDXY#^CpT;?_JE~&Ms-6nPK0#K#+D1uK!WFBSb+>1)IBFlkd%oYr5v7vL(GMdCn+2d7^*x?@f7jD&DZU) z2zxOo2Yde+X&E~B;$q~tORMAiK_F7*APPN_u;vT}XJ=8yC4HWL8OAmgm+m!USBky-*Jfsjr4QA##^7lf|oE;5TCvXK&%{rM_&?;%3NxCA1GR~Pi z*g?(`_I9kHu6i5?$zif6v?J;i(j?p7e62@}dAxVsKz0KfNbDvELm>;HJ zf(^{jFHyWV_i2)NNl;BVwI}lc+WgL}hZGtInn)5VkC%fn@&;FoJumrq;liIgnf&b~ z_m|!W#HoJwEB%$F`d#?~xYvPxrEAx&{hpK;FJAnXCjRZr{6Dsv=V!eIfsiq*^Bk7tzpd&u;xIs5>H|7bZ!zX*gL);A}VQ>&QEbeNv(!sf6 z$Hy;s8syx5`}W=9=CP&0fiKhFduzYlxV4u9pF%D2xdY`oaTaoe?~&v_VLVFZPQVDE z!km89C|Ta>RE<>{8uYWlrSBAj55ugY7h0XJyA6Z7%(>`uDg`ARpQ-1Krxm*^jAICl zr}t+z)mR-=+u#4-fW63mPY<2--uHG6_e%0=8yz$Ka8gI?4iZP~V2>lohYiLV^DlrA zZP-c9o0!WALOm9L<=dDTW0@a&k8;3cD@i0tHADWP0%Wx8&*7UM-4lIK3Bj%AFDLeE zLX1|rQcf8ATt}Hg*Nf!T1vhrcbh*BgiJN{3#?X)QnJ1r0kR)H}l$o6J1=pJ`Ki3R! z0mt@z7`|Nu6F$t55`R|Xf?`syNXxVBMEqduS~4tsRMq$;rD_b>=Vg=#ebF=W71vicLeCNmchsxzPCy}Yg zk1H^p^)3E3M}LKZfw$ZLeoP)vDHs#YgkLJf#1#YLU%Gi9Fh>Q=tVqM$UKvkJl!gb+ zd|Wnad*jI_?WTkF7pmWCeYeT(I}l`g@$A`sY3CfGt5&>KBu3x@jt0e1-I+r3qfya{ z$=bqnS6@~(O{kxjQNS!B6C&_s`TMf?KElMh1krJ7YMoVuwr(j+5TO;k_XO~vIZy&j z5H|Km=6X{2VNE>t0XEJ1?0Vu|TxZO~m&2Cajmr317U|{O<936@J9BfRuT2Q=UV447 zBz}6?@>MJI;~qAVlHu{kpsYM~YuTx|?XVaj>xQd#ay-WUdGE>U8yR0giNGAu`7p%l zpLEB*Q?)l?gf0E@`r;8mfu56Eq5f&6xI{nT&4kbWdLxnXUIN4VK5Ju*Rj}r|BneS} z!#XL!^ZqkUPfpBgx%#d?p4~+VOcjB)+ z0qM3Pecmh2x1pu2R6|6u+BY`5cL3 z0n;Nlhq!OE^4`e$Et06QetfBER}|!_*&5*OW_|GNm%ITG7%VB;jYbb1*w-e7BaKj^ zyBBV}3}qYIxj;&afP3QDc2*CVD8XHg##t7=@V6BOfD&wzNL4~+p*P1Fly-gX5p@Yr zaw;;!1eAa%%^XLg3-!jft4eFtpj(SNUTCV`x9rIVriaGcOz&MwwXdU8C*&E5-T6B& zB_^a!;oU$92A2kE(ci2R`FmBDWV%a?76z@LeosT`m@q1 zhObmpRHfg)`ENtA+~@aSP0UYKx3Xl7x2xPe;Q2sh!v@1GKUpPg=FLVgqQYBam;vL; zo_nkmR^IJtb!9WzHK*oxG)>wDu4^jXq7&K3ItlGjv)Hpw($w|v%WdI`N1USe9Ad;I z9*qmx%;%{IQ`6EDGigV-ITCn0CxJ%N528o<#cSfBAXxEwk)3|*k(ylu96pvtMu9GY zkmng~XY0*yy|`8e4s!W2=7foJoncR9UmyO=g^PDDgUgMdXsH|e;D?58(y%XI!e5ox z8K0XQdQK<8-`+({yf-!MD7X#g*n+?Q;Y?b9!30kU*}QrZpMUiIePd7l$(Z%9hl1p45M*WN#{ zCluXhSl+EG+NCwIukq0%O zI$)BIs1etu>PT@ta~PT70*FhMl$XV!Vi34M8uGC+%k^y0WVp+Di+G5e>&^p5U8u4y zh3k@eGjT4qPB*~j`9nR`dlm-|Y*vy@V%9O9_f^+88}j(Ylv7EN28JrXD&9I^KPa)~ z6jN@UlaR}hpqke8tgW!Bx-}ZsF0$N@Gifm@brda0&4zT34$FLG z?|#s8rtww$jat?@51*CeTU~;qqK(22c?-3U&<=VLlVUe1MI>fwrbwjiJ!*+3*y*Tv z2YG3c^JoO11T({;ayLDq)RR!&Ab|pdx=@AxcQ;$E@J!51Fv=`1^xt~ z5|MEtjrc93?Dx&-|)LBSFh`T)~oJTbA_D$8NSM5M*;){mY~a_-l1U# z?UNH-H!ps-`eAMU&}>vJLCm8!cjHoNWht!mo);MJl^ZA$%|F$qlrpn%f9p@NvBY+mf;Z z4qIGcXt4<;;M70hl3X$5q7}yxD7-0LGf(TbiW5L!i4Jl&GR(UY+}8~_+0jfE)VFLM zD+UU9jl?{vDz`F@o9Qi1DKZ;yOOTD%Rfu7u0{fD|UjfNn{gUH8<@HR<9pr6vG0lYv zldVCUQAcE4ZF;6BQkaG$MzWiXm(cY2lPESBnFh>amj85Eg#arS+nY$-t%fc<@j^3O1UhvjGe3G zQ?-FT$vCXRHLwt%B@szbEUsUnL0{p@3ajIoeC3w&cR-$*i1;|Xw3YN(@?Y;6Chd0lW%GAfBAXK>F~D&8(thP#P;}Jt$8=;ZIpd= z|NOlmOr@UEap!Aa+nKEoohKBL*J)q5+#UKGCgyZw>@` z=6d_>(oN(XB*X94;v|p5DL%eou(arA_eeh9qjy0Ab%5p!g1t7KUA4&VHrJGFNm^c? z`f_w3%j?sT{jFI9>E2SS(^GhDnq*KdZv@3)d@d&LZ&Pp0b;eWJ+!qEdu9a^G8F~m4!NvR)+Z2p>@41Ol^05xh+;Jha4!%-h zh#NeXM1Oc)fybp4Uk~CKJ90}7Yr{{XxoU1=zF<d)IQ^o;974~Ot z<%_=0ppLIQ$9(4)qKATw-MFlB#rVrNnSBp!yPg|!q2*>G{?Wy~_c(#K-4Ni*(UX;D zaRH-cfiF-*l1zn=OyP^bU(yCZ!jY>B9KITb>jq}}50;`SXY-2V9@aFt%TTiQOu^D2 zmV#tNsR)#q6l5`CZdl$%5e^tbs#9o^;SeYV5_*L%-8wdbrnsZb;-r0tCQ?~PdqrtF z@?5u!buLK^;TD2%X54h6PY+Z(VpI&)yIwzzK2p3e9)-@7ErTGgPCHd_atk<4hm=Mb zf!y`sRc|_d3Rf|c%znQDA-|olY+zz6{?VHRkP`k^GxJX7UUDt| zbC-C{n!VK12TN~$e@20TMk=pVx@RCK2K|8Q&dN5stJf%2jH`VIEo4*^S~gIl+6+}R2rw|bKphp@DbY$Vxkw`J<$Ok^8gXOUdZBFVG{CCVW1$xx-X^ zBcWn*q=YmK=Pg!%DKSdF5gedOMcR=%QbyB%h$CS&s$+1X;SP!!8`9`tLBtBqK=r#t$k{a zmqv7mC{(hIx(Kvx<;bm-+^a2|^Pvz#Z0L^iGW{cp_)Eu5bZA3_i<8$1G(<1HJ!&D2 z6dcB1yz~M7c&nf+`dMdY`7s!UyY1&1aDH1X20wG7lt)$_*$1A^;&Jec7kOC_aR(?S z7VF9Cai8mM&jzb1h(XRyN}1x+)l<7&ozzu1E&-2{y2mn*g@rv(%{zM4I4DM`2Z|)| zIDWYApJ}oL3YP)t{ljA-_0#P(P&&IbFfLd1MZGu=6{{zJ?zuCwVl#umnL0of`P8Bh zGDTy1h___(%F^@->jN39IbIMYP;n3B;PE~OXyDUo?{(qIR`#&KuMYKPh^ZmUYV56| z+cioPL;H^emY-KDRyQ1JbUtDo4#L&c+0|qf=RZ^|TK(7;0uv^G1VMHf6tn8t?6&=Z zK9dJnk?qu*H&QW!@v>{6$FoP~Gx0%*Qp9KXADecJE%K)FuIE47oVVLK`OoI(UxGOm zqz0s;0KxpfWwLOuF<<_Ub+rZ@EKxOV3RPd97!}^#%%meMBu$(pO6xadUsS zRghWD$XsLAZJn-RX+2dPaz7swA-&h;SshZIV!Cn9zL4cquRZ-3D}-R!wdin|N>FZ~Z zh)NP=MBJnh1Df4~di`<}^rNS?_{kK|^I}Jl;SH*R&9;-&<~$sFx((8wUHy5_gnnd= z8G>~VpE%R&Zi8I2lg_c?P?}IW>i2`*aXmJGhaId@otZTmh#wG~o+Y;7QYl;75?^O8 zt=>E?gOh@vZ30Xdz)W5^!Ut@B!D&pw^tcE^r?-G%+! z_TnmUW&OcdGU^lO0`ERn4?}8M(YubUcuiAY2VYi_*_knlW<5J<~aYjK8JNaO7Bq~NvyK+ zo04((D7Nc?Lq+MA#7}3*12E-HyBh9)_-HN>J($Jkkj5_BJ^2iADa%xdGLmf@4rj=6 z*Ftc7DWHm;mC1pilNUf?uaXu@dDp_-Mw5|}i9Jw-=+A3$y^MlqP^6@24G!1bL6x$U zPvjgT_p+)}^0eAGNi;(e6)pG0TO5u-C2@pQJ?=z;33D_zmcE%hsW0Y zc&k4!Y^ry)RzC_;)9kCNIQOzI1}K>#jiMk)u)J)7N7BVIKjP~ zywUox>h5-*`qr(3j}JcSu%AA3-0xiX&aNFThkBms`aSqnso6|35ms$F)!}0&=5uw4 zGOC%iSBzus!U?6Z5aahi6K%mt9adeI8V?`qURg_lZttri*h>5C%T;7^CYgA>p?mopJK0JSSq!Wx zTZ`306H8cjP9t)*W0upIlpSC8V$t7w8JMFxgcGHD+%MxL!aEJA1$Ks+tOWP+0T#w9 z*|AchXf2;>S#h>e3?UrV7y1j*t!6O9_OE|GVEtv9_*YK7Ku_6!cST`;Y(?KB$ zv>?_)zYbT|5jwYw2w$gXQk&OG>g2AY6X&Q}VDNEkgGa6MyE*+TW7&HWc=vDatvELd z9s2I2)I(Tz@ealXZGZ6SI-DEME>frhce56_;ndM1vl7HcHe>@Ib09}Fd_|MROImmSj=abD7x3(C&uFZgYmIB*9H zC>;2w+v+usywlsf0l?P@kTGdJ;c*X-^#yW0G{5z+_m zm0CQZw#=UXWku@uOkTm*h=Aj|YNvsIjPpkFl8*9&D=s4AS6W`09RmZxyOf>780XY9 zd|F;foI1q!D9PGnV}ysYXYZG!)Htk@4S*pLt{(ZH3zrTcaO>vp$Un0=@G^UI4sYXg zndUJ{RmKKPBn-bjKe-!sj)oPwE{OgCHZ-a*5kAM>ZrO+kNt7 zwthGJ_7l1ASOCQg92lWjL`{otgW>YrXON$Nd`gBs54cergTQpexh*vEv6|$w_2npx zeWD4Pz_nbn{~0HXlXxVTOAS?)OdL&AAC(>pT~8JDK$V%?XR^rHnQY9));50f_?IiL zu_#8TS?1CsuyLZ`B&8OEhkcQVU8~t%i!t^Mi{G%eShl;6g>Z5qsGG}F=dVA{t&S0v zReHqkN)~%p>)C!t~I|;=pHgfXBZq&yJe8v1TKIg8e^{tiOz_pc;Yhg+~jR6~eD-N8e5yQYZ z^#E4151)z>CT~2dn3O^%3(>3uW=<{*D+zxs&t7)ZmRR1u1Q&vsj2?inz z((c7*wICeUBnh|Bv{m&k*IEKa?TAVZbUJX*xS=wi9~6Cv2;5G9Fbo!EiOT;#u3tx)>@}{<;2xX)FrK%3q(fm;{Y5 z2{3M6pT&o`NO;P@B`RZVa~zjXz-ODCcEay3XX8P)+GOMU%2dv^>^+0*H4@$2Jve+J z{KlKtHlI!mi`|hcTKx*wjkP7OJm%B2wC-_7c0&2^GG*s3pXwcJ(-;#2%~#s!J+kXI z;QVu^6+UiM@q4`I0weMEGqK>gvBOKRjS&{H@QaamTQ_#;AC$eDt%4-fbbbU}dNyxc ziX>q3w{6Vr+RAjHb9S-9!=j;}aOgL>G3T)RB|386X`iRv5Ak~mG+it{w%+q9$G2s| zqGSTv#<)Sk5GWKk2;OdGHx#ETS{p(?8VX#kv}T?;NaPoCLW%nuD&sX9o`{bTU*&@m z7+QAjNf}pVxR9SM9n|E@BfI6%L=vknO~UuAINc_90SH_{rtL^rN)jKv1>p_J#Tq8w zggQtRGMF*}Ry2x(Yux^PMJ+MIflTciEzIWm)X0$?lSHtfh<9~LILF2v6^cCc#0tvV za8~6|fYnPJhGNCUq!x?Dl3hcxX3`EU_DyZ~fyy+@z80_A=`b9@}) z4v#u~%zK+VPBkw60NgJnG))7)LyPE#VL&%RbJ%z|6mfLDulqq7W@E88iP)%thPFe| zCshKSJ#$VFFLy9-urp`6RIp}eH{@Kt)5a#9zIH8Nr5%}k`|jOt8usBsBmg78zu;YZ zen*pt9KCj~f-yHgptX77%+vQvcejjuz*9JHwp|R~T{BDL-WF{NvQdyhC4k0?gr7#V zSl4;37p+E6?O!KuR;eK1(?1&lZ$<6R0=CBwM~lY@jlon|9mVNKSy z72gSunAAG3x-w?|)^`W{jXVn2owD(yik*0G?Axc(8uJb|my85+Oa)cPyA_DQ5iW%b zg1k->bD};sEGZ0D>YW+c0w9p}XOfiX{r=|%?71RO%i2M4rRPsskyo#<~xn*V2+dSheb@5b5R zMVkL1BnOB{Ni=u=`UvgsM!84_t>(clu|*&40Uui zbQdF^PA)uH!XlSr@{*XSLQy>fSH9P%h3=NxbV}Vhybeftz)~$Ps)uDq_UJN?r3!i# zk>%&^FbefEh{c*fe;-{(^%)IQ_#$MvQS2-mQ!Y|g9ix&8QI_PBN^lrNc|q4&0_?-K zXHy-k_HB~!fmqWyXn4yyxTH7*yfy};|H)22DABk3Y7)HgXBo?m5@Wp@Pe74C9yPaD z;%&=K+X7%PByPW{_dsCm?P@lKGN2z|Z0BTgxIc``Z#0d)Sd~7J^*|X6HADI^Wa%c- zb%=*$a())GeW}}8Oot~xTn<#d^3dyRe4skISHU)it@Uc;*G>eShCO8PxaC5LQ{d(Y z)Szd#Is?z4P^u~AUE4HZcN=t7R&P8XH1?oz`w6duL)z|xCpX-!+d8!5_PleK#ne{W zz>$%%aU<6|U7hcz6KSBd=s~bR^YUsvw*O@J$9eR_)gShOKYtWC)fW{g{ z(}8_B zps9>0v-qpX2L72y`zL!B^THBilz$1saS zOf%~P3X6f#=j6SOQ`pMlh5ADG$xhGXjNYUfH*7;67SonLLNAOV+|MfhJZaEhk@N;+ z++x|&SzqGKAL5+6u9@ZG(nGk(Sqt6IoT4_RFMhdQG>~U^utOu&MlI`*a^xZ0o{+v4 zssGoh{MXONfI$$*Uj4hpnM_(UdiDQ;GgHmAq@Ir_6d9OZ6q=xcR!Z1Tv_P(?%pR6oi!iVuPb)rs*?d!uAU?4M(4 zm3LT?Ty(IMMb5^sqM4{7QN2>OOQotJu?TyL?HhqqY@x$b!Cma|cmb`4iZ2Sep^l7C zXWW(mrzQ%CfZr)Q7ie4uh;T(OLy1T@>I@rG0X!UYxv6zREc^!?<6dN0TTj3vo`TT! zf~l96y;*YJYwftkUFv99?~pdjWK+UVT=V)-^=?f$JmDv3^dX4e3tMTy;k9L&!;l(p zIhG^$M+L?AZyB-&-n-eku1k?-gFZBnGR%mnK?W!YqyXHwcw}TiY}HaKqdJLNa*Rdj z-~6*SiD#w7<}Bwt5EO$nQ04OZc&(`=ACL=S+%E{%=b>$GR}#-Cd&v*J^XSTIw5|L8 zWO4t6qEAO!4L_aUd(lESLt6gaa%qLf+r$OYEbUpSJjIglEFFu~3g5`#9Q|Z(+rFB0 zA}Z4O-58FCEo$ug`fe@0d{aW7O8CdOJ}ur)$~h6Fk(Uoj3W~Vj-=C;IRQL0aVZ6ns zYmqk9M*G6U$md5B#M`RBCtSsT|A@5z81ja}D??#b`3}UsSw%tU`?yb>$fw=9Jy1++ z2ZyJ{84xF}xI|eKwN=B?B}gNdRSh8)bE(OS0*|s75{u7=ARu}ki6=QEw^)tQF!wY% zX!ja{v8x_EjiJS>iDf)btPUqP>q4PBi+THFnXDmxg7HT^Pg{>{?H(uV2>ssNagN>; zno#H@ow)h&!zq@R`Ip{Y=^sfc<@OpH6WI82E;DEKRws{YonoZ}M6O!@OqqINQl0Hi zIm=m2{+n~+)Zl#faddc<<(S6$vSKM*Q-0?}?X*6q5q8Gw%Y@&>{t$G1Pd|4uOIo^Q zGEboV&r6slAix{{O%vq*3ytglcJ5wD-`bdz>4f3E$|eE!hV^f|JepNt+az+{;dD5B zAb?{=ptR|$^hEU0Kk6G=qT%JcD0d(zmp9`!+*j8x#K|sL21>oMd}NSvD=uUk*&h>W zwjLE25wi{FzmCac5(BZRKK@9xYzEv5T;Q{P-yUiy4IhZF^g;P&9c6&M+$xE|wj}>U zbhz0W8YZwKm573)G7ZD_rBHEZT~uu^bTbwKe~P`MCfosUN`rU}hY*lY=SB_j95}Xr zGYJhn4azSdW9R1)SDEb$*2fyK0PN|gJ@Z68ri%>hUN$SbyEmJEkZB#ietbL!Ii%&g zV*2DnY8(~&Q@+sq{)AB$5_Gmy3EXos8sm6hYnD3<7HsfQ)1s_v*p4R4xfuQs7?(ziY)$6^1O>tk#DD(y*!a8;% zTS#4DS*c$#GwqXAPc6FpQWs_fP;E`AibPe}PM0+K_{FhsTia|;JA9W+dD4c5VIC}U zSC~g0lVj(R>C(Y+%TUYofn>{FO2|q#>~QMIkgL+qC|)GXR;O+@B-NL{*J~5UZXUGq zfD*K%?M?Sdqh}0BFxkJEEmi|Zs{d+?-izF99J4G`FmB!t`(bkW;vK^>-a|XK=OzA@ z7)M-ix~UsG>}vK&B;c&mDqo)v!&xogddbo4!s?^lY>UoUe7Ajgpqt{DEFf+G*tOK3IM1v`;Y+!ZH?v2gVIY?T=GZVfpc@F3); z7++6CQGTX}jfg0C6y9DrfjN)JZ(7 zJGsy^o?Ec)(as~XCz=v;ox8sCfUh*Bb9h8?-3N0saM>}MX%;9N&po%}$+17Qk*+*q zmqUd=ZcBkUZl&_bFq*9~xaR1sbv>q$VcbNw5Nu5c-&$emQ@J6b>$5n8O!sn!tkMvT zL9iPKs4=!0yzzC6SA|vRO@~mqA-esZ^xfJ&8blj)O=P=s6!jK791+Dc68VbXEyo$U z5fjN-tj~i~2Yl`qNTJ(VJ*JFKaRa@S*)ThryG@l1bkQhYhp61n*D+_Cmmy4>CGtZvCpB_l~^Lz8B z3FA+2!GG)E`xolB_BZMmDDYd}xA4Hr?(Ru%VBZ2>b~PKN<4wR4!X65^n*zM-6p$@C z_x`wsi|G*A=~OHDeuPe$>5uWjz`}(JhXbr%MQ98d9;;4DfZL}YV&T%kky$KEu9ZvUqcDgL)k%Tj05%wF?H@<#s45#(dtQyxcYZqRfaJ z4(UaftA!hjpQh{%HRW=p!FMe2uj0#8U?yF~m}9$|tw&B|pE|M{Dt+``%jz1W*ZpKT z2ds@I%Lg%FF)!oEkB19MF-V#WTA&Id>Wv&}hGNhvt_0{b& zK*|oWTq}V~bmWG)7Riiw6B~Nh?B4Q+#pc~=mu3=@e=O60w|}&Isk^V^^F!!2V@qlx zR;!N_sl{2~L+#V+Mv~OEGAAUrYt7cANp4qSrij+*$-#Eem+}i-^Fc8i-jr%F^SJ3^ zZkA=+(8NB1cu1^OdE3Vo8ZpHXRJfSBUS|qu^gV($dlUUi78IxTrM#VCA6emhTmp-4)_8cs-}iazlNFtFivxPu%;(zY&A2OwVxvV(@-ra7$b> z_7^c2dnw2o^CvMF732Jy7>ovp!PdWs!8XyE1L!H59&$~~b6Xk|2f^oeF&bZFf& zF}Rt?2Z+JAhF`$o5?w<0GV%VFHZ~R@-e05r0tN$S-!nKQVg|d+3r5`4848$BM1ekm zYpDd(%#XJ^n(x?c{9+Ou*6c4lIa0nE1d%TOHvN{vmO>C%4RL5N7@{o)1Bk&f45Xye zPi6Kp?mi+2a1AKMV6C!6&dQcwGQeB*Xj2C-%nks-+dsmp#!>C2o2x#-*o>GRjbPZO z5<*Ob`g9r!mrLy!45|PD&cjhV#O?w=X02Y9d?#m}FW$jl*Y`5@N@1U>#g-hov272EbQ#*+zxG&m25yQveWy zLnW?XN!fI)vFqF0yN^81ts06755Y}rzS}Zr6kIqvJH3MX3NDp<>_yrLe=u6*UAK5k zDhruP`q7djjQFq&x|i2nkdRvj-6!4-2wk&l&}UjQVYNw}z=n3cFgEE{URxzlo_mFw zqN6k70YzMssZOEu&h;FzHf^INc zQ{D!N>nkg-S;;C^Ip{o5+z_UNP)bnlH}S!f#9!QagoZB;oNDQ>oV1CH#aHW)Q%Zk7 z5dT%U{{MR*{$0HJA0CMRuTXoBzd`NeenagA#=oHUL#l$v6j=z*IL3vkf8PiB>Wi=V zCpajWw#;cf`VXdknA1*X5)+#Wj>w>6vf-wR`E*i|UujJRCK-U*7cE2WEB55IWC9un zv*H)hJ{8i%49zZ~cSolRuG3Hz=MFL;sR>ques)%NuD0$FpkDw)`@73Td-Sw=dG<2V zKDRa%Alkz~&^fBA9#=F1iC|JJHA$p6j5*4NqX!aE`TMAMB%k+^%!OJAY4LnMS9}I^ zVeF?RN1dC^c>X}|ml%&g?5Gg6Xow>X2v`h06Z~f#UQs*WgHoB5E?ug!&>16Mq)8;_dDEijCi&CFvK zKW5~T8)ZpF=EYN!5PV;F57a-KNh|Gd{F0X^j|e#69#PJj&KfXGVnzuFzMho^U9uBN zNy<+Z)p23rL#U!+x5<3yi!Zwysvalx3+;|19M3k-HV{F}bcQTy*#7T9wIgSe2(1Rr zsNtq3c^v171>Z#swyz(g$; zjskQ>oZ0%M2sY^#g4-A&6!aKtZ+(Cl!$KB?{ACXb|qvmP^m()N#v_;aE+Y zzXlNw#_}eO)?AFQjZ!c{}q03Kc zi60J|ABS%wxQl`(K_}OAOT(1sZJbhA87`H@B0pIqtpC*HyF)A!Co<{7^N5@q&~!A0 z=*#BTf|@qRGWoY=ckvrCsd|iQGTj<;W?-Ao{dytz<3MamR5EathRB?!IcC{kPRSel}E zaBH}Ri?>PgyN~tN=~7jT;~5r5WzbM;D(ec=;*=g{!z+5br!FH|?3AiGv751z$ek5$ zHBxgbhVC-)Vs2piqrJS{74+|w5c>3;O9-Rkf>NveERQ_emoL-#dkOcLk@3nk(;D^; zvo}iAdy81aV5)v&k$O#EjjF%(d8K?;!(ykBDQ)Zf`GolXD!=1Py~l-FI~+`!6CmL@ z7!j7-WKs~nG#_5wW2K7U@7_0lvY}Ac|DT3!Sr0K^t`+>(@5}#&VE9+1G;lLBZoc|U z4X3Jt9kHBM+p~t@fHgf3PnUH5_vnq8GI&I2t5*?p0qP2NRgE3nZqRIVGDFv=uG=E z1}=}Nm_~CHRyHW+m8KRl5Sgd<@b$sxj&E*d(I*_|2fN^I6lOxgmB(rs#na6kip z4PbR6(a+VfdG%zR&O>Uk@T@vuxrbfDp^#s(v*k(1m$uET9-dgn+)E%hBg~3R31BlV zQXqd#8WIEB?-ObgV-g3|(+sm*1PP8XKKxYr90zP{Yglrq&!071h1m=#Nq{@teP<2c zE;-DO&)n)nqp-wQ+0`d&P-)6ql%R&qbx23KJ(OLQ{6yLz_tl?H?P+$RZ7-7+mi?~>qNVdg$d}dA@1yv>YeJkWcl(uZXLvRL&XmtPij2&l<$rFc<^~u@TSS(677ZOrAaH13tu|C zySHsqw;1j`|8aisw4dTT&SFS7Mw;{Uhv1apJ@$C^r>i4fk<|GMofT_dTnI`1Fugmy zBFOm1m$@jUG4yAr?u*dRQoZ8q+m`k(T|G8?aU^YAfk?O$yA3G^XT` zNP+#saUfeD)#;S|(yk~euP}f$iFQ^v<>6&zva(Lm#VBqfV^P)VMfx^Dp(p=9^3d2$ z{CAW?+14JkQ+D9Hq3N>IILq-EGRnFpG2s5d&hnJb(J856ZA?{)25ZjhXz`+AV`h2( zfKS64luzS7QFxZWQ)YiQa{gc1*n4_+B3QMH!VFN0w&)*8y-EDBdF$>1>P8xJQqjwg}_mx337m)X0piH@h^&TDRshTNQ{ zqC*jSnRI%%zhG(8ZORSeA%}E+_}6_L)T$35>k} zxRHJ!q^4a*@n96}JR?|mjCLGfkbNyi2oU26?i&+NYmhS4F6cZaV+)4Z_&Zc0@P%q+ zl?qz{ZX>lS*+*m9AwP{nfyiv{1JtLTD{&GZ*UDgw`3aDtNxV#e!Xu=+?D-0J z!L~W@i92CjjhK;6Xi)y-J&>{BVyz=wd?U2Mz6GidjLx#>X~znHA{_DI$pJKInIf#s zzu#td`J$ot%?m7d2Q&X`PUb;dG~u#$m;3eI%XbR+p+!t{`{}exg5dU zec=XB5FJT8FEadmWxQU8ec1JA1mo511Ga}%qL22zSj%p^t8g(GHUDmRdF0?m3O5`d z^swxl*TOrCT>a;8aCfYSVcWi=31Dwq=#M=1+Bgp_R1R*{p$_iGHG;(0=#k)0oTRC+ z8F6ZUT=rNJyFmt;D*x1^8fr0|=#glc{ce1>2|+0~o*@x5;bU^>`nbPcQ0P6cII7gtkDTNWXY{y zPV^NNX_A~9N^3d%tyMnv3%1o{Keh6xb@@J6N&5SnZn^Bw3Ivq>{fnIY-`0$On{%&k zl;%-vKHs|kbOZ0;2~rNlGU$T(s#p$NRpFfH>&lUL(wju1@e~ORvgXJJfnFJ@Bz?^8%N*SvbxZvAx1rzxO?tQb4%gY)0Wj!+>-VfaC0AujH)3MR@Z#fKm~#)xNZ z4#>z45+GkkQbu&>H5J`T4QFBRzK%QoRu~ z!A;%Vmqrk*2ME@{mqiETTn`3_L}u$Dgw@JzpSWYD2n6jXhuuK$fu=}MroAtV7&f+B__gn%faC`IrFP$?=RHb8m}D2OOs;1FskA#?~W6ln^Aih}J1 z1VlhZ5Jd$IO~r~{3wkZjL7ltq`@HL&nRjNMS|2E=28dKJl?FTM(N$%=L|tL@bj240>R|2dj*Fl!zIEc;_qPikFPg^|#*2ofL>$o}?{V?#bhisL}|8)W@~aG~>;(5CT+zpC!6 ziH`a$fLrr0vTKZJg7{h|KlW5p3ODBr01qe9t1?a24Db=sO-8Wg?|*$&l;HCtQXt15#clVS|s>-p-`^C z&G3vz9&IK(xwyLlQ(P)~UFf|nMjeBwV9w5r2+T~Ds+Hdu|5z)`H@rF`;Mm`r$w(P1 zJSts*PnmH^U(HpoS!2;#T6f)!O*>xs-nYQYD22PPCcUoHvpzB52MG5^C*E>?h4}BE zu^1a0`zK~B7C`&|P|*I>{|eCFezV{%FtLJ6ycJF?4UabGWP58PpCp$Vi&d#0)(~Fq zqn%PyseaqiqmuW29<;|g)RY`P{ImoD?L%vY{EE2$3$)*`TUq_+nU}pQac93`kDutk z<~}MmiT_b!-y7;bM%@36Yx-Uu$2Wby?xFXQ|G4h?%wP8;=RJGqx+nY2^@nF4NkpR( zJp3XYo6(SGZ*~NeaJj%JLU=P{)$h}gXMdQ24Yi9{yEhss8A}U^x1~F(;<(80G%7A$ zpOK|P%=Igv5{qypk#uaXLnTGJsDV}*oLd9!6;~M7wQ(g{Rd}Hw^|VYBx2s(yEbH*@XT2g=*0O6CiQ2w)U=K@hUl~rE6)k&1Ic2*zRw+vu8o~G!!;k$Y!ys zdYtgqrH-L+PVaJ}BKt_7sQQ`&jcj-GqoykpEtS63XjZ2qE_utBHfTirX-@+s$a|}h zMJ<$+xS;)+ak=VxPOD;7u0Zr$3O!?evI{v}8(VMCFGOy+BDAPs1#NPp*U|^Kn=0(R z#+YxY&wKVQLg>0D-0QxZD1-votIdwRzmTs5yVbP$g!7o-?z53vpJR>7pRav+>zv7N z-P6B^f?{DikK%vf?W6BK!0Y|1sfXj^cKY&5@X%TITzPx1@Cf4B4iXv=DT!tkta|(Q ztVVXkzJGxk(4_wQP4=ycZj(~$a4(!Y$@BYU{I;MSKB zPtyYxSM7>+4O@=o_*V#3gTp?3qzCVJ4!Ej*QV;iw0 zmD+4Swc@1Gwif=ZK8KU?=g8;zHu}GDYu~qYLAqa%?*AjDd-~s&?$iI< z587Yj?SJIZK(q5ujAv(OC$vut>2m+v4e~#Zx6k?i;O#2_ClM$N&vOY!at=Vu4C@Oe$H z;N%tl3f0p6tqm@SOr3SrTkZzA^b4qmN}m^MJ{ia|r>-vfp!*b7FH@6#f39V+>pO3M z{w%jK^h8RD*6+C-7~C|^VMb`M`B!N)x?r`dpOV70Q}TLH4qEV2i~FB@tiOgkOAh|J zV;fMs0m^prd7Hp@HV!_o+I;1}gRhGbzdw`~-wpfSpvh^q3=JTU1WOwI<{XQ9|IXQ} zLPOt4AKBsK%m|ylDS{2Ph=CwrLMuD^Zi{4l%5u|kGQd>#>43j)-vmc~T6~3)x{XN$ z(pd02W1;j2>gBC3UqIwN5x`6-6v>fUF#nAMWoWB2ByKj7Vqkix&#UlChV>F=L4i^b z1`Iyp6+VrT2vh)E8ESP`5q`a-{Gy{|;iDq|TWym&{7ehw%T8zrtMkLry;N&>prxoh z1V0T5j!&19@1>b(b zxBrKH`|rP6e}r57&2bATQ2L+W$N$qkF|&h${o@7L43|-DKJVKvm4bZxoithgBTbYR z34hafrn$*k;ojaY<6q8nR$d8)kcMJS^Yg0`G@oD$G{YE@ktj?cjR<0*RO0Eyu}4nTF`D-wA-$S{Ns?^wNYA64k4VZ8;XqDj zGc_@iYfe1DOan94YV=cZbvpPS87L(eH_RvmA^9q*G_s8eZH`Fx;H5sfY4uI0N()=Y zD}>Pg`zXbTadz9orbP{KH8%KC!T{;dE_V%_6~fYG-mKYgcQBsACHQ`uLO{>iSMuM; z@f0nacg+7`j{)rHO}Zj)Rx6-ES@&Ai)%iCOV_Z5g}Vc{ z-Dnsz+ht<8+H{%2@}OIf2Ysa#Hk6pY7dtHXB#jz#>P36>3D@C`nB(6E*;hKJnOeqO zneP@Z^J@p8UoDRia@(n?i|#nKQdHro$3w!JWO~Ehw=>u4GLL&-{Mhn%#N2yGNjwtb z*_*HN>QaAe>wLFxg*?vg`O#uSX;l)Dtb9Lk9FEw>GKLb@$#F&^-ttx=8jTEdaS2}=9_YLwpls;$XuaK2O+CA(8#xt4DvEzyi6cyXJhZ{}w z-Xn#SX1)VqizDQRqCeZ4Z6)Fq$snMqD|80o7DKnym2B{ z??J5@XC3{jV#Kp9iv+}*#o-ib0g@H&i9d=AEWdp)5 z#Nb+4ikz!T95>Nc1%Q)hk?!)d)TYc&QbSxLi?!e}Esu67N2>Fqt4 z)Mg3ojNCnj`>?UGjoCG@h8&^lD<ZP(Q5Wm{Um*Uuhb(R@ZOr$&R!nr~GgmDWG_JknT!C@|ZzUJRa^L6v?1mn?_6 z?bqw3k9$YmefR8oqR)`h#kr8l9t--bGy9o8yY11fxIiVngR6HiS*(M<5Kj6?-iB6% zULjhQxQ$MR3^ckv=39VRGxyExu3(pKF04WF)cC#+&n~Y2@=W`Q{6lTrocRja#B!Q& zG~@;bW&%ewnse7kdEXJ^cD?-#gvmrpiftF)4(bIE7Y4wHuVbMcP##qPwHrF;#?ex9 z<}4SLsXG(6HQi41;L!GT+MKT+~X zb}OvHIH7ESL#oLbP|a(1U9mt_Zr~`u&I5d~ULkRhO6X*pN4)ykLXSe5muiosq;eFB z+&BU3l*9(;vG=b{Nt`=(uDiP%DySb(OaI)I#B|p2tMi-1eH!Z?hFRY} z_Og#~C9XSr4T@A4IwtElx>1jox8*0`npS2|Hijr1t#a`eSz} z-FwF)uDYOuC3l9={3AnEVpOF$lH3I8NNlvHDlaNQCEHy!RRzb}E>OW|SEl48@=B`I zB5|elRPSJPqbebrUq-?6_^mP#2MVbdWnzPKtcbPDqyv^v>2%Aab8cwjhxVIG-&d`U zJi6wA43XFTov43;$Gx@Cj+APj?Dg3!g#x5KIe}G5#!-~RukFPw#gx^U>q4D&=&2V$ zRU(Z(v5C({q1$#%dN+G^r!Q0ec5)_cGWN10#!5ibB6wZoHVy$7D|IS$KwI)HxjELlPl*F;S? zMQm>ffbd1=@5se%45I2srB57_K+3LkE-q;DXpbf^OSg!dr+ab~_C}`}oSL}CTNl}g zb7*q2O*UUN*Y_RX_J|n{`vevE>UZj7rdS|5+Pd!>TNDW%tTPBe5WX&k!zTwMNws@T zKL$NAVf01ENy@>}{T3z$F=(7+8FTM$JoS^e;y0{Z^eii8u*mbbFJ?vdhP2ej+*i=S-N2jCGe zA@W1LfAP;0_MbPj1&Mw^qF<2c7bN-xiGD$%Uy$hkl9IU~(Jx5!3ljawlM534f<(U{ z(Jx5!3lhEAzg?n7n7}{2%Ukv>?2QD!2#p|uqB!RM;rmhqQMb}YRVG;!G9wKoh{16- zx$EYQ>=Zex0Wd7A1nzWj^+x7IIwEi+K4oR2okz;0nSvfD;2TiHU`E3xX*itNlZSmb z;*l()Jhy1cD8qn~OCilp%`3lP&Pu}%qD*6w@F+k(GE;@|Tmp*h@$4DbqJVB$)$nSx z(5oOUIvfr^nAZZ9u-Xhn#s|;T=9M&*2pL$ZP6II>JyLh0s;yIPgh?1t^TZUdm8}Ui zl@m@^Xy!z~GmNieHkUZOnW@JRI=R)mCFTq$!iGl>LT`Ic4?^hYe1{vQy`7rDEdzlh(uWerQDv|>%PknUIyW-x;-R!!3X7l5rZjz?x z5%rwi@3+YTL7y3BckVF5@sSpXwrYTMLU_D|!(L_x-6VjJp1@9`WvNI9;PQEgyo|Zj zumC~%+9-ZWHO1c}@K_Mr3%@>&mKspCl2~u4cI1%O`ugxZdmI*5&uH(|tF$1VbT^X5 zj$+TN4i4Jy?O0=Fwqu$~7#ovHx;Z}Kqw}jC5pNdy;`2k62oX6C(zgCTK1yw zLS0Uag}%)QFV;9|oN~|AJoElKB~qNpez_{DUZT;&H;G#$4-@kkyPYYXcP-1iY{oY^ zcMMrO6|)UBEw_VN)!P*h^ZtU#RhkBa^NC5jj|#SfE&Fyg*tJG;k=k!D95U8LP^khIUL&KuP0r1Vra*6YH>WBsI)ynGz3)ks#dcWa-8^uB$ zOH`N1$|u^91|YoWwZSi$x`~`8*`XUPnv6sqvPd*ppYY-LSRJuR*QXMPFliM0%_5S& zbVTg8=jj7r0D3M?~WRHRpmd3Ls&A( zqmIvOrnzfGMHpgO!HN`$BAEhv#>+@qWW+NFDFFuFcC zm8c<2u7s^LYJK35q*ZWG;sgrtnDPXJHahlatA)l+)m#gi7k?Nyd+pKk2 zhY%CI1v7;e_1_=e5kR?~6xGg%)+R?G2d-GC!vO~R@i zvt9MFs%DdI*BhT!GA+>BKp8#-BNvgFB0qv8mho#~V3_`_j1;mz`q@h8g%@ElWaB9W zzm3VDA3GeR9l27tjyO^y9tS2~-z z5cVgDtXTRt%cI^Z5GUpjEf)9da5YvIb%7xY)4{vKc@o5sod``-;4Z#tuW40c7<$$n zrpkm4tqrm*tSqX%0xDA)n5!novR@&qQw4 zJ)3bMyd#dN6o|>vgfnWH+pvQynC-niR9vb6^eVSO-DJTL7Ihv+xpO`sybuq|EQv*_ zU0wljUdz{7j!5itruL8~s!mq`?#XW0pJ&#eh9jW2C}@=`I5;>mGV%v~m6@4YR8&+| zRaIMC3r*@l&rv^8ZlOs%NQ`^*=+Qr#r|CU)-1j?yd^M_kl8d%s)WF|u{c>$Y6FbKI4ePmX=`8&KG^pLXB?l+~?DjKL+k z%ESjUlIf|tIdS}S+3dK~d^LWaN-@PDCZf!ZUz=n{$Hz$5sg`eOq*Wgll!bX#o~5S7 zo}!nBtktNHO^G@0cD&U}CxZ`-L4-iHC50O}YIU7@Y=TORKCF$GdMQ3|6 z*+t3{->N5e2eo%;DEp|X-?cICPJgx}+DJBVa!WR+%73);<+P2tYR1nq%S;X^uxhE_ z1z-ydEkuwK+=ysQIcf;ba89t>5|^($^L+4>@2`zs`-U5ATMxDmUiACGcyIwz^|C<_ zJhNNmSpEY*-IP^aI2TZ7>2I3nly>M*@Ph1?$3_( z8^+S&wh-672X9!At1dMNGN&J0lzg&8)=mH5u!tZH0jTXZk~g@j39g{wbL44gu>3)I zY)Rh(1W6xLE^$bcv6%nL=y+Qw?532Q1@Vi-FG$Hby)s`}Ce!JFl*kpTDuf(=nY4qV zt0?}9o4F&rmqxzFKDD)7oP;Ez;}Eje`sF$fquyf-B+>@hM`g^8C+*W^iPDuP+$*>% z@wA6=C*Jy8Ps7onQGb0|A{it7Tz@=>Viem6+wfk+G)qq)u7U~Frdhdb+$>pIdpmki zunnv2IR&aTah0G`Lx0k8zd%%yO>ver$xSG z`(~9KV-jnsK$Gle%B6>>_2h4OU*n4*l|?niCW{Z z)z^ssM=sz`Rv6l#`YR(7|0=`Y-jwgVcK@-wjOX=qrQBiHbZc7`_TIHPtbGiD(SuioywB##_T)!qub3-%ov5!@j+2+ zmz|mi==R=jiB2)!)KIy>4ZTJvnDzGUrptU#G%-2-j50ja z+wuG|;nkhdH@3v_ci6jg<)5Bv{jPW15kqe8LSbyb)jM9*ZU?fMX86`x;nA(RnjRg+md%g078wNdralfl-j-*Q&|4LL zt9me#u2!-C+{sEPJM)xZLvlJ9sr*I`NhB^_fqy7504n*FX}m!mP1Rp9}Uz$`kiD*)!q&%{VY5 zRmh~Fjv^LCn?RW`@PZYrncs5pNQq_x9aEeG%SUGZmgijQ;I#CR$7XuF_>jAV7ZOck z30KHON#f)fqT(yw$WU|Qf%{8S-+u_?>Jop6Hd-|sTeF8k1X&S_Fc&^J%i(DGqlbyN z_LTLp*BbFfFpQAiA-m3qEDXW%0>N0Mq74K>@KoJ2s3C5mgbnE;w;=k!9v6FCCw4Jr zr7Y7TS>kij4M2XW&@^40OsvR|TScaNvrOYEqu;Q|)HE8+w*#(!Znq>{8%~+V=(~T& zKxlhgOr}_h?I<(}M>bV@?->#WKBr6e2=~w9?@2avhmIs8zsGLU!FhaE6iO)X14pv= zxC>h#locj56)uIqB!7fg258tg8+>p*H+a~^;PXDQDSM&6!Xs`M+OOd)KR$t03{+fPUu; zf(({q$B1z1Cc&E5@mkT93JCwGE%{p6M(N`#!j5p;u&nxCGhZ3c%U|6d5*wdOfu;zLb#> z!mWLx3-pB|1>1CDk#V8Atw#z?*jiY_V@l+^TfGLWET1wiI0VP`ucO!{ZavqGk(BT| zmbdjW?7#@9OeQ|CZ=a#0WN5BU=dAq=ft5hmQxap}c0Hn0EwOeD!a!nZLD_521fItr zA92wvH<=yAxsGVsh(z#F*~8fY964x?Ik2@{2t0;CKk#PA&l}mmL8cLt9EEMiPaXP& z0n%3cRH#+)ddZkcbU1#32L3_@C-XIt5giF6^(OO;`k$(6F})Z|#zx5keee9h4x)Eu zzU^r+?`#)SO%F+*m8Ie}W*>)_43he{#+BU5uWNo_h{!Mws9%}BxjuZuk1eO~&GR4m zNB_o!_yxCq!L46#>!Ek6zvKHckhI{|FSzv!ZvFq;t^fW^wcyszr}8bh_5bs3{l|Zo zTfgyN?AF5z)~DRzMnxoYP27D}n793eM2}gKpwNeq$wIVo_nG~O}qS=Al ZSluuMAad0sR&KwYM&~pY!~?*({{rW_g`)rf From b1f65653d28c593add0af2cbe0db6f23aa39294f Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Tue, 23 Sep 2025 21:08:13 +0200 Subject: [PATCH 473/697] refactor(loadingIndicator): update todo to implement polar specific loader --- src/plugins/loadingIndicator/types.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/loadingIndicator/types.ts b/src/plugins/loadingIndicator/types.ts index 5059c790c..3dcfc7de9 100644 --- a/src/plugins/loadingIndicator/types.ts +++ b/src/plugins/loadingIndicator/types.ts @@ -15,7 +15,7 @@ export interface LoadingIndicatorOptions extends PluginOptions { * Choose between different loader styles. * * Supported options: - * TODO(dopenguin): Update KernLoader gif to include the text. + * TODO(dopenguin): Add PolarLoader that includes the Logo * * * From 9b1bddb2b38fca991a3424d4ff2b72d7d3130769 Mon Sep 17 00:00:00 2001 From: Dennis Sen Date: Thu, 18 Sep 2025 21:10:04 +0200 Subject: [PATCH 474/697] feat: migrate geolocation plugin --- eslint.config.js | 1 + examples/snowbox/index.js | 22 +- package-lock.json | 8 +- package.json | 2 +- src/components/PolarIconButton.ce.vue | 183 ++++----- src/core/stores/main.ts | 6 +- src/core/types/plugin.ts | 28 ++ src/lib/notifyUser.ts | 6 +- src/lib/passesBoundaryCheck.ts | 87 +++++ src/lib/tooltip.ts | 85 +++++ .../fullscreen/components/FullscreenUI.ce.vue | 8 +- .../geoLocation/components/GeoLocation.ce.vue | 40 ++ .../components/geoLocation.spec.ts | 28 ++ src/plugins/geoLocation/index.ts | 35 ++ src/plugins/geoLocation/locales.ts | 63 ++++ src/plugins/geoLocation/olStyle.ts | 88 +++++ src/plugins/geoLocation/store.spec.ts | 198 ++++++++++ src/plugins/geoLocation/store.ts | 347 ++++++++++++++++++ src/plugins/geoLocation/types.ts | 50 +++ src/plugins/toast/store.ts | 8 +- src/plugins/toast/types.ts | 7 + .../lib/passesBoundaryCheck/CHANGELOG.md | 14 - vue2/packages/lib/passesBoundaryCheck/LICENSE | 287 --------------- .../lib/passesBoundaryCheck/README.md | 3 - .../packages/lib/passesBoundaryCheck/index.ts | 86 ----- .../lib/passesBoundaryCheck/package.json | 25 -- .../lib/passesBoundaryCheck/vite.config.js | 3 - vue2/packages/lib/tooltip/CHANGELOG.md | 5 - vue2/packages/lib/tooltip/LICENSE | 287 --------------- vue2/packages/lib/tooltip/README.md | 19 - vue2/packages/lib/tooltip/index.ts | 63 ---- vue2/packages/lib/tooltip/package.json | 18 - vue2/packages/lib/tooltip/vite.config.js | 3 - .../packages/plugins/GeoLocation/CHANGELOG.md | 40 -- vue2/packages/plugins/GeoLocation/LICENSE | 287 --------------- vue2/packages/plugins/GeoLocation/README.md | 51 --- .../packages/plugins/GeoLocation/package.json | 35 -- .../src/assets/geoLocationMarker.js | 6 - .../src/components/GeoLocation.vue | 56 --- .../GeoLocation/src/components/index.ts | 1 - .../packages/plugins/GeoLocation/src/index.ts | 15 - .../plugins/GeoLocation/src/locales.ts | 54 --- .../plugins/GeoLocation/src/store/actions.ts | 273 -------------- .../GeoLocation/src/store/getInitialState.ts | 11 - .../plugins/GeoLocation/src/store/getters.ts | 60 --- .../plugins/GeoLocation/src/store/index.ts | 20 - .../packages/plugins/GeoLocation/src/types.ts | 26 -- .../GeoLocation/src/utils/positionChanged.ts | 6 - .../GeoLocation/tests/geoLocation.spec.ts | 26 -- .../plugins/GeoLocation/tests/store.spec.ts | 196 ---------- .../plugins/GeoLocation/vite.config.js | 3 - vue2/packages/types/custom/core.ts | 17 - 52 files changed, 1184 insertions(+), 2112 deletions(-) create mode 100644 src/lib/passesBoundaryCheck.ts create mode 100644 src/lib/tooltip.ts create mode 100644 src/plugins/geoLocation/components/GeoLocation.ce.vue create mode 100644 src/plugins/geoLocation/components/geoLocation.spec.ts create mode 100644 src/plugins/geoLocation/index.ts create mode 100644 src/plugins/geoLocation/locales.ts create mode 100644 src/plugins/geoLocation/olStyle.ts create mode 100644 src/plugins/geoLocation/store.spec.ts create mode 100644 src/plugins/geoLocation/store.ts create mode 100644 src/plugins/geoLocation/types.ts delete mode 100644 vue2/packages/lib/passesBoundaryCheck/CHANGELOG.md delete mode 100644 vue2/packages/lib/passesBoundaryCheck/LICENSE delete mode 100644 vue2/packages/lib/passesBoundaryCheck/README.md delete mode 100644 vue2/packages/lib/passesBoundaryCheck/index.ts delete mode 100644 vue2/packages/lib/passesBoundaryCheck/package.json delete mode 100644 vue2/packages/lib/passesBoundaryCheck/vite.config.js delete mode 100644 vue2/packages/lib/tooltip/CHANGELOG.md delete mode 100644 vue2/packages/lib/tooltip/LICENSE delete mode 100644 vue2/packages/lib/tooltip/README.md delete mode 100644 vue2/packages/lib/tooltip/index.ts delete mode 100644 vue2/packages/lib/tooltip/package.json delete mode 100644 vue2/packages/lib/tooltip/vite.config.js delete mode 100644 vue2/packages/plugins/GeoLocation/CHANGELOG.md delete mode 100644 vue2/packages/plugins/GeoLocation/LICENSE delete mode 100644 vue2/packages/plugins/GeoLocation/README.md delete mode 100644 vue2/packages/plugins/GeoLocation/package.json delete mode 100644 vue2/packages/plugins/GeoLocation/src/assets/geoLocationMarker.js delete mode 100644 vue2/packages/plugins/GeoLocation/src/components/GeoLocation.vue delete mode 100644 vue2/packages/plugins/GeoLocation/src/components/index.ts delete mode 100644 vue2/packages/plugins/GeoLocation/src/index.ts delete mode 100644 vue2/packages/plugins/GeoLocation/src/locales.ts delete mode 100644 vue2/packages/plugins/GeoLocation/src/store/actions.ts delete mode 100644 vue2/packages/plugins/GeoLocation/src/store/getInitialState.ts delete mode 100644 vue2/packages/plugins/GeoLocation/src/store/getters.ts delete mode 100644 vue2/packages/plugins/GeoLocation/src/store/index.ts delete mode 100644 vue2/packages/plugins/GeoLocation/src/types.ts delete mode 100644 vue2/packages/plugins/GeoLocation/src/utils/positionChanged.ts delete mode 100644 vue2/packages/plugins/GeoLocation/tests/geoLocation.spec.ts delete mode 100644 vue2/packages/plugins/GeoLocation/tests/store.spec.ts delete mode 100644 vue2/packages/plugins/GeoLocation/vite.config.js diff --git a/eslint.config.js b/eslint.config.js index fe71edac7..0df6f7053 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -20,6 +20,7 @@ const polarConfig = { // POLAR-specific rules 'no-warning-comments': 'warn', + 'no-void': 'off', }, } diff --git a/examples/snowbox/index.js b/examples/snowbox/index.js index 89d2bca89..9d913aaaf 100644 --- a/examples/snowbox/index.js +++ b/examples/snowbox/index.js @@ -1,17 +1,19 @@ import { changeLanguage } from 'i18next' +import EmptyComponent from './EmptyComponent.vue' +import styleJsonUrl from './style.json?url' +import AnotherEmptyComponent from './AnotherEmptyComponent.vue' import pluginToast from '@polar/polar/plugins/toast' import { useToastStore } from '@polar/polar/plugins/toast/store' import pluginFullscreen from '@polar/polar/plugins/fullscreen' +import pluginGeoLocation from '@polar/polar/plugins/geoLocation' import pluginIconMenu from '@polar/polar/plugins/iconMenu' import { addPlugin, createMap, subscribe } from '@polar/polar' -import EmptyComponent from './EmptyComponent.vue' -import styleJsonUrl from './style.json?url' -import AnotherEmptyComponent from './AnotherEmptyComponent.vue' const basemapId = '23420' const basemapGreyId = '23421' const ausgleichsflaechen = '1454' const reports = '6059' +const hamburgBorder = '1693' // boundary layer for pins / geolocalization // eslint-disable-next-line no-unused-vars const dataportTheme = { @@ -199,6 +201,20 @@ addPlugin( }) ) +addPlugin( + pluginGeoLocation({ + checkLocationInitially: false, + keepCentered: false, + renderType: 'independent', + showTooltip: true, + zoomLevel: 7, + // usable when you're in HH or fake your geolocation to HH + // boundaryLayerId: hamburgBorder, + // boundaryOnError: 'strict', + // toast: true, + }) +) + addPlugin( pluginToast({ displayComponent: true, diff --git a/package-lock.json b/package-lock.json index 2b8b7bd6c..91b5b7e98 100644 --- a/package-lock.json +++ b/package-lock.json @@ -57,7 +57,7 @@ "vite-plugin-checker": "^0.10.3", "vite-plugin-commonjs": "^0.10.4", "vite-plugin-dts": "^4.5.4", - "vite-plugin-kern-extra-icons": "^0.2.0", + "vite-plugin-kern-extra-icons": "^0.3.0", "vite-plugin-vue-devtools": "^8.0.1", "vitest": "^3.2.4", "vue": "^3.5.21", @@ -15002,9 +15002,9 @@ "license": "MIT" }, "node_modules/vite-plugin-kern-extra-icons": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/vite-plugin-kern-extra-icons/-/vite-plugin-kern-extra-icons-0.2.0.tgz", - "integrity": "sha512-AI0+Qezuvy4Kprn5LlTbuqFdHclY/N/ZMLS4zGj2TPrhXInyavUg+YTH4Umd6N36KWBL8Ns2l3kPtVEEyK5tgw==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/vite-plugin-kern-extra-icons/-/vite-plugin-kern-extra-icons-0.3.0.tgz", + "integrity": "sha512-JmESLjaNBLmt/crDi1Tu35NUfWfMjJse0r7gVqIW9WhKAZzHzsT98fwg3KYWfkcAOkflED/Bc6utaCmgmt0WIw==", "dev": true, "license": "EUPL-1.2", "dependencies": { diff --git a/package.json b/package.json index 686bafb12..e94056a3a 100644 --- a/package.json +++ b/package.json @@ -122,7 +122,7 @@ "vite-plugin-checker": "^0.10.3", "vite-plugin-commonjs": "^0.10.4", "vite-plugin-dts": "^4.5.4", - "vite-plugin-kern-extra-icons": "^0.2.0", + "vite-plugin-kern-extra-icons": "^0.3.0", "vite-plugin-vue-devtools": "^8.0.1", "vitest": "^3.2.4", "vue": "^3.5.21", diff --git a/src/components/PolarIconButton.ce.vue b/src/components/PolarIconButton.ce.vue index e352d61f4..399b4ce0f 100644 --- a/src/components/PolarIconButton.ce.vue +++ b/src/components/PolarIconButton.ce.vue @@ -1,46 +1,39 @@ diff --git a/src/core/stores/main.ts b/src/core/stores/main.ts index 36334792f..2907413ce 100644 --- a/src/core/stores/main.ts +++ b/src/core/stores/main.ts @@ -1,8 +1,8 @@ -import type { Feature, Map } from 'ol' +import { type Feature, Map } from 'ol' import type { Coordinate } from 'ol/coordinate' import type { Point } from 'ol/geom' import { defineStore } from 'pinia' -import { computed, ref, watch } from 'vue' +import { computed, shallowRef, ref, watch } from 'vue' import type { MapConfiguration, PluginContainer } from '../types' import { SMALL_DISPLAY_HEIGHT, SMALL_DISPLAY_WIDTH } from '../utils/constants' import { addInterceptor } from '../utils/addInterceptor' @@ -14,7 +14,7 @@ export const useMainStore = defineStore('main', () => { }) const language = ref('') const lightElement = ref(null) - const map = ref(null) + const map = shallowRef(new Map()) const plugins = ref([]) const serviceRegister = ref[]>('') const shadowRoot = ref(null) diff --git a/src/core/types/plugin.ts b/src/core/types/plugin.ts index 72ae6f3d1..227c2946c 100644 --- a/src/core/types/plugin.ts +++ b/src/core/types/plugin.ts @@ -12,11 +12,37 @@ import type { useIconMenuStore as IconMenuStore } from '@/plugins/iconMenu/store import type { PluginId as ToastPluginId } from '@/plugins/toast' import type { useToastStore as ToastStore } from '@/plugins/toast/store' +import type { PluginId as GeoLocationPluginId } from '@/plugins/geoLocation' +import type { useGeoLocationStore as GeoLocationStore } from '@/plugins/geoLocation/store' + export interface PluginOptions { displayComponent?: boolean layoutTag?: keyof typeof NineLayoutTag } +export type BoundaryOnError = 'strict' | 'permissive' + +export interface LayerBoundPluginOptions extends PluginOptions { + /** + * Set to check whether something is within the layer's boundaries. + * The layer must contain vectors. This is useful for restricted maps to avoid + * selecting unfit coordinates. + */ + boundaryLayerId?: string + /** + * If the boundary layer check does not work due to loading or configuration + * errors, style `'strict'` will disable the affected feature, and style + * `'permissive'` will act as if no boundaryLayerId was set. + * @defaultValue `'permissive'` + */ + boundaryOnError?: BoundaryOnError + /** + * Whether the user should, in error cases, be informed with a toast. + * @defaultValue `false` + */ + toast?: boolean +} + export type PolarPluginStore< T extends { setupPlugin?: () => void @@ -32,6 +58,7 @@ export type BundledPluginId = | typeof FullscreenPluginId | typeof IconMenuPluginId | typeof ToastPluginId + | typeof GeoLocationPluginId type CheckPlugin< T extends BundledPluginId, @@ -46,6 +73,7 @@ export type BundledPluginStores = | CheckPlugin | CheckPlugin | CheckPlugin + | CheckPlugin /** @internal */ export type ExternalPluginId = `external-${string}` diff --git a/src/lib/notifyUser.ts b/src/lib/notifyUser.ts index 0d7e80951..034aad5a1 100644 --- a/src/lib/notifyUser.ts +++ b/src/lib/notifyUser.ts @@ -1,10 +1,12 @@ import i18next, { type TOptions } from 'i18next' import { useCoreStore } from '@/core/stores/export' +import { type ToastOptions } from '@/plugins/toast' export function notifyUser( severity: 'error' | 'warning' | 'info' | 'success', translationKey: string, - translationContext?: TOptions + translationContext?: TOptions, + toastOptions?: ToastOptions ) { const coreStore = useCoreStore() const toastStore = coreStore.getPluginStore('toast') @@ -12,5 +14,5 @@ export function notifyUser( return } const text = i18next.t(translationKey, translationContext) - toastStore.addToast({ severity, text }) + toastStore.addToast({ severity, text }, toastOptions) } diff --git a/src/lib/passesBoundaryCheck.ts b/src/lib/passesBoundaryCheck.ts new file mode 100644 index 000000000..2514fef58 --- /dev/null +++ b/src/lib/passesBoundaryCheck.ts @@ -0,0 +1,87 @@ +import type { Map } from 'ol' +import type { Coordinate } from 'ol/coordinate' +import { Vector as VectorLayer } from 'ol/layer' +import { Vector as VectorSource } from 'ol/source' + +export const errors = { + undefinedBoundaryLayer: Symbol.for('Boundary Layer undefined'), + undefinedBoundarySource: Symbol.for('Boundary Source undefined'), + sourceNotReady: Symbol.for('Source not ready'), +} as const + +// arbitrarily give up after 10s of stalling (100 * 100ms) +const readinessCheckLimit = 100 +const readinessWaitTime = 100 + +/** + * @param source - source to check for readiness + * @returns Promise that resolves true if source is in 'ready' state with at + * least one feature within time limit; else resolves false. + */ +const isReady = async (source: VectorSource): Promise => { + let readinessChecks = 0 + + while (source.getState() !== 'ready' || source.getFeatures().length === 0) { + if (readinessChecks++ < readinessCheckLimit) { + await new Promise((resolve) => { + setTimeout(resolve, readinessWaitTime) + }) + } else { + return false + } + } + + return true +} + +/** + * @returns Resolves true if coordinate is within boundary, false if outside of + * boundary, and an error symbol if something about the check broke. If no + * boundaryLayerId is set, it always resolves true, think "no boundary exists". + */ +export const passesBoundaryCheck = async ( + map: Map, + boundaryLayerId: string | undefined, + coordinate: Coordinate +): Promise => { + if (typeof boundaryLayerId === 'undefined') { + return Promise.resolve(true) + } + + const boundaryLayer = map + .getLayers() + .getArray() + .find((layer) => layer.get('id') === boundaryLayerId) + + if (!(boundaryLayer instanceof VectorLayer)) { + console.error( + `@polar/polar/lib/passesBoundaryCheck: No layer configured to match boundaryLayerId "${boundaryLayerId}".` + ) + return Promise.resolve(errors.undefinedBoundaryLayer) + } + + const boundaryLayerSource = boundaryLayer.getSource() + + if (!(boundaryLayerSource instanceof VectorSource)) { + console.error( + `@polar/polar/lib/passesBoundaryCheck: Layer with boundaryLayerId "${boundaryLayerId}" missing source.` + ) + return Promise.resolve(errors.undefinedBoundarySource) + } + + const sourceReady = await isReady(boundaryLayerSource) + + if (!sourceReady) { + console.error( + `@polar/polar/lib/passesBoundaryCheck: Layer with boundaryLayerId "${boundaryLayerId}" did not load or is featureless.` + ) + return Promise.resolve(errors.sourceNotReady) + } + + const features = boundaryLayerSource.getFeatures() + return Promise.resolve( + features.some((feature) => + feature.getGeometry()?.intersectsCoordinate(coordinate) + ) + ) +} diff --git a/src/lib/tooltip.ts b/src/lib/tooltip.ts new file mode 100644 index 000000000..25d299b79 --- /dev/null +++ b/src/lib/tooltip.ts @@ -0,0 +1,85 @@ +import i18next, { type TOptions } from 'i18next' + +/** + * The first entry is an HTML element tag, and the second entry is a locale key + * used as (translated) child of that tag. May also include values that are + * not locale keys. Translation will be tried on anything that's given. If a + * third object is present, it's assumed to be translation options. + */ +export type TooltipLocaleKeys = [string, string, TOptions?][] + +export interface GetTooltipParams { + /** Wrapper elements and locale keys to use in the tooltip. */ + localeKeys: TooltipLocaleKeys + /** Inline style string. If none used, default styling is applied. */ + style?: string +} + +export interface Tooltip { + /** Tooltip as a div, bound to inputs. */ + element: HTMLDivElement + /** Unregisters i18next listeners so garbage collection may pick tooltip up when you no longer need it. Usage only required on dynamic div creation. */ + unregister: () => void +} + +const setInnerHtml = + (tooltip: HTMLDivElement, localeKeys: TooltipLocaleKeys) => () => + (tooltip.innerHTML = localeKeys + .map( + ([element, localeKey, options]) => + `<${element}>${i18next.t(localeKey, options)}` + ) + .join('')) + +const defaultStyle = ` + background: rgba(255, 255, 255, 0.8); + padding: 0.2em 0.5em; + border-radius: 4px; + color: #16161d; + box-shadow: 0px 0px 3px 2px rgba(0, 0, 0, 0.5); +` + +/* + * Minimal package that provides a `div` element factory bound to `i18next` + * translations. The element is supposed to be used in `ol/Overlay`, but may be + * used in any context. + * + * Usage example: + * + * ```js + * import { getTooltip } from '@polar/lib-tooltip' + * + * // 'unregister' to drop locale listener after usage of 'element' (div) ends + * const {element, unregister} = getTooltip({ + * // optional inline style string; undefined for default, '' for none + * style: '', + * localeKeys: [ + * // tag/content pairs + * ['h2', 'plugins.myPlugin.header'], + * ['p', 'plugins.myPlugin.body'] + * ], + * }) + * ``` + */ +export const getTooltip = ({ + style = defaultStyle, + localeKeys, +}: GetTooltipParams): Tooltip => { + const element = document.createElement('div') + element.style.cssText = style + + const translate = setInnerHtml(element, localeKeys) + i18next.on('languageChanged', translate) + i18next.store.on('added', translate) + + // initialize + translate() + + return { + element, + unregister: () => { + i18next.off('languageChanges', translate) + i18next.store.off('added', translate) + }, + } +} diff --git a/src/plugins/fullscreen/components/FullscreenUI.ce.vue b/src/plugins/fullscreen/components/FullscreenUI.ce.vue index 300e2b172..a4ba4da02 100644 --- a/src/plugins/fullscreen/components/FullscreenUI.ce.vue +++ b/src/plugins/fullscreen/components/FullscreenUI.ce.vue @@ -1,9 +1,7 @@ diff --git a/src/plugins/iconMenu/components/StandardMenuList.ce.vue b/src/plugins/iconMenu/components/StandardMenuList.ce.vue new file mode 100644 index 000000000..8ff564b77 --- /dev/null +++ b/src/plugins/iconMenu/components/StandardMenuList.ce.vue @@ -0,0 +1,162 @@ + + + + + From f057f0c90f5c5072f67aa3cc517172be2e84afeb Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Thu, 25 Sep 2025 20:10:52 +0200 Subject: [PATCH 480/697] refactor(iconMenu): remove file ending --- src/plugins/iconMenu/components/StandardMenuList.ce.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/iconMenu/components/StandardMenuList.ce.vue b/src/plugins/iconMenu/components/StandardMenuList.ce.vue index 8ff564b77..44d4a5ee4 100644 --- a/src/plugins/iconMenu/components/StandardMenuList.ce.vue +++ b/src/plugins/iconMenu/components/StandardMenuList.ce.vue @@ -44,7 +44,7 @@ import { import { useIconMenuStore } from '../store' import type { Menu } from '../types' import PolarIconButton from '@/components/PolarIconButton.ce.vue' -import { useCoreStore } from '@/core/stores/export.ts' +import { useCoreStore } from '@/core/stores/export' withDefaults( defineProps<{ From 7d02557d224ebf272849fbbdb186b00e837d5ccc Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Thu, 25 Sep 2025 20:11:07 +0200 Subject: [PATCH 481/697] refactor(iconMenu): re-add type specification --- src/plugins/iconMenu/components/StandardMenuList.ce.vue | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/plugins/iconMenu/components/StandardMenuList.ce.vue b/src/plugins/iconMenu/components/StandardMenuList.ce.vue index 44d4a5ee4..95a1371b5 100644 --- a/src/plugins/iconMenu/components/StandardMenuList.ce.vue +++ b/src/plugins/iconMenu/components/StandardMenuList.ce.vue @@ -33,6 +33,7 @@ + + diff --git a/examples/snowbox/index.js b/examples/snowbox/index.js index 09604f091..06104ca08 100644 --- a/examples/snowbox/index.js +++ b/examples/snowbox/index.js @@ -8,6 +8,7 @@ import EmptyComponent from './EmptyComponent.vue' import styleJsonUrl from './style.json?url' import AnotherEmptyComponent from './AnotherEmptyComponent.vue' import YetAnotherEmptyComponent from './YetAnotherEmptyComponent.vue' +import GeoLocationMockCe from './GeoLocationMock.ce.vue' const basemapId = '23420' const basemapGreyId = '23421' @@ -175,17 +176,26 @@ addPlugin( displayComponent: true, layoutTag: 'TOP_RIGHT', initiallyOpen: 'kewl', + labeledMenus: [ + { + plugin: { + component: YetAnotherEmptyComponent, + id: 'awesome', + locales: [], + }, + icon: 'kern-icon--near-me', + hint: 'Something awesome', + }, + ], menus: [ // TODO: Delete the mock plugins including the components once the correct plugins have been implemented [ { plugin: { - component: YetAnotherEmptyComponent, - id: 'awesome', + component: GeoLocationMockCe, + id: 'geoLocationMock', locales: [], }, - icon: 'kern-icon--near-me', - hint: 'Something awesome', }, ], [ diff --git a/src/plugins/iconMenu/components/IconMenu.ce.vue b/src/plugins/iconMenu/components/IconMenu.ce.vue index fffffea22..554fbbbfe 100644 --- a/src/plugins/iconMenu/components/IconMenu.ce.vue +++ b/src/plugins/iconMenu/components/IconMenu.ce.vue @@ -7,7 +7,7 @@ import { storeToRefs } from 'pinia' import NineRegionsMenu from './NineRegionsMenu.ce.vue' import StandardMenu from './StandardMenu.ce.vue' -import { useCoreStore } from '@/core/stores/export.ts' +import { useCoreStore } from '@/core/stores/export' const { layout } = storeToRefs(useCoreStore()) diff --git a/src/plugins/iconMenu/components/NineRegionsButton.ce.vue b/src/plugins/iconMenu/components/NineRegionsButton.ce.vue index 29a64256e..e3798cbfa 100644 --- a/src/plugins/iconMenu/components/NineRegionsButton.ce.vue +++ b/src/plugins/iconMenu/components/NineRegionsButton.ce.vue @@ -12,8 +12,8 @@ + + diff --git a/src/plugins/iconMenu/components/StandardMenu.ce.vue b/src/plugins/iconMenu/components/StandardMenu.ce.vue index c516b58de..432300d48 100644 --- a/src/plugins/iconMenu/components/StandardMenu.ce.vue +++ b/src/plugins/iconMenu/components/StandardMenu.ce.vue @@ -7,12 +7,14 @@ :base-index="outerIndex" /> + + + From ea5c7a2a8a03876b693121368a00a6eda016380f Mon Sep 17 00:00:00 2001 From: Hendrik Oenings Date: Tue, 30 Sep 2025 14:33:21 +0200 Subject: [PATCH 497/697] test(iceberg): add language switcher --- eslint.config.js | 6 ++++ examples/iceberg/App.vue | 8 ++++++ examples/iceberg/components/IcebergMap.vue | 33 ++++++++++++++++++++-- src/core/components/PolarContainer.ce.vue | 9 ++++++ src/core/index.ts | 23 ++++++++++++--- src/core/stores/export.ts | 13 +++++++++ 6 files changed, 86 insertions(+), 6 deletions(-) diff --git a/eslint.config.js b/eslint.config.js index fe71edac7..4f0e3f989 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -128,6 +128,12 @@ export default defineConfig([ polarVueConfig, ], }, + { + files: ['**/examples/**/*.vue'], + rules: { + 'vue/enforce-style-attribute': ['error', { allow: ['scoped', 'module'] }], + }, + }, { files: ['**/*.json'], ignores: ['package-lock.json'], diff --git a/examples/iceberg/App.vue b/examples/iceberg/App.vue index 012a6f89f..c7edac1ec 100644 --- a/examples/iceberg/App.vue +++ b/examples/iceberg/App.vue @@ -43,6 +43,7 @@ diff --git a/examples/iceberg/components/IcebergMap.vue b/examples/iceberg/components/IcebergMap.vue index f8c7482e8..c327a3678 100644 --- a/examples/iceberg/components/IcebergMap.vue +++ b/examples/iceberg/components/IcebergMap.vue @@ -1,4 +1,12 @@ diff --git a/src/plugins/footer/index.ts b/src/plugins/footer/index.ts new file mode 100644 index 000000000..7f324fc18 --- /dev/null +++ b/src/plugins/footer/index.ts @@ -0,0 +1,33 @@ +/* eslint-disable tsdoc/syntax */ +/** + * @module \@polar/polar/plugins/footer + */ +/* eslint-enable tsdoc/syntax */ + +import component from './components/PolarFooter.ce.vue' +import locales from './locales' +import { useFooterStore } from './store' +import { PluginId, type FooterPluginOptions } from './types' +import type { PluginContainer, PolarPluginStore } from '@/core' + +/** + * Creates a plugin which adds the possibility to display various content as a + * footer at the bottom of the map. + * + * Note that a link to the POLAR repository will always be displayed. + * + * @returns Plugin for use with {@link addPlugin}. + */ +export default function pluginFooter( + options: FooterPluginOptions +): PluginContainer { + return { + id: PluginId, + component, + locales, + storeModule: useFooterStore as PolarPluginStore, + options, + } +} + +export * from './types' diff --git a/src/plugins/footer/locales.ts b/src/plugins/footer/locales.ts new file mode 100644 index 000000000..18b8f973e --- /dev/null +++ b/src/plugins/footer/locales.ts @@ -0,0 +1,28 @@ +import type { Locale } from '@/core' + +/* eslint-disable tsdoc/syntax */ +/** + * This is the documentation for the locales keys in the footer plugin. + * These locales are *NOT* exported, but documented only. + * + * @module locales/plugins/footer + */ +/* eslint-enable tsdoc/syntax */ + +export const resourcesDe = {} as const + +export const resourcesEn = {} as const + +// first type will be used as fallback language +const locales: Locale[] = [ + { + type: 'de', + resources: resourcesDe, + }, + { + type: 'en', + resources: resourcesEn, + }, +] + +export default locales diff --git a/src/plugins/footer/store.ts b/src/plugins/footer/store.ts new file mode 100644 index 000000000..1f5eeabd8 --- /dev/null +++ b/src/plugins/footer/store.ts @@ -0,0 +1,30 @@ +/* eslint-disable tsdoc/syntax */ +/** + * @module \@polar/polar/plugins/footer/store + */ +/* eslint-enable tsdoc/syntax */ + +import { acceptHMRUpdate, defineStore } from 'pinia' + +/* eslint-disable tsdoc/syntax */ +/** + * @function + * + * Plugin store for the footer. + */ +/* eslint-enable tsdoc/syntax */ +export const useFooterStore = defineStore('plugins/footer', () => { + function setupPlugin() {} + function teardownPlugin() {} + return { + /** @internal */ + setupPlugin, + + /** @internal */ + teardownPlugin, + } +}) + +if (import.meta.hot) { + import.meta.hot.accept(acceptHMRUpdate(useFooterStore, import.meta.hot)) +} diff --git a/src/plugins/footer/types.ts b/src/plugins/footer/types.ts new file mode 100644 index 000000000..7c0abb4c9 --- /dev/null +++ b/src/plugins/footer/types.ts @@ -0,0 +1,8 @@ +import type { PluginOptions } from '@/core' + +export const PluginId = 'footer' + +/** + * Plugin options for footer plugin. + */ +export interface FooterPluginOptions extends PluginOptions {} From 1b375b1d61074e86c5de9089398d229ca1c02a71 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Mon, 24 Nov 2025 17:33:54 +0100 Subject: [PATCH 645/697] feat(footer): add required configuration parameter --- src/plugins/footer/types.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/plugins/footer/types.ts b/src/plugins/footer/types.ts index 7c0abb4c9..d190aa118 100644 --- a/src/plugins/footer/types.ts +++ b/src/plugins/footer/types.ts @@ -1,8 +1,13 @@ -import type { PluginOptions } from '@/core' +import type { PluginContainer, PluginOptions } from '@/core' export const PluginId = 'footer' /** * Plugin options for footer plugin. */ -export interface FooterPluginOptions extends PluginOptions {} +export interface FooterPluginOptions extends PluginOptions { + /** + * Plugins that are going to be directly rendered as part of the footer. + */ + entries: PluginContainer[] +} From 812d4d0a7dd09e6327b174f609986d79f3680f33 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Mon, 24 Nov 2025 17:37:10 +0100 Subject: [PATCH 646/697] feat(footer): add footer to MapConfiguration --- src/core/types/main.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/core/types/main.ts b/src/core/types/main.ts index f57c449a9..89fe6cf80 100644 --- a/src/core/types/main.ts +++ b/src/core/types/main.ts @@ -4,6 +4,7 @@ import type { MarkerConfiguration } from './marker' import type { LayerConfiguration } from './layer' import type { PolarTheme } from './theme' import type { LocaleOverride } from './locales' +import type { FooterPluginOptions } from '@/plugins/footer' import type { FullscreenPluginOptions } from '@/plugins/fullscreen' import type { IconMenuPluginOptions } from '@/plugins/iconMenu' import type { ToastPluginOptions } from '@/plugins/toast' @@ -288,6 +289,11 @@ export interface MapConfiguration extends MasterportalApiConfiguration { // TODO: Generate this section via types/plugin.ts /* eslint-disable perfectionist/sort-interfaces */ + /** + * Configuration for footer plugin. + */ + footer?: FooterPluginOptions + /** * Configuration for fullscreen plugin. */ From 66f48afd8e7ed0456e0869383c0a8d1cbf2e1a29 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Mon, 24 Nov 2025 17:58:23 +0100 Subject: [PATCH 647/697] feat(footer): add entries including assignment on setup --- src/plugins/footer/store.ts | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/plugins/footer/store.ts b/src/plugins/footer/store.ts index 1f5eeabd8..3cd835edc 100644 --- a/src/plugins/footer/store.ts +++ b/src/plugins/footer/store.ts @@ -5,6 +5,9 @@ /* eslint-enable tsdoc/syntax */ import { acceptHMRUpdate, defineStore } from 'pinia' +import { ref } from 'vue' +import type { PluginContainer } from '@/core' +import { useCoreStore } from '@/core/stores/export' /* eslint-disable tsdoc/syntax */ /** @@ -14,9 +17,23 @@ import { acceptHMRUpdate, defineStore } from 'pinia' */ /* eslint-enable tsdoc/syntax */ export const useFooterStore = defineStore('plugins/footer', () => { - function setupPlugin() {} + const coreStore = useCoreStore() + + const entries = ref([]) + + function setupPlugin() { + entries.value = (coreStore.configuration.footer?.entries || []).filter( + ({ id }) => { + const display = coreStore.configuration[id]?.displayComponent + return typeof display === 'boolean' ? display : true + } + ) + } function teardownPlugin() {} return { + /** @internal */ + entries, + /** @internal */ setupPlugin, From 15e5a32c87d084f719c77d2910b3a110d2c10f95 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Tue, 25 Nov 2025 14:04:49 +0100 Subject: [PATCH 648/697] fix: update packages that have security vulnerabilities --- package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3dc668730..11f07e8c6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8332,9 +8332,9 @@ "license": "ISC" }, "node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", "dev": true, "license": "ISC", "dependencies": { @@ -9599,9 +9599,9 @@ "license": "MIT" }, "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dev": true, "license": "MIT", "dependencies": { From 9ef5a77c89b1b3f94a73ab851838fd8eb8b8300a Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Tue, 25 Nov 2025 15:00:11 +0100 Subject: [PATCH 649/697] refactor: update outdated packages --- package-lock.json | 2003 +++++++++++++++++++++++---------------------- 1 file changed, 1010 insertions(+), 993 deletions(-) diff --git a/package-lock.json b/package-lock.json index 11f07e8c6..8f82ad09e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -68,6 +68,13 @@ "npm": "^10.9.3" } }, + "node_modules/@acemir/cssom": { + "version": "0.9.24", + "resolved": "https://registry.npmjs.org/@acemir/cssom/-/cssom-0.9.24.tgz", + "integrity": "sha512-5YjgMmAiT2rjJZU7XK1SNI7iqTy92DpaYVgG6x63FxkJ11UpYfLndHJATtinWJClAXiOlW9XWaUyAQf8pMrQPg==", + "dev": true, + "license": "MIT" + }, "node_modules/@actions/github": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/@actions/github/-/github-6.0.1.tgz", @@ -110,9 +117,9 @@ } }, "node_modules/@asamuzakjp/css-color": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-4.0.5.tgz", - "integrity": "sha512-lMrXidNhPGsDjytDy11Vwlb6OIGrT3CmLg3VWNFyWkLWtijKl7xjvForlh8vuj0SHGjgl4qZEQzUmYTeQA2JFQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-4.1.0.tgz", + "integrity": "sha512-9xiBAtLn4aNsa4mDnpovJvBn72tNEIACyvlqaNJ+ADemR+yeMJWnBudOi2qGDviJa7SwcDOU/TRh5dnET7qk0w==", "dev": true, "license": "MIT", "dependencies": { @@ -120,23 +127,13 @@ "@csstools/css-color-parser": "^3.1.0", "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4", - "lru-cache": "^11.2.1" - } - }, - "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": { - "version": "11.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz", - "integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==", - "dev": true, - "license": "ISC", - "engines": { - "node": "20 || >=22" + "lru-cache": "^11.2.2" } }, "node_modules/@asamuzakjp/dom-selector": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-6.7.2.tgz", - "integrity": "sha512-ccKogJI+0aiDhOahdjANIc9SDixSud1gbwdVrhn7kMopAtLXqsz9MKmQQtIl6Y5aC2IYq+j4dz/oedL2AVMmVQ==", + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-6.7.4.tgz", + "integrity": "sha512-buQDjkm+wDPXd6c13534URWZqbz0RP5PAhXZ+LIoa5LgwInT9HVJvGIJivg75vi8I13CxDGdTnz+aY5YUJlIAA==", "dev": true, "license": "MIT", "dependencies": { @@ -147,16 +144,6 @@ "lru-cache": "^11.2.2" } }, - "node_modules/@asamuzakjp/dom-selector/node_modules/lru-cache": { - "version": "11.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz", - "integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==", - "dev": true, - "license": "ISC", - "engines": { - "node": "20 || >=22" - } - }, "node_modules/@asamuzakjp/nwsapi": { "version": "2.3.9", "resolved": "https://registry.npmjs.org/@asamuzakjp/nwsapi/-/nwsapi-2.3.9.tgz", @@ -187,9 +174,9 @@ "license": "MIT" }, "node_modules/@babel/compat-data": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.4.tgz", - "integrity": "sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", + "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", "dev": true, "license": "MIT", "engines": { @@ -197,21 +184,21 @@ } }, "node_modules/@babel/core": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.4.tgz", - "integrity": "sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", + "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", + "@babel/generator": "^7.28.5", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-module-transforms": "^7.28.3", "@babel/helpers": "^7.28.4", - "@babel/parser": "^7.28.4", + "@babel/parser": "^7.28.5", "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.4", - "@babel/types": "^7.28.4", + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", @@ -238,14 +225,14 @@ } }, "node_modules/@babel/generator": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", - "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", + "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.28.3", - "@babel/types": "^7.28.2", + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" @@ -305,18 +292,18 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.3.tgz", - "integrity": "sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.5.tgz", + "integrity": "sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", - "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-member-expression-to-functions": "^7.28.5", "@babel/helper-optimise-call-expression": "^7.27.1", "@babel/helper-replace-supers": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", - "@babel/traverse": "^7.28.3", + "@babel/traverse": "^7.28.5", "semver": "^6.3.1" }, "engines": { @@ -347,14 +334,14 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz", - "integrity": "sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz", + "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -458,9 +445,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", "dev": true, "license": "MIT", "engines": { @@ -492,13 +479,13 @@ } }, "node_modules/@babel/parser": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.4.tgz", - "integrity": "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.28.4" + "@babel/types": "^7.28.5" }, "bin": { "parser": "bin/babel-parser.js" @@ -603,14 +590,14 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.0.tgz", - "integrity": "sha512-4AEiDEBPIZvLQaWlc9liCavE0xRM0dNca41WtBeM3jgFptfUOSG9z0uteLhq6+3rq+WB6jIvUwKDTpXEHPJ2Vg==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.5.tgz", + "integrity": "sha512-x2Qa+v/CuEoX7Dr31iAfr0IhInrVOWZU/2vJMJ00FOR/2nM0BcBEclpaf9sWCDc+v5e9dMrhSH8/atq/kX7+bA==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", - "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.28.5", "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", "@babel/plugin-syntax-typescript": "^7.27.1" @@ -648,18 +635,18 @@ } }, "node_modules/@babel/traverse": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.4.tgz", - "integrity": "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", + "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", + "@babel/generator": "^7.28.5", "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.4", + "@babel/parser": "^7.28.5", "@babel/template": "^7.27.2", - "@babel/types": "^7.28.4", + "@babel/types": "^7.28.5", "debug": "^4.3.1" }, "engines": { @@ -667,14 +654,14 @@ } }, "node_modules/@babel/types": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.4.tgz", - "integrity": "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1" + "@babel/helper-validator-identifier": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -731,14 +718,14 @@ "peer": true }, "node_modules/@cesium/widgets": { - "version": "13.2.1", - "resolved": "https://registry.npmjs.org/@cesium/widgets/-/widgets-13.2.1.tgz", - "integrity": "sha512-VwJvw4UmEyK9slrDUImVcz3GFs5FDITH21BOiTVMSWuSsoqVDtMV0vTsoggFpIIqdYj6usHZjKuDnD9BT3vZAQ==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/@cesium/widgets/-/widgets-14.0.0.tgz", + "integrity": "sha512-XjYHO2nBPJ0I6qZTTOZ7RnM0OUWgWxtwgc6QCQnOUifR98VEZfDZjQywIlt3nhIXTTcc8EaYhfYsym73n169zQ==", "dev": true, "license": "Apache-2.0", "peer": true, "dependencies": { - "@cesium/engine": "^21.0.1", + "@cesium/engine": "^22.0.0", "nosleep.js": "^0.12.0" }, "engines": { @@ -746,9 +733,9 @@ } }, "node_modules/@cesium/widgets/node_modules/@cesium/engine": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/@cesium/engine/-/engine-21.0.1.tgz", - "integrity": "sha512-V4MEHOcYMcg+zCxrPjPAVpUyJxmIw6K9qPz5Fd2fnYPoMSPV7FJsiZYoFns03yoPHOPIeqnXQNspZKLX5Xzgfw==", + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/@cesium/engine/-/engine-22.0.0.tgz", + "integrity": "sha512-7hYwgzu5MYD7TryiZoXz6EvNk6YaBgT1y10L8iHQcKwmv6EPone46C8YGBerYb3uUHR21qmbmDWMSN7xGpBUiw==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -1172,9 +1159,9 @@ } }, "node_modules/@csstools/css-syntax-patches-for-csstree": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.0.14.tgz", - "integrity": "sha512-zSlIxa20WvMojjpCSy8WrNpcZ61RqfTfX3XTaOeVlGJrt/8HF3YbzgFZa01yTbT4GWQLwfTcC3EB8i3XnB647Q==", + "version": "1.0.17", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.0.17.tgz", + "integrity": "sha512-LCC++2h8pLUSPY+EsZmrrJ1EOUu+5iClpEiDhhdw3zRJpPbABML/N5lmRuBHjxtKm9VnRcsUzioyD0sekFMF0A==", "dev": true, "funding": [ { @@ -1189,9 +1176,6 @@ "license": "MIT-0", "engines": { "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" } }, "node_modules/@csstools/css-tokenizer": { @@ -1215,18 +1199,18 @@ } }, "node_modules/@dataport/eslint-config-geodev": { - "version": "1.0.0-alpha.1", - "resolved": "https://registry.npmjs.org/@dataport/eslint-config-geodev/-/eslint-config-geodev-1.0.0-alpha.1.tgz", - "integrity": "sha512-pRKDjYKjpZ5MkuCrLx43kJDU2YKMRsLo7rlK4Pkj7OzHwsI1zh1qOE7EmfEY8MzkB6qF5iBm8JJF67qwIaxn6w==", + "version": "1.0.0-alpha.2", + "resolved": "https://registry.npmjs.org/@dataport/eslint-config-geodev/-/eslint-config-geodev-1.0.0-alpha.2.tgz", + "integrity": "sha512-kNUJjfI11RI5nd0a1e9CjnRGwn8U1AXspGunAJnYBdmeNJYJx5QVI1gFHdSUMAqCMANJ53Yr4n2NrROY41N+Nw==", "dev": true, "license": "EUPL-1.2", "dependencies": { "@eslint/js": "^9.25.1", - "@eslint/json": "^0.13.1", + "@eslint/json": "^0.14.0", "@eslint/markdown": "^7.1.0", "@html-eslint/eslint-plugin": "^0.47.0", "@typescript-eslint/parser": "^8.34.1", - "eslint-plugin-tsdoc": "^0.4.0", + "eslint-plugin-tsdoc": "^0.5.0", "eslint-plugin-vue": "^10.0.0", "eslint-plugin-vue-pug": "^1.0.0-alpha.3", "globals": "^16.0.0", @@ -1239,9 +1223,9 @@ } }, "node_modules/@emnapi/core": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.6.0.tgz", - "integrity": "sha512-zq/ay+9fNIJJtJiZxdTnXS20PllcYMX3OE23ESc4HK/bdYu3cOWYVhsOhVnXALfU/uqJIxn5NBPd9z4v+SfoSg==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.7.1.tgz", + "integrity": "sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg==", "dev": true, "license": "MIT", "optional": true, @@ -1251,9 +1235,9 @@ } }, "node_modules/@emnapi/runtime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.6.0.tgz", - "integrity": "sha512-obtUmAHTMjll499P+D9A3axeJFlhdjOWdKUNs/U6QIGT7V5RjcUW1xToAzjvmgTSQhDbYn/NwfTRoJcQ2rNBxA==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.7.1.tgz", + "integrity": "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==", "dev": true, "license": "MIT", "optional": true, @@ -1280,9 +1264,9 @@ "license": "MIT" }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.11.tgz", - "integrity": "sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", + "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", "cpu": [ "ppc64" ], @@ -1297,9 +1281,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.11.tgz", - "integrity": "sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", + "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", "cpu": [ "arm" ], @@ -1314,9 +1298,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.11.tgz", - "integrity": "sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", + "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", "cpu": [ "arm64" ], @@ -1331,9 +1315,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.11.tgz", - "integrity": "sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", + "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", "cpu": [ "x64" ], @@ -1348,9 +1332,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.11.tgz", - "integrity": "sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", + "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", "cpu": [ "arm64" ], @@ -1365,9 +1349,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.11.tgz", - "integrity": "sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", + "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", "cpu": [ "x64" ], @@ -1382,9 +1366,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.11.tgz", - "integrity": "sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", + "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", "cpu": [ "arm64" ], @@ -1399,9 +1383,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.11.tgz", - "integrity": "sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", + "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", "cpu": [ "x64" ], @@ -1416,9 +1400,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.11.tgz", - "integrity": "sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", + "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", "cpu": [ "arm" ], @@ -1433,9 +1417,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.11.tgz", - "integrity": "sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", + "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", "cpu": [ "arm64" ], @@ -1450,9 +1434,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.11.tgz", - "integrity": "sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", + "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", "cpu": [ "ia32" ], @@ -1467,9 +1451,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.11.tgz", - "integrity": "sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", + "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", "cpu": [ "loong64" ], @@ -1484,9 +1468,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.11.tgz", - "integrity": "sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", + "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", "cpu": [ "mips64el" ], @@ -1501,9 +1485,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.11.tgz", - "integrity": "sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", + "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", "cpu": [ "ppc64" ], @@ -1518,9 +1502,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.11.tgz", - "integrity": "sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", + "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", "cpu": [ "riscv64" ], @@ -1535,9 +1519,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.11.tgz", - "integrity": "sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", + "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", "cpu": [ "s390x" ], @@ -1552,9 +1536,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.11.tgz", - "integrity": "sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", + "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", "cpu": [ "x64" ], @@ -1569,9 +1553,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.11.tgz", - "integrity": "sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", + "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", "cpu": [ "arm64" ], @@ -1586,9 +1570,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.11.tgz", - "integrity": "sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", + "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", "cpu": [ "x64" ], @@ -1603,9 +1587,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.11.tgz", - "integrity": "sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", + "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", "cpu": [ "arm64" ], @@ -1620,9 +1604,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.11.tgz", - "integrity": "sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", + "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", "cpu": [ "x64" ], @@ -1637,9 +1621,9 @@ } }, "node_modules/@esbuild/openharmony-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.11.tgz", - "integrity": "sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", + "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", "cpu": [ "arm64" ], @@ -1654,9 +1638,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.11.tgz", - "integrity": "sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", + "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", "cpu": [ "x64" ], @@ -1671,9 +1655,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.11.tgz", - "integrity": "sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", + "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", "cpu": [ "arm64" ], @@ -1688,9 +1672,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.11.tgz", - "integrity": "sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", + "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", "cpu": [ "ia32" ], @@ -1705,9 +1689,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.11.tgz", - "integrity": "sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", + "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", "cpu": [ "x64" ], @@ -1754,9 +1738,9 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", "dev": true, "license": "MIT", "engines": { @@ -1803,35 +1787,22 @@ } }, "node_modules/@eslint/config-helpers": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.1.tgz", - "integrity": "sha512-csZAzkNhsgwb0I/UAV6/RGFTbiakPCf0ZrGmrIxQpYvGZ00PhTkSnyKNolphgIvmnJeGw6rcGVEXfTzUnFuEvw==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.16.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/config-helpers/node_modules/@eslint/core": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.16.0.tgz", - "integrity": "sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.15" + "@eslint/core": "^0.17.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@eslint/core": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.2.tgz", - "integrity": "sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==", + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -1927,9 +1898,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.38.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.38.0.tgz", - "integrity": "sha512-UZ1VpFvXf9J06YG9xQBdnzU+kthors6KjhMAl6f4gH4usHyh31rUf2DLGInT8RFYIReYXNSydgPY0V2LuWgl7A==", + "version": "9.39.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.1.tgz", + "integrity": "sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==", "dev": true, "license": "MIT", "engines": { @@ -1940,15 +1911,15 @@ } }, "node_modules/@eslint/json": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/@eslint/json/-/json-0.13.2.tgz", - "integrity": "sha512-yWLyRE18rHgHXhWigRpiyv1LDPkvWtC6oa7QHXW7YdP6gosJoq7BiLZW2yCs9U7zN7X4U3ZeOJjepA10XAOIMw==", + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@eslint/json/-/json-0.14.0.tgz", + "integrity": "sha512-rvR/EZtvUG3p9uqrSmcDJPYSH7atmWr0RnFWN6m917MAPx82+zQgPUmDu0whPFG6XTyM0vB/hR6c1Q63OaYtCQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.15.2", - "@eslint/plugin-kit": "^0.3.5", - "@humanwhocodes/momoa": "^3.3.9", + "@eslint/core": "^0.17.0", + "@eslint/plugin-kit": "^0.4.1", + "@humanwhocodes/momoa": "^3.3.10", "natural-compare": "^1.4.0" }, "engines": { @@ -1956,17 +1927,17 @@ } }, "node_modules/@eslint/markdown": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@eslint/markdown/-/markdown-7.4.1.tgz", - "integrity": "sha512-fhcQcylVqgb7GLPr2+6hlDQXK4J3d/fPY6qzk9/i7IYtQkIr15NKI5Zg39Dv2cV/bn5J0Znm69rmu9vJI/7Tlw==", + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/@eslint/markdown/-/markdown-7.5.1.tgz", + "integrity": "sha512-R8uZemG9dKTbru/DQRPblbJyXpObwKzo8rv1KYGGuPUPtjM4LXBYM9q5CIZAComzZupws3tWbDwam5AFpPLyJQ==", "dev": true, "license": "MIT", "workspaces": [ "examples/*" ], "dependencies": { - "@eslint/core": "^0.16.0", - "@eslint/plugin-kit": "^0.4.0", + "@eslint/core": "^0.17.0", + "@eslint/plugin-kit": "^0.4.1", "github-slugger": "^2.0.0", "mdast-util-from-markdown": "^2.0.2", "mdast-util-frontmatter": "^2.0.1", @@ -1979,33 +1950,6 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@eslint/markdown/node_modules/@eslint/core": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.16.0.tgz", - "integrity": "sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/markdown/node_modules/@eslint/plugin-kit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.0.tgz", - "integrity": "sha512-sB5uyeq+dwCWyPi31B2gQlVlo+j5brPlWx4yZBrEaRo/nhdDE8Xke1gsGgtiBdaBTxuTkceLVuVt/pclrasb0A==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/core": "^0.16.0", - "levn": "^0.4.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, "node_modules/@eslint/object-schema": { "version": "2.1.7", "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", @@ -2017,13 +1961,13 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.5.tgz", - "integrity": "sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.15.2", + "@eslint/core": "^0.17.0", "levn": "^0.4.1" }, "engines": { @@ -2041,31 +1985,31 @@ } }, "node_modules/@gerrit0/mini-shiki": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/@gerrit0/mini-shiki/-/mini-shiki-3.13.1.tgz", - "integrity": "sha512-fDWM5QQc70jwBIt/WYMybdyXdyBmoJe7r1hpM+V/bHnyla79sygVDK2/LlVxIPc4n5FA3B5Wzt7AQH2+psNphg==", + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/@gerrit0/mini-shiki/-/mini-shiki-3.15.0.tgz", + "integrity": "sha512-L5IHdZIDa4bG4yJaOzfasOH/o22MCesY0mx+n6VATbaiCtMeR59pdRqYk4bEiQkIHfxsHPNgdi7VJlZb2FhdMQ==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/engine-oniguruma": "^3.13.0", - "@shikijs/langs": "^3.13.0", - "@shikijs/themes": "^3.13.0", - "@shikijs/types": "^3.13.0", + "@shikijs/engine-oniguruma": "^3.15.0", + "@shikijs/langs": "^3.15.0", + "@shikijs/themes": "^3.15.0", + "@shikijs/types": "^3.15.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "node_modules/@html-eslint/eslint-plugin": { - "version": "0.47.0", - "resolved": "https://registry.npmjs.org/@html-eslint/eslint-plugin/-/eslint-plugin-0.47.0.tgz", - "integrity": "sha512-eZWk+qVDwYBs7HWDEo4WyprseqbUGyyCw/+sk4/C+0gQ8e4PsaeMPeKyttUwtrqkLBBh2YoGHAwrQUbwG7m2Fw==", + "version": "0.47.1", + "resolved": "https://registry.npmjs.org/@html-eslint/eslint-plugin/-/eslint-plugin-0.47.1.tgz", + "integrity": "sha512-q5kkM2SxI2GGhHeWaMTw3XwaZdeU7D3s8FWPVfqnsgdQwHemCjoPTx35svmVfz4bJRd2fVoHAMQcEJmAbcFJlw==", "dev": true, "license": "MIT", "dependencies": { "@eslint/plugin-kit": "^0.3.1", - "@html-eslint/parser": "^0.47.0", - "@html-eslint/template-parser": "^0.47.0", - "@html-eslint/template-syntax-parser": "^0.47.0", - "@html-eslint/types": "^0.47.0" + "@html-eslint/parser": "^0.47.1", + "@html-eslint/template-parser": "^0.47.1", + "@html-eslint/template-syntax-parser": "^0.47.1", + "@html-eslint/types": "^0.47.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2074,48 +2018,75 @@ "eslint": "^8.0.0 || ^9.0.0" } }, + "node_modules/@html-eslint/eslint-plugin/node_modules/@eslint/core": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.2.tgz", + "integrity": "sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@html-eslint/eslint-plugin/node_modules/@eslint/plugin-kit": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.5.tgz", + "integrity": "sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.15.2", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@html-eslint/parser": { - "version": "0.47.0", - "resolved": "https://registry.npmjs.org/@html-eslint/parser/-/parser-0.47.0.tgz", - "integrity": "sha512-ZFlO671ia/grNUAHOf05xcfRp7wdBIV6aNe5n83YmhxzLx/tmg2Idc5k6iyFnebOe56NhcfzqV1VASnxcS/7rA==", + "version": "0.47.1", + "resolved": "https://registry.npmjs.org/@html-eslint/parser/-/parser-0.47.1.tgz", + "integrity": "sha512-fs/Wb1j0YtzOvavAuOh9BR6haNwTVGrizEVzALLfnmp82b47NnZwWUPd7cDPS04inRW01VcMjUsUJJa9jz9mOQ==", "dev": true, "license": "MIT", "dependencies": { - "@html-eslint/template-syntax-parser": "^0.47.0", - "@html-eslint/types": "^0.47.0", - "es-html-parser": "0.3.0" + "@html-eslint/template-syntax-parser": "^0.47.1", + "@html-eslint/types": "^0.47.1", + "es-html-parser": "0.3.1" } }, "node_modules/@html-eslint/template-parser": { - "version": "0.47.0", - "resolved": "https://registry.npmjs.org/@html-eslint/template-parser/-/template-parser-0.47.0.tgz", - "integrity": "sha512-QEG8xEP6eZWyy8QHlbHt85+JjDOxXgrixFV6aCa5An4WqDWtxe2eItpXFeC4LQFZHEaoWgbYoFn7wES3jneMBw==", + "version": "0.47.1", + "resolved": "https://registry.npmjs.org/@html-eslint/template-parser/-/template-parser-0.47.1.tgz", + "integrity": "sha512-kMqBF58ls/pkBn4R/1ATybCr0BR3lD1Sg5YYJMYAJegMITGM4Zmo0O9jMAO/IyyU6ol2766IqhJuX2A5KfOpeg==", "dev": true, "license": "MIT", "dependencies": { - "@html-eslint/types": "^0.47.0", - "es-html-parser": "0.3.0" + "@html-eslint/types": "^0.47.1", + "es-html-parser": "0.3.1" } }, "node_modules/@html-eslint/template-syntax-parser": { - "version": "0.47.0", - "resolved": "https://registry.npmjs.org/@html-eslint/template-syntax-parser/-/template-syntax-parser-0.47.0.tgz", - "integrity": "sha512-U7+baZDb3PmxAL8cyz3K/iTdCEabwEIcpuf6VbpIa9rie5bLwoNUX2h2bulLmjn9tE28Pul6t4QuM4Rv2Y5vDg==", + "version": "0.47.1", + "resolved": "https://registry.npmjs.org/@html-eslint/template-syntax-parser/-/template-syntax-parser-0.47.1.tgz", + "integrity": "sha512-XQvJv1Z0L8427qGAEC5EqZz/PsWo2g+YN7ipFJlF7LWOd52ubp4j1itUpn8moSJhtcBODaNqdeouL8NEwz/3vw==", "dev": true, "license": "MIT", "dependencies": { - "@html-eslint/types": "^0.47.0" + "@html-eslint/types": "^0.47.1" } }, "node_modules/@html-eslint/types": { - "version": "0.47.0", - "resolved": "https://registry.npmjs.org/@html-eslint/types/-/types-0.47.0.tgz", - "integrity": "sha512-B9XpM+eA6eqMpPJX6CyqcoxJRmSiCcMQjPP7gvLgD4rsug/qh8t3XvYUPvjIfeSNFCJELbKqKC4GPvT9Q7fpNw==", + "version": "0.47.1", + "resolved": "https://registry.npmjs.org/@html-eslint/types/-/types-0.47.1.tgz", + "integrity": "sha512-4k2G+OcAU/S9sAjvghCgoI4cd+J45Xjzn9zP/TfuydTTR3LtGn7P8AT/cfAmrU73lMBjuJuRsHaR4m0+Xrb60A==", "dev": true, "license": "MIT", "dependencies": { "@types/estree": "^1.0.6", - "es-html-parser": "0.3.0", + "es-html-parser": "0.3.1", "eslint": "^9.19.0" } }, @@ -2294,9 +2265,9 @@ } }, "node_modules/@kern-ux/native": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@kern-ux/native/-/native-2.3.2.tgz", - "integrity": "sha512-PPz1bGdCj8W5xsxN4SRWIx7+7sz/jL3IjXRz74Ndewsty/tD84b9B6GI7fbgX0LAkDpizpJFzue6U7hzAiU/Vw==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@kern-ux/native/-/native-2.4.0.tgz", + "integrity": "sha512-wZRRWidk7ZocPCB/2kXlFfOUyIsTQHXSqHSUlzbICorUkZ+9krrNZKLbuftUwv1Y/WUJSKHm0C4Gyzjka8YQtA==", "dev": true, "license": "EUPL-1.2" }, @@ -2377,19 +2348,20 @@ "license": "Apache-2.0" }, "node_modules/@microsoft/api-extractor": { - "version": "7.53.1", - "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.53.1.tgz", - "integrity": "sha512-bul5eTNxijLdDBqLye74u9494sRmf+9QULtec9Od0uHnifahGeNt8CC4/xCdn7mVyEBrXIQyQ5+sc4Uc0QfBSA==", + "version": "7.55.1", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.55.1.tgz", + "integrity": "sha512-l8Z+8qrLkZFM3HM95Dbpqs6G39fpCa7O5p8A7AkA6hSevxkgwsOlLrEuPv0ADOyj5dI1Af5WVDiwpKG/ya5G3w==", "dev": true, "license": "MIT", "dependencies": { - "@microsoft/api-extractor-model": "7.31.1", - "@microsoft/tsdoc": "~0.15.1", - "@microsoft/tsdoc-config": "~0.17.1", - "@rushstack/node-core-library": "5.17.0", + "@microsoft/api-extractor-model": "7.32.1", + "@microsoft/tsdoc": "~0.16.0", + "@microsoft/tsdoc-config": "~0.18.0", + "@rushstack/node-core-library": "5.19.0", "@rushstack/rig-package": "0.6.0", - "@rushstack/terminal": "0.19.1", - "@rushstack/ts-command-line": "5.1.1", + "@rushstack/terminal": "0.19.4", + "@rushstack/ts-command-line": "5.1.4", + "diff": "~8.0.2", "lodash": "~4.17.15", "minimatch": "10.0.3", "resolve": "~1.22.1", @@ -2402,15 +2374,15 @@ } }, "node_modules/@microsoft/api-extractor-model": { - "version": "7.31.1", - "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.31.1.tgz", - "integrity": "sha512-Dhnip5OFKbl85rq/ICHBFGhV4RA5UQSl8AC/P/zoGvs+CBudPkatt5kIhMGiYgVPnUWmfR6fcp38+1AFLYNtUw==", + "version": "7.32.1", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.32.1.tgz", + "integrity": "sha512-u4yJytMYiUAnhcNQcZDTh/tVtlrzKlyKrQnLOV+4Qr/5gV+cpufWzCYAB1Q23URFqD6z2RoL2UYncM9xJVGNKA==", "dev": true, "license": "MIT", "dependencies": { - "@microsoft/tsdoc": "~0.15.1", - "@microsoft/tsdoc-config": "~0.17.1", - "@rushstack/node-core-library": "5.17.0" + "@microsoft/tsdoc": "~0.16.0", + "@microsoft/tsdoc-config": "~0.18.0", + "@rushstack/node-core-library": "5.19.0" } }, "node_modules/@microsoft/api-extractor/node_modules/lru-cache": { @@ -2480,20 +2452,20 @@ "license": "ISC" }, "node_modules/@microsoft/tsdoc": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.15.1.tgz", - "integrity": "sha512-4aErSrCR/On/e5G2hDP0wjooqDdauzEbIq8hIkIe5pXV0rtWJZvdCEKL0ykZxex+IxIwBp0eGeV48hQN07dXtw==", + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.16.0.tgz", + "integrity": "sha512-xgAyonlVVS+q7Vc7qLW0UrJU7rSFcETRWsqdXZtjzRU8dF+6CkozTK4V4y1LwOX7j8r/vHphjDeMeGI4tNGeGA==", "dev": true, "license": "MIT" }, "node_modules/@microsoft/tsdoc-config": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.17.1.tgz", - "integrity": "sha512-UtjIFe0C6oYgTnad4q1QP4qXwLhe6tIpNTRStJ2RZEPIkqQPREAwE5spzVxsdn9UaEMUqhh0AqSx3X4nWAKXWw==", + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.18.0.tgz", + "integrity": "sha512-8N/vClYyfOH+l4fLkkr9+myAoR6M7akc8ntBJ4DJdWH2b09uVfr71+LTMpNyG19fNqWDg8KEDZhx5wxuqHyGjw==", "dev": true, "license": "MIT", "dependencies": { - "@microsoft/tsdoc": "0.15.1", + "@microsoft/tsdoc": "0.16.0", "ajv": "~8.12.0", "jju": "~1.4.0", "resolve": "~1.22.2" @@ -2764,16 +2736,16 @@ "license": "MIT" }, "node_modules/@pinia/testing": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@pinia/testing/-/testing-1.0.2.tgz", - "integrity": "sha512-yZVXJTKh677J0AT8kOPxGk5s1v7hMQIDT3tmeriwtR5LDu41DvXTEBQf0ql9SsHW1mCSDG38QDFzSSl5ucJqnQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@pinia/testing/-/testing-1.0.3.tgz", + "integrity": "sha512-g+qR49GNdI1Z8rZxKrQC3GN+LfnGTNf5Kk8Nz5Cz6mIGva5WRS+ffPXQfzhA0nu6TveWzPNYTjGl4nJqd3Cu9Q==", "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/posva" }, "peerDependencies": { - "pinia": ">=3.0.3" + "pinia": ">=3.0.4" } }, "node_modules/@pkgjs/parseargs": { @@ -2899,9 +2871,9 @@ "license": "MIT" }, "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-beta.29", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.29.tgz", - "integrity": "sha512-NIJgOsMjbxAXvoGq/X0gD7VPMQ8j9g0BiDaNjVNVjvl+iKXxL3Jre0v31RmBYeLEmkbj2s02v8vFTbUXi5XS2Q==", + "version": "1.0.0-beta.50", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.50.tgz", + "integrity": "sha512-5e76wQiQVeL1ICOZVUg4LSOVYg9jyhGCin+icYozhsUzM+fHE7kddi1bdiE0jwVqTfkjba3jUFbEkoC9WkdvyA==", "dev": true, "license": "MIT" }, @@ -2935,23 +2907,10 @@ "dev": true, "license": "MIT" }, - "node_modules/@rollup/pluginutils/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.5.tgz", - "integrity": "sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.3.tgz", + "integrity": "sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w==", "cpu": [ "arm" ], @@ -2963,9 +2922,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.5.tgz", - "integrity": "sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.3.tgz", + "integrity": "sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w==", "cpu": [ "arm64" ], @@ -2977,9 +2936,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.5.tgz", - "integrity": "sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.3.tgz", + "integrity": "sha512-Nr7SlQeqIBpOV6BHHGZgYBuSdanCXuw09hon14MGOLGmXAFYjx1wNvquVPmpZnl0tLjg25dEdr4IQ6GgyToCUA==", "cpu": [ "arm64" ], @@ -2991,9 +2950,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.5.tgz", - "integrity": "sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.3.tgz", + "integrity": "sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ==", "cpu": [ "x64" ], @@ -3005,9 +2964,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.5.tgz", - "integrity": "sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.3.tgz", + "integrity": "sha512-yMTrCrK92aGyi7GuDNtGn2sNW+Gdb4vErx4t3Gv/Tr+1zRb8ax4z8GWVRfr3Jw8zJWvpGHNpss3vVlbF58DZ4w==", "cpu": [ "arm64" ], @@ -3019,9 +2978,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.5.tgz", - "integrity": "sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.3.tgz", + "integrity": "sha512-lMfF8X7QhdQzseM6XaX0vbno2m3hlyZFhwcndRMw8fbAGUGL3WFMBdK0hbUBIUYcEcMhVLr1SIamDeuLBnXS+Q==", "cpu": [ "x64" ], @@ -3033,9 +2992,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.5.tgz", - "integrity": "sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.3.tgz", + "integrity": "sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw==", "cpu": [ "arm" ], @@ -3047,9 +3006,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.5.tgz", - "integrity": "sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.3.tgz", + "integrity": "sha512-vTNlKq+N6CK/8UktsrFuc+/7NlEYVxgaEgRXVUVK258Z5ymho29skzW1sutgYjqNnquGwVUObAaxae8rZ6YMhg==", "cpu": [ "arm" ], @@ -3061,9 +3020,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.5.tgz", - "integrity": "sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.3.tgz", + "integrity": "sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w==", "cpu": [ "arm64" ], @@ -3075,9 +3034,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.5.tgz", - "integrity": "sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.3.tgz", + "integrity": "sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A==", "cpu": [ "arm64" ], @@ -3089,9 +3048,9 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.5.tgz", - "integrity": "sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.3.tgz", + "integrity": "sha512-JiuKcp2teLJwQ7vkJ95EwESWkNRFJD7TQgYmCnrPtlu50b4XvT5MOmurWNrCj3IFdyjBQ5p9vnrX4JM6I8OE7g==", "cpu": [ "loong64" ], @@ -3103,9 +3062,9 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.5.tgz", - "integrity": "sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.3.tgz", + "integrity": "sha512-EoGSa8nd6d3T7zLuqdojxC20oBfNT8nexBbB/rkxgKj5T5vhpAQKKnD+h3UkoMuTyXkP5jTjK/ccNRmQrPNDuw==", "cpu": [ "ppc64" ], @@ -3117,9 +3076,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.5.tgz", - "integrity": "sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.3.tgz", + "integrity": "sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g==", "cpu": [ "riscv64" ], @@ -3131,9 +3090,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.5.tgz", - "integrity": "sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.3.tgz", + "integrity": "sha512-68k2g7+0vs2u9CxDt5ktXTngsxOQkSEV/xBbwlqYcUrAVh6P9EgMZvFsnHy4SEiUl46Xf0IObWVbMvPrr2gw8A==", "cpu": [ "riscv64" ], @@ -3145,9 +3104,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.5.tgz", - "integrity": "sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.3.tgz", + "integrity": "sha512-VYsFMpULAz87ZW6BVYw3I6sWesGpsP9OPcyKe8ofdg9LHxSbRMd7zrVrr5xi/3kMZtpWL/wC+UIJWJYVX5uTKg==", "cpu": [ "s390x" ], @@ -3159,9 +3118,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.5.tgz", - "integrity": "sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.3.tgz", + "integrity": "sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w==", "cpu": [ "x64" ], @@ -3173,9 +3132,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.5.tgz", - "integrity": "sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.3.tgz", + "integrity": "sha512-eoROhjcc6HbZCJr+tvVT8X4fW3/5g/WkGvvmwz/88sDtSJzO7r/blvoBDgISDiCjDRZmHpwud7h+6Q9JxFwq1Q==", "cpu": [ "x64" ], @@ -3187,9 +3146,9 @@ ] }, "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.5.tgz", - "integrity": "sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.3.tgz", + "integrity": "sha512-OueLAWgrNSPGAdUdIjSWXw+u/02BRTcnfw9PN41D2vq/JSEPnJnVuBgw18VkN8wcd4fjUs+jFHVM4t9+kBSNLw==", "cpu": [ "arm64" ], @@ -3201,9 +3160,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.5.tgz", - "integrity": "sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.3.tgz", + "integrity": "sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw==", "cpu": [ "arm64" ], @@ -3215,9 +3174,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.5.tgz", - "integrity": "sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.3.tgz", + "integrity": "sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA==", "cpu": [ "ia32" ], @@ -3229,9 +3188,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.5.tgz", - "integrity": "sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.3.tgz", + "integrity": "sha512-J9QDiOIZlZLdcot5NXEepDkstocktoVjkaKUtqzgzpt2yWjGlbYiKyp05rWwk4nypbYUNoFAztEgixoLaSETkg==", "cpu": [ "x64" ], @@ -3243,9 +3202,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.5.tgz", - "integrity": "sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.3.tgz", + "integrity": "sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ==", "cpu": [ "x64" ], @@ -3257,9 +3216,9 @@ ] }, "node_modules/@rushstack/node-core-library": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-5.17.0.tgz", - "integrity": "sha512-24vt1GbHN6kyIglRMTVpyEiNRRRJK8uZHc1XoGAhmnTDKnrWet8OmOpImMswJIe6gM78eV8cMg1HXwuUHkSSgg==", + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-5.19.0.tgz", + "integrity": "sha512-BxAopbeWBvNJ6VGiUL+5lbJXywTdsnMeOS8j57Cn/xY10r6sV/gbsTlfYKjzVCUBZATX2eRzJHSMCchsMTGN6A==", "dev": true, "license": "MIT", "dependencies": { @@ -3376,13 +3335,13 @@ } }, "node_modules/@rushstack/terminal": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.19.1.tgz", - "integrity": "sha512-jsBuSad67IDVMO2yp0hDfs0OdE4z3mDIjIL2pclDT3aEJboeZXE85e1HjuD0F6JoW3XgHvDwoX+WOV+AVTDQeA==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.19.4.tgz", + "integrity": "sha512-f4XQk02CrKfrMgyOfhYd3qWI944dLC21S4I/LUhrlAP23GTMDNG6EK5effQtFkISwUKCgD9vMBrJZaPSUquxWQ==", "dev": true, "license": "MIT", "dependencies": { - "@rushstack/node-core-library": "5.17.0", + "@rushstack/node-core-library": "5.19.0", "@rushstack/problem-matcher": "0.1.1", "supports-color": "~8.1.1" }, @@ -3396,13 +3355,13 @@ } }, "node_modules/@rushstack/ts-command-line": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-5.1.1.tgz", - "integrity": "sha512-HPzFsUcr+wZ3oQI08Ec/E6cuiAVHKzrXZGHhwiwIGygAFiqN5QzX+ff30n70NU2WyE26CykgMwBZZSSyHCJrzA==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-5.1.4.tgz", + "integrity": "sha512-H0I6VdJ6sOUbktDFpP2VW5N29w8v4hRoNZOQz02vtEi6ZTYL1Ju8u+TcFiFawUDrUsx/5MQTUhd79uwZZVwVlA==", "dev": true, "license": "MIT", "dependencies": { - "@rushstack/terminal": "0.19.1", + "@rushstack/terminal": "0.19.4", "@types/argparse": "1.0.38", "argparse": "~1.0.9", "string-argv": "~0.3.1" @@ -3419,40 +3378,40 @@ } }, "node_modules/@shikijs/engine-oniguruma": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.13.0.tgz", - "integrity": "sha512-O42rBGr4UDSlhT2ZFMxqM7QzIU+IcpoTMzb3W7AlziI1ZF7R8eS2M0yt5Ry35nnnTX/LTLXFPUjRFCIW+Operg==", + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.15.0.tgz", + "integrity": "sha512-HnqFsV11skAHvOArMZdLBZZApRSYS4LSztk2K3016Y9VCyZISnlYUYsL2hzlS7tPqKHvNqmI5JSUJZprXloMvA==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/types": "3.13.0", + "@shikijs/types": "3.15.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "node_modules/@shikijs/langs": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.13.0.tgz", - "integrity": "sha512-672c3WAETDYHwrRP0yLy3W1QYB89Hbpj+pO4KhxK6FzIrDI2FoEXNiNCut6BQmEApYLfuYfpgOZaqbY+E9b8wQ==", + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.15.0.tgz", + "integrity": "sha512-WpRvEFvkVvO65uKYW4Rzxs+IG0gToyM8SARQMtGGsH4GDMNZrr60qdggXrFOsdfOVssG/QQGEl3FnJ3EZ+8w8A==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/types": "3.13.0" + "@shikijs/types": "3.15.0" } }, "node_modules/@shikijs/themes": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.13.0.tgz", - "integrity": "sha512-Vxw1Nm1/Od8jyA7QuAenaV78BG2nSr3/gCGdBkLpfLscddCkzkL36Q5b67SrLLfvAJTOUzW39x4FHVCFriPVgg==", + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.15.0.tgz", + "integrity": "sha512-8ow2zWb1IDvCKjYb0KiLNrK4offFdkfNVPXb1OZykpLCzRU6j+efkY+Y7VQjNlNFXonSw+4AOdGYtmqykDbRiQ==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/types": "3.13.0" + "@shikijs/types": "3.15.0" } }, "node_modules/@shikijs/types": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.13.0.tgz", - "integrity": "sha512-oM9P+NCFri/mmQ8LoFGVfVyemm5Hi27330zuOBp0annwJdKH1kOLndw3zCtAVDehPLg9fKqoEx3Ht/wNZxolfw==", + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.15.0.tgz", + "integrity": "sha512-BnP+y/EQnhihgHy4oIAN+6FFtmfTekwOLsQbRw9hOKwqgNy8Bdsjq8B05oAt/ZgvIWWFrshV71ytOrlPfYjIJw==", "dev": true, "license": "MIT", "dependencies": { @@ -3485,9 +3444,9 @@ } }, "node_modules/@simple-libs/child-process-utils/node_modules/@types/node": { - "version": "22.18.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.18.12.tgz", - "integrity": "sha512-BICHQ67iqxQGFSzfCFTT7MRQ5XcBjG5aeKh5Ok38UBbPe5fxTyE+aHFxwVrGyr8GNlqFMLKD1D3P2K/1ks8tog==", + "version": "22.19.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.1.tgz", + "integrity": "sha512-LCCV0HdSZZZb34qifBsyWlUmok6W7ouER+oQIGBScS8EsZsQbrtFTUrDX4hOl+CS6p7cnNC4td+qrSVGSCTUfQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3518,9 +3477,9 @@ } }, "node_modules/@simple-libs/stream-utils/node_modules/@types/node": { - "version": "22.18.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.18.12.tgz", - "integrity": "sha512-BICHQ67iqxQGFSzfCFTT7MRQ5XcBjG5aeKh5Ok38UBbPe5fxTyE+aHFxwVrGyr8GNlqFMLKD1D3P2K/1ks8tog==", + "version": "22.19.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.1.tgz", + "integrity": "sha512-LCCV0HdSZZZb34qifBsyWlUmok6W7ouER+oQIGBScS8EsZsQbrtFTUrDX4hOl+CS6p7cnNC4td+qrSVGSCTUfQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3566,19 +3525,6 @@ "eslint": ">=8.40.0" } }, - "node_modules/@stylistic/eslint-plugin/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/@tweenjs/tween.js": { "version": "25.0.0", "resolved": "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-25.0.0.tgz", @@ -3617,9 +3563,9 @@ } }, "node_modules/@types/conventional-commits-parser": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@types/conventional-commits-parser/-/conventional-commits-parser-5.0.1.tgz", - "integrity": "sha512-7uz5EHdzz2TqoMfV7ee61Egf5y6NkcO4FB/1iCCQnbeiI1F3xzv3vK5dBCXUCLQgGYS+mUeigK1iKQzvED+QnQ==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@types/conventional-commits-parser/-/conventional-commits-parser-5.0.2.tgz", + "integrity": "sha512-BgT2szDXnVypgpNxOK8aL5SGjUdaQbC++WZNjF1Qge3Og2+zhHj+RWhmehLhYyvQwqAmvezruVfOf8+3m74W+g==", "dev": true, "license": "MIT", "dependencies": { @@ -3692,9 +3638,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "24.9.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.9.1.tgz", - "integrity": "sha512-QoiaXANRkSXK6p0Duvt56W208du4P9Uye9hWLWgGMDTEoKPhuenzNcC4vGUmrNkiOKTlIrBoyNQYNpSwfEZXSg==", + "version": "24.10.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.1.tgz", + "integrity": "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3732,17 +3678,17 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.46.2.tgz", - "integrity": "sha512-ZGBMToy857/NIPaaCucIUQgqueOiq7HeAKkhlvqVV4lm089zUFW6ikRySx2v+cAhKeUCPuWVHeimyk6Dw1iY3w==", + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.48.0.tgz", + "integrity": "sha512-XxXP5tL1txl13YFtrECECQYeZjBZad4fyd3cFV4a19LkAY/bIp9fev3US4S5fDVV2JaYFiKAZ/GRTOLer+mbyQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.46.2", - "@typescript-eslint/type-utils": "8.46.2", - "@typescript-eslint/utils": "8.46.2", - "@typescript-eslint/visitor-keys": "8.46.2", + "@typescript-eslint/scope-manager": "8.48.0", + "@typescript-eslint/type-utils": "8.48.0", + "@typescript-eslint/utils": "8.48.0", + "@typescript-eslint/visitor-keys": "8.48.0", "graphemer": "^1.4.0", "ignore": "^7.0.0", "natural-compare": "^1.4.0", @@ -3756,7 +3702,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.46.2", + "@typescript-eslint/parser": "^8.48.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } @@ -3772,16 +3718,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.46.2.tgz", - "integrity": "sha512-BnOroVl1SgrPLywqxyqdJ4l3S2MsKVLDVxZvjI1Eoe8ev2r3kGDo+PcMihNmDE+6/KjkTubSJnmqGZZjQSBq/g==", + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.48.0.tgz", + "integrity": "sha512-jCzKdm/QK0Kg4V4IK/oMlRZlY+QOcdjv89U2NgKHZk1CYTj82/RVSx1mV/0gqCVMJ/DA+Zf/S4NBWNF8GQ+eqQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.46.2", - "@typescript-eslint/types": "8.46.2", - "@typescript-eslint/typescript-estree": "8.46.2", - "@typescript-eslint/visitor-keys": "8.46.2", + "@typescript-eslint/scope-manager": "8.48.0", + "@typescript-eslint/types": "8.48.0", + "@typescript-eslint/typescript-estree": "8.48.0", + "@typescript-eslint/visitor-keys": "8.48.0", "debug": "^4.3.4" }, "engines": { @@ -3797,14 +3743,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.46.2.tgz", - "integrity": "sha512-PULOLZ9iqwI7hXcmL4fVfIsBi6AN9YxRc0frbvmg8f+4hQAjQ5GYNKK0DIArNo+rOKmR/iBYwkpBmnIwin4wBg==", + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.48.0.tgz", + "integrity": "sha512-Ne4CTZyRh1BecBf84siv42wv5vQvVmgtk8AuiEffKTUo3DrBaGYZueJSxxBZ8fjk/N3DrgChH4TOdIOwOwiqqw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.46.2", - "@typescript-eslint/types": "^8.46.2", + "@typescript-eslint/tsconfig-utils": "^8.48.0", + "@typescript-eslint/types": "^8.48.0", "debug": "^4.3.4" }, "engines": { @@ -3819,14 +3765,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.46.2.tgz", - "integrity": "sha512-LF4b/NmGvdWEHD2H4MsHD8ny6JpiVNDzrSZr3CsckEgCbAGZbYM4Cqxvi9L+WqDMT+51Ozy7lt2M+d0JLEuBqA==", + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.48.0.tgz", + "integrity": "sha512-uGSSsbrtJrLduti0Q1Q9+BF1/iFKaxGoQwjWOIVNJv0o6omrdyR8ct37m4xIl5Zzpkp69Kkmvom7QFTtue89YQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.46.2", - "@typescript-eslint/visitor-keys": "8.46.2" + "@typescript-eslint/types": "8.48.0", + "@typescript-eslint/visitor-keys": "8.48.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3837,9 +3783,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.46.2.tgz", - "integrity": "sha512-a7QH6fw4S57+F5y2FIxxSDyi5M4UfGF+Jl1bCGd7+L4KsaUY80GsiF/t0UoRFDHAguKlBaACWJRmdrc6Xfkkag==", + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.48.0.tgz", + "integrity": "sha512-WNebjBdFdyu10sR1M4OXTt2OkMd5KWIL+LLfeH9KhgP+jzfDV/LI3eXzwJ1s9+Yc0Kzo2fQCdY/OpdusCMmh6w==", "dev": true, "license": "MIT", "engines": { @@ -3854,15 +3800,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.46.2.tgz", - "integrity": "sha512-HbPM4LbaAAt/DjxXaG9yiS9brOOz6fabal4uvUmaUYe6l3K1phQDMQKBRUrr06BQkxkvIZVVHttqiybM9nJsLA==", + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.48.0.tgz", + "integrity": "sha512-zbeVaVqeXhhab6QNEKfK96Xyc7UQuoFWERhEnj3mLVnUWrQnv15cJNseUni7f3g557gm0e46LZ6IJ4NJVOgOpw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.46.2", - "@typescript-eslint/typescript-estree": "8.46.2", - "@typescript-eslint/utils": "8.46.2", + "@typescript-eslint/types": "8.48.0", + "@typescript-eslint/typescript-estree": "8.48.0", + "@typescript-eslint/utils": "8.48.0", "debug": "^4.3.4", "ts-api-utils": "^2.1.0" }, @@ -3879,9 +3825,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.2.tgz", - "integrity": "sha512-lNCWCbq7rpg7qDsQrd3D6NyWYu+gkTENkG5IKYhUIcxSb59SQC/hEQ+MrG4sTgBVghTonNWq42bA/d4yYumldQ==", + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.48.0.tgz", + "integrity": "sha512-cQMcGQQH7kwKoVswD1xdOytxQR60MWKM1di26xSUtxehaDs/32Zpqsu5WJlXTtTTqyAVK8R7hvsUnIXRS+bjvA==", "dev": true, "license": "MIT", "engines": { @@ -3893,21 +3839,20 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.2.tgz", - "integrity": "sha512-f7rW7LJ2b7Uh2EiQ+7sza6RDZnajbNbemn54Ob6fRwQbgcIn+GWfyuHDHRYgRoZu1P4AayVScrRW+YfbTvPQoQ==", + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.48.0.tgz", + "integrity": "sha512-ljHab1CSO4rGrQIAyizUS6UGHHCiAYhbfcIZ1zVJr5nMryxlXMVWS3duFPSKvSUbFPwkXMFk1k0EMIjub4sRRQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.46.2", - "@typescript-eslint/tsconfig-utils": "8.46.2", - "@typescript-eslint/types": "8.46.2", - "@typescript-eslint/visitor-keys": "8.46.2", + "@typescript-eslint/project-service": "8.48.0", + "@typescript-eslint/tsconfig-utils": "8.48.0", + "@typescript-eslint/types": "8.48.0", + "@typescript-eslint/visitor-keys": "8.48.0", "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", + "tinyglobby": "^0.2.15", "ts-api-utils": "^2.1.0" }, "engines": { @@ -3922,16 +3867,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.46.2.tgz", - "integrity": "sha512-sExxzucx0Tud5tE0XqR0lT0psBQvEpnpiul9XbGUB1QwpWJJAps1O/Z7hJxLGiZLBKMCutjTzDgmd1muEhBnVg==", + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.48.0.tgz", + "integrity": "sha512-yTJO1XuGxCsSfIVt1+1UrLHtue8xz16V8apzPYI06W0HbEbEWHxHXgZaAgavIkoh+GeV6hKKd5jm0sS6OYxWXQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.46.2", - "@typescript-eslint/types": "8.46.2", - "@typescript-eslint/typescript-estree": "8.46.2" + "@typescript-eslint/scope-manager": "8.48.0", + "@typescript-eslint/types": "8.48.0", + "@typescript-eslint/typescript-estree": "8.48.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3946,13 +3891,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.2.tgz", - "integrity": "sha512-tUFMXI4gxzzMXt4xpGJEsBsTox0XbNQ1y94EwlD/CuZwFcQP79xfQqMhau9HsRc/J0cAPA/HZt1dZPtGn9V/7w==", + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.48.0.tgz", + "integrity": "sha512-T0XJMaRPOH3+LBbAfzR2jalckP1MSG/L9eUtY0DEzUyVaXJ/t6zN0nR7co5kz0Jko/nkSYCBRkz1djvjajVTTg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.46.2", + "@typescript-eslint/types": "8.48.0", "eslint-visitor-keys": "^4.2.1" }, "engines": { @@ -4233,13 +4178,13 @@ ] }, "node_modules/@vitejs/plugin-vue": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.1.tgz", - "integrity": "sha512-+MaE752hU0wfPFJEUAIxqw18+20euHHdxVtMvbFcOEpjEyfqXH/5DCoTHiVJ0J29EhTJdoTkjEv5YBKU9dnoTw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.2.tgz", + "integrity": "sha512-iHmwV3QcVGGvSC1BG5bZ4z6iwa1SOpAPWmnjOErd4Ske+lZua5K9TtAVdx0gMBClJ28DViCbSmZitjWZsWO3LA==", "dev": true, "license": "MIT", "dependencies": { - "@rolldown/pluginutils": "1.0.0-beta.29" + "@rolldown/pluginutils": "1.0.0-beta.50" }, "engines": { "node": "^20.19.0 || >=22.12.0" @@ -4399,30 +4344,30 @@ } }, "node_modules/@volar/language-core": { - "version": "2.4.23", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.23.tgz", - "integrity": "sha512-hEEd5ET/oSmBC6pi1j6NaNYRWoAiDhINbT8rmwtINugR39loROSlufGdYMF9TaKGfz+ViGs1Idi3mAhnuPcoGQ==", + "version": "2.4.26", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.26.tgz", + "integrity": "sha512-hH0SMitMxnB43OZpyF1IFPS9bgb2I3bpCh76m2WEK7BE0A0EzpYsRp0CCH2xNKshr7kacU5TQBLYn4zj7CG60A==", "dev": true, "license": "MIT", "dependencies": { - "@volar/source-map": "2.4.23" + "@volar/source-map": "2.4.26" } }, "node_modules/@volar/source-map": { - "version": "2.4.23", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.23.tgz", - "integrity": "sha512-Z1Uc8IB57Lm6k7q6KIDu/p+JWtf3xsXJqAX/5r18hYOTpJyBn0KXUR8oTJ4WFYOcDzWC9n3IflGgHowx6U6z9Q==", + "version": "2.4.26", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.26.tgz", + "integrity": "sha512-JJw0Tt/kSFsIRmgTQF4JSt81AUSI1aEye5Zl65EeZ8H35JHnTvFGmpDOBn5iOxd48fyGE+ZvZBp5FcgAy/1Qhw==", "dev": true, "license": "MIT" }, "node_modules/@volar/typescript": { - "version": "2.4.23", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.23.tgz", - "integrity": "sha512-lAB5zJghWxVPqfcStmAP1ZqQacMpe90UrP5RJ3arDyrhy4aCUQqmxPPLB2PWDKugvylmO41ljK7vZ+t6INMTag==", + "version": "2.4.26", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.26.tgz", + "integrity": "sha512-N87ecLD48Sp6zV9zID/5yuS1+5foj0DfuYGdQ6KHj/IbKvyKv1zNX6VCmnKYwtmHadEO6mFc2EKISiu3RDPAvA==", "dev": true, "license": "MIT", "dependencies": { - "@volar/language-core": "2.4.23", + "@volar/language-core": "2.4.26", "path-browserify": "^1.0.1", "vscode-uri": "^3.0.8" } @@ -4481,14 +4426,14 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.5.22", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.22.tgz", - "integrity": "sha512-jQ0pFPmZwTEiRNSb+i9Ow/I/cHv2tXYqsnHKKyCQ08irI2kdF5qmYedmF8si8mA7zepUFmJ2hqzS8CQmNOWOkQ==", + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.25.tgz", + "integrity": "sha512-vay5/oQJdsNHmliWoZfHPoVZZRmnSWhug0BYT34njkYTPqClh3DNWLkZNJBVSjsNMrg0CCrBfoKkjZQPM/QVUw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.28.4", - "@vue/shared": "3.5.22", + "@babel/parser": "^7.28.5", + "@vue/shared": "3.5.25", "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.1" @@ -4515,30 +4460,30 @@ "license": "MIT" }, "node_modules/@vue/compiler-dom": { - "version": "3.5.22", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.22.tgz", - "integrity": "sha512-W8RknzUM1BLkypvdz10OVsGxnMAuSIZs9Wdx1vzA3mL5fNMN15rhrSCLiTm6blWeACwUwizzPVqGJgOGBEN/hA==", + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.25.tgz", + "integrity": "sha512-4We0OAcMZsKgYoGlMjzYvaoErltdFI2/25wqanuTu+S4gismOTRTBPi4IASOjxWdzIwrYSjnqONfKvuqkXzE2Q==", "dev": true, "license": "MIT", "dependencies": { - "@vue/compiler-core": "3.5.22", - "@vue/shared": "3.5.22" + "@vue/compiler-core": "3.5.25", + "@vue/shared": "3.5.25" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.5.22", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.22.tgz", - "integrity": "sha512-tbTR1zKGce4Lj+JLzFXDq36K4vcSZbJ1RBu8FxcDv1IGRz//Dh2EBqksyGVypz3kXpshIfWKGOCcqpSbyGWRJQ==", + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.25.tgz", + "integrity": "sha512-PUgKp2rn8fFsI++lF2sO7gwO2d9Yj57Utr5yEsDf3GNaQcowCLKL7sf+LvVFvtJDXUp/03+dC6f2+LCv5aK1ag==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.28.4", - "@vue/compiler-core": "3.5.22", - "@vue/compiler-dom": "3.5.22", - "@vue/compiler-ssr": "3.5.22", - "@vue/shared": "3.5.22", + "@babel/parser": "^7.28.5", + "@vue/compiler-core": "3.5.25", + "@vue/compiler-dom": "3.5.25", + "@vue/compiler-ssr": "3.5.25", + "@vue/shared": "3.5.25", "estree-walker": "^2.0.2", - "magic-string": "^0.30.19", + "magic-string": "^0.30.21", "postcss": "^8.5.6", "source-map-js": "^1.2.1" } @@ -4551,14 +4496,14 @@ "license": "MIT" }, "node_modules/@vue/compiler-ssr": { - "version": "3.5.22", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.22.tgz", - "integrity": "sha512-GdgyLvg4R+7T8Nk2Mlighx7XGxq/fJf9jaVofc3IL0EPesTE86cP/8DD1lT3h1JeZr2ySBvyqKQJgbS54IX1Ww==", + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.25.tgz", + "integrity": "sha512-ritPSKLBcParnsKYi+GNtbdbrIE1mtuFEJ4U1sWeuOMlIziK5GtOL85t5RhsNy4uWIXPgk+OUdpnXiTdzn8o3A==", "dev": true, "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.5.22", - "@vue/shared": "3.5.22" + "@vue/compiler-dom": "3.5.25", + "@vue/shared": "3.5.25" } }, "node_modules/@vue/compiler-vue2": { @@ -4573,24 +4518,24 @@ } }, "node_modules/@vue/devtools-api": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.7.7.tgz", - "integrity": "sha512-lwOnNBH2e7x1fIIbVT7yF5D+YWhqELm55/4ZKf45R9T8r9dE2AIOy8HKjfqzGsoTHFbWbr337O4E0A0QADnjBg==", + "version": "7.7.9", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.7.9.tgz", + "integrity": "sha512-kIE8wvwlcZ6TJTbNeU2HQNtaxLx3a84aotTITUuL/4bzfPxzajGBOoqjMhwZJ8L9qFYDU/lAYMEEm11dnZOD6g==", "dev": true, "license": "MIT", "dependencies": { - "@vue/devtools-kit": "^7.7.7" + "@vue/devtools-kit": "^7.7.9" } }, "node_modules/@vue/devtools-core": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@vue/devtools-core/-/devtools-core-8.0.3.tgz", - "integrity": "sha512-gCEQN7aMmeaigEWJQ2Z2o3g7/CMqGTPvNS1U3n/kzpLoAZ1hkAHNgi4ml/POn/9uqGILBk65GGOUdrraHXRj5Q==", + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/@vue/devtools-core/-/devtools-core-8.0.5.tgz", + "integrity": "sha512-dpCw8nl0GDBuiL9SaY0mtDxoGIEmU38w+TQiYEPOLhW03VDC0lfNMYXS/qhl4I0YlysGp04NLY4UNn6xgD0VIQ==", "dev": true, "license": "MIT", "dependencies": { - "@vue/devtools-kit": "^8.0.3", - "@vue/devtools-shared": "^8.0.3", + "@vue/devtools-kit": "^8.0.5", + "@vue/devtools-shared": "^8.0.5", "mitt": "^3.0.1", "nanoid": "^5.1.5", "pathe": "^2.0.3", @@ -4601,13 +4546,13 @@ } }, "node_modules/@vue/devtools-core/node_modules/@vue/devtools-kit": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-8.0.3.tgz", - "integrity": "sha512-UF4YUOVGdfzXLCv5pMg2DxocB8dvXz278fpgEE+nJ/DRALQGAva7sj9ton0VWZ9hmXw+SV8yKMrxP2MpMhq9Wg==", + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-8.0.5.tgz", + "integrity": "sha512-q2VV6x1U3KJMTQPUlRMyWEKVbcHuxhqJdSr6Jtjz5uAThAIrfJ6WVZdGZm5cuO63ZnSUz0RCsVwiUUb0mDV0Yg==", "dev": true, "license": "MIT", "dependencies": { - "@vue/devtools-shared": "^8.0.3", + "@vue/devtools-shared": "^8.0.5", "birpc": "^2.6.1", "hookable": "^5.5.3", "mitt": "^3.0.1", @@ -4617,9 +4562,9 @@ } }, "node_modules/@vue/devtools-core/node_modules/@vue/devtools-shared": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-8.0.3.tgz", - "integrity": "sha512-s/QNll7TlpbADFZrPVsaUNPCOF8NvQgtgmmB7Tip6pLf/HcOvBTly0lfLQ0Eylu9FQ4OqBhFpLyBgwykiSf8zw==", + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-8.0.5.tgz", + "integrity": "sha512-bRLn6/spxpmgLk+iwOrR29KrYnJjG9DGpHGkDFG82UM21ZpJ39ztUT9OXX3g+usW7/b2z+h46I9ZiYyB07XMXg==", "dev": true, "license": "MIT", "dependencies": { @@ -4653,13 +4598,13 @@ "license": "MIT" }, "node_modules/@vue/devtools-kit": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.7.7.tgz", - "integrity": "sha512-wgoZtxcTta65cnZ1Q6MbAfePVFxfM+gq0saaeytoph7nEa7yMXoi6sCPy4ufO111B9msnw0VOWjPEFCXuAKRHA==", + "version": "7.7.9", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.7.9.tgz", + "integrity": "sha512-PyQ6odHSgiDVd4hnTP+aDk2X4gl2HmLDfiyEnn3/oV+ckFDuswRs4IbBT7vacMuGdwY/XemxBoh302ctbsptuA==", "dev": true, "license": "MIT", "dependencies": { - "@vue/devtools-shared": "^7.7.7", + "@vue/devtools-shared": "^7.7.9", "birpc": "^2.3.0", "hookable": "^5.5.3", "mitt": "^3.0.1", @@ -4669,9 +4614,9 @@ } }, "node_modules/@vue/devtools-shared": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.7.7.tgz", - "integrity": "sha512-+udSj47aRl5aKb0memBvcUG9koarqnxNM5yjuREvqwK6T3ap4mn3Zqqc17QrBFTqSMjr3HK1cvStEZpMDpfdyw==", + "version": "7.7.9", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.7.9.tgz", + "integrity": "sha512-iWAb0v2WYf0QWmxCGy0seZNDPdO3Sp5+u78ORnyeonS6MT4PC7VPrryX2BpMJrwlDeaZ6BD4vP4XKjK0SZqaeA==", "dev": true, "license": "MIT", "dependencies": { @@ -4704,57 +4649,57 @@ } }, "node_modules/@vue/reactivity": { - "version": "3.5.22", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.22.tgz", - "integrity": "sha512-f2Wux4v/Z2pqc9+4SmgZC1p73Z53fyD90NFWXiX9AKVnVBEvLFOWCEgJD3GdGnlxPZt01PSlfmLqbLYzY/Fw4A==", + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.25.tgz", + "integrity": "sha512-5xfAypCQepv4Jog1U4zn8cZIcbKKFka3AgWHEFQeK65OW+Ys4XybP6z2kKgws4YB43KGpqp5D/K3go2UPPunLA==", "dev": true, "license": "MIT", "dependencies": { - "@vue/shared": "3.5.22" + "@vue/shared": "3.5.25" } }, "node_modules/@vue/runtime-core": { - "version": "3.5.22", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.22.tgz", - "integrity": "sha512-EHo4W/eiYeAzRTN5PCextDUZ0dMs9I8mQ2Fy+OkzvRPUYQEyK9yAjbasrMCXbLNhF7P0OUyivLjIy0yc6VrLJQ==", + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.25.tgz", + "integrity": "sha512-Z751v203YWwYzy460bzsYQISDfPjHTl+6Zzwo/a3CsAf+0ccEjQ8c+0CdX1WsumRTHeywvyUFtW6KvNukT/smA==", "dev": true, "license": "MIT", "dependencies": { - "@vue/reactivity": "3.5.22", - "@vue/shared": "3.5.22" + "@vue/reactivity": "3.5.25", + "@vue/shared": "3.5.25" } }, "node_modules/@vue/runtime-dom": { - "version": "3.5.22", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.22.tgz", - "integrity": "sha512-Av60jsryAkI023PlN7LsqrfPvwfxOd2yAwtReCjeuugTJTkgrksYJJstg1e12qle0NarkfhfFu1ox2D+cQotww==", + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.25.tgz", + "integrity": "sha512-a4WrkYFbb19i9pjkz38zJBg8wa/rboNERq3+hRRb0dHiJh13c+6kAbgqCPfMaJ2gg4weWD3APZswASOfmKwamA==", "dev": true, "license": "MIT", "dependencies": { - "@vue/reactivity": "3.5.22", - "@vue/runtime-core": "3.5.22", - "@vue/shared": "3.5.22", + "@vue/reactivity": "3.5.25", + "@vue/runtime-core": "3.5.25", + "@vue/shared": "3.5.25", "csstype": "^3.1.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.5.22", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.22.tgz", - "integrity": "sha512-gXjo+ao0oHYTSswF+a3KRHZ1WszxIqO7u6XwNHqcqb9JfyIL/pbWrrh/xLv7jeDqla9u+LK7yfZKHih1e1RKAQ==", + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.25.tgz", + "integrity": "sha512-UJaXR54vMG61i8XNIzTSf2Q7MOqZHpp8+x3XLGtE3+fL+nQd+k7O5+X3D/uWrnQXOdMw5VPih+Uremcw+u1woQ==", "dev": true, "license": "MIT", "dependencies": { - "@vue/compiler-ssr": "3.5.22", - "@vue/shared": "3.5.22" + "@vue/compiler-ssr": "3.5.25", + "@vue/shared": "3.5.25" }, "peerDependencies": { - "vue": "3.5.22" + "vue": "3.5.25" } }, "node_modules/@vue/shared": { - "version": "3.5.22", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.22.tgz", - "integrity": "sha512-F4yc6palwq3TT0u+FYf0Ns4Tfl9GRFURDN2gWG7L1ecIaS/4fCIuFOjMTnCyjsu/OK6vaDKLCrGAa+KvvH+h4w==", + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.25.tgz", + "integrity": "sha512-AbOPdQQnAnzs58H2FrrDxYj/TJfmeS2jdfEEhgiKINy+bnOANmVizIEgq1r+C5zsbs6l1CCQxtcj71rwNQ4jWg==", "dev": true, "license": "MIT" }, @@ -4809,9 +4754,9 @@ } }, "node_modules/@zip.js/zip.js": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.8.8.tgz", - "integrity": "sha512-v0KutehhSAuaoFAFGLp+V4+UiZ1mIxQ8vNOYMD7k9ZJaBbtQV49MYlg568oRLiuwWDg2Di58Iw3Q0ESNWR+5JA==", + "version": "2.8.11", + "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.8.11.tgz", + "integrity": "sha512-0fztsk/0ryJ+2PPr9EyXS5/Co7OK8q3zY/xOoozEWaUsL5x+C0cyZ4YyMuUffOO2Dx/rAdq4JMPqW0VUtm+vzA==", "dev": true, "license": "BSD-3-Clause", "peer": true, @@ -5120,9 +5065,9 @@ } }, "node_modules/ast-v8-to-istanbul": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-0.3.7.tgz", - "integrity": "sha512-kr1Hy6YRZBkGQSb6puP+D6FQ59Cx4m0siYhAxygMCAgadiWQ6oxAxQXHOMvJx67SJ63jRoVIIg5eXzUbbct1ww==", + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-0.3.8.tgz", + "integrity": "sha512-szgSZqUxI5T8mLKvS7WTjF9is+MVbOeLADU73IseOcrqhxr/VAvy6wfoVE39KnKzA7JRhjF5eUagNlHwvZPlKQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5207,9 +5152,9 @@ "license": "MIT" }, "node_modules/baseline-browser-mapping": { - "version": "2.8.18", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.18.tgz", - "integrity": "sha512-UYmTpOBwgPScZpS4A+YbapwWuBwasxvO/2IOHArSsAhL/+ZdmATBXTex3t+l2hXwLVYK382ibr/nKoY9GKe86w==", + "version": "2.8.31", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.31.tgz", + "integrity": "sha512-a28v2eWrrRWPpJSzxc+mKwm0ZtVx/G8SepdQZDArnXYU/XS+IF6mp8aB/4E+hH1tyGCoDo3KlUCdlSxGDsRkAw==", "dev": true, "license": "Apache-2.0", "bin": { @@ -5234,9 +5179,9 @@ } }, "node_modules/birpc": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/birpc/-/birpc-2.6.1.tgz", - "integrity": "sha512-LPnFhlDpdSH6FJhJyn4M0kFO7vtQ5iPw24FnG0y21q09xC7e8+1LeR31S1MAIrDAHp4m7aas4bEkTDTvMAtebQ==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/birpc/-/birpc-2.8.0.tgz", + "integrity": "sha512-Bz2a4qD/5GRhiHSwj30c/8kC8QGj12nNDwz3D4ErQ4Xhy35dsSDvF+RA/tWpjyU0pdGtSDiEk6B5fBGE1qNVhw==", "dev": true, "license": "MIT", "funding": { @@ -5282,9 +5227,9 @@ } }, "node_modules/browserslist": { - "version": "4.26.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.26.3.tgz", - "integrity": "sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.0.tgz", + "integrity": "sha512-tbydkR/CxfMwelN0vwdP/pLkDwyAASZ+VfWm4EOwlB6SWhx1sYnWLqo8N5j0rAzPfzfRaxt0mM/4wPU/Su84RQ==", "dev": true, "funding": [ { @@ -5302,11 +5247,11 @@ ], "license": "MIT", "dependencies": { - "baseline-browser-mapping": "^2.8.9", - "caniuse-lite": "^1.0.30001746", - "electron-to-chromium": "^1.5.227", - "node-releases": "^2.0.21", - "update-browserslist-db": "^1.1.3" + "baseline-browser-mapping": "^2.8.25", + "caniuse-lite": "^1.0.30001754", + "electron-to-chromium": "^1.5.249", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.1.4" }, "bin": { "browserslist": "cli.js" @@ -5437,9 +5382,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001751", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001751.tgz", - "integrity": "sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw==", + "version": "1.0.30001757", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001757.tgz", + "integrity": "sha512-r0nnL/I28Zi/yjk1el6ilj27tKcdjLsNqAOZr0yVjWPrSQyHgKI2INaEWw21bAQSv2LXRt1XuCS/GomNpWOxsQ==", "dev": true, "funding": [ { @@ -5469,9 +5414,9 @@ } }, "node_modules/cesium": { - "version": "1.134.1", - "resolved": "https://registry.npmjs.org/cesium/-/cesium-1.134.1.tgz", - "integrity": "sha512-5gbpwdFRV4zwujGeX/xlrItx2xbI20ZM+rKMUwdKc5dfLqt3uVEVzFewm+lOKLGLRJRBcH7XbDgqtmD63l18Yw==", + "version": "1.135.0", + "resolved": "https://registry.npmjs.org/cesium/-/cesium-1.135.0.tgz", + "integrity": "sha512-U0OuU9pim7ezTns0OVVw199NdMhJzuZWKRKRwQdRbBQH74Q8pmU0FLpQ/Xv94pzvCqJxxqdtziM2JGHa43xzcg==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -5481,17 +5426,17 @@ "packages/sandcastle" ], "dependencies": { - "@cesium/engine": "^21.0.1", - "@cesium/widgets": "^13.2.1" + "@cesium/engine": "^22.0.0", + "@cesium/widgets": "^14.0.0" }, "engines": { "node": ">=20.19.0" } }, "node_modules/cesium/node_modules/@cesium/engine": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/@cesium/engine/-/engine-21.0.1.tgz", - "integrity": "sha512-V4MEHOcYMcg+zCxrPjPAVpUyJxmIw6K9qPz5Fd2fnYPoMSPV7FJsiZYoFns03yoPHOPIeqnXQNspZKLX5Xzgfw==", + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/@cesium/engine/-/engine-22.0.0.tgz", + "integrity": "sha512-7hYwgzu5MYD7TryiZoXz6EvNk6YaBgT1y10L8iHQcKwmv6EPone46C8YGBerYb3uUHR21qmbmDWMSN7xGpBUiw==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -5757,9 +5702,9 @@ "license": "MIT" }, "node_modules/color-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-2.0.2.tgz", - "integrity": "sha512-9vEt7gE16EW7Eu7pvZnR0abW9z6ufzhXxGXZEVU9IqPdlsUiMwJeJfRtq0zePUmnbHGT9zajca7mX8zgoayo4A==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-2.1.0.tgz", + "integrity": "sha512-1bPaDNFm0axzE4MEAzKPuqKWeRaT43U/hyxKPBdqTfmPF+d6n7FSoTFxLVULUJOmiLp01KjhIPPH+HrXZJN4Rg==", "dev": true, "license": "MIT", "engines": { @@ -6106,25 +6051,25 @@ "license": "MIT" }, "node_modules/copy-anything": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.5.tgz", - "integrity": "sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-4.0.5.tgz", + "integrity": "sha512-7Vv6asjS4gMOuILabD3l739tsaxFQmC+a7pLZm02zyvs8p977bL3zEgq3yDk5rn9B0PbYgIv++jmHcuUab4RhA==", "dev": true, "license": "MIT", "dependencies": { - "is-what": "^4.1.8" + "is-what": "^5.2.0" }, "engines": { - "node": ">=12.13" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/mesqueeb" } }, "node_modules/core-js": { - "version": "3.46.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.46.0.tgz", - "integrity": "sha512-vDMm9B0xnqqZ8uSBpZ8sNtRtOdmfShrvT6h2TuQGLs0Is+cR0DYbj/KWP6ALVNbWPpqA/qPLoOuppJN07humpA==", + "version": "3.47.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.47.0.tgz", + "integrity": "sha512-c3Q2VVkGAUyupsjRnaNX6u8Dq2vAdzm9iuPj5FW0fRxzlxgq9Q39MDq10IvmQSpLgHQNyQzQmOo6bgGHmH3NNg==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -6253,9 +6198,9 @@ } }, "node_modules/cssstyle": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-5.3.1.tgz", - "integrity": "sha512-g5PC9Aiph9eiczFpcgUhd9S4UUO3F+LHGRIi5NUMZ+4xtoIYbHNZwZnWA2JsFGe8OU8nl4WyaEFiZuGuxlutJQ==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-5.3.3.tgz", + "integrity": "sha512-OytmFH+13/QXONJcC75QNdMtKpceNk3u8ThBjyyYjkEcy/ekBwR1mMAuNvi3gdBPW3N5TlCzQ0WZw8H0lN/bDw==", "dev": true, "license": "MIT", "dependencies": { @@ -6268,9 +6213,9 @@ } }, "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", "dev": true, "license": "MIT" }, @@ -6356,9 +6301,9 @@ } }, "node_modules/dayjs": { - "version": "1.11.18", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.18.tgz", - "integrity": "sha512-zFBQ7WFRvVRhKcWoUh+ZA1g2HVgUbsZm9sbddh8EC5iv93sui8DVVz1Npvz+r6meo9VKfa8NyLWBsQK1VvIKPA==", + "version": "1.11.19", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz", + "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==", "dev": true, "license": "MIT" }, @@ -6436,9 +6381,9 @@ "license": "MIT" }, "node_modules/default-browser": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", - "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.4.0.tgz", + "integrity": "sha512-XDuvSq38Hr1MdN47EDvYtx3U0MTqpCEn+F6ft8z2vYDzMrvQhVp0ui9oQdqW3MvK3vqUETglt1tVGgjLuJ5izg==", "dev": true, "license": "MIT", "dependencies": { @@ -6453,9 +6398,9 @@ } }, "node_modules/default-browser-id": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", - "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz", + "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==", "dev": true, "license": "MIT", "engines": { @@ -6545,6 +6490,16 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/diff": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.2.tgz", + "integrity": "sha512-sSuxWU5j5SR9QQji/o2qMvqRNYRDOcBTgsJ/DeCf4iSN4gW+gNMXM7wFIP+fdXZxoNiAnHUTGjCr+TSWXdRDKg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/doctrine": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", @@ -6705,9 +6660,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.237", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.237.tgz", - "integrity": "sha512-icUt1NvfhGLar5lSWH3tHNzablaA5js3HVHacQimfP8ViEBOQv+L7DKEuHdbTZ0SKCO1ogTJTIL1Gwk9S6Qvcg==", + "version": "1.5.260", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.260.tgz", + "integrity": "sha512-ov8rBoOBhVawpzdre+Cmz4FB+y66Eqrk6Gwqd8NGxuhv99GQ8XqMAr351KEkOt7gukXWDg6gJWEMKgL2RLMPtA==", "dev": true, "license": "ISC" }, @@ -6872,9 +6827,9 @@ } }, "node_modules/es-html-parser": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/es-html-parser/-/es-html-parser-0.3.0.tgz", - "integrity": "sha512-86KsmbP/zqoG7LIoXiCXv7KFDVbF9N9SCpavmRzeKtCODmF+LyLEBt3UPSlcntNQEwGGe0xn4ZED186rLmwKSw==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/es-html-parser/-/es-html-parser-0.3.1.tgz", + "integrity": "sha512-YTEasG4xt7FEN4b6qJIPbFo/fzQ5kjRMEQ33QMqSXTvfXqAbC2rHxo32x2/1Rhq7Mlu6wI3MIpM5Kf2VHPXrUQ==", "dev": true, "license": "MIT" }, @@ -6974,9 +6929,9 @@ } }, "node_modules/es-toolkit": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.40.0.tgz", - "integrity": "sha512-8o6w0KFmU0CiIl0/Q/BCEOabF2IJaELM1T2PWj6e8KqzHv1gdx+7JtFnDwOx1kJH/isJ5NwlDG1nCr1HrRF94Q==", + "version": "1.42.0", + "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.42.0.tgz", + "integrity": "sha512-SLHIyY7VfDJBM8clz4+T2oquwTQxEzu263AyhVK4jREOAwJ+8eebaa4wM3nlvnAqhDrMm2EsA6hWHaQsMPQ1nA==", "dev": true, "license": "MIT", "workspaces": [ @@ -6985,9 +6940,9 @@ ] }, "node_modules/esbuild": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.11.tgz", - "integrity": "sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", + "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -6998,32 +6953,32 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.11", - "@esbuild/android-arm": "0.25.11", - "@esbuild/android-arm64": "0.25.11", - "@esbuild/android-x64": "0.25.11", - "@esbuild/darwin-arm64": "0.25.11", - "@esbuild/darwin-x64": "0.25.11", - "@esbuild/freebsd-arm64": "0.25.11", - "@esbuild/freebsd-x64": "0.25.11", - "@esbuild/linux-arm": "0.25.11", - "@esbuild/linux-arm64": "0.25.11", - "@esbuild/linux-ia32": "0.25.11", - "@esbuild/linux-loong64": "0.25.11", - "@esbuild/linux-mips64el": "0.25.11", - "@esbuild/linux-ppc64": "0.25.11", - "@esbuild/linux-riscv64": "0.25.11", - "@esbuild/linux-s390x": "0.25.11", - "@esbuild/linux-x64": "0.25.11", - "@esbuild/netbsd-arm64": "0.25.11", - "@esbuild/netbsd-x64": "0.25.11", - "@esbuild/openbsd-arm64": "0.25.11", - "@esbuild/openbsd-x64": "0.25.11", - "@esbuild/openharmony-arm64": "0.25.11", - "@esbuild/sunos-x64": "0.25.11", - "@esbuild/win32-arm64": "0.25.11", - "@esbuild/win32-ia32": "0.25.11", - "@esbuild/win32-x64": "0.25.11" + "@esbuild/aix-ppc64": "0.25.12", + "@esbuild/android-arm": "0.25.12", + "@esbuild/android-arm64": "0.25.12", + "@esbuild/android-x64": "0.25.12", + "@esbuild/darwin-arm64": "0.25.12", + "@esbuild/darwin-x64": "0.25.12", + "@esbuild/freebsd-arm64": "0.25.12", + "@esbuild/freebsd-x64": "0.25.12", + "@esbuild/linux-arm": "0.25.12", + "@esbuild/linux-arm64": "0.25.12", + "@esbuild/linux-ia32": "0.25.12", + "@esbuild/linux-loong64": "0.25.12", + "@esbuild/linux-mips64el": "0.25.12", + "@esbuild/linux-ppc64": "0.25.12", + "@esbuild/linux-riscv64": "0.25.12", + "@esbuild/linux-s390x": "0.25.12", + "@esbuild/linux-x64": "0.25.12", + "@esbuild/netbsd-arm64": "0.25.12", + "@esbuild/netbsd-x64": "0.25.12", + "@esbuild/openbsd-arm64": "0.25.12", + "@esbuild/openbsd-x64": "0.25.12", + "@esbuild/openharmony-arm64": "0.25.12", + "@esbuild/sunos-x64": "0.25.12", + "@esbuild/win32-arm64": "0.25.12", + "@esbuild/win32-ia32": "0.25.12", + "@esbuild/win32-x64": "0.25.12" } }, "node_modules/escalade": { @@ -7050,20 +7005,20 @@ } }, "node_modules/eslint": { - "version": "9.38.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.38.0.tgz", - "integrity": "sha512-t5aPOpmtJcZcz5UJyY2GbvpDlsK5E8JqRqoKtfiKE3cNh437KIqfJr3A3AKf5k64NPx6d0G3dno6XDY05PqPtw==", + "version": "9.39.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.1.tgz", + "integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.21.1", - "@eslint/config-helpers": "^0.4.1", - "@eslint/core": "^0.16.0", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.38.0", - "@eslint/plugin-kit": "^0.4.0", + "@eslint/js": "9.39.1", + "@eslint/plugin-kit": "^0.4.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", @@ -7454,27 +7409,170 @@ } }, "node_modules/eslint-plugin-tsdoc": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-tsdoc/-/eslint-plugin-tsdoc-0.4.0.tgz", - "integrity": "sha512-MT/8b4aKLdDClnS8mP3R/JNjg29i0Oyqd/0ym6NnQf+gfKbJJ4ZcSh2Bs1H0YiUMTBwww5JwXGTWot/RwyJ7aQ==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-tsdoc/-/eslint-plugin-tsdoc-0.5.0.tgz", + "integrity": "sha512-ush8ehCwub2rgE16OIgQPFyj/o0k3T8kL++9IrAI4knsmupNo8gvfO2ERgDHWWgTC5MglbwLVRswU93HyXqNpw==", "dev": true, "license": "MIT", "dependencies": { - "@microsoft/tsdoc": "0.15.1", - "@microsoft/tsdoc-config": "0.17.1" + "@microsoft/tsdoc": "0.16.0", + "@microsoft/tsdoc-config": "0.18.0", + "@typescript-eslint/utils": "~8.46.0" + } + }, + "node_modules/eslint-plugin-tsdoc/node_modules/@typescript-eslint/project-service": { + "version": "8.46.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.46.4.tgz", + "integrity": "sha512-nPiRSKuvtTN+no/2N1kt2tUh/HoFzeEgOm9fQ6XQk4/ApGqjx0zFIIaLJ6wooR1HIoozvj2j6vTi/1fgAz7UYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.46.4", + "@typescript-eslint/types": "^8.46.4", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/eslint-plugin-tsdoc/node_modules/@typescript-eslint/scope-manager": { + "version": "8.46.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.46.4.tgz", + "integrity": "sha512-tMDbLGXb1wC+McN1M6QeDx7P7c0UWO5z9CXqp7J8E+xGcJuUuevWKxuG8j41FoweS3+L41SkyKKkia16jpX7CA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.46.4", + "@typescript-eslint/visitor-keys": "8.46.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-tsdoc/node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.46.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.46.4.tgz", + "integrity": "sha512-+/XqaZPIAk6Cjg7NWgSGe27X4zMGqrFqZ8atJsX3CWxH/jACqWnrWI68h7nHQld0y+k9eTTjb9r+KU4twLoo9A==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/eslint-plugin-tsdoc/node_modules/@typescript-eslint/types": { + "version": "8.46.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.4.tgz", + "integrity": "sha512-USjyxm3gQEePdUwJBFjjGNG18xY9A2grDVGuk7/9AkjIF1L+ZrVnwR5VAU5JXtUnBL/Nwt3H31KlRDaksnM7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-tsdoc/node_modules/@typescript-eslint/typescript-estree": { + "version": "8.46.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.4.tgz", + "integrity": "sha512-7oV2qEOr1d4NWNmpXLR35LvCfOkTNymY9oyW+lUHkmCno7aOmIf/hMaydnJBUTBMRCOGZh8YjkFOc8dadEoNGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.46.4", + "@typescript-eslint/tsconfig-utils": "8.46.4", + "@typescript-eslint/types": "8.46.4", + "@typescript-eslint/visitor-keys": "8.46.4", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/eslint-plugin-tsdoc/node_modules/@typescript-eslint/utils": { + "version": "8.46.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.46.4.tgz", + "integrity": "sha512-AbSv11fklGXV6T28dp2Me04Uw90R2iJ30g2bgLz529Koehrmkbs1r7paFqr1vPCZi7hHwYxYtxfyQMRC8QaVSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.46.4", + "@typescript-eslint/types": "8.46.4", + "@typescript-eslint/typescript-estree": "8.46.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/eslint-plugin-tsdoc/node_modules/@typescript-eslint/visitor-keys": { + "version": "8.46.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.4.tgz", + "integrity": "sha512-/++5CYLQqsO9HFGLI7APrxBJYo+5OCMpViuhV8q5/Qa3o5mMrF//eQHks+PXcsAVaLdn817fMuS7zqoXNNZGaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.46.4", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, "node_modules/eslint-plugin-vue": { - "version": "10.5.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-10.5.1.tgz", - "integrity": "sha512-SbR9ZBUFKgvWAbq3RrdCtWaW0IKm6wwUiApxf3BVTNfqUIo4IQQmreMg2iHFJJ6C/0wss3LXURBJ1OwS/MhFcQ==", + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-10.6.0.tgz", + "integrity": "sha512-TsoFluWxOpsJlE/l2jJygLQLWBPJ3Qdkesv7tBIunICbTcG0dS1/NBw/Ol4tJw5kHWlAVds4lUmC29/vlPUcEQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "natural-compare": "^1.4.0", "nth-check": "^2.1.1", - "postcss-selector-parser": "^6.0.15", + "postcss-selector-parser": "^7.1.0", "semver": "^7.6.3", "xml-name-validator": "^4.0.0" }, @@ -7539,33 +7637,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/@eslint/core": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.16.0.tgz", - "integrity": "sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/eslint/node_modules/@eslint/plugin-kit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.0.tgz", - "integrity": "sha512-sB5uyeq+dwCWyPi31B2gQlVlo+j5brPlWx4yZBrEaRo/nhdDE8Xke1gsGgtiBdaBTxuTkceLVuVt/pclrasb0A==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/core": "^0.16.0", - "levn": "^0.4.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, "node_modules/eslint/node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -7843,9 +7914,9 @@ } }, "node_modules/exsolve": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.7.tgz", - "integrity": "sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.8.tgz", + "integrity": "sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==", "dev": true, "license": "MIT" }, @@ -7958,6 +8029,24 @@ "walk-up-path": "^4.0.0" } }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, "node_modules/file-entry-cache": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", @@ -8281,9 +8370,9 @@ } }, "node_modules/get-tsconfig": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.12.0.tgz", - "integrity": "sha512-LScr2aNr2FbjAjZh2C6X6BxRx1/x+aTDExct/xyq2XKbYOiG5c0aK7pMsSuyc0brz3ibr/lbQiHD9jzt4lccJw==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.0.tgz", + "integrity": "sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==", "dev": true, "license": "MIT", "dependencies": { @@ -8382,9 +8471,9 @@ } }, "node_modules/globals": { - "version": "16.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-16.4.0.tgz", - "integrity": "sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==", + "version": "16.5.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.5.0.tgz", + "integrity": "sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==", "dev": true, "license": "MIT", "engines": { @@ -8609,6 +8698,13 @@ "node": "^18.17.0 || >=20.5.0" } }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, "node_modules/html-encoding-sniffer": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", @@ -8674,9 +8770,9 @@ } }, "node_modules/i18next": { - "version": "25.6.0", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-25.6.0.tgz", - "integrity": "sha512-tTn8fLrwBYtnclpL5aPXK/tAYBLWVvoHM1zdfXoRNLcI+RvtMsoZRV98ePlaW3khHYKuNh/Q65W/+NVFUeIwVw==", + "version": "25.6.3", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-25.6.3.tgz", + "integrity": "sha512-AEQvoPDljhp67a1+NsnG/Wb1Nh6YoSvtrmeEd24sfGn3uujCtXCF3cXpr7ulhMywKNFF7p3TX1u2j7y+caLOJg==", "dev": true, "funding": [ { @@ -8694,7 +8790,7 @@ ], "license": "MIT", "dependencies": { - "@babel/runtime": "^7.27.6" + "@babel/runtime": "^7.28.4" }, "peerDependencies": { "typescript": "^5" @@ -9402,13 +9498,13 @@ } }, "node_modules/is-what": { - "version": "4.1.16", - "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz", - "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-5.5.0.tgz", + "integrity": "sha512-oG7cgbmg5kLYae2N5IVd3jm2s+vldjxJzK1pcu9LfpGuQ93MQSzo0okvRna+7y5ifrD+20FE8FvjusyGaz14fw==", "dev": true, "license": "MIT", "engines": { - "node": ">=12.13" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/mesqueeb" @@ -9612,14 +9708,15 @@ } }, "node_modules/jsdom": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-27.0.1.tgz", - "integrity": "sha512-SNSQteBL1IlV2zqhwwolaG9CwhIhTvVHWg3kTss/cLE7H/X4644mtPQqYvCfsSrGQWt9hSZcgOXX8bOZaMN+kA==", + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-27.2.0.tgz", + "integrity": "sha512-454TI39PeRDW1LgpyLPyURtB4Zx1tklSr6+OFOipsxGUH1WMTvk6C65JQdrj455+DP2uJ1+veBEHTGFKWVLFoA==", "dev": true, "license": "MIT", "dependencies": { - "@asamuzakjp/dom-selector": "^6.7.2", - "cssstyle": "^5.3.1", + "@acemir/cssom": "^0.9.23", + "@asamuzakjp/dom-selector": "^6.7.4", + "cssstyle": "^5.3.3", "data-urls": "^6.0.0", "decimal.js": "^10.6.0", "html-encoding-sniffer": "^4.0.0", @@ -9627,7 +9724,6 @@ "https-proxy-agent": "^7.0.6", "is-potential-custom-element-name": "^1.0.1", "parse5": "^8.0.0", - "rrweb-cssom": "^0.8.0", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", "tough-cookie": "^6.0.0", @@ -9640,7 +9736,7 @@ "xml-name-validator": "^5.0.0" }, "engines": { - "node": ">=20" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { "canvas": "^3.0.0" @@ -10149,11 +10245,14 @@ "license": "MIT" }, "node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz", + "integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==", "dev": true, - "license": "ISC" + "license": "ISC", + "engines": { + "node": "20 || >=22" + } }, "node_modules/lunr": { "version": "2.3.9", @@ -10163,9 +10262,9 @@ "license": "MIT" }, "node_modules/magic-string": { - "version": "0.30.19", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.19.tgz", - "integrity": "sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==", + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", "dev": true, "license": "MIT", "dependencies": { @@ -11224,6 +11323,19 @@ "node": ">=8.6" } }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/minimatch": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", @@ -11513,9 +11625,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.26", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.26.tgz", - "integrity": "sha512-S2M9YimhSjBSvYnlr5/+umAnPHE++ODwt5e2Ij6FoX45HA/s4vHdkDx1eax2pAPeAOqu4s9b7ppahsyEFdVqQA==", + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", "dev": true, "license": "MIT" }, @@ -12167,6 +12279,13 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, "node_modules/path/node_modules/inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", @@ -12246,33 +12365,33 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", "engines": { - "node": ">=8.6" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/pinia": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/pinia/-/pinia-3.0.3.tgz", - "integrity": "sha512-ttXO/InUULUXkMHpTdp9Fj4hLpD/2AoJdmAbAeW2yu1iy1k+pkFekQXw5VpC0/5p51IOR/jDaDRfRWRnMMsGOA==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-3.0.4.tgz", + "integrity": "sha512-l7pqLUFTI/+ESXn6k3nu30ZIzW5E2WZF/LaHJEpoq6ElcLD+wduZoB2kBN19du6K/4FDpPMazY2wJr+IndBtQw==", "dev": true, "license": "MIT", "dependencies": { - "@vue/devtools-api": "^7.7.2" + "@vue/devtools-api": "^7.7.7" }, "funding": { "url": "https://github.com/sponsors/posva" }, "peerDependencies": { - "typescript": ">=4.4.4", - "vue": "^2.7.0 || ^3.5.11" + "typescript": ">=4.5.0", + "vue": "^3.5.11" }, "peerDependenciesMeta": { "typescript": { @@ -12551,9 +12670,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", - "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "dev": true, "license": "MIT", "dependencies": { @@ -12621,9 +12740,9 @@ "license": "MIT" }, "node_modules/proj4": { - "version": "2.19.10", - "resolved": "https://registry.npmjs.org/proj4/-/proj4-2.19.10.tgz", - "integrity": "sha512-uL6/C6kA8+ncJAEDmUeV8PmNJcTlRLDZZa4/87CzRpb8My4p+Ame4LhC4G3H/77z2icVqcu3nNL9h5buSdnY+g==", + "version": "2.20.2", + "resolved": "https://registry.npmjs.org/proj4/-/proj4-2.20.2.tgz", + "integrity": "sha512-ipfBRfQly0HhHTO7hnC1GfaX8bvroO7VV4KH889ehmADSE8C/qzp2j+Jj6783S9Tj6c2qX/hhYm7oH0kgXzBAA==", "dev": true, "license": "MIT", "dependencies": { @@ -12993,9 +13112,9 @@ "license": "MIT" }, "node_modules/rollup": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.5.tgz", - "integrity": "sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.3.tgz", + "integrity": "sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA==", "dev": true, "license": "MIT", "dependencies": { @@ -13009,38 +13128,31 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.52.5", - "@rollup/rollup-android-arm64": "4.52.5", - "@rollup/rollup-darwin-arm64": "4.52.5", - "@rollup/rollup-darwin-x64": "4.52.5", - "@rollup/rollup-freebsd-arm64": "4.52.5", - "@rollup/rollup-freebsd-x64": "4.52.5", - "@rollup/rollup-linux-arm-gnueabihf": "4.52.5", - "@rollup/rollup-linux-arm-musleabihf": "4.52.5", - "@rollup/rollup-linux-arm64-gnu": "4.52.5", - "@rollup/rollup-linux-arm64-musl": "4.52.5", - "@rollup/rollup-linux-loong64-gnu": "4.52.5", - "@rollup/rollup-linux-ppc64-gnu": "4.52.5", - "@rollup/rollup-linux-riscv64-gnu": "4.52.5", - "@rollup/rollup-linux-riscv64-musl": "4.52.5", - "@rollup/rollup-linux-s390x-gnu": "4.52.5", - "@rollup/rollup-linux-x64-gnu": "4.52.5", - "@rollup/rollup-linux-x64-musl": "4.52.5", - "@rollup/rollup-openharmony-arm64": "4.52.5", - "@rollup/rollup-win32-arm64-msvc": "4.52.5", - "@rollup/rollup-win32-ia32-msvc": "4.52.5", - "@rollup/rollup-win32-x64-gnu": "4.52.5", - "@rollup/rollup-win32-x64-msvc": "4.52.5", + "@rollup/rollup-android-arm-eabi": "4.53.3", + "@rollup/rollup-android-arm64": "4.53.3", + "@rollup/rollup-darwin-arm64": "4.53.3", + "@rollup/rollup-darwin-x64": "4.53.3", + "@rollup/rollup-freebsd-arm64": "4.53.3", + "@rollup/rollup-freebsd-x64": "4.53.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.53.3", + "@rollup/rollup-linux-arm-musleabihf": "4.53.3", + "@rollup/rollup-linux-arm64-gnu": "4.53.3", + "@rollup/rollup-linux-arm64-musl": "4.53.3", + "@rollup/rollup-linux-loong64-gnu": "4.53.3", + "@rollup/rollup-linux-ppc64-gnu": "4.53.3", + "@rollup/rollup-linux-riscv64-gnu": "4.53.3", + "@rollup/rollup-linux-riscv64-musl": "4.53.3", + "@rollup/rollup-linux-s390x-gnu": "4.53.3", + "@rollup/rollup-linux-x64-gnu": "4.53.3", + "@rollup/rollup-linux-x64-musl": "4.53.3", + "@rollup/rollup-openharmony-arm64": "4.53.3", + "@rollup/rollup-win32-arm64-msvc": "4.53.3", + "@rollup/rollup-win32-ia32-msvc": "4.53.3", + "@rollup/rollup-win32-x64-gnu": "4.53.3", + "@rollup/rollup-win32-x64-msvc": "4.53.3", "fsevents": "~2.3.2" } }, - "node_modules/rrweb-cssom": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz", - "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==", - "dev": true, - "license": "MIT" - }, "node_modules/run-applescript": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", @@ -13179,11 +13291,11 @@ "license": "MIT" }, "node_modules/sax": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", - "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.3.tgz", + "integrity": "sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ==", "dev": true, - "license": "ISC" + "license": "BlueOak-1.0.0" }, "node_modules/saxes": { "version": "6.0.0", @@ -13917,13 +14029,13 @@ } }, "node_modules/superjson": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/superjson/-/superjson-2.2.2.tgz", - "integrity": "sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==", + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/superjson/-/superjson-2.2.5.tgz", + "integrity": "sha512-zWPTX96LVsA/eVYnqOM2+ofcdPqdS1dAF1LN4TS2/MWuUpfitd9ctTa87wt4xrYnZnkLtS69xpBdSxVBP5Rm6w==", "dev": true, "license": "MIT", "dependencies": { - "copy-anything": "^3.0.2" + "copy-anything": "^4" }, "engines": { "node": ">=16" @@ -14109,11 +14221,14 @@ "license": "MIT" }, "node_modules/tinyexec": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.1.tgz", - "integrity": "sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz", + "integrity": "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=18" + } }, "node_modules/tinyglobby": { "version": "0.2.15", @@ -14132,37 +14247,6 @@ "url": "https://github.com/sponsors/SuperchupuDev" } }, - "node_modules/tinyglobby/node_modules/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/tinypool": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz", @@ -14194,22 +14278,22 @@ } }, "node_modules/tldts": { - "version": "7.0.17", - "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.17.tgz", - "integrity": "sha512-Y1KQBgDd/NUc+LfOtKS6mNsC9CCaH+m2P1RoIZy7RAPo3C3/t8X45+zgut31cRZtZ3xKPjfn3TkGTrctC2TQIQ==", + "version": "7.0.19", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.19.tgz", + "integrity": "sha512-8PWx8tvC4jDB39BQw1m4x8y5MH1BcQ5xHeL2n7UVFulMPH/3Q0uiamahFJ3lXA0zO2SUyRXuVVbWSDmstlt9YA==", "dev": true, "license": "MIT", "dependencies": { - "tldts-core": "^7.0.17" + "tldts-core": "^7.0.19" }, "bin": { "tldts": "bin/cli.js" } }, "node_modules/tldts-core": { - "version": "7.0.17", - "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.17.tgz", - "integrity": "sha512-DieYoGrP78PWKsrXr8MZwtQ7GLCUeLxihtjC1jZsW1DnvSMdKPitJSe8OSYDM2u5H6g3kWJZpePqkp43TfLh0g==", + "version": "7.0.19", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.19.tgz", + "integrity": "sha512-lJX2dEWx0SGH4O6p+7FPwYmJ/bu1JbcGJ8RLaG9b7liIgZ85itUVEPbMtWRVrde/0fnDPEPHW10ZsKW3kVsE9A==", "dev": true, "license": "MIT" }, @@ -14342,19 +14426,6 @@ "typescript": ">=4.0.0" } }, - "node_modules/ts-declaration-location/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/tsarch": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/tsarch/-/tsarch-5.4.1.tgz", @@ -14557,16 +14628,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.46.2.tgz", - "integrity": "sha512-vbw8bOmiuYNdzzV3lsiWv6sRwjyuKJMQqWulBOU7M0RrxedXledX8G8kBbQeiOYDnTfiXz0Y4081E1QMNB6iQg==", + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.48.0.tgz", + "integrity": "sha512-fcKOvQD9GUn3Xw63EgiDqhvWJ5jsyZUaekl3KVpGsDJnN46WJTe3jWxtQP9lMZm1LJNkFLlTaWAxK2vUQR+cqw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.46.2", - "@typescript-eslint/parser": "8.46.2", - "@typescript-eslint/typescript-estree": "8.46.2", - "@typescript-eslint/utils": "8.46.2" + "@typescript-eslint/eslint-plugin": "8.48.0", + "@typescript-eslint/parser": "8.48.0", + "@typescript-eslint/typescript-estree": "8.48.0", + "@typescript-eslint/utils": "8.48.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -14753,19 +14824,6 @@ "url": "https://github.com/sponsors/sxzz" } }, - "node_modules/unplugin-utils/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/unrs-resolver": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz", @@ -14802,9 +14860,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", - "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz", + "integrity": "sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==", "dev": true, "funding": [ { @@ -14883,9 +14941,9 @@ } }, "node_modules/vite": { - "version": "7.1.11", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.11.tgz", - "integrity": "sha512-uzcxnSDVjAopEUjljkWh8EIrg6tlzrjFUfMcR1EVsRDGwf/ccef0qQPRyOrROwhrTDaApueq+ja+KLPlzR/zdg==", + "version": "7.2.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.2.4.tgz", + "integrity": "sha512-NL8jTlbo0Tn4dUEXEsUg8KeyG/Lkmc4Fnzb8JXN/Ykm9G4HNImjtABMJgkQoVjOBN/j2WAwDTRytdqJbZsah7w==", "dev": true, "license": "MIT", "dependencies": { @@ -15075,19 +15133,6 @@ } } }, - "node_modules/vite-plugin-checker/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/vite-plugin-commonjs": { "version": "0.10.4", "resolved": "https://registry.npmjs.org/vite-plugin-commonjs/-/vite-plugin-commonjs-0.10.4.tgz", @@ -15220,15 +15265,15 @@ "license": "Apache-2.0" }, "node_modules/vite-plugin-vue-devtools": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/vite-plugin-vue-devtools/-/vite-plugin-vue-devtools-8.0.3.tgz", - "integrity": "sha512-yIi3u31xUi28HcLlTpV0BvSLQHgZ2dA8Zqa59kWfIeMdHqbsunt6TCjq4wCNfOcGSju+E7qyHyI09EjRRFMbuQ==", + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/vite-plugin-vue-devtools/-/vite-plugin-vue-devtools-8.0.5.tgz", + "integrity": "sha512-p619BlKFOqQXJ6uDWS1vUPQzuJOD6xJTfftj57JXBGoBD/yeQCowR7pnWcr/FEX4/HVkFbreI6w2uuGBmQOh6A==", "dev": true, "license": "MIT", "dependencies": { - "@vue/devtools-core": "^8.0.3", - "@vue/devtools-kit": "^8.0.3", - "@vue/devtools-shared": "^8.0.3", + "@vue/devtools-core": "^8.0.5", + "@vue/devtools-kit": "^8.0.5", + "@vue/devtools-shared": "^8.0.5", "sirv": "^3.0.2", "vite-plugin-inspect": "^11.3.3", "vite-plugin-vue-inspector": "^5.3.2" @@ -15241,13 +15286,13 @@ } }, "node_modules/vite-plugin-vue-devtools/node_modules/@vue/devtools-kit": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-8.0.3.tgz", - "integrity": "sha512-UF4YUOVGdfzXLCv5pMg2DxocB8dvXz278fpgEE+nJ/DRALQGAva7sj9ton0VWZ9hmXw+SV8yKMrxP2MpMhq9Wg==", + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-8.0.5.tgz", + "integrity": "sha512-q2VV6x1U3KJMTQPUlRMyWEKVbcHuxhqJdSr6Jtjz5uAThAIrfJ6WVZdGZm5cuO63ZnSUz0RCsVwiUUb0mDV0Yg==", "dev": true, "license": "MIT", "dependencies": { - "@vue/devtools-shared": "^8.0.3", + "@vue/devtools-shared": "^8.0.5", "birpc": "^2.6.1", "hookable": "^5.5.3", "mitt": "^3.0.1", @@ -15257,9 +15302,9 @@ } }, "node_modules/vite-plugin-vue-devtools/node_modules/@vue/devtools-shared": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-8.0.3.tgz", - "integrity": "sha512-s/QNll7TlpbADFZrPVsaUNPCOF8NvQgtgmmB7Tip6pLf/HcOvBTly0lfLQ0Eylu9FQ4OqBhFpLyBgwykiSf8zw==", + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-8.0.5.tgz", + "integrity": "sha512-bRLn6/spxpmgLk+iwOrR29KrYnJjG9DGpHGkDFG82UM21ZpJ39ztUT9OXX3g+usW7/b2z+h46I9ZiYyB07XMXg==", "dev": true, "license": "MIT", "dependencies": { @@ -15294,37 +15339,6 @@ "vite": "^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0" } }, - "node_modules/vite/node_modules/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/vite/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/vitest": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz", @@ -15398,19 +15412,6 @@ } } }, - "node_modules/vitest/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/vitest/node_modules/tinyexec": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", @@ -15426,17 +15427,17 @@ "license": "MIT" }, "node_modules/vue": { - "version": "3.5.22", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.22.tgz", - "integrity": "sha512-toaZjQ3a/G/mYaLSbV+QsQhIdMo9x5rrqIpYRObsJ6T/J+RyCSFwN2LHNVH9v8uIcljDNa3QzPVdv3Y6b9hAJQ==", + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.25.tgz", + "integrity": "sha512-YLVdgv2K13WJ6n+kD5owehKtEXwdwXuj2TTyJMsO7pSeKw2bfRNZGjhB7YzrpbMYj5b5QsUebHpOqR3R3ziy/g==", "dev": true, "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.5.22", - "@vue/compiler-sfc": "3.5.22", - "@vue/runtime-dom": "3.5.22", - "@vue/server-renderer": "3.5.22", - "@vue/shared": "3.5.22" + "@vue/compiler-dom": "3.5.25", + "@vue/compiler-sfc": "3.5.25", + "@vue/runtime-dom": "3.5.25", + "@vue/server-renderer": "3.5.25", + "@vue/shared": "3.5.25" }, "peerDependencies": { "typescript": "*" @@ -15492,14 +15493,14 @@ } }, "node_modules/vue-tsc": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.1.1.tgz", - "integrity": "sha512-fyixKxFniOVgn+L/4+g8zCG6dflLLt01Agz9jl3TO45Bgk87NZJRmJVPsiK+ouq3LB91jJCbOV+pDkzYTxbI7A==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.1.5.tgz", + "integrity": "sha512-L/G9IUjOWhBU0yun89rv8fKqmKC+T0HfhrFjlIml71WpfBv9eb4E9Bev8FMbyueBIU9vxQqbd+oOsVcDa5amGw==", "dev": true, "license": "MIT", "dependencies": { "@volar/typescript": "2.4.23", - "@vue/language-core": "3.1.1" + "@vue/language-core": "3.1.5" }, "bin": { "vue-tsc": "bin/vue-tsc.js" @@ -15508,10 +15509,39 @@ "typescript": ">=5.0.0" } }, + "node_modules/vue-tsc/node_modules/@volar/language-core": { + "version": "2.4.23", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.23.tgz", + "integrity": "sha512-hEEd5ET/oSmBC6pi1j6NaNYRWoAiDhINbT8rmwtINugR39loROSlufGdYMF9TaKGfz+ViGs1Idi3mAhnuPcoGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/source-map": "2.4.23" + } + }, + "node_modules/vue-tsc/node_modules/@volar/source-map": { + "version": "2.4.23", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.23.tgz", + "integrity": "sha512-Z1Uc8IB57Lm6k7q6KIDu/p+JWtf3xsXJqAX/5r18hYOTpJyBn0KXUR8oTJ4WFYOcDzWC9n3IflGgHowx6U6z9Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/vue-tsc/node_modules/@volar/typescript": { + "version": "2.4.23", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.23.tgz", + "integrity": "sha512-lAB5zJghWxVPqfcStmAP1ZqQacMpe90UrP5RJ3arDyrhy4aCUQqmxPPLB2PWDKugvylmO41ljK7vZ+t6INMTag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.23", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" + } + }, "node_modules/vue-tsc/node_modules/@vue/language-core": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.1.1.tgz", - "integrity": "sha512-qjMY3Q+hUCjdH+jLrQapqgpsJ0rd/2mAY02lZoHG3VFJZZZKLjAlV+Oo9QmWIT4jh8+Rx8RUGUi++d7T9Wb6Mw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.1.5.tgz", + "integrity": "sha512-FMcqyzWN+sYBeqRMWPGT2QY0mUasZMVIuHvmb5NT3eeqPrbHBYtCP8JWEUCDCgM+Zr62uuWY/qoeBrPrzfa78w==", "dev": true, "license": "MIT", "dependencies": { @@ -15533,25 +15563,12 @@ } }, "node_modules/vue-tsc/node_modules/alien-signals": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-3.0.3.tgz", - "integrity": "sha512-2JXjom6R7ZwrISpUphLhf4htUq1aKRCennTJ6u9kFfr3sLmC9+I4CxxVi+McoFnIg+p1HnVrfLT/iCt4Dlz//Q==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-3.1.1.tgz", + "integrity": "sha512-ogkIWbVrLwKtHY6oOAXaYkAxP+cTH7V5FZ5+Tm4NZFd8VDZ6uNMDrfzqctTZ42eTMCSR3ne3otpcxmqSnFfPYA==", "dev": true, "license": "MIT" }, - "node_modules/vue-tsc/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/w3c-xmlserializer": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", @@ -16154,9 +16171,9 @@ } }, "node_modules/yocto-queue": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz", - "integrity": "sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz", + "integrity": "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==", "dev": true, "license": "MIT", "engines": { From 3ce948761d16b1f84fb8480c69b2861d02dba9e0 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Thu, 27 Nov 2025 13:09:43 +0100 Subject: [PATCH 650/697] refactor(core): change the inset shadow to be on the :before pseudo-element --- src/core/components/PolarUI.ce.vue | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/core/components/PolarUI.ce.vue b/src/core/components/PolarUI.ce.vue index cae365122..e6c44bca4 100644 --- a/src/core/components/PolarUI.ce.vue +++ b/src/core/components/PolarUI.ce.vue @@ -39,10 +39,20 @@ const layout = computed(() => { } .polar-shadow { - border-radius: var(--kern-metric-border-radius-large); - box-shadow: - inset 0 1px 1px 0 rgba(53, 57, 86, 0.5), - inset 0 1px 2px 0 rgba(53, 57, 86, 0.5), - inset 0 1px 6px 0 rgba(110, 117, 151, 0.5); + &::before { + content: ''; + position: absolute; + box-shadow: + inset 0 1px 1px 0 rgba(53, 57, 86, 0.5), + inset 0 1px 2px 0 rgba(53, 57, 86, 0.5), + inset 0 1px 6px 0 rgba(110, 117, 151, 0.5); + top: 0; + right: 0; + left: 0; + bottom: 0; + z-index: 1; + border-radius: var(--kern-metric-border-radius-large); + pointer-events: none; + } } From a2fdf5d04303319ace764945b9cb3199ca7e4b5f Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Thu, 27 Nov 2025 13:10:48 +0100 Subject: [PATCH 651/697] refactor(core): reserve space if footer is configured --- src/plugins/iconMenu/components/StandardFocusMenu.ce.vue | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/iconMenu/components/StandardFocusMenu.ce.vue b/src/plugins/iconMenu/components/StandardFocusMenu.ce.vue index c47b4beee..081104fce 100644 --- a/src/plugins/iconMenu/components/StandardFocusMenu.ce.vue +++ b/src/plugins/iconMenu/components/StandardFocusMenu.ce.vue @@ -55,7 +55,9 @@ const bottom = computed( clientHeight.value - moveHandleTop.value, clientHeight.value / 4 ) - : 0 + : coreStore.getPluginStore('footer') === null + ? 0 + : 32 }px` ) const maxHeight = computed(() => From e85bbaa7255a106fe134ed73baf0c564669fda23 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Thu, 27 Nov 2025 13:11:25 +0100 Subject: [PATCH 652/697] feat(footer): add ui for the footer --- .../footer/components/PolarFooter.ce.vue | 49 ++++++++++++++++++- 1 file changed, 47 insertions(+), 2 deletions(-) diff --git a/src/plugins/footer/components/PolarFooter.ce.vue b/src/plugins/footer/components/PolarFooter.ce.vue index f001c59a9..f05b89145 100644 --- a/src/plugins/footer/components/PolarFooter.ce.vue +++ b/src/plugins/footer/components/PolarFooter.ce.vue @@ -1,7 +1,52 @@ + + From c0039138f5584a7276049f13bbcb24a835596bb9 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Thu, 27 Nov 2025 13:11:50 +0100 Subject: [PATCH 653/697] feat: add footer including mock plugins to snowbox --- examples/snowbox/MockPointerPosition.ce.vue | 23 +++++++++++++++++++++ examples/snowbox/MockScale.ce.vue | 20 ++++++++++++++++++ examples/snowbox/index.js | 12 +++++++++++ 3 files changed, 55 insertions(+) create mode 100644 examples/snowbox/MockPointerPosition.ce.vue create mode 100644 examples/snowbox/MockScale.ce.vue diff --git a/examples/snowbox/MockPointerPosition.ce.vue b/examples/snowbox/MockPointerPosition.ce.vue new file mode 100644 index 000000000..bc84ee1e6 --- /dev/null +++ b/examples/snowbox/MockPointerPosition.ce.vue @@ -0,0 +1,23 @@ + + + diff --git a/examples/snowbox/MockScale.ce.vue b/examples/snowbox/MockScale.ce.vue new file mode 100644 index 000000000..2fa886316 --- /dev/null +++ b/examples/snowbox/MockScale.ce.vue @@ -0,0 +1,20 @@ + + + diff --git a/examples/snowbox/index.js b/examples/snowbox/index.js index a040eb3ce..becc8863f 100644 --- a/examples/snowbox/index.js +++ b/examples/snowbox/index.js @@ -6,6 +6,7 @@ import { subscribe, updateState, } from '@polar/polar' +import pluginFooter from '@polar/polar/plugins/footer' import pluginFullscreen from '@polar/polar/plugins/fullscreen' import pluginIconMenu from '@polar/polar/plugins/iconMenu' import pluginLayerChooser from '@polar/polar/plugins/layerChooser' @@ -15,6 +16,8 @@ import styleJsonUrl from './style.json?url' import services from './services.js' import YetAnotherEmptyComponent from './YetAnotherEmptyComponent.vue' import GeoLocationMockCe from './GeoLocationMock.ce.vue' +import MockPointerPosition from './MockPointerPosition.ce.vue' +import MockScale from './MockScale.ce.vue' const basemapId = '23420' const basemapGreyId = '23421' @@ -265,6 +268,15 @@ addPlugin( ], }) ) +addPlugin( + map, + pluginFooter({ + entries: [ + { id: 'mockPointer', component: MockPointerPosition }, + { id: 'mockScale', component: MockScale }, + ], + }) +) const toastStore = getStore(map, 'toast') toastStore.addToast({ From 0257ed7a92e140ba733b375645c5e75e48312f41 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Thu, 27 Nov 2025 13:48:00 +0100 Subject: [PATCH 654/697] feat: add mock attributions button --- examples/snowbox/MockAttributions.ce.vue | 16 ++++++++++++++++ examples/snowbox/index.js | 2 ++ 2 files changed, 18 insertions(+) create mode 100644 examples/snowbox/MockAttributions.ce.vue diff --git a/examples/snowbox/MockAttributions.ce.vue b/examples/snowbox/MockAttributions.ce.vue new file mode 100644 index 000000000..b1557ab80 --- /dev/null +++ b/examples/snowbox/MockAttributions.ce.vue @@ -0,0 +1,16 @@ + + + diff --git a/examples/snowbox/index.js b/examples/snowbox/index.js index becc8863f..049dfbaa5 100644 --- a/examples/snowbox/index.js +++ b/examples/snowbox/index.js @@ -18,6 +18,7 @@ import YetAnotherEmptyComponent from './YetAnotherEmptyComponent.vue' import GeoLocationMockCe from './GeoLocationMock.ce.vue' import MockPointerPosition from './MockPointerPosition.ce.vue' import MockScale from './MockScale.ce.vue' +import MockAttributions from './MockAttributions.ce.vue' const basemapId = '23420' const basemapGreyId = '23421' @@ -274,6 +275,7 @@ addPlugin( entries: [ { id: 'mockPointer', component: MockPointerPosition }, { id: 'mockScale', component: MockScale }, + { id: 'mockAttributions', component: MockAttributions }, ], }) ) From 20d681f16c73c2710fbdac684178d205e6761c08 Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Thu, 27 Nov 2025 14:01:35 +0100 Subject: [PATCH 655/697] feat(footer): split entries apart for easier placement of content --- examples/snowbox/index.js | 4 +-- .../footer/components/PolarFooter.ce.vue | 12 +++++--- src/plugins/footer/store.ts | 28 +++++++++++++------ src/plugins/footer/types.ts | 9 ++++-- 4 files changed, 37 insertions(+), 16 deletions(-) diff --git a/examples/snowbox/index.js b/examples/snowbox/index.js index 049dfbaa5..c74fc09e8 100644 --- a/examples/snowbox/index.js +++ b/examples/snowbox/index.js @@ -272,8 +272,8 @@ addPlugin( addPlugin( map, pluginFooter({ - entries: [ - { id: 'mockPointer', component: MockPointerPosition }, + leftEntries: [{ id: 'mockPointer', component: MockPointerPosition }], + rightEntries: [ { id: 'mockScale', component: MockScale }, { id: 'mockAttributions', component: MockAttributions }, ], diff --git a/src/plugins/footer/components/PolarFooter.ce.vue b/src/plugins/footer/components/PolarFooter.ce.vue index f05b89145..347d6bc95 100644 --- a/src/plugins/footer/components/PolarFooter.ce.vue +++ b/src/plugins/footer/components/PolarFooter.ce.vue @@ -2,7 +2,12 @@
kern-loader
kern-loader

RN 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 B*vtR` diff --git a/src/plugins/loadingIndicator/assets/SpinnerLoader.gif b/src/plugins/loadingIndicator/assets/SpinnerLoader.gif index ec37f160d3663d876c4917d272f37a328a7c0134..6af68a10905c8a7b109fc390f360de2c49bf4d59 100644 GIT binary patch literal 192183 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

1y zm?7y>(-ii=e}0*>J8P@py9LHzNVWoQ;I`0J`rHjA+P}4Oss!Essy19Iim=k9&oqv$wnJH0ofEMU8tg^)Mpg1u$9%a!msJ1cEVEHh^K3}{fg5*Is=LKWh zrkYOUJ}CEV^R$fX5G=E#<2eGS^=zD4PjsX1>8T=%PumXB1vLDpjNH{SS!y2W^j+rD z`a;dj-rn<5I8xv9^h3`5TO7G4nzQ8n!@QRRBc6CuYD5tT_}p9=&oqoaMmlNs6|7%z z&E_CFh<%xnep1!BvEL{?T*Wd|yt20Tn)JQehl%Bts@m7pC9bDOJy+--{7H;FYaDL) zC{5|9?VhTbs!Z(lBr`_aw^hgPij!$^dOWZ;7h`K6eQQ+ETQs>4%NhK&-%C7D)pp^e zTJJlqV2`HYtIa#~Q|>Wy(h|=+>n|g@s&hq%U(+85lX_a%#c~;oC0=UXN&7M}ZfD1( z{_dP;^j86`8HKk!k#)nM=EA}`MNpz z(ZuP|G%wp5qgT6Y7xzxectQ}=gO=aK#ZT&D6!QfoU_vjdQw3S8lI2s{AoMnPQUs0! zdLWF0FbM~8nleZUb)?7`6pb6FDLi_5EZUmWv^MWJ=8h{W*dWJ~!&;OJf*`?L?+=)? zVmKjM^Ny&brCgI`ga%cUt_UYK`g% zYH+;gq>y2BK4(^2$UmxZ{N4+y>ky5Y>lBO9S?n&XC+5vYzU|dOz481}HUyqv&pg&Z zg-hlokM=n+66a>ePFm!gfRR;4pXl4T(eT|2=8uchoR=>+eroLH@m#|`vM^e-j9xYV zq%n^38Y>TyWb;)+1!)|fGsK4QD|b&YBb*5%)K2Lnvqq2oVJBW%kbIv^z&dd3!vTuJ zZH{vP1*v163Qi4g-qhwuHEM;m%SkMG&UH#}#*{Rc@=EI?Ogt%5%$7B)p2~Ze13cI{ zfmXboomzg)N&t(xjYpQt|AaR8SmC@uh2ZRypytuLp}4Uh?n5#6 zLA>BhBH65q?IwMyQm~t!Pc~e~G_WZzyYBXd^gv+&T=%#o36@sjQZ}bqFR75*`5DSv zp4Zs-D^(s%6r#PP%27R)XMU}|1`b$vpUA>o+##pcav(iZLl&JUqF?Wip2rUTfo>{*#L z+;e$vZ(?25*$mFBx6P@ZaGxjn9>Q1Ol zW4bV_rXD``c=L!c+JccC4X`stfEJSki*JG~_#I{~S2OS5sC9=X|2 z`(>?1h9ZQEEb_SnCHttb>gpTkr!Dt(C7wBynLqoPLe4Q4%V@q5!WG?g#-5D>U8Y1;r6**8jFKd(N;H_IQ!I__upI6?H!V-Bu)V7!JEm|zDBV}!=eM8r z5_$)NsaCRc^^n!)ss$M0ov3AXkIpnK+kEy<3L;tkgcgr*|Pp z$-v20Ef3lZm9;ZGGxso9bM55W7bk7KmF!Jz9sAB5EVzBZ0*4BF01qUH;=`ImF< zU3%^YS2E|1zrcpIu35}_K`Pd6a0G?3*+;v0dm5mO6B@+D$U11i?Cd1a;nj1noHD&SJa{Bw6(%ztFe2Z_zhGz@i$)JZMO0I z{DHzSxf44#(!ZDr?;O*aXU)7qrZXQSj$)>KYfgg-I3pggUud$o9~Y3P8j(wPYD?ZX zn43d}!8MTUtS7Z)_rih{22-P?>MKT*25zMnS7F|w%B_)3u3X)#9 z;*B80sFvU<`7cl%(>M@A5U+@{qO@I!e2@c}{vO)gDOUs$6?T?qAL!opPh+ z$3w1rP@F^ih=?V31u0ScM9@+w`fy>^FcLaYN}^dRm);fQN{OagopA%0JW0~}xW_WW zb7c*w;$z+aRv`X%+-tJ07W+CGYmQMn7)qMVA8TL!03&}!1amMASm|btVU9X7! zdcuVz4Ng2M%RDrU(V$#}On(G6976fOl5{BX;q0(+p zL$_RM98_!smR1#PW<#dd2Gv_PrWJRw_jZxo7n6!S0bAz@s7d^YqMG-}HFSdt+d!rC zpvuM6Wo~gbKGa1B#Sq?*aO2Pm3|8T|tm8PnP#(UQ&NlFy5)BwKePO654l3nVpzbT= zSIvf@P;?33oRT&JMwuV6+bFbewz8;S`jw-e^3B=bAi zKPDj3u{rYjtTr&lgHbg3C>bk@5@8ls(X6Gy5c2Dqq&>n_xreig#Yd zBhXOaLMdb}8&zJ*LdCCkG+UnGqY3C4PN*mnio>Tk5Um(jt>!slmsfLb-RTNdIh+j3v@a~eTvRl0VJj7F7spX>4ROGIaeYvu{0g7YO|k$jEMwd?bB0vh9g`XRq+-`A;m`!oGjV>$H&ie z#}qSE@9my^VTaJNfz?Jd=AbVcUc6|Mc+uj;#Y=BtBErzT^}3h>wnp2qT^|nt_v1Mm zl;ff;DmH5BGL@U|HY<9~9ubjKj)ot1mChi^LULK4^(+ig2=)WgUXRfyO;g7-XG|L&>LaR@EAp}lP z_^&Pmemi}R@^h(7b~8J*Vnh6auyL;Gdq-s)uA`tW%&U-jGM>8_Y9J)XtQALFy=CYe zs3t1cxgjRkP=%-oK`@~7!jW!)5J~gPVVQ6a!aU-An2WnJZFRg%q==tHbh*wfNAEW@ z>AJf4maBFHNmm!!59iswHtBD75&oE3W+)U zvgRfXsai~C6C5fJ`94z8`rhQId)cM)UQFpbrQ)vf2CnV|_iei29Y5^)Gzi zI_pEwz3xNy)9#p(UMJ;C&81RkhGEt58Hq5Qj?w9B;f4tNUb=`xF%>;j*<@_2w zSj&m(SfuFH>wL&Qawhov1x1(x*Ri#ZkkITgUPWB-P3JV;xNkeLVN*8}mVE3w6OGWv zF8pMA>VRC4VpegZ;%XEgUKh(S9C*(yJ2%UFMnt4H{>;Ia>Bq4vGc~TGr%tc$oig7$ z;Tw93ZPDK9obK&$vcm5NavP|LIh>we&a)_k&Sndkp^xIeoK&N2={0H&+MgGA-%F4! z(0t34Ahnn9dUE=-o@m$<)ac6SU9FU;Dmewuo*mBfA=xS_qr4>x3_Kj-xSb}6_cOiU znu^)tPBN-Q%J)ZjOjXpJ8@rNqPwEWJ$gV(eI<(U8_yEUQ6py;U#g$Z!dMmMwcs1vr zP2>yE&BwExZV=qV$FfM60*?4qcHF3M)SR$%n_J8oYrg;F*Atp=LHv_q z^H8Et)pqMB?hZ}Wyo%w$FjW$CLm45zT(taC6}Bg1+y-s-8@=?-(&`gz;S)~+gRu5% z9=NKI%sNkA#x48@A%mcMi;^-v8beCz#Bc|s9_5sAYPF3=n$jSD*hG?uTv3Gh%ae62 za35NI0y=wXL`@+odjuMWKi#rqbE)QZtmEkiUSU0pH9u}GpwBOyq|nls$Rn>}Fjmx4 zU19SZC+oC=9Z=7rGX_`mG%mFZM$w-pFktYx3ElX`Jle}jFC69TX=L6n=@O9*oTs}# zonY8X6M%?Ndt2Y?m(7Bz_i!Ub^M>?lM%H(ZDVjPinsG~;Y7Vc{H)zn@ zS&L%$X|(dvcy#Ll<>Og4i87;w4y0Eem4*8IUx6ik#o~mcLSaltdDbczYJ)GkUX@_pLfBB)>`0Ccc736vk|Jz*Ab z?)$!PXr+p>ffYFoK16N8o*w%lz%%q1VcB{-o?0$+cYA?Mr_4smB2UmZ%K8?mo^0ED z2|Kmopv}8oD(?5FB;7wog$%Oh&{tS(4>~g_&7Euy;v?Xys#>Y`a#-|RlyBQvKmMf~ zg6wQpWTtl^!(G4>i z$T>BN>ZO&PTuJ(xzSp~-L^3XW=?6N1P3TE7%D76lDpRN~6Z-h0#LI1^J2yU0kuE=q zm3!AkADXQ{YWwok#hx3ZMgoL5J>l(%I-1!X+ajaQ%O8-9l@W$#aL+fXCf&J_wbtGS zd;Dfd-ENl2W}0Bqtgk=b{}8=D%)b+rN3FtTGj9Mp$7P47LztLYnT43(WFn47$S8-z z#>JXw;tow*fTRvmC>lS=EXOpHxU z(@ZQ2r{m|Fl^ic2J#(7oiqSs7{)Vg%;QNm-)>o89T;uncL3_U!wCl!1ficDK< z8`6gix~W(Scw*JQ)j;y7k}h>jIB$oY?3F(eMD%>My{XUnI~jlgyIVkj1VbWAf+GnA z$pA*NKtQWl!k|pXq+G_N5@%VhZeMTU+GOMX)WNU)T2Plqc<=4#{-DHXVJX9j`4eeH zlNqJcxs|U9>t;(EUw00!JfD0&yRfzJcKg?_U;kmIlO1I9#yB{;BzJKJBVmw0;W5uQ z-gnKPk^E@0aT}>zi|Ol^?{ob{%aB)VBqCj*t>_rpg{_>w4C(CFhb+_z<4!(cUvC^) zI4-#CJ)c|N_nnl|@piynKLfhpU^+F%hzJWAR;QQ%QdXHe#Na@wdug#!WLXhpe5i*p zDBkmh!BC^Jm^cigDgwdHS|5|lhI|}>tZfT!Wb2AxW9kcLdOCC$88qTer8(gZhfI6V z%+Ad(EG{iCzj><-nOf6=kH43vdj3fsIk+pY@)cT+X$^i>DO`C;RM>4SviF_xZP{<#M?vE+N2R$Smu;^hvqe_dFhFTAqMxY2^+mh6STia8tc1w>yeO%mqtB`g?59{~Q~q zd_JFQ;c1Ox5xr6n=$yBxlDDeXb!xnLz1hn1Fw^mj=nYO94o@42&mB*BGzrF*Q~nZ+ zt-Se7Rm&X6bh@6cg2_$JZZ5Cxe%$){dGFi5=0|p5!w1F|X7@Y!--yx%f&r-*XkyqLQcXGU;6QF$h2fvh$>MAk5hGb9z(`S5<=BKt7YTV z6I0t>(a&Idsg{F%7^}-}zLA)~t5}%enO8&`Y3MrFNLl=a&;e)yFLeNQ7!N!E9*u_@(y5ZHQf%U5QsUxuQ(#HZbZFB3l*D+_ zbkd~s)aW6S!J*Ogq`s7a_%7np_N118)`s-v=-Pn#=*pDp_|lZ}_`;Op_`H;Y`0SM2 z_y;MOr=j#YS%c8mov2pG6TN<)+*bm-28y?77FTbS_)3-A)tnZ=A$|@zDPn z50}E>gA>+0d~IMtDzt-e@pf(n9e(#(LEF%WFWrkMB>5xKUJqZzI zTj)L0(Bk2?G^dcU_@$CtrL@b_wuzJXTCU-~px|;!5xxpWh0IExB20{dB#dsJ49F0q zQ6P;^Aca#PTs{yc6POl~k(rg9llw3)zaT5!oiy1KM)ZWo`^I?ELn)@O|9nT2K}o|0J6YQ-U{#W zj~xUtG&o0awX@5oOB!C6f(-iULSx4wIMBY4cQ0l(r{8=8%jUzUFaN?TaFk>RoZy0= zyo|b!Cg@?ch^Zdeq9*7`{6E5}2Ck{q@cZ{+akgBt90UAg3$@NMV*eQm!uD4WK^b@6RlS2)vDuM1}gJBp^|@A>zn5ey_n=&GYAGcyyZqLsjBVg*jVkPs+|#=gvmo>_Sh|YEMJaVMh_$W7a?LZ20-e z=-Bwgi^;m7aY*+IiuM;YPhQYBy|AhsYhbS!uVybEFT+gaj`?tBj^Gp$79 zwNtQck!cde`h6^zWB6#A=BnQ06PSlOuerC$C)v-ij>XyC3WcWVI%;4e8x10&H0brH z^?l4b`Z##SuP);r!NTLxrSuAI79gR~30z0z0LbAk5d?#g{u_B732K#q+bv^Ue%`!F z$+k|bR534(q)GV?Q=TIF>i+ji!I$O&|KwjgI=YJ9XfKGgZ%9JIb|pW|YexOsVF# z%&2ESYtv1C)uEsGNzlVH2_upn$?ixmwF%i&+fa}qm)cG*opbCrir{aiGWg(4AaU*3RDj`#|-H;g=+MGxBv_zW1GFut~U3m=& zofoRM7Ujay)Rb;<+^@A9a@-=OtCq@~d7zcqjO=+6nJRjs6|EBTvKFSy_@UPaK=YA6>+xJ?w%AdEC+b7zLY0>Pi`E6|qM&!-sV9GXaU3yRf z>mhO6Vvj0}{cf-WZlO<=k~&j-88<(09{uCV`-k##TIV^HrXS0wWQ5=Kmg^m1XcsC> zx&1j>Ve6z)`q)h+xnY<|*V|{;R0>|#dUd^g=46&o=1`zKtzmEJn*r+~o9eZ?>R?st z8TLZaG|K3g;fr_UPxbSZOcNSTeu`6B!?Fq~gq!Dft8P<2_{@h~?z?XJtjgafDp@LS zDEplNe}4k6U!GnSq1z4lZ|MH}N*yjgwW5>ipgvRv_TM2l0l4jQ$W4Gw0GH{;KlFr< z`0VI1#pnE?ok#Sfx^@0>_fp5;O7F-!z&U3Yw&s_2RyRJs`>+SL;FT3 z&=z-ir6STOp!z_C5FiARQTB@IQe$s3YLfX%Q#n)1`nB2-2CnEiH({u+jMRr>_@gN4_FJ!NFEZ{ zGt0A~>;!mi8T>YFb2+UG^V8ZZP9a@|Feg-hEz11FaPtW>y75{%Gr#FFQd7p)wTvcB zi;q<~R%Q7w6^c(~6e_cyv*(o9zm+wFQh&cakb8f*%@h?15Q$$Pu$ipKD z5y?oTNZ2T(YrSyHY3c%t>K}ptUS24%Js@?#}|kC={FqSfzVNeZk!V z#LC32#nR)6y>FWHI+(ULgU986wQBABN@cbt)UZYJMj$)T5-IzkEIm z(Tryd578`iwX!p5!hHDAwCdKf2!yJDt~lBh~9Ol zWFN%!r1XGPi%U5^l$I<7A+h>&B>{96WR*T-226DUO!~-XAEZ8bGk&U3UCt2I;(nJh zX@+4J1{KW{x#l&A69#^7b9%2|3 zbCLdvan)Dz4$VRl2VFf|B2U>pY(QpXca{AK1}>!)raw9r7V_6*|K@x^rk+wSI&WU7 zW`8(VfESnVw1c$+8iz+~=l;WSph)Z5763F19MXxyRWtu~=i}Cw|1)I<&l|{8o)`yp zl_7mJoFUaspfiSawsB#||BNIw9VzVeC8j{tjh|gEPERASUqCNgl`OHiZ4VPDDE4W4 z0BLusgZ+M91AYC;tpeU<9{G%uZL#crMrZHB1GV6H8AFZkBBQjB-c+%QRNgS60?a#A z@g_rt0)s0}jB{Iy?IRAv4n+-z zjs%YRO?Xb;n0BsisI#sps48kGv(7Imw9YPh_$vBlO3s6u_j8hN#^l7OcLxLTCvjw3 zzA}lqao0%j)N1duhtd&B*&?;Pxd`FFK2!D_N8RLmn7oN9$j#scaUBhG0!ej#_yD~` z%9^(`B!rSlXejtEjwc767~7vGCZ-Pzog<#k*== zk0v33)HHqJC);6HlSwZa*e&GgDKFb2#`O={u|l;R*i@EU!w>h z8#sSJ#DGTw@J-vP@$fBp91=0WuEF^SBn*b9J&#Bm0lNM{@nli`>)NODPy62vjc-i7 z{s?H-*3SPp@T1*EHU`|aTx`5kv3%URi}p_Opy(s@oA*;~9nPXcacwY(WZeACS`v~Z z`?qE?2ARaAWf>Wb%ttoMtTN{_V;?TPla|b^=3MHR7Rs#8UM!O4&6Jf#=pt0%x^Pu; zU2;`2T{2aeE-Znl3e|^$(%96%NLyE5UR_gFQCaoe z1ywegT{ek*k$r)EUZKA!?Rju}nf}~fz+?gQko#?nXkM;AIz6x*0PO%*Hzau&h{hvf za&%oEcP#lqkvV+$?hPbk*0@pB4^Wm+sztnE`UhLuIdpZ;13i-Vw#g2?h>;W@DsnL*SKVrf%?P>HeVnArG<$nwyj2*TYEraO1>FMK_Gy}8}I zZgD?zz3$^>=N^HzcC{63x_D2}$iYN1%|F6!dHOz&3f_pzE>DS;OO7qZJ0~bqiJn)l z@DmF1Z;L|;oHF*`YZwUh!!>LU+{79n0)e4ubp7#>2*f80fqHmy!3%&6=_OO39uCeL z;6hvf3cv;6asVp#e}HVVgL$5qWz%y5^2o4lBS(Q=CPfnO7=~zxgFFfa)gdn4wo49r zt`PEg2LXCFS*U)IlR=$zyuskJt2|#4C`HZUqYGcWeEG%dm&}?=uNIz<$^m)D1t~&K za3JSFhq<7!RM8GpSpRtA01RW2gD^AA18W+LVzv$flW)z;RAkIVU#3G(U8PM;QKw8n z)}%yc^+dX@y$k65zW#y1p^hHXmTt1fZi?D&>dJ2V((dy;54#>^cI7gswP!FV)}>(L zn(lK)HN{{)oO%=k^xUtT3({3G0S_3S62Bl703V&>--+&l7^1OrmjUG)c`_o?|%EQr22>orRqP^ zM<}?98yOFK2-?MwzW2X@V|m~vIr=%KwcqU>PBu0sUvR5*n|_S7V}Ojan%gBg>e>08 zrLbCpib+!NUW%}5-zd$@+c&KfUH(>%Jbr;rcX_Bnov6g3uJO>vI?-d{_wC`>6en)i zbgLU|l-X947-+sF6jN-)##C;}gsL`1QP*FjPHxsY)v7~A+OF2s{d)%4y#u6VLqbFF zra|huK~&Ws6WdVXK@&ML%9~uw|*^jtlns7d#NbvgTgI^O5dR1s6ENAX+ihhDQ;dr;B*=7)P~DVB=}n8 zmaTne)MFzJ@FZnZMTGbwRM1fYXlZsxoG(N|@>Y`XZC>{DkW?%xCjiBpSl|iaVJZn= z!ctcHQex`@xS5-L?Ko(kc+z6XIy}fQy`CJbgC4ARpI>A28NWhLGj)ZAYUVOkw~+jKcueC zm7yv&`!P8#RweZLZ*oqNuD|A|f6$}v^KD{_jh8*PRefM#(~O%tsDOj8_|Y_*|C{d? z>;3A<0TEZ1_6Y9Wp<;2Z+n!ZuUYCfIah0ZZ@k+7x%VfNEzlbhVm~#K)g%td~IQ~wz zxPB`OIkU=t?OgDdZie*$Bi%P<06-d89Pv400M7v70lwD5%0qF{*trP4cmcx$4(`~? z4-0R1R@Og*5q{qL{;v@pE{@-xqw`H>B02~O>(IlF{7$z9f2UiOAl*_^KTNkM>GNup z%w#KuAdZobcw0h$VN#(5egk{)RL8=0_Xy^&M0A z%DyRL@w*9i%TIfH`I$Ce#!?Ok%&Au$Cnl24!M3A=+Cm0`wPAW%N)=&k*R^MP>?Rd0 zxGk+|qLnc(lW1LDO39sJ)514U#XF4Nfi@51n`-ZjRD@f%}6lYe8pvebW~W zRu0q^CmNeu7blYq?3*(S71X1q*)?GDGEu?sG-0La%C`weG06n-*wL2yjgY6n!#w}* zhxsoX84OnIN&{e0M`mVlqUnc?W zxcgs{FH1(j9wZ4)m_^gb{Yv@AZ;~99*=~rlT9Pe!2Ek^?EWI{JO=*&FMB!d)wt4cs zvM(>cY@Z6L@-;0?(T%V3XYskuvg03T`_bVup5jIT9#476J0#Ly(>*fQQ=KW6NW!EJ zON=FxvrUV2lwrwAwC2TuozHi_h?vY1TpmKevehI4-?EX2#5zBTOvkWx5Lq!Xy&?3N z!XZ2Y0~rm0a2%VAJjOf|!h)W|qX(C6qUctAkhB}OXg5DzrCr}~L9XnZqZYs0p<8~= z5aefYf@;Ma{)94UZHPjF=Lj5yuc7TZMXAne~lXD$TRuLx-CM&KE zCX2JHE=|IO7VbHRnQ0cnwJ{+$ zB2)t%5krF3V2O=okvncij37ULmO3q#T9zT3XvBLQmLCht;Grua((xRtN;`(FtdFhX zhCYska?`gF=`obuv6Lq`28bN@p2whR#$#x1P6fT1d2W^zgng$BF*^q4UVcx3#(|Zg;4x*-dFGmECTs>lON6L`< zqDWDCK6bC;g0eXQF^fqOnpEyK?b&?OBA{bW74*Y+;mECiZtLk zkFOLVEEgrBPn)-di#+V1$^IK)|8@qsl^%guOh~%~hcq(gBpLGE1dqoO6C`IgN!x6 z@&rwA^bML5;i|`A_Y&=4$KsWkk}~X>(zqBh^K2R7QTfFrr~q_H3EGpTvXaGxqpr@$ z(x$ltZdvrSvdpZh>#-SSe;sAQv*uJ~iqSd><-Wmu2)`O3M^p{_OPO;w>8}A>Oz9s@ef4=Tcyc2axXqp3vZZgA@C3CnD}4%5DoFxVBqu5R(P9d zM0@`YS7h6{Zx&cRF~#7T`Oz1ABFU1)E7I0WJOW%|7JMb@)p`B*`3;LLx!7U<)*gS~ zBe1A>ln)aNaF6~KfNMC`8(eJyr0bu=qT4O>cVhAT2K~nNaR37OHHRPo;QcVM=zR;6 zA6VMIQ>pFW-G=|Si3K16|2WKH$F&^Xf8V2p%5a?-AUm3l`N!3E0Ko zS{Ae^fS(K?C@KF1s4@W|3-~%%8{pm?wPAqS@;A)`1ODHC9C?q<3Y4U!t{aeG2*{gf z(1tDkbZBajH<#)$k!B?@nhw_*33^lw)B`oJS5SH7hA#8j!fUw@2V*YD82 z!m}9Od>qg6eBbxBo-5wZP029??<_?h8EGeJ6^n;U(hwufc+p0wc!(~RDl3wT2d$ou zC(UJ~E{UYZo~^=@aii)ZQJCPzp_sZh-$sV65C*zFJYC+9FO|=TCxU#!lN>tj0WF@r zGB>}}wzzzebY|5WI<;X;KK@Y?@q9;vYH(kJuJ`+ShEvqvrywRFmtbb>V~Lf@XKZOq zSkR=W7fVq^Z1tyXKhB*r%G?Xd4SYAp%XWW7!>oE?%^EAZ!$KpE*wl-^Fb`9XS1pTW zOCRzm&S@IFoK6{m@0UA8h$<7-QV;bH<~c=+jZAB-*5K}Klf>2Ed=jY8oy;N@^M?)m z=6U}h!eKEDAcBx?$&qgf>H=VbKnxq-cx-;N#m=V<_?CC#27vSeJOD&ZV2^;##cvX@ z2+SWq^2T3&m|6G)NIO^}pZEUkoVr6+JLCUm4pa{R@VxgQ<~MaoUwu-Z z+*P0&+n1*w{w|!6@WDPQaQcZo>)lZXNd@K>Ys}^L#}_-e&W2+Rs_Z>GvSovL&lfS| zLk(qhr(C6w{yBsb^`juhWQR6x{2}wuOd`{1pWMJvxxo9n}s2MF-si(Bx6Dt^q9F=(nGJ zq{0A82gb-zjR&me%9c5Rub^!>{rcm~{NalP)7#tsFO8^wlDg?#0aY$Uca=JXYU!Uu)wdA_^{E&Ls8Ig1LzW@+!Fk+#lR z0_07{Z3<^pnc;qZaMu7flOR8eFxtpSS}*$8Sb7Im7%>vYY88_fXT+FIWHhA7i>1+E zDk9!Jn^hhZuXdp(h*a%yfzy{1K4ngIEGEbwJR8*$dctas6vBM(_fM zUu=K|)~oqXKv(VkZ>V~-CjY#^%SkmXJ&UGS1fFl_!Em&&0i}bsvApcl5X#nU17i`E zd!Yk2&F$o}sEe6yK2fOEq|W({wP|aIfBlAo!Z%jiwC{IS&^J@N2Vi#jnD3Y{<9RHD zR4#>b`$s4TL}Oxg6Ijti6?6h^sxoZ?JX02)ApP)cLZNIlV~LCb9#uht3Za6~iSXg=3(nH<>z3d=)zz(b@g9wgcZ%(TZ=ZXs)iU$Cp=B z;h#l6dPtg6k{_K>m>n&g^D56JjYl;Vqpm=7j>pPpQko6mh2s@8z4+gz@f3H0t zr~nHVGdPTk6fe~R-w^~Jptp0Fg$H)sj_v~x`A0;hfg0#IU@%}hWzC=^2NdvOOAd5E zK^Y4;R=a!O|HB6U<5Iyi!a`qJSGyNHU7HBx6H z5}D+V!BS&k$Ien^5vgQT^3!Ax#Y6-jLwPC#FT92b=P7E8eZWomgh|(bYjexSVOvbV>&O|c$&jlm%mV&6RuHL06+qi>h_~-@S-njH+e|Ml5 z`gyDdH`^wNY~h$Ske^WyWGOrsO!)A!i*G#13cWZqt-{r>g!?Y74Xe2KROQO_gTj*F zo`_+MH4DT>SAWn+Z3MfwhU%lB9PiomWW(OPJ4r<8H0FNFT+iqc1ltw0*mfuUu3Jhc zb*wSHOYoDgE|}=kVh)}*{S!Rb5_lsD8p{@;YR9;K6~eHmKNxBn#|5(6R$oGB6|$b#djPxeu)5C%wyu;rPoBAQ}JdYaFtg z|KO;9C{5;rx18bjIc@^aA59`iIK|mM9JH!&CQ~Wl`>+)Dob)s-`MYp;S+4QY_clDo zYi$hkH%fz_AA_f^;lijkEZfVvyCU?Pjcz_y-!-7RLqdhufCa%q)q`ZBaLo5em}Ac~ zBrqh3yWG2$CW=TvWQjr(pm`z*F-80(BxU6#RlKYfthHFCiZe|ZbOpK<<6jccNmoJF z>0FW7N>f2IL|s8WL|H*OL{UL8`)2yp#N^Ou$#`da!t=^;RdNf;i@_j2>%$E6vJ^O1&vqB7 zj_72`aV~VFLJfkugwPZ*5%vWI2qA~oFKGP`>ZF`wDIS3YqhKVTN?K%Ppdy^E2m{)5 z@_c`Z(!VR&obm-gL4c`&JO+Rzc#g`pztdaSW}rxc)d*?~hi*pNbI`L-DmZMXG(s<&2t^xDn2we*}d;Sf0c>o(3iQbdLug9{4e1X*0ZNvCv$1DBq(**5DG?Fjn#kS8`0PJ1e@; z6^(4UilhR6F+)I?6&%uMH8}K7W0g2O3F)1LcTQ0~okBjILbFbhfRFv_%O2xv0^vA49k z3-}0V4*g9f|A1tq@dP#md>|Ju9uI8&7{jPTTVJm-8`%0fD@W0r5&#)%bt$#ELBtQ~M zLg+P)?z%+W}%aQfEh+@V9XV;WP| zx;X>(ie!B3$-XQdYjs^ddR$Cq_g+oq+3T@x6&)Eyl$sM(acS!MhrU@6DvT-=oP#?^22UsFJnDA7xQN#)Gw*Yr@u5}p&1_+TOy@x&pv|)=+KmB9+ zTRz^5JLS>_eoCn)Z^FH^!n_VEHosKTm}U2wHEeKrq~4l1qIApL)7~UAGJwFlyTJy3 ziinDi6GP{(Z7(`r*dG!$({(giBj2ys`twoia0T;7S6mF86n~V&q;e;_ai@|qj*^-F zxdAcaMMuTM`AgjR!?`M5xlR?=x|SUgy5K5woVV4H_xNSkBa&AfC7oP)Ef3oW3|R^| z;jdfZo#Mu|82i1ZwJ=Wij2}GInqS!dcw z^f@UZr1q`W@0q4)rUJnSKU`izWz}l#FseXLD=IM~GjNhm(&Ex{D;3Y8$}nH_(=~S0 zPLA|GNw_1m#-=rh@Kv!vipulawx*ZJchQ5VU;o!_T z33H(C=bRa6zhG7ez?VI)e|Yiw|4~BVw#M+9pHljZ?)T3r+WeF~^}}gS_c0^KjLU>h z|AL7#-Yu8T_jJ$4uw4}@`XbDpZsq$&29LVLrW5@=egER0qV1Bp9J}r5Ror)%p8Lem z)4%u%M{gDOIu(x!apOrs@pz%r&|Yb3ZlZZ8(Sufb`)$FzauCcb2UGJhY>o1`4`$`% z*cRnqYCqVH>gwz$y4u&9*FQ9vHhgU~>H1CE*6f3gY0b9vX$_X(S1GS7E-JGGv&ya0 znYUT@m}w~ok%93a-29_o_Bh8pyK$Cq_y3(N;h^_C?$ zO+MkuGG3ZPR*>|>W0SOW`eDNNo~UMSyvVx7mEGgY`3!Cj+!+A8KxqUW#y)RENeN8` zh`qo*1hont!?cn~7|RfAMf*eO>OsN*;McW@7jOg|&=g)pkn+EN_g^}U#DW2M7*X1C z6h4|KLZSTV9@oKWP0>KeG3Xw1WRcN2$TpV(6pE^O_jX+HpKc{);;Vr|ae7$B1PTSO zc$^HQHJLqHJ26vGM@%F_S+N)i6W**8-W^^ADaSM@#aU^JE)^-b)j~B{LW*_`DclO@ zTUd>>>UL%wRpd&R2$j&sB2c-8Q@EtW##mwk6Db1tX(nEKHU_)#LHPW_&(V7J@f&^g z+QktuIGP}{RqVkq~`hQX7>;J`X_}= zlf8~yi(P%PG+?*eu3=^ZJs>A5S#^H~57j@Zc5W=^cH&vDi1*%%{xQ}#Y4wrH9m+_H zxO=bD#FWBI7PN@A){CyP5;WsBduS1{>JqBn^Xif-G&nyF5E1W#av#dtRx70602vNU z*ZOP@3~mxY;UL}zN(G=27}5OVhu}z|X@n!qDxZR`1CA8x8$czX90M8!I!1T{;Yc}l zFt}Tsf#4r~BWGy)U-|D3@jg=;udgG-%ZulYJ5g_cVP>I{gbKPkul+bzQ6I0tHf0yelolf2`FBf7>r(i#An?mSNk9u|*=Cl_FU@J;gl9l7p3!F@o2M1!HbihKS!T z77r%f%_9YK&82bq%Pr)|`Q3TSm_1VQD&gD_{`U#|eyLwhzaI8f?{ZL_v*nSuRr@0@S*8e!I~;ct}RY4Oh6#o|t1- zctKZ+Y=JiguoV0|z?klYtN+98VdilOafBZ4JP_E;8S6pt2`@3Qw z$r_(1=L^y==T%;;UE-~dUL{stDyrr>KS*q^@Du*J6n>&nCcxoN*Nv+Wi!5stZcv%8QHQ z&KBp!o?(~f&D|~`mp#mx{S3o7>8W3;+g$1G^ z4qy%3HBb)Fi-Nh0^XcIohC0YbSElo8?jZB~<%iIhb`32dx|18vfQn#i>JTOLN;ZP6 z8=~jy7^@Jm7DW9%+xhdNcY)@Ap^_#!>!Xl4QK|Wxm?;Y?h34+NnT@vnQya6Rpq+;;HuHbY|AR zWZJfTGYn1otd*w>rFOKmc1y=WjK)ovi=+odT+?$IQh4yX(AkErwG z$58mAV|=$q_->8iuaEH$j|ldUk*|)3b&g5Nj9(g|HV(AN)OQu08>p2j8>o~y(_UgY zo^;VPuhrYuex#Aa#Pc(J}6e#+cK*6or0O`?407wQfr@_Iiu#?rB}O0Jy4X?j(lvjb)b z8Wlrl4qc6?9RI}(Rs9#Fd#az-)7m7*-{>`k)=*IrA(iB7+2mVaJwIXXUXwMNmSxfr)_|DJb_JZCC; z{wT$VitG1{d#wY3Uy2K`@GfczNbD~TFa|%PYlM72wCp3?h=J06pSCx1vin!P1 zV4UfMrV@g!!=-d|t0=Lngh=1pm(EQi4VRFp*<Lla4(l<7i>;B1cagY>oY$-KD7 zNjR=&@f%*nb-w*D@&4nH&0kJ&J^gkZm-zjN7ix#AYe_!O4AH;TDXO4PZgib?s5tlS z&5622OyBBFWeg{Aw2-Ur@sbPVHYL}meVFU>^}@B3Hcbn>oU%+Yjx|}zcWAY&@B?Q{ z%;*F9+P`mV*zaq-KcS|R&;Q_d=ImY_(RhJI=^WJKak>v4yq`WdFqR^U z1GW*qv1=YtPWC^BnhD$j+_%^75Pfydz4fLZ0?V1Zr}gwTBp_o)>@r&3?^emBAfd+P5A0;$)_J2YEWyhpsyH zWwj(%xGR@rq#{1n6VISaB>76PsKj(nVwMy-*A<;bKI2Jd1(rDkGtPN3gz8+iLkurC z@I_);9WWu{mtDjIgu5Mt0|@>0gn+6Mqng9VZy0e0Oj=IgF`k*#x<9x5;iHAQ$FooF zJez!REHE1fjzr#-9oFbp%2-Byr z%Y+K`D<@lpX!zyfw>#V@A=S$zeEXh%!Hbvr(^Mq)Uzh8f)zd#wfEL*_?sz=g=hoMg zIs+)ewlnC(7t3O93~t=6$}%MmEsBGVRDCYGcjQpW>`>cE-EKC zR-!;6LbO0Mf>J<!Pcw%PJy@b4w!%io#x<%E)4+F_TWE#Kxau#6EI49}#-$d+YrS zc21VH6tCN!3kriS{78KYMH41-85uoG^ZA+O)MK3 zlixHlGdNz4A?7MEz0OOvQVlNEjYD=5PcvEj6qm?+uh!1*asjGtHY2Ho%|WMKLxB&l zIYbv_c!<)8DXv61SH=M@8YS12Lgg*_5{XU#CdW){f+11jfyb?4g zs}ZtVyZ~ik;qg+kFfu!%6<2_bKZ+94`TrjU%>Plq{I4irI8N{%5(+j(iioQ0n*b01 z1q`&KNRmkMXmASR>W5wwtl!X!0w4pvBWOf910)3d04xLUBR~V5zWDrqzu3!cZH{fL zG**W)%npeO@>~NN_MWIdkWlQ+$AYhN-R5DBW0oHF5pm3bqalu0ukxIlLlvS^nx_1A zZl5wV?&Obpto$i>@L1i`TiCGG#E28bXu4=zus%bQH|Yc~D=0mLk(T3=875W`EEcw_ z*oP2?uJAzz0_;ffNZg;asc7_SZR1IJr(A zx;tZY@BZ!w54GnPb}r*+_g~MvoxZj7%Wa42pHMd)hn7YidcQIJ7UJHCArAOIlTo<9_o2uaIM908sP{05^FFW|(0 zA^LCJ?9VYD`-a`6YO-n?yw`3`S$peg^LV?Xf=Tw@%GVaO!ABsBarWP_iyLEdTO5s| z?voq9kNzclCt=&O#;T##c(wSmD)q@OiG+Lss*9`n4XqDGo2c+1DsFO4M7s73E4zR9vPJFz|oBZWDar&C6dHzAXTj z9KQ`Ti@V&~U|t5y49Xv(Tn$4g9;kpYx^eCbkO{2fNp?&E5>3+3`3Uec;CeuC4B#2G zAD|`&VvaK+K)(orV-pu)S7P)g@v&IocXA7@5PkUP29@8--VuEQ*&@B$h@I6=bX8L3&gdMWORFhVjs9FNU2L?FbX4@^=UF zQ?2@saZ^VESCxz%lZ+cbEG9g4SlDsqpdexHAR%<#nvZwMhWFWXQ{Km~ck(@Y{|n*% zXDz|I-?W5pe@AWD!KIFu6LdvohYJl|m`OPJJu-YG?!q*W{pVws`&JY750WcqN|ja8 z=9GjBM=XNNoSBYQlIiUh&857BH0s}Z^2!*-Y>Co4uiqwghs9*oyuAi3Xf9*Qs=H0* zGPx0tM{=XBNX)>VOjQTZrI`fF=?;B*2Ls=6mgeuMuzYXiH*6*Xo>AfXHqmN<+&6M?sFO3 ztI74bWW~Cs^ai?UTdrtuXU1uztGRJi{pmF__~CSLR*fZd$w*D4ONre{79-tbkoX@) z^Iu;K#g{$x;YoPujeGOf75Cz!1J9GMuK0!DUHKn;_hF`)mE;hniG~_nX7cHt*QCjQ zcY5;%XoYRW9y8@ z(LnIMM@<01M~;{G){G$T_7AzIe%AJ!tKJ(+-r2@9?H7ux7F*vt-}IxrR5$PSEZoX_ zSvGS1o`Lkv&=8)J5xy~@_y~R`li!ETVv!F>qBEIj!+nH&7Ga-Aai)j~u7ZU#rqpD* zYeqN3@Mwy)WQu9*Zf6oTFjtrubs((i6;h`lUOe9SWrTp(I6* zd4F$(vrqg=75HBI@hMin^Q==C|Lk)6*WZ5s_^0#hbYC7J(;WfWrbe312ItHZ^llAr zYC~)rQ>P=nI$ni$EBTw|+bvD?I4pp+C>Ov-&k-+wk+e^%LVF z0~hJt6;!TY?F@eM(kVC*OqW!*| zz}y0D3*$yq<`_E!>JA)iRm**d8v>@Nf9x5I=y0UalE8=#X!g$|{aM#m{;`b2WTd-@ z?+Sp>vrH>0Dl*Od#Jm1vlz^Dich)eUvpRiun)z(>sH6Uca|$9xJs}2Z>xDlKDh~AP z|E8(^7L?{AsUD4y`0+d?ogT9N9E&7?%shUAR`sR9`rk0g5KDq>Ty zMT)wK=u(B$q$*l9s+KBJFVb+LIN~1hQ`@QsCA zkeFoXri{i{4K`LBMkGM_@hMk=2xnJ5BYDes)_c*PAgnxy;HD3DV{LkpV);Pt%L;Hj0 zb%ypE6PY%WPMKdt9CwYBGw=RsAM(0fknR$p<4%jUpivmRDAvg)b`sb$9V|85L_$1Y zN1S{{n=DYeO#olH6`xgu#nhlKG`6%}Y-8_RYHzN@)K_AwYw#5{0wp!%q8f3DMrv<< zu7pi#Mp7v&uQd8hJoR*b6#dM`z_efmzq9}a@7Uv;jxfAbVoojiI-WYT=kAiRKc?~q zMOlJX;v8)ro4P?yl9gvcGiJ$|43U3vGIpRJfhP|>w|iJ0 zXB-DCgjEbE2&C&w1C0kcO)!oF)dSMX`K6CQ^87bpEZhvBz7Z^B56co-5=!D0L~@d| zkKK|aJTa`-z+GKBKCh&yLXP(Too0Nt4R`X7qfTaohW1O}Smej5a?Uo@)A)6d|2(WN zAD|g)Jo;?SHr~?#kdOv2hng|tIG3tmO0b|JCL;i&kdPaYNW&Ec;AkSH!6H&{=i4v)x=r?O7`E$;!KISy| zTl5e`YKwTEuQKR?L`@Fvl4UVAk0kCAHj=&=;z=DA*q{?X-W8>bC5UZuizKd~SAGoU z%Tp9IiV))frvkJpND(-=KG3S{E~5{`lAPEhaHN2z01$nSnG_x_P^1IA2;?dUDgg)? zq2a##>*4xQi|n5$;YcWLZSll?2&cMIk>@`U1!%Dcx)0FeqG1FrmYsfOxf#%6E@obW zPSGPr?!)0_fEMG=OaWTVA1Xrxw3rxx2ecUfPqbLVp)ehK48GD*K270s=Y&^FyVnbhik0X{oyE+#lE= zrD@g4i(zNGsp4?l0L%&8EciI_WCKs>u&8 z7L;TQ1OgXHKC2WJ(%zaimwB8mSF;#4J8*mI-fbwXsv zM?bxzFPs%oHGaOXpXcBf!`&aRAg=;zS9e9Ad@ z`=!C}&GX3-u^ULpL!hdbKHX^DSvt0aY?~%t+&<=Fg59ureBG#Sbx1gO($?*KVYecC z+`O|&9-&rC?T_kTdqT?4DT1&mcr{PBFHe+$Ky08u0#z(ATs2`wnlEp{$?U+OU|c~U zE?BfU+{K%(B9PBpswQ00Rj?sY(DiJ~@lyNtKxsQlmoLSRzxO!5-GQMa+;-QGn@imC zur(~deW=PnXy%a6UgiVqWW&Kls}aL}&rAt>@vlws?>_AM^zw_%-lxB5y)an#9W8gs z%qjKw9U^AjP`{wp%aEcdJVV4^4f#76^=jLg-7kmijt$<>kMd`Ov5bFsNXSs+4dl&L;0fd@ zqH_nrVi`;zrivQqUw0l=C)wECdg1)V_Dg}6yE^@@^jx*=9q6|h92st?YP->KtGlY& zuePq-ud?o}UrAlQUtwLAUrt@BUpg#uNUn?XOQ?(Vi>?dx3$Hur7c|;TozeH>dcQkM z6*Z_Y&(&y}wGnkee*z=4D{BoZUC9|^u9qe+WAJ>QWEn%0RM^K|Urk=&(N>3c0fC;7 z%LD`)$bbM#1|aJ+3E^aHADr`8L)0|IDFU?A7 zNTpI55@`*8<=xxnvRCOBmDi5fXtbLOnpLjc;HXp zJBYJ-co5UJX#M2ri@4`6wa^Q1c48iU(4PIGg`fVmLvZ3dN>TN(5sw_o<$Kzni`$a> zH-vSoH*U!#*l5}Nyu2dmx9dzTxok39d16$$+MMcRy8Gkd(RkYN^kekqp=w_FBMBv+ zEkuoz&Nzk4v|mu!}-sZh0}50gEV&OBJKqsE@bb46Jv-gkX8rv>@9 zZ0P^fg8cum1p(PBTvQmfU@C^Y3ThsZC~zG0Y}glqHW396(4sMbMIvduQ?+e~@)dxr zrmlI|){DgQ-bRwzp1t}C7W$u97L+Rl$jT_ht{;)(mW<yC%VD7nq0_)sE(I-S=) zPW9F(v#7|4u^T#~$?|o#%F(kOa(SWDc0Y=+xPeCfGhKDj%c-7r4%d(|+4As~(wX_F z#ps%ciW@TT*mXQsa-{!~(7s-I3GLdF68BN{RsTtD=|d;4<*4f=rPvD}v`h&Ojloy0 z3plCto14nax#O{IV>L0c6XE(z6V;S*C6wVYk?As02tJYY=dc^?i zRptO#uZZ0x8C&HglW;TsUY0wG@wGPGmk-K2c=i6VE;d)-R7$!bB}*{ZKrkz@2$jO%D%If1s?ubM)M|(@ z$PK7dLHsTJ3_=Tm!PCOS;BJ8s>W0kd77fOA)Q#)oEt3sXwRfs!O79iT=;yizm)EG(L>Ws;sJJY5Pekcx0~G%UYLzP5;G=f*)Fsq_5Ao zEx(J}=1h?n8rL`aEIM2M8JAX+LY>@5af$KQH&I{hVE??CCwYuyGw*g;ql{Ugw8Mn> zA)4;NC#4?nUffd^Q6$`3sSjEimdFVsg)0ch#7^x)M3|7q4*(>f%Sc#xSTAQH;B=2b zph39=s~niIK!^_ABMf~omV=CoQ#3(S@>7M5eG3<{;+#&JO~X3R^-0q=EA@rQ=R^5X zs-1SL7fb`9*O~Q*nai7s7Ylw`XHkLLmCfC&+eX9Xphe{y8O=tKBGpaZ+q%Z0xYXxU z!ntnFY;h6`6mt>@6mb#`6m}v7lAHts1)T%}1)N-b-5j8UbixPXosRf=IzSKUgbTzu zVFR&EElym4T$e6i^lf!$?mmCPsn)mNp~|DQ-07@ui9>;Fc5ZrRN-8rcE+Hx=JR&&M z>7;LvQ=q@Cm$&6H_iL!?{3-VXmWSN;TiUx@SXO6Q^bPRk$s4e$UwqI@;gwRC4hbUZ zEix&Zx+@%rE3@W+?S`QmB>vDRa@;kr!h*xTKt}@Y$gvnC+7I|G$Q%cN_e>pPbAwk7 zpk0vafX9uaZH3kx@+e`bUU@Ot9mx{IfaovHE9?webN5ex;9%9Qt$$bSf~+|O<(^`8 z)?9|$?!|gcnI%cV=_F3cE~V5#&7*?Qd@{YF_WX>*f{(&?xz8KihQ{{uY$lyPKvLNj zV+|b#)jb(8O|W#HfNr)?mpfg|N9QYiWtvJrcqVX2Jr^1_JmteLS{9 zbEV*5pr;pmxetG_PoSw!_@)Kug{k3wEHXyDA=>k))vGYKe4TjL31D3(IqAkFehh7jq zI}Ex2!mj-6KOZBu;KR+%o*YBb72?JA8RtN}S&9}9#GB18An|5mhH@j`IPu)_tR>s6 z7seu8Ln=NuIz5f*yQ0(gT(QE@tKv~F&Y?B(egt9bzE zb-v_iK6P?N0(l!(ZZy}{sG{gtdQxeM!jY=zqcmJ?G@wow5=5w>t>F<8+?T_-B}BWU zMM?ePB>Zp~9((=N&0Fj+{<|}?_wLU zb4|3G`}MTSX1+~m<@*p_))?IE%;!)gm0oYr=OXFb$}fZ;mls;=eywd9!iH ziMdTnAi>oCW#8ZShu@REl6ObjaC=@3rkU(f-z)o}tLZVJK;9sJmriMP96@}u$H+4B zgnbQ%^PQ=3y<{obk8}=55on zo(8^_Ht$y7!?8J$pCUG=y!H{c%}LZxgl%&YW!s#@5u1}VER^s5?YF5 zbCPJtmEhQ%B>&y!BsQGBRfgkpnn>c6k-n2Gef@sC82J(SoE}FA5S~R4_+Fjn8+vyV z%l+vj_t#&&xj+8likdZbZB663 z=k+mH!RF+N*qrVnHYY8xIo$!96GZ@QPE&}@iJyM)#iP|S*>Bx-F`f_U^u#+FwYnbC zWgEllv6Hu*1-9&PG^i$hRb0p1)G(H(7G+?SdvRM1<2M>saZX0-p3voxZOh<dy{UPmtLin-2I(q_%u7!$}i~PMX#hLLzSrw2{c0Z}|{; zqwez2?tV(TPT18|`fpE(V8dcVu_BR<(uBB_P=YkmNEE}$@x_Q{=#z5K`bHEA7FW0m zW(ZW)ItxUW*EOCyN^ZP}B6~@+wMjV2a(7(!086a(h45q2;80yC@~{y|)&nGq21`B-Xl= zXgjaLj!PfZb<$p3%>`)EW+4k#d2W6!P0KWMHyRFWCK@edu272q)A8f1@7}{j;c`!B zDXzC3+ze6qpk49Dn)m~I%FJK${T6Q}P4fArQ>5mraA7)2@tlm^;oEkit{XBvf2;Ht z7dxOBT3PypbhltX*?rdJNuxEj{jVj(mrEO`6os-Ly8mwKW}#smo5GtIsMM6Rqw~A^ z(@ESbea+0fK}}u5#DXzq#yZdFy?Bwewq&0F08{_#=LC@{Af$xW1@c4Tw*-n2&@*rX z@}Oyfryb;c>@7lL948Q1Ryklb{GvFJCRA6>sufO%5{D9JJ4gPhi2YyuMg4S+$P)Ga z#Cf@6VldGk*ctue%}Pi{e|=+Y+w;#tbR?rcn!BRm(E4NTf0;GT{7sc5hQ|65Z6ZA+ zg5y%0xh0tPVytXev5fs9IYrJQ`36~M%JWL7lI1lh$&yvcwK?3Y@(GPKgbYesEhTal zy0Zq|5-8YPD;Ov<+$eLBf2@|@Yt=;KfCKqXE!h)yzXs#(LQ9R{{!mkL+Y>rjcIRidG)y-Sb3H6OSc9ArN^;dU-g`o;-|?ixyhVd1r7 z9Pp_P)0Gr{wA-BNO2c&VvVuJ^nUh4-GMzeM7O3blt?z^VCEUWarLw;TJ zPN?(#``<;HMpIXGrT zf3~te;AnE$rKb*B1R&s%oQR{B!GZ}D2iSLL&Y4m=P8FFF9t8{g}b2cScObz#_7iRSb zT;D#{aEUL<6epxOe~)gyfoI&4>^^=>u-h-W^x!tz$M~=?yq{onw4jqXCLs(HVP=sM zM%*KknIK|D$crZEi=9aj)8j9T=GO~2calq2xIWrfEu+aNd#h`k5BFBl&M;9mp`MdM zYDI(Y#j2s#+;D2Qd?s(ZP2X{tnYFw>XZ-My*23cUr6_h$Cpoe#IwZa&#D zp*s5O_A$kQ?}5_gAJ)pDoYevzymBwM(Qx#_+^lWdRkT*V>RKh4Tq|88|3~w0!u~G` ztBmL549IqFZ%E>Lx5<@!70KqZp>5v>NGeC}o;gFiGZ4a+6`Qy3NMg>&diJ2s%>+JS;SeArX0B?Fwzye6& zr0a-6x{l~B$KmuWZk3V!X{_?tQNRX56hoIMw9I z2K_aj`Wq(6`U|4gQTb+7B3jdb%`XTgta($Cv}IPq*xb4}8uj2YQ1xOTv( zR?RTY{NfK_pxr`s1p~G6-~cp-W&jQgW=x1_M&Y9j zPXq@hXvL~0YYDSZ!fBg@GB@OGB4iQ@H}Pchlx*b6e4%0kyFW~N@CH=$Zun=a8V zc2K*nT5{2yJb53Two^7l8N%Eyb#;wksWqi(+^%BTtTm&kLa zM~kW+(6s!vjV`CJU{xf-kS4{Nq-RsT=0=*ho-*JT&GG$*Qp#480dHhd1Nlar!W%LdVQt{7P|z)N9oMl; z>2crZI(<7e7K5tG_gF6dt%na2;fsvd;XBEjkc{GWjY~;pnx4)`i8eWvn-RL5TvQaG zdAu|O@dp(hRiqrQ%fPsRKd6Xc=Xfav-6}%tDnk5084x8mTtuSgjO9^>CXz>mr*qfL zW+>04tbLTcZZTo~llTqKBRgNcop|%^$mWlJTfX?Je)CZKj!H zOR}d-<=UiiEtlJw_xEnq$bYl6FLU;Wj>w#JA=k8izO7g7)A7j(p}a%(2Q->&6kd~8 zX)lWFxa61t1=x;6RvAsNP*nVAvtxhw?T`&uASePLfwM%0)ARfU+29yK^$gHy|JYN| z(5`&({&A1~@lR}D2_3msu9Q-6M{eZq4e-hQc>dkPYwGZn%hbUshrx$^7E`;YjHdJkpZ94DzV1`DmH(G1 z=jUfbC_MdhNWKPJp9RniXX*q?Kd65|s0EJF!w^azy}TV3z=HU^TZj>PIns3&3|8<^ zwe>Cl494-5B9X3dzjBD9WiXm0t*A1BgtW;e$0DlA@1mTTWqpWQ&alz}CpoGNa)=a> z9HKni^I}NEhGTb^0L-47HJ|T0Jl-J4ldsN%9HKQLvZT|oIwU`#xI~oDA#zd@*;+I$ zO>~!3cDC^jTtOOc2eUXWMI*nWPy=6+4GG%k3&a)qnzQ*7sxPG#Q3blP1?U@llhCxL zp|n<6!Ru*)RP1;XR#s*@O-AxwlBCGPM3M5v(?a}DWBCa$PZR3j2I4<_^ufRR>O*+( zyEp%n?>m?)p{QWttVAw=Qn9Idc2IzF%mY|cW=W7bVUm3jDI%BxXSW~l3RU)R&E+y zd9)yy1x_5G1Ws=Nx%MDs;Zz(zp#gFOB^PJWQpdm&93D)U(9!`N``_@Mm6rl~J9eSj zS1ukui9pbwrPrWKxT46@Jx-haXC%-G#lE8y3!!0J^kh9oY~p#}wG3eBJ^*R2(=)dHsy{o;*Qk`NiYge+`^w?#Gj^$%QVF0Y{@q& zQX!u;B$p@(ly4WPQoz?};_K;L7f@Wyw2PYU)DBcvSx05FV7Fj$!L@mBrl#p|{rw@>c2 zX|(Tm`)$$MS^h#``NIdH*?UE6_t!t z%ZGc5dwI6>3+WE7mgqu5zYv>oyM%M&8$*Y96`D4hU9A*3+m(;W=1$*aQk&C`HZ&4c zus1<$0dd7El2KM7)1Zrm%A~e$8JXsgLx2T=dDS}_mc%0D5P)~^&H)O<@fCv_5B#fu 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 diff --git a/src/plugins/loadingIndicator/assets/KernLoader.gif b/src/plugins/loadingIndicator/assets/KernLoader.gif index cd3817c3e8ed57859fef99fd20c32d2d100c782f..47237b7f3d023aadac21b7ca9b52f2cff0ee6f35 100644 GIT binary patch literal 1953975 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 Pg{<;w% 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