From 14d4259bc5e5f157514e81c69af399cbdaf52bba Mon Sep 17 00:00:00 2001 From: alaca Date: Tue, 18 Aug 2026 14:36:16 +0200 Subject: [PATCH 1/4] Version 2.0.0 Ground up rewrite. The plugin keeps every v1 option but replaces the implementation and the admin. Architecture * Modular PHP 8.1 codebase under src/ (container, modules, hook providers) * React admin built with wp-scripts, REST backed (wpp/v1) * Grouped settings: one option per group instead of ~110 wpp_* options, with automatic migration of existing installs * No third party PHP dependencies: own cache engine, asset parser and CSS/JS/HTML minifiers New * Overview dashboard with environment health checks * One click presets (Safe, Balanced, Aggressive) * Block cache for parts of a page, via the Cache block, the [wpp_cache] shortcode or wpp_cache_start() * Delay JavaScript until interaction * Remove unused CSS per page * Self host Google Fonts * WebP and AVIF conversion * LCP preload with fetchpriority, and missing image dimensions for CLS * Redis object cache drop in * Link prefetch add on rewritten on the Speculation Rules API Removed * AMP support Also adds a standalone test suite (755 assertions, no database required), release tooling for WordPress.org, and refreshed plugin artwork. --- .distignore | 30 + .github/workflows/ci.yml | 61 + .github/workflows/deploy.yml | 73 + .gitignore | 9 +- .wordpress-org/banner-1544x500.png | Bin 0 -> 399204 bytes .wordpress-org/banner-772x250.png | Bin 0 -> 98225 bytes .wordpress-org/icon-128x128.png | Bin 0 -> 16593 bytes .wordpress-org/icon-256x256.png | Bin 0 -> 55322 bytes .wordpress-org/icon.svg | 53 + .wordpress-org/screenshot-1.png | Bin 0 -> 284393 bytes .wordpress-org/screenshot-2.png | Bin 0 -> 373452 bytes .wordpress-org/screenshot-3.png | Bin 0 -> 300808 bytes .wordpress-org/screenshot-4.png | Bin 0 -> 165874 bytes .wordpress-org/screenshot-5.png | Bin 0 -> 442706 bytes README.md | 262 +- advanced-cache.php | 305 + assets/admin.js | 1023 - assets/admin/app/App.jsx | 99 + assets/admin/app/api.js | 21 + assets/admin/app/app.scss | 1097 + assets/admin/app/components/ConfirmDialog.jsx | 117 + assets/admin/app/components/Field.jsx | 11 + assets/admin/app/components/FileListTable.jsx | 147 + assets/admin/app/components/ImageSizes.jsx | 199 + assets/admin/app/components/SaveButton.jsx | 16 + assets/admin/app/components/Section.jsx | 8 + assets/admin/app/components/Tabs.jsx | 18 + assets/admin/app/components/Toaster.jsx | 28 + assets/admin/app/components/TwoColumn.jsx | 8 + .../app/components/fields/NumberField.jsx | 17 + .../app/components/fields/RepeatableInput.jsx | 49 + .../app/components/fields/SelectField.jsx | 16 + .../admin/app/components/fields/TextField.jsx | 32 + assets/admin/app/components/fields/Toggle.jsx | 23 + assets/admin/app/hooks/useSettingsGroup.js | 73 + assets/admin/app/index.jsx | 11 + assets/admin/app/lib/confirm.js | 39 + assets/admin/app/lib/format.js | 36 + assets/admin/app/lib/toast.js | 12 + assets/admin/app/tabs/AddonsTab.jsx | 141 + assets/admin/app/tabs/CacheTab.jsx | 287 + assets/admin/app/tabs/CdnTab.jsx | 59 + assets/admin/app/tabs/CloudflareTab.jsx | 138 + assets/admin/app/tabs/CssTab.jsx | 184 + assets/admin/app/tabs/DatabaseTab.jsx | 148 + assets/admin/app/tabs/HtmlTab.jsx | 93 + assets/admin/app/tabs/JsTab.jsx | 120 + assets/admin/app/tabs/MediaTab.jsx | 191 + assets/admin/app/tabs/OverviewTab.jsx | 209 + assets/admin/app/tabs/Placeholder.jsx | 12 + assets/admin/app/tabs/SettingsTab.jsx | 267 + assets/blocks/cache/index.js | 68 + assets/cache.js | 24 - assets/confirm.css | 9 - assets/confirm.js | 10 - assets/load/index.php | 1 - assets/load/wpp.min.js | 1 - assets/loader.svg | 5 - assets/overlay.css | 17 - assets/placeholder.png | Bin 923 -> 0 bytes assets/style.css | 771 - bin/make-translations.sh | 38 + bin/merge-script-translations.php | 87 + changelog.txt | 105 + composer.json | 40 +- composer.lock | 282 +- inc/fragment-helpers.php | 49 + .../addons/cloudflare/assets/cf-logo-h.svg | 52 - .../addons/cloudflare/assets/cloudflare.js | 44 - includes/addons/cloudflare/assets/index.html | 0 includes/addons/cloudflare/cloudflare.php | 272 - includes/addons/cloudflare/cloudflare_api.php | 314 - includes/addons/cloudflare/index.html | 0 includes/addons/cloudflare/init.php | 12 - includes/addons/cloudflare/views/addon.php | 32 - includes/addons/cloudflare/views/admin.php | 233 - includes/addons/cloudflare/views/index.html | 0 includes/addons/index.html | 0 includes/addons/prefetch/assets/index.html | 0 includes/addons/prefetch/assets/prefetch.js | 1 - includes/addons/prefetch/index.html | 0 includes/addons/prefetch/init.php | 12 - includes/addons/prefetch/prefetch.php | 110 - includes/addons/prefetch/views/addon.php | 23 - includes/addons/varnish/assets/index.html | 0 includes/addons/varnish/assets/varnish.png | Bin 6370 -> 0 bytes includes/addons/varnish/index.html | 0 includes/addons/varnish/init.php | 12 - includes/addons/varnish/varnish.php | 120 - includes/addons/varnish/views/addon.php | 54 - includes/addons/varnish/views/index.html | 0 includes/admin/.htaccess | 1 - includes/admin/addons.php | 38 - includes/admin/admin.php | 91 - includes/admin/cache.php | 449 - includes/admin/cdn.php | 100 - includes/admin/css.php | 412 - includes/admin/database.php | 225 - includes/admin/html.php | 169 - includes/admin/includes/.htaccess | 1 - includes/admin/includes/external_files.php | 159 - includes/admin/includes/index.php | 1 - includes/admin/includes/local_files.php | 219 - includes/admin/index.php | 1 - includes/admin/javascript.php | 326 - includes/admin/media.php | 409 - includes/admin/metabox.php | 332 - includes/admin/settings.php | 135 - includes/advanced-cache.php | 221 - includes/classes/.htaccess | 1 - includes/classes/api.php | 223 - includes/classes/cache.php | 228 - includes/classes/cli.php | 136 - includes/classes/collection.php | 94 - includes/classes/db.php | 278 - includes/classes/file.php | 195 - includes/classes/htmldom.php | 1588 -- includes/classes/image.php | 233 - includes/classes/index.php | 1 - includes/classes/input.php | 99 - includes/classes/instance.php | 36 - includes/classes/minify.php | 119 - includes/classes/option.php | 142 - includes/classes/parser.php | 1128 - includes/classes/ui.php | 193 - includes/classes/url.php | 59 - includes/classes/wpp.php | 146 - includes/data/definitions/.htaccess | 1 - includes/data/definitions/cache.apache.txt | 43 - includes/data/definitions/cache.nginx.txt | 57 - includes/data/definitions/expire.apache.txt | 74 - includes/data/definitions/expire.nginx.txt | 7 - includes/data/definitions/gzip.apache.txt | 54 - includes/data/definitions/gzip.nginx.txt | 11 - includes/data/definitions/index.php | 1 - includes/data/index.php | 1 - includes/functions/actions.php | 83 - includes/functions/admin.php | 380 - includes/functions/backend.php | 298 - includes/functions/cron.php | 252 - includes/functions/db.php | 88 - includes/functions/ecommerce.php | 66 - includes/functions/exclude.php | 49 - includes/functions/files.php | 389 - includes/functions/frontend.php | 92 - includes/functions/image.php | 211 - includes/functions/index.html | 0 includes/functions/miscellaneous.php | 544 - includes/functions/plugin.php | 329 - includes/functions/server.php | 143 - includes/functions/settings.php | 545 - includes/functions/url.php | 100 - includes/index.php | 1 - includes/loader.php | 15 - languages/wpp-hr-wpp-admin.json | 926 + languages/wpp-hr.mo | Bin 24783 -> 5999 bytes languages/wpp-hr.po | 2932 ++- languages/wpp-zh_CN.mo | Bin 21961 -> 0 bytes languages/wpp-zh_CN.po | 1361 - languages/wpp.pot | 1822 +- object-cache.php | 361 + package-lock.json | 20423 ++++++++++++++++ package.json | 22 + readme.txt | 394 +- src/Addons/Cloudflare/CloudflareApi.php | 116 + .../Cloudflare/CloudflareController.php | 129 + src/Addons/Cloudflare/CloudflareModule.php | 88 + src/Addons/Prefetch/PrefetchModule.php | 147 + src/Addons/Varnish/VarnishClient.php | 37 + src/Addons/Varnish/VarnishModule.php | 40 + src/Admin/AdminAssets.php | 101 + src/Admin/AdminMenu.php | 50 + src/Admin/CompatibilityNotice.php | 68 + src/Admin/Metabox.php | 118 + src/Cache/CacheInvalidation.php | 131 + src/Cache/CacheStore.php | 273 + src/Cache/DropinInstaller.php | 158 + src/Cache/FragmentCache.php | 374 + src/Cache/FragmentStore.php | 210 + src/Cache/ObjectCacheInstaller.php | 52 + src/Cache/RuntimeSettings.php | 137 + src/Cli/CliCommands.php | 71 + src/Core/CoreModule.php | 201 + src/Cron/CronHooks.php | 120 + src/Cron/Preloader.php | 92 + src/Database/DatabaseService.php | 188 + src/Foundation/Container/Container.php | 61 + src/Foundation/Helpers/View.php | 62 + src/Foundation/Hooks/HookProvider.php | 50 + src/Foundation/Modules/Module.php | 21 + src/Foundation/Modules/ModuleManager.php | 59 + src/Foundation/Plugin.php | 213 + src/Frontend/Optimizer.php | 29 + src/Frontend/PageCache.php | 267 + src/Media/ImageConverter.php | 148 + src/Media/ImageService.php | 175 + src/Media/MediaHooks.php | 99 + src/Optimize/AssetParser.php | 1228 + src/Optimize/Collection.php | 79 + src/Optimize/CssMinifier.php | 117 + src/Optimize/FontHost.php | 87 + src/Optimize/HtmlMinifier.php | 113 + src/Optimize/HtmlOptimizer.php | 25 + src/Optimize/JsMinifier.php | 240 + src/Optimize/Minifier.php | 92 + src/Optimize/UsedCss.php | 193 + src/Rest/Admin/CacheController.php | 78 + src/Rest/Admin/DatabaseController.php | 75 + src/Rest/Admin/FilesController.php | 100 + src/Rest/Admin/ImageController.php | 126 + src/Rest/Admin/OverviewController.php | 195 + src/Rest/Admin/ServerController.php | 48 + src/Rest/Admin/SettingsController.php | 86 + src/Rest/Admin/ToolsController.php | 157 + src/Rest/ControllerRegistry.php | 25 + src/Rest/RestProvider.php | 59 + src/Server/ServerRules.php | 142 + src/Settings/Migration.php | 368 + src/Settings/Presets.php | 166 + src/Settings/SettingsHistory.php | 98 + src/Settings/SettingsService.php | 352 + src/Support/Assets.php | 111 + src/Support/Logger.php | 90 + src/Support/Url.php | 45 + tests/README.md | 40 + tests/bootstrap.php | 749 + tests/run.php | 66 + tests/suites/addons-fixes.php | 317 + tests/suites/assets-path.php | 49 + tests/suites/cache-paths.php | 115 + tests/suites/cache-serving.php | 108 + tests/suites/collection.php | 74 + tests/suites/core-fixes.php | 455 + tests/suites/dropin-fixes.php | 183 + tests/suites/dropins.php | 98 + tests/suites/fragment-cache.php | 138 + tests/suites/frontend-fixes.php | 282 + tests/suites/handoffs.php | 66 + tests/suites/migration.php | 157 + tests/suites/minifier-fixes.php | 162 + tests/suites/minifiers.php | 122 + tests/suites/parser-fixes.php | 203 + tests/suites/parser-safety.php | 107 + tests/suites/prefetch.php | 88 + tests/suites/settings-tools.php | 108 + tests/suites/settings.php | 89 + webpack.config.js | 15 + wp-performance.php | 84 +- 248 files changed, 42141 insertions(+), 19117 deletions(-) create mode 100644 .distignore create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/deploy.yml create mode 100644 .wordpress-org/banner-1544x500.png create mode 100644 .wordpress-org/banner-772x250.png create mode 100644 .wordpress-org/icon-128x128.png create mode 100644 .wordpress-org/icon-256x256.png create mode 100644 .wordpress-org/icon.svg create mode 100644 .wordpress-org/screenshot-1.png create mode 100644 .wordpress-org/screenshot-2.png create mode 100644 .wordpress-org/screenshot-3.png create mode 100644 .wordpress-org/screenshot-4.png create mode 100644 .wordpress-org/screenshot-5.png create mode 100644 advanced-cache.php delete mode 100644 assets/admin.js create mode 100644 assets/admin/app/App.jsx create mode 100644 assets/admin/app/api.js create mode 100644 assets/admin/app/app.scss create mode 100644 assets/admin/app/components/ConfirmDialog.jsx create mode 100644 assets/admin/app/components/Field.jsx create mode 100644 assets/admin/app/components/FileListTable.jsx create mode 100644 assets/admin/app/components/ImageSizes.jsx create mode 100644 assets/admin/app/components/SaveButton.jsx create mode 100644 assets/admin/app/components/Section.jsx create mode 100644 assets/admin/app/components/Tabs.jsx create mode 100644 assets/admin/app/components/Toaster.jsx create mode 100644 assets/admin/app/components/TwoColumn.jsx create mode 100644 assets/admin/app/components/fields/NumberField.jsx create mode 100644 assets/admin/app/components/fields/RepeatableInput.jsx create mode 100644 assets/admin/app/components/fields/SelectField.jsx create mode 100644 assets/admin/app/components/fields/TextField.jsx create mode 100644 assets/admin/app/components/fields/Toggle.jsx create mode 100644 assets/admin/app/hooks/useSettingsGroup.js create mode 100644 assets/admin/app/index.jsx create mode 100644 assets/admin/app/lib/confirm.js create mode 100644 assets/admin/app/lib/format.js create mode 100644 assets/admin/app/lib/toast.js create mode 100644 assets/admin/app/tabs/AddonsTab.jsx create mode 100644 assets/admin/app/tabs/CacheTab.jsx create mode 100644 assets/admin/app/tabs/CdnTab.jsx create mode 100644 assets/admin/app/tabs/CloudflareTab.jsx create mode 100644 assets/admin/app/tabs/CssTab.jsx create mode 100644 assets/admin/app/tabs/DatabaseTab.jsx create mode 100644 assets/admin/app/tabs/HtmlTab.jsx create mode 100644 assets/admin/app/tabs/JsTab.jsx create mode 100644 assets/admin/app/tabs/MediaTab.jsx create mode 100644 assets/admin/app/tabs/OverviewTab.jsx create mode 100644 assets/admin/app/tabs/Placeholder.jsx create mode 100644 assets/admin/app/tabs/SettingsTab.jsx create mode 100644 assets/blocks/cache/index.js delete mode 100644 assets/cache.js delete mode 100644 assets/confirm.css delete mode 100644 assets/confirm.js delete mode 100644 assets/load/index.php delete mode 100644 assets/load/wpp.min.js delete mode 100644 assets/loader.svg delete mode 100644 assets/overlay.css delete mode 100644 assets/placeholder.png delete mode 100644 assets/style.css create mode 100755 bin/make-translations.sh create mode 100644 bin/merge-script-translations.php create mode 100644 changelog.txt create mode 100644 inc/fragment-helpers.php delete mode 100644 includes/addons/cloudflare/assets/cf-logo-h.svg delete mode 100644 includes/addons/cloudflare/assets/cloudflare.js delete mode 100644 includes/addons/cloudflare/assets/index.html delete mode 100644 includes/addons/cloudflare/cloudflare.php delete mode 100644 includes/addons/cloudflare/cloudflare_api.php delete mode 100644 includes/addons/cloudflare/index.html delete mode 100644 includes/addons/cloudflare/init.php delete mode 100644 includes/addons/cloudflare/views/addon.php delete mode 100644 includes/addons/cloudflare/views/admin.php delete mode 100644 includes/addons/cloudflare/views/index.html delete mode 100644 includes/addons/index.html delete mode 100644 includes/addons/prefetch/assets/index.html delete mode 100644 includes/addons/prefetch/assets/prefetch.js delete mode 100644 includes/addons/prefetch/index.html delete mode 100644 includes/addons/prefetch/init.php delete mode 100644 includes/addons/prefetch/prefetch.php delete mode 100644 includes/addons/prefetch/views/addon.php delete mode 100644 includes/addons/varnish/assets/index.html delete mode 100644 includes/addons/varnish/assets/varnish.png delete mode 100644 includes/addons/varnish/index.html delete mode 100644 includes/addons/varnish/init.php delete mode 100644 includes/addons/varnish/varnish.php delete mode 100644 includes/addons/varnish/views/addon.php delete mode 100644 includes/addons/varnish/views/index.html delete mode 100644 includes/admin/.htaccess delete mode 100644 includes/admin/addons.php delete mode 100644 includes/admin/admin.php delete mode 100644 includes/admin/cache.php delete mode 100644 includes/admin/cdn.php delete mode 100644 includes/admin/css.php delete mode 100644 includes/admin/database.php delete mode 100644 includes/admin/html.php delete mode 100644 includes/admin/includes/.htaccess delete mode 100644 includes/admin/includes/external_files.php delete mode 100644 includes/admin/includes/index.php delete mode 100644 includes/admin/includes/local_files.php delete mode 100644 includes/admin/index.php delete mode 100644 includes/admin/javascript.php delete mode 100644 includes/admin/media.php delete mode 100644 includes/admin/metabox.php delete mode 100644 includes/admin/settings.php delete mode 100644 includes/advanced-cache.php delete mode 100644 includes/classes/.htaccess delete mode 100644 includes/classes/api.php delete mode 100644 includes/classes/cache.php delete mode 100644 includes/classes/cli.php delete mode 100644 includes/classes/collection.php delete mode 100644 includes/classes/db.php delete mode 100644 includes/classes/file.php delete mode 100644 includes/classes/htmldom.php delete mode 100644 includes/classes/image.php delete mode 100644 includes/classes/index.php delete mode 100644 includes/classes/input.php delete mode 100644 includes/classes/instance.php delete mode 100644 includes/classes/minify.php delete mode 100644 includes/classes/option.php delete mode 100644 includes/classes/parser.php delete mode 100644 includes/classes/ui.php delete mode 100644 includes/classes/url.php delete mode 100644 includes/classes/wpp.php delete mode 100644 includes/data/definitions/.htaccess delete mode 100644 includes/data/definitions/cache.apache.txt delete mode 100644 includes/data/definitions/cache.nginx.txt delete mode 100644 includes/data/definitions/expire.apache.txt delete mode 100644 includes/data/definitions/expire.nginx.txt delete mode 100644 includes/data/definitions/gzip.apache.txt delete mode 100644 includes/data/definitions/gzip.nginx.txt delete mode 100644 includes/data/definitions/index.php delete mode 100644 includes/data/index.php delete mode 100644 includes/functions/actions.php delete mode 100644 includes/functions/admin.php delete mode 100644 includes/functions/backend.php delete mode 100644 includes/functions/cron.php delete mode 100644 includes/functions/db.php delete mode 100644 includes/functions/ecommerce.php delete mode 100644 includes/functions/exclude.php delete mode 100644 includes/functions/files.php delete mode 100644 includes/functions/frontend.php delete mode 100644 includes/functions/image.php delete mode 100644 includes/functions/index.html delete mode 100644 includes/functions/miscellaneous.php delete mode 100644 includes/functions/plugin.php delete mode 100644 includes/functions/server.php delete mode 100644 includes/functions/settings.php delete mode 100644 includes/functions/url.php delete mode 100644 includes/index.php delete mode 100644 includes/loader.php create mode 100644 languages/wpp-hr-wpp-admin.json delete mode 100644 languages/wpp-zh_CN.mo delete mode 100644 languages/wpp-zh_CN.po create mode 100644 object-cache.php create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 src/Addons/Cloudflare/CloudflareApi.php create mode 100644 src/Addons/Cloudflare/CloudflareController.php create mode 100644 src/Addons/Cloudflare/CloudflareModule.php create mode 100644 src/Addons/Prefetch/PrefetchModule.php create mode 100644 src/Addons/Varnish/VarnishClient.php create mode 100644 src/Addons/Varnish/VarnishModule.php create mode 100644 src/Admin/AdminAssets.php create mode 100644 src/Admin/AdminMenu.php create mode 100644 src/Admin/CompatibilityNotice.php create mode 100644 src/Admin/Metabox.php create mode 100644 src/Cache/CacheInvalidation.php create mode 100644 src/Cache/CacheStore.php create mode 100644 src/Cache/DropinInstaller.php create mode 100644 src/Cache/FragmentCache.php create mode 100644 src/Cache/FragmentStore.php create mode 100644 src/Cache/ObjectCacheInstaller.php create mode 100644 src/Cache/RuntimeSettings.php create mode 100644 src/Cli/CliCommands.php create mode 100644 src/Core/CoreModule.php create mode 100644 src/Cron/CronHooks.php create mode 100644 src/Cron/Preloader.php create mode 100644 src/Database/DatabaseService.php create mode 100644 src/Foundation/Container/Container.php create mode 100644 src/Foundation/Helpers/View.php create mode 100644 src/Foundation/Hooks/HookProvider.php create mode 100644 src/Foundation/Modules/Module.php create mode 100644 src/Foundation/Modules/ModuleManager.php create mode 100644 src/Foundation/Plugin.php create mode 100644 src/Frontend/Optimizer.php create mode 100644 src/Frontend/PageCache.php create mode 100644 src/Media/ImageConverter.php create mode 100644 src/Media/ImageService.php create mode 100644 src/Media/MediaHooks.php create mode 100644 src/Optimize/AssetParser.php create mode 100644 src/Optimize/Collection.php create mode 100644 src/Optimize/CssMinifier.php create mode 100644 src/Optimize/FontHost.php create mode 100644 src/Optimize/HtmlMinifier.php create mode 100644 src/Optimize/HtmlOptimizer.php create mode 100644 src/Optimize/JsMinifier.php create mode 100644 src/Optimize/Minifier.php create mode 100644 src/Optimize/UsedCss.php create mode 100644 src/Rest/Admin/CacheController.php create mode 100644 src/Rest/Admin/DatabaseController.php create mode 100644 src/Rest/Admin/FilesController.php create mode 100644 src/Rest/Admin/ImageController.php create mode 100644 src/Rest/Admin/OverviewController.php create mode 100644 src/Rest/Admin/ServerController.php create mode 100644 src/Rest/Admin/SettingsController.php create mode 100644 src/Rest/Admin/ToolsController.php create mode 100644 src/Rest/ControllerRegistry.php create mode 100644 src/Rest/RestProvider.php create mode 100644 src/Server/ServerRules.php create mode 100644 src/Settings/Migration.php create mode 100644 src/Settings/Presets.php create mode 100644 src/Settings/SettingsHistory.php create mode 100644 src/Settings/SettingsService.php create mode 100644 src/Support/Assets.php create mode 100644 src/Support/Logger.php create mode 100644 src/Support/Url.php create mode 100644 tests/README.md create mode 100644 tests/bootstrap.php create mode 100644 tests/run.php create mode 100644 tests/suites/addons-fixes.php create mode 100644 tests/suites/assets-path.php create mode 100644 tests/suites/cache-paths.php create mode 100644 tests/suites/cache-serving.php create mode 100644 tests/suites/collection.php create mode 100644 tests/suites/core-fixes.php create mode 100644 tests/suites/dropin-fixes.php create mode 100644 tests/suites/dropins.php create mode 100644 tests/suites/fragment-cache.php create mode 100644 tests/suites/frontend-fixes.php create mode 100644 tests/suites/handoffs.php create mode 100644 tests/suites/migration.php create mode 100644 tests/suites/minifier-fixes.php create mode 100644 tests/suites/minifiers.php create mode 100644 tests/suites/parser-fixes.php create mode 100644 tests/suites/parser-safety.php create mode 100644 tests/suites/prefetch.php create mode 100644 tests/suites/settings-tools.php create mode 100644 tests/suites/settings.php create mode 100644 webpack.config.js diff --git a/.distignore b/.distignore new file mode 100644 index 0000000..c964c7a --- /dev/null +++ b/.distignore @@ -0,0 +1,30 @@ +# Files and directories that must not ship in the WordPress.org package. +# build/ and vendor/ are deliberately absent: they are generated during the +# release workflow and are required at runtime. + +.git +.github +.gitignore +.distignore +.wordpress-org +.idea +.vscode +.DS_Store + +node_modules +tests +bin +assets/admin +assets/blocks + +composer.json +composer.lock +package.json +package-lock.json +webpack.config.js +phpcs.xml +phpcs.xml.dist +phpunit.xml +phpunit.xml.dist + +README.md diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..93207c9 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,61 @@ +name: CI + +on: + push: + branches: [ master, main ] + pull_request: + +jobs: + test: + name: Lint, test and build + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + php: [ '8.1', '8.2', '8.3' ] + + steps: + - uses: actions/checkout@v4 + + - name: Set up PHP ${{ matrix.php }} + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + coverage: none + + - name: Install PHP dependencies + run: composer install --no-interaction --prefer-dist + + - name: Lint PHP + run: | + find src inc tests -name '*.php' -print0 | xargs -0 -n1 -P4 php -l > /dev/null + php -l wp-performance.php + php -l advanced-cache.php + php -l object-cache.php + + - name: Test + run: php tests/run.php + + build: + name: Build assets + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Set up Node + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: npm + + - run: npm ci + - run: npm run build + + - name: Confirm the build produced what the plugin loads + run: | + test -f build/admin/app/index.js + test -f build/admin/app/index.asset.php + test -f build/admin/app.css + test -f build/blocks/cache/index.js diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..d774738 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,73 @@ +name: Deploy to WordPress.org + +# Pushing a version tag publishes that version. The tag is the single source of +# truth, so a release is exactly what was tagged. +on: + push: + tags: + - '[0-9]+.[0-9]+.[0-9]+' + - '[0-9]+.[0-9]+.[0-9]+.[0-9]+' + workflow_dispatch: + +jobs: + deploy: + name: Build and deploy + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Set up PHP + uses: shivammathur/setup-php@v2 + with: + php-version: '8.1' + coverage: none + + - name: Set up Node + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: npm + + - name: Check the tag matches the plugin version + run: | + TAG="${GITHUB_REF_NAME}" + HEADER=$(grep -m1 '^ \* Version:' wp-performance.php | sed 's/.*Version:[[:space:]]*//' | tr -d '[:space:]') + STABLE=$(grep -m1 '^Stable tag:' readme.txt | sed 's/.*Stable tag:[[:space:]]*//' | tr -d '[:space:]') + echo "tag=$TAG header=$HEADER stable=$STABLE" + if [ "$TAG" != "$HEADER" ]; then + echo "::error::Tag $TAG does not match the Version header ($HEADER)." + exit 1 + fi + if [ "$STABLE" != "trunk" ] && [ "$TAG" != "$STABLE" ]; then + echo "::error::Tag $TAG does not match readme.txt Stable tag ($STABLE)." + exit 1 + fi + + - name: Install PHP dependencies + run: composer install --no-dev --optimize-autoloader --prefer-dist --no-interaction + + - name: Run tests + run: php tests/run.php + + - name: Build assets + run: | + npm ci + npm run build + + - name: Confirm the build produced what the plugin loads + run: | + test -f build/admin/app/index.js || { echo "::error::admin bundle missing"; exit 1; } + test -f build/admin/app/index.asset.php || { echo "::error::admin asset manifest missing"; exit 1; } + test -f build/admin/app.css || { echo "::error::admin stylesheet missing"; exit 1; } + test -f build/blocks/cache/index.js || { echo "::error::cache block bundle missing"; exit 1; } + test -f vendor/autoload.php || { echo "::error::autoloader missing"; exit 1; } + + - name: Deploy to the plugin directory + uses: 10up/action-wordpress-plugin-deploy@stable + env: + SVN_USERNAME: ${{ secrets.SVN_USERNAME }} + SVN_PASSWORD: ${{ secrets.SVN_PASSWORD }} + SLUG: wp-performance + ASSETS_DIR: .wordpress-org + BUILD_DIR: . diff --git a/.gitignore b/.gitignore index ad2f8ef..59b6f22 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,8 @@ -includes/data/settings/*.json +/vendor/ +/vendor-prefixed/ +/node_modules/ +/build/ *.backup log.txt -wpp.js -vendor/ \ No newline at end of file +.DS_Store +.idea/ diff --git a/.wordpress-org/banner-1544x500.png b/.wordpress-org/banner-1544x500.png new file mode 100644 index 0000000000000000000000000000000000000000..6bd9fda24c3d70dd3340551d15bdb578441406ce GIT binary patch literal 399204 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�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%0A;dl zNeN^sTFUdg?7}vqQx-l@G#wlX)I?(R-`o*QwNMpj1fcod%Q(-_IR`3PrD7g56X7Pn zKN~$S91A6^cdvzEG*A)w#;KjIuKzC^Tz)-k@-`FfOjT0}CBub@hFWGlt=rPEuQx|a zahdz?Fi3b_K_}+^2Mz8;d+L4kt11^=wc7o6^>f19Z9g_gzh;Gy=R#hWlZbErSGem> z;}H2N$Vcyigao=^Y_?1-0$f>_bLj#)3v9Gg_yqnZ=nWZh&oV)WAs@=J9AxVGi#d}O z1Pg)FjKX%2v`_RUH!{>RF-(1(@!bOD*Uc0Tr2uyr>=6=2QE=7bZCz*UMpOI;vnB6i?+Ri0|eLA;2b$%M9i9_Si!%~rPC<%&` z$M5&VWaQUotMYV%Odmv7=FF8?VcYBDYyG8bU`@L2?v|B%tE=+dRBp|&n%ya*b%{%3 zA=@FHqQ_cNc*X3L_`)%72LZc>XZPULmax|)!ryJ|@jcM+i1B9NTeAr1{>1?JpIm+K zzI=|M+^iu6^iOJGZE^Up0Xi~9aQ)C*9mkMuqcHs=9`@!U7j73mc1t~7_5znIVtYX- z!M5m_T8wb54hj+!NT{^D9a*i^X%aY(z3=B#kvXw=-Qcl_%ieyD0C}m@gnIn4doxp7 zyDx+brA;LzhEHG3kICXdUkFE;%$`*6tvtnr-bV2|tBBs)ZlM?}rPA6Ifl6SG;T|QU z8?>RRV)aA|Q2F%VMsh@nQ1@96Eo2RNDs~pLa|Lo~?Y|Z0riBnUyunx~V<7cFBEg z;v8B9g8D=8Bz@c*##h!F}i z69NX5a9&T$`(TZRanK*I`&gMWsVU0MKUCfn@ER9oUF&cSZ(b_SNjo0W)_7+Zx7OI!jS zmQGHkkxR`6oe;lRd|le0SZ;0+6;o}#WGoAHS|V=g8taoBDN@spRbaUX>cNm%Y7ZmX5ZvXigOCJl3tyDrW|- zjwh-of~RAi@wzKP9I>Nv{F59`LgXqji|2B4ES+8gC$|Zh+cJmGf(5@Aii&#hAGD@@ zyFBO%^GsF~ig0T8%wP=3!rC|crndX-_Qire1Mb)SDw^4tk7UPIRRFCFMsogq(Y#)N zwRdU^Gw)%G%Ld^rZ@F_yjw74`YFme85(*|@3~CL0NjZ9efmT*Q2}$<&Q~~U{L(UN2>{C()V16q{h7oVA;K zrq#?3|NqtWwuRwx>@$l)gs-tGhX1tZHQAmJ$eQ9rMzhYg^`E473T#mQE`0$I$rntP zj`q@tp5SpMW!ww8_=8Sw(W+jd%M@h%|FFd1_4JJ;o197Be>J@?b2pZ42Z?Xv#oO4& zhfrbYJa!}5Bm%syVAhqm8TN1ZTlaJuBXk$!kiUbPU#70ZxlE)1{|46~Wc7f!Oqn1g zrA$9Hu?spV04Byzb$3*=n#M)#lqOAqqh5rILI`pl-@wsFc}t9xvtQd)eXk$G!8=l{ z;<|jufBg?=kXXQ#ED9GHfy78kMgYjq~s~3U|i-CHn*Fd!m!3G2Kxr8 z>o{|gAk}KV7hcj4D?%hzI#&5H<1CXlN%pA1vwlfM@c(U6ON{ySNqnzM`6IouSVE%~3F!Q10Wp){6sMxVN(DfcasS}VJbNor{4nzbX{-5<@> zMd_B+@dM)KBC+qR_7@hS4Y1+*xyiF@h542@mnBp zx7hsU4(K@qr zj9Udosgg}VQ+OBMVx`wtn$mK|i22C(|DeJGuC~hV*FEu-Sttp^IR|HVE)+y%ccue= zW6*KqAL?E6UapL<5K=0Ru`?%%aMl2YF)@H++X zy??ihJ>#V@+1EJeyY}t1S#rH=Qgzc0i>mYw>^W?JDo{9_XVsrF86Ew;ZZ)VYh)eu7 zcz+S?b`1GYbp>`F)3My#@ls}3#Vu~=)nn_r_Mf?O>5}WFrC2|! z)J-|8yh4uPTj|L4(n-t_QxqOFj()z=qdh5lEYX2PAOy^&!hFH7}5GNN?F+O z4$cf+9LV}&!=9ekHDv$ScoVR9k*pk%>=i*8^P$!Ge7s7w^Vs+-NFwF>t3y4h9H~{= zXTq2`;W6YV8y%67;^EwqseM2@jRd3dN>`oyYl3u|yam^RnwbiRZlhB>g^4mP|1R19 zu(`s@j!8bX`bJZrgB0IdJcU#WM}ae;9l1!y z75GJ876RN3u;ur$2lH5`72oHHepwXlf&bjZo$*~hQR>cT&dvXan5)J)*zT)vhY5n1 zdf?Lf0Q==WZj$ZlkD_V;^v zIs`>TLg@wt5k%=2U8B33O{KfLL`rIO!;l(1x?yy8jE>*^e%{aX{rvudZO4vdd)?RT zyw0mdB6|S*`ska}X8_uZYvb|qlbRWNUhyGzMlx^u2^b?DrDz`{`y=!;KnAqwYC5!5 zC<(4<^OWRW_{p8>{aMAy{0k~7T!4>Ha6zss?xPbu-_$ow*G81$*wpekfB47II_@Q# zZ898`PJ@90IC3yVrhsEgQ(TiW{vCRcaZ0#!WgvYtEA1kN%F8Q^MTy%FvPPJ zuB7;xj1wVwHG5Ni1DvE zWvwbH$#ml;M~>bta*|Jb&92O*?*>ns-o}KlS+{UphU5ix)F!{nHNRGrsnFy*J5Z74 zTu9md#t;O#rg-i-968B)y@Gsj&~%(x-7;98b{$nDiz=9|l{$F?zYR$&>_k9a3ntB$ zid02X5Q<|hZ}>7?kDtOP6b{mV3wIB5w;ylCLhgM6r$k?9`IVRQd=Hq0c&ZB$j5pC~ zIoWMw)zg*wWN*X6XLRF#+e7qz>N;}Uy?L9$nQ%3oOg5O}8+*zyDF!=ge7mVbW|p0l zp2M-)2<|;#3P^WD#)u2zOhdPy(U@uBv$>s76Jk@%*=8mFY0+IGneYR4RV0K@b)vhT z4SOxxlvZ6+z|HJ*jH0`K7(G49vth3|s!G2VHY*+!IsFyvRJ-*tXZ>VOVN>6U(9%TE zSt}Rg?1aXKWcO^h(ic=Bs&iG@($GUX{ipW|HpH_pKoD7SbwlcL*JHH+A>0yMom4EF z3u-w`r`|i!pS~a}>O#}BPui*TxI@odd>kY*j`dYX0yTHyGQ8g08Hg53T`4IMZt)Dp z5wdu7i(uGzB+~caNS&;-w(O@AN#6bzyieH~Qj;g~nOBgs8gNGuddlqG`OrCLbWfn) z74|Lcmx)6U?RYk?1J)q}$5Zk2&fn(g#fo|Fbg(Y)A=L$U^9CHpJQw;kp=T}t@mi2J zmGY{}4?ZFV>NYcgG4a?Exo^&_)`JTs!3V|b+}&ZAS*I9xz{7hu-7iwnIY{t%po6Ve z<^4`+>}Q2qz|;#0b4rieh?W|71u|z3orT8U7Dw}JxoK!_H~Wl1EBtni`D^Hn@5w(e z8CL!*%egJ@!_9PRyiKtqem9ny%POEgRBYzb%)G$Qq>C4?cW){fLqcle5YC`IJip%* z(2i`&w(PSy0AP^FDt$`H(g?d{ocXGXr#xyR56qTH#e>RAC8#5OG%51pGyG~iH*qw@ z9Q@M?q&3olh%|UPKWN+ncS`j@Q8Bt?%N@|7iSr#l#a-z`8gNj+Dw4E9;x|Lo)YCqH z5~!C@Wz;Wun9IK^;NmYU$h57QCq#b+9d9*xp8q2-U8rE{LOuk%fy3ZvyNq9-@@-?1 z$20`}+F=5rNaJ)64havDku_0W#$l;^H?Xd_7cKCGUE{6&(>IkR$E5}f8Z7-t;ZxhN z`}nhs2?-YT3wLD`kKIF4XSAm37LF7yN=&j)!?-DRaWvVVQI@GNCT6YA!}#sesXdBl zo`IcBm%(4h895eT{uG@tw1*kfLUzTaN)|0r+AF9CRP{DIHFs47U>+vTS%@55h~gC9 z6F#xf0s@oLeZR;77hE`6m+x(F7I?jEm-iIcJX4X@`^d-S8&eaA9 zw`su;7pc)))R6s~75wQi#1&-G{XQ~uT}VG+j+ft2e!s5hwH+3xUcL?AjtqMa@!GPt z5bta77NbY#wWi(kTx_##SDHhSg%Oeo%woGT%!2?EglPQJ6LW&^j&BH50h{m2Htor$ zk@W{*M+DjHgk}7*f!@iSe#cH%0E0Lh%wbO-vof2vrZ{+oqWv0oq*ceT`^3aiJq0o1-!7E}D;Di?9~jDmt87-J z3_HcdEz7|^Z32eZtI}-5(5ht=HzEX>z7UbfC>QPTislElFXj#AmlKRyqpzlji6fOY z-{+bGV?mVQPBqnwCf1XJS#EWlho1e?0S|8D62!+IaBwGp;hj|mcqRsz=3^h_Vn-Iu z?fUA-bs4(OJm01LaPfb2{bB#*gMQl}%ulaEf*!2)C*eI+ziyxHy~93O#l5om6SmLZbGg+dRs^7%cBujUghPqH6CtNqI?Zn>>_j;w86(6O(;Ng=E)8o}=NfUZ8$_~=+ zz1k?8pJ|$*M^j2Fx2wSd)4_d>QC^=n57-m;qt|V90?TZ3O+Rm$K8$S}2d((M_yqUS zv_uXc&bhE2bGWM{$khkn5BHjGbiaH4%*y2YOSlj3*q1zQy6qC2gc9&&nAgH|RiE7` zh0s{ABk4$U(V9FaZ-#B}rWa8^HCL)G*gP&b&a(lbI8A?&1y0?5CYX9Fh;^#vxR*f@ zoU3gs0KweI?R)l6sNiKT#~`LILkKm!*25BvvPDth;>qu>*NGgSvsgYg^*c=Q4+atI zd81WRX)bU(mIf2o?5zJ z;+ujZKzhZx7#+f>P~%cMSjhxE8Cm&WldMymegE(scTpg9GkojigqU`$N--T^{?)jp zVx^K?bw7W4fA=4_c${VJdpV^moIhtYXVH#yi`xCvL`#MEE}41veRu|m80e_7$ByPk z`r>9v+!9F-2k;8)jq8{}ckdlT=5DbYjFxTH`%k)eO_8_Vk`Q!jOY5%{OI3LRx|(J8 zMTe4dgL_1T(3&a51EMaD4fW1|?m5%;jT3y>_Xo<4})Q3NFKCd}4h>d8vzZeZT-n)OWyMi+fO`^4iSDJ#A0|Crp zaVtT;JF&S?M8{Qj?>fiX`F9&7&VBsz!&6w;=~jl5*6?FdirY9IR;F7L*k7GKklc4h zIf--gncnm~qqOT5_}KkMl}c3B^NTgKItelyl_`1~wdiPBCv&3+$*1cGKEd4=ns ztVjW6t0s_6*8Z3`bXJ1az#ZV0n=Nzas>Yul}oUD>#o(KiZ`33ddAow9KuE=2aES#^m5U);bW zlJNRt@+0@)BaCcQ7TQb|KhUc)rQhuVbHfHI_En+Qmm;Auzlbp`L#H-dk>43F02F?jj7DruT%Yk}r(p*Im-h2M9 zM}_P7{Hd&WtJDz%oztUyIEvb(saiF)$6I$MC(Q>$C6AOP%-k|JHwAP}ZIo5Gxs)Hl#{ZDvfYCB)(E192#9OZs{Vt6xA`1v_7UXmGq&mm`gcSi z@rBJ%gTnz#Z|1$`Bp}21hc1q!y8xBi@f`~3i01}=H=d*~3apk9f4dzTw|;XSeUw(i zxvW7AowyNSP7&ujIZr+egh_&F8vHDqX+2QbGkHO`>9^h%+-_P&;@-Dpfz>-3xmTE8 zii>v|x`H45(1sD=f#^kg_P_LXd~!#(4;RdC^mSJXlX+lQ>7Ag&rr_+Q1_}LKM@ZEC z+iJf6J%xQ7Vh~nACkZoItEo%9YhmpXa{ZT6mriy*l9oG_7u6`6v5}jbn3L5BKD+kN z3mQJn6O^{Z_PMS82b22I)o7A~8VaB%6>yH0X?a}i|8XPQq+anXRg`>{0}^#XX?!M} za&u$;)Cs3@LLBPB;vJka3Z1N=gyQeIz_K`04;tbxK5CgoS=fh0owZL>VnL#&JsKw` zsO$eKamd~VKAI+5iZz5LNWBgl=5R4e+-h>KHy@nR#{BVaa-VWSwyPD}F(KCD*G}+M z%tE=(NWm*NM;oFmTG>l{X_jZq)C9xA&-8~YvRI!am-Ar!nE8Fuw;sAnsGHSTmR^w) z4dtY>el!`=?7#G}R7yqPOwG6>WZbpXkiWPfs zYdBj5P+ThUw<7c(X!ZMDSw%XU+VjTiCWc=-*{c@A?#(uh(urn5nM&vaPj5_v%=l=$ zv%m9*R0B`?4p+b=g)c|J`JnPi#@v=ld`{gu8_wjY?jp zw9Mnou@?ioL$t7pDSRT-CTcu%`t-{(%4)o`yxX}}GI}vymOro?ow*@NdDiP%81z)7 zkdPvS`(MSdk-SOI!_KO|Nt`tlgc^|)v{r_sXSLPiaxCLa`KAKFK;16V(7hd_EoP-4 z`I^A2C8CC)SdG@k$E8C{P#dtHVa_Rc_fs=MyH!o`5N#BMmzx@(u%}?el^^SK$A-=) zK7Tdd+b`ls{Zp`8bDN9=4BZZ4#3T{Tsck+`=A&BW_W|vJ{sT+_>*M#z%*@?*`%Ld&~o`Ar0?+gO723{(jS#9 z%2lb5_&9o>#@Fnzw+-gl<+nFSJWDD4mx_dM9WQ=%CLXrD{W{R|`kHCkqG-d)%51RS zzDk8Wm4A<#K8AJdS2;Q7v6^~B*TDL%Hhj>m8GQw z_-%@{ZI>;yKfK$b&CUlc5TDyc=x_UVRo$f+b^h)up0jogbzI3Yh&ZmVsh8r5F0Br7 z+@aUj(R}!Jua=hM)j>~RMXf$bB8;eZ5fM5?eE@RhLn*c}yUq1a@(L(Vh7)mjZZ~gS z+#d9JSZTNxmjvPO2qJxpckg39kgf@w4lUZWuz^uTyrFXioE@H$W1#!iulo4rHhfH( zW-48pWGkcL5Why&UChow(ep+Pan6s(%a+FZmiZ{Jrh{M1-_p@E0t?GsjJH32+ls8l ziC05PCJtLkTrb{x{`8#>`ww2s+6C?K_E|_vG!+v+Bh(p$-2)ob2`bFuYRQhv*)iF{ z>}~8!;lcm7gj-Mxkj*4CVcGHalCGR>k`;ndoZa%W!kF>8LBxY*^fmIu=#5aU~o z`p=aY%Ng>KZ(*^8rkW!9U%`x~+jpqhg}0a-@Nc^pi~=89864&Dy$Q06<=48d=2~_$ zzrlzk8V$>=qcq~DSwYh@Yj0Cm#+Z3TusE}uH=Dx?aFcEB*97%-hZI<;H9qIZ^@8sE z*C>$VfW))nP8a&hIl4G3_}$gF@=PL>kzLZxyu?0H@E`-gfMA64?O!x^EUSd6~#n{IJ6r7<3uhTM4N|BX|Q= zKZ3h|S`7%^_(&9tcVGv%$Ba?5xsZd`WY1(Fh;#KMlNAaHS<$TTvD+dwPQ+*Djto2j zBc}NDWWhp#Qk~19Qmbr`aMwQKi~R&?UEPjWme*s(9)|%$vdW3dEQ||UlrMA{EP(&R z+xD49#N5gJ&Tqc1F&_k5M`XAJ!W63?*{==0l(X58hbS67nW#t}E2Wv7a%QLc(ow1! zaoIy{N%aM?t+VoBm{53phiE#rDm@=V7&p<`~F(nvZg$_h1F+Ov4`qF!>|dV*R4I2o() z`NU{t-mEUiyFSP2uEq5S(>}U2m@Fu{jLm};;h%5}yv57eO=b>gC ziU-NV^1ZhxA}m}T`rqN{+UJxpKKs9tU39Nz8S)Y?pteOZM8C)s9t>Lj{yI*Hcf$zS z%dj$(FJHoO2$hByqHi8En+L81Idq^V!mReYSTc@F#wo4`aL&E0#VS*V`dc@=`CGI1 zF~Gj`qxMH_3I&_XS3r7=QObX=k>N0VUT|ZB^B(aSf&JgHH*hPQgcv0uI1Lq$211xW zySi{^yj!svrEL4Yt}quab7ZEnMqCk1q*u^{+yCLjN4{9Kz^4KJnxYC<0*<}|#k zYi1q7xqN{+f9m?kWqmpdc-`0EO?A;;LIGYKzdfvWl$nDcJHNvnq2csu_WmJpdi6=g zm6?`nrAPIBl&H^53fn@w50~-z+?%pX%0wgf>~=jy_j8X4ajg*dy1Hi9+Nrp;7vGh9 zeBr<1GPk4-+KXNfr>tb@X7v50--aeam}(}$c8eAZ`T17VF3_Uc0T*|BKO2@BSI6Lq zF4x2jYEjf_y)r6g0)C?U#ph0oa9Z@x93M2d^l(g1=i`lgUqn6llGzH+A=GYvg_ZLc zxrIs@MR4s?GV$qN!B5)Nv*$_f`kyqH9|mD_5HqQ1q4S z-KCq$GzK{*uADuxNVT}6Z-hlr&|~&IuV~~)DW+GDQi<;Lh>*8h1r+tWpcFfP|A5C3*4KQvudhXXQb{dGhV(n2;vli^y zX!;8YmhJ=&Wpljv_d!UDw5;{w-y;Y1XR=$Ea^4BDK*HD|E8i8z#x zOoOy^s0V22iB-Y^TC)GRRLvBqy~ps|E2Mb*m6o}0oi8EWK`lsfm1$gcb@)_!MZ-h& zix_D}u=AaBH#XtJGAg%rE zZxxx}$EYii(8k;DnTXmi6F4sy_9D4Ch{aq<0yi@Nv8`=SBbD77%M5o(eF062XYS6R z2?@tiYCe6`0&UlBhiehB=o@#1+$t&2KCdC&l4*CzrRHv|_x5Q+;ZNHsfEpbyO^2xI|ns#3%N2;__f3@od#*B(6*ra%yvkWkF zt5``XWSX-K2cN6A%Bzv2^vcSozYY`YGWyoHZ&qx^7Cc`5kJ|x`$eSj(RTpSwa@Wv8xz1qh|wo;mMtgzH3V~kpVxvglyKVFgqG_`i8bu<{UQ8>Ys?|%OGh#kyn zXf@3qVeb0Zvu!iU=o-6Aqna)XWTbjh%{Z5J_L2=6}AZ9iw zCJ9g!IGTz9FgnqG-=o+6ZSR4dX;=kr!;}Q3KScM&9l+UH#e+FHF@hf`1gS zl^pSPVb*KetNp%KM`NNZn^nmmQBhJisCB>)uCHv#~Egi8rjmeiBsq#MGhy% z!_CJv#~QvYDgHLPYBqO4eoYFpg99sIZwR$&m6_eUc|Vz7UE6#Z^@X=(;+|F7)D05r zp68;;+@j}pI#&WgHiuk0=GD!ueL;Y?Xp(=Pw^C#&65Klim?hGuf4WK|A{A~WCu^zE zlj%fz}pG`KG*=v$=6Hpi96{sjP5w_(m+dbLBu$a z@JzWg^vDrBMjsrO)d+Oa`m&MLU&iV7h#8WwjGgvGQ*T{tQ;xOk@>oA1 zbtG$Qv5hn7JGqU5`hj00q4wjHLbulG-e7uG8i&&8vWGdLt5e6x^v*6Y#gd<4jPWQ}+7(*WaYJSrfB4B7;`3k5HD;u*S;q-r*hDK^aN4Cw?#Klc9pl zMvF@AFK*CPeVT98XFe)b);L|LN5qxed?Qz`q;br+;~hiFu{qlAY~Lq6#d1YGw`AF*$dy;#@ED+y zTuPB`p~_a-0C#oOYt?4<$J6{?#boeM0Mu&2gD*x`zwlnai?+O@CUA0DdD>L$ZDMw!z3MJAhS))s zB4_sVqpz=@q7u96Rx~<6tIr|Se`!9=d)mFx{ zW_Ofye#R5txEjwm324$e+W$e?7`71CAdyWDoYAK|Ez{Hrq!w@C_@MWx zL6a0l#SX8&FV2z=&U=rnYMAY2{|!M0H7s+4MnF7@36C*UD?C zhe@a1ro88)pf8Ucn+lr`Di`LANK&={_L2|Yy9J4!br$r7@p9^|L|S-AsSN<8H5VX% zcA|1ZM}WopfvGty&NIr|X;d)xTj`n(__HVxBfO7wdodaBH+sTg~ojLKEwE5>LB24}9*f?0ENIaOUVVEkuJ zxz>gDmdM85aozqi_1#Ddr`*Oo6Y7l$k&Byh(yzU_e;gSQE~45e_M?MaMWHQDnE78` zX*{OpkBn%fxcV(SlX2UnTvd}TyQ()~is5!E#Ptm%2Q>oUB;n{*dzN9!{>6 zt!wCF%a6jFw4HBEy%=>`;KR8;4ZX^CgVnt#j?@`MbLHHeTNgDKuB4rLMS`~B%I86! z%ISj8^yJJ7R26A87N7v7`eFgKimnbtW^j8v8sB)kh;W_Iuho^R#kZnAW_qO6%+6qX zR5WmF=d=BT(x^7wrRH#GC-ddwTQK;(-fgyq?kK?X(})7`);s+fj9NRyk>#O^o4EH9 zH>xv=obW>4ax%}YSag}$?FO^7T8Xkn{@lq|MfPJitVNk{Q0i8x{Mx;W+E;$-^?Dal zwOwKTo&^)yu~53UV1#U06uQ8B*Dx_nyF{O})38gkvwKB8sjqXN1iBffJB9PdW5cCm z1#HWf!B=*84;PxWD%lzt>7`?+?y6@~9X#curGB#WETE^7e@f(l{&#F<-MDAq1OT}F%l+cpEDrds)OFoa= zhyzA?ItilRmNr{0OlnGWx;yG-DN4t5=QBNzZ#%aw=_5hbO2TcOz1L8#i}u?cp2LtD zFa?~5JD-^*T^pzUxx(ukv~*YdpAl-VyziQHRHzs}1p%$;g>s6oK?}`)ZHhF~nqE;< zTG(UaMP}>>MubO>@_5qd=kRn)B|WWSU8VUwwi&FStw@CjZ#`~Yw*GYS<#TQ0$|8|R z8NV+cKK>#jK~}mivOfEwL}%G;BG! zlQlupk;^k-cKEjf3!MnsCI&otlAF`oF`0&(=`>GC7}WVGrfdmY0V|NJffJpk@XS8z z)J|4rj=Ky10aTQyKievGxN{@yacd2AmTb=ZE&TdwtR_b<_90<$^F@(z&U&S0x9rmZQkMWKSzHT) zP$}MM$1|d~nNjahz6AHkf{j59g{i>lfW*@{`V}tg9Hi16!vMQqqyS@$=_p_Eg%~Vj zhnogbvAEsI*Cy{S3)Vr>v0JK0q1@r5rybRZ^eA=?4CQNx0xrr zbfL83o5X?F&%^*|weiW@41P8(K|hnuz2-y+R6J;50Cx`uyR+e`B-fSA`v{8oSilD- zKP5I@W_xT>OQ-pM!rL4Wbei7zl^bc6^}BnPS&Ax)uaZMniPW}NunZ0HkolzeFE`RK zt)-s5MKLTGeRc6d%)HlImJDH$exq*`uUoLzO$=^@agP1|cCqbODhYoPFcy>d5yc%Y z7fGBfMtZ*4AhD`_COX@YI3foAi zp!o4PPtyXnb9Qkv7r4G!QN}?y_)Ze^=R9R-AE2bng3Mt;h=hoPmn5!sJ=Jdnj&p=9 z-@UA7QRFkr+c?CWNvG*QdC-(&t zHmO?TL(8L{|N5O%Q>2{Wh9a80p}pmBHe9DVlNy;>t_<{D9$8+pZ4pgE2XJZB4RC|H zZ9PY*Q}#MOmzu#ml20R%qUDip(te8+nkkQb$r7pE_Re7b zCj?hc(glP_a(t~B2W0c{WOa7)8II8wNK7Hubk0TRoBst_7hd%LvVic!WdYxr6+XeA zyJm_ueDOP<)66vK4_6+~6z{S?3)M9(oqfg6Hs_N%-J+$XuTOwu^MwHauP@7Un&+_# z8Kqr+gQ0mc^zZW%u6evJ0|F0&puGomsWnenE{*SEeWBF%o;G(=ehbd!F8Md(Xfqnl zd%x#VyinOah5GC#A~)mrKe_}_Dt8MZLgHtBwRFb=7&oTU_dojfyIxC`z|BOYN9k}&hf7?kNvCu#hDyf)Ph;s z64T2C_YZlVPVpRrx*HMU&mY-}53<(t=@V8Bc3kD72q^-woE;NpV=F(`ULNa9{zBCd zBL~e_a9Fm`e=?OxH?#|=9wPF3-0bZg)h%7g=tJbCW5%8plB9&tzv4Oe(Ilo}e4`wX z&?bPz`xYJqnj7w$!;fV_qhoYGomm~ z=PcywMtB`V4ySYA=fOis73TU!+45YyL4L;f9?l_Lvi3owaNn0GOOU;N8vT zRcvXy@r_3Twv`JM{Lj9n^{gwCH>ebJf#u_JkK6es<&DBKa64Kx$D%u~gS4^M@$s3c zHWusr-6p)#Rb1CD^?z~aY>TkGaR1e=rD4s_o>a7~(7!7xA2XmYa9z5Ct|PDKP#&|~ z!tuD1GAoMy{4C}?N6zkzhh)2a7nr2jU6MRqg$%Al^#z3ZR_he!@9eMGAoC*>zpFup z_;e@H6O_?{NP9g&-Oxa$yxiv@nalr)_^}}5xt)wwio;!RPd64mJYN%xBd4)To3h1O zpJzBqA&ZJ)4fljV zPNkM9ayBQqcPamL1uq4`nw+oGNdCS|001#@QJOoXtE@v?3Hdpl+{uN7>%$BS8elT- z9GJ{2+Q8y1JjFn*Z7@ccLFhMhnhXzk-ug+yVV8XL?te>1bpoHrD|8!i|BsNaQJ1P| z?0O;s-V#`jG)>(<5nfNG_7rug25vwR_2Hu{G*- zQYZPkx=)ygs^lV#?tPO_z2>G2FTb0liswFXzdgQ~G{0qc&6MuwH+M+0ANyUU%Cc}6 zN=mYSTe4wQ4UEJnTyn3=N3uNFyrR564!dj>S_6{mZ^GbdBagoVMq3oY41NQ%PtA3* zsHF2+l*Pz&=BdBxk5NX-ri`e-^Z7Oe!CHZ~>UpRXo}@mJ#rypC_Xqb^3l>{j&yJBQ zy)sBht+cEDMw2S0{L_O(z|FvEg9E6L4m%?iitY5Ac1Apa<9uj6Jq@0 z9_U0u^t4Tema#T5H6&{HX@Ym!CcbHS&KPDD&@#NTKH0Kdm?4ADvhX;~s4>r*-DMvb zdQfiAF87cdTU}S)7xOOYl+pZ1e?&-d*P1fee27kWy_6LV-SIBsTyLv1r3s&|A9eAbtpx%>zh%N5STnezrq@S+O>_hh-AiZe=owOTr|Kz82j^y2&eCmcmT)%+k+;Pal`!W8TqemiltNe$xOX86Zll7IP2!RUj4s{?{#5Fng$_D96-Q>E%AVj>BTH}KPRQd8^r(%qa! z1r^;k=ev8Khqxg3-W@OFmA>0~H*?S;`xUDmYMm`HHOK4u3x7fCyr%*SxX7!#uc**b zBdcja$~HD8L`DY^)Pp(wrrQ2-*GYLuI_BpFnV=dQ+HRA-S zpClax>9fyGSnf!bL0I*TY&?92@B`kZH&SmHI~(PsYOtEx`X6Uo=~d}_eSxXLE_h?f z4otm86u#j?hD=I^IC1oY(su)L%eKNgydu9+W4sYpPXe931g#nDQZbTS-~qED5Frez z8dE+*I9gv$Ns)cE636HTOvYaf1|1Cl9My5zlwl$AYfZl zFI$lb#}|TH6D0#qz3>q)_hFmjhB;~6@mD+XhLzflfa3EN*Ro{p=Vz}|?fit)G=v2{ zN+J*t6TV$z)X?T6V0ZTa9J7>C(BWapZ71XBAxU-6URp*;R3E z_gMa8<_}{x$Kt6CY4-mbHg1BLmLt{Yv^g_46~W=s-Q533n%gwiZvruQFm}jlNpT~_ zx(M1F+fKHtft5b)8b<7zDI?r9m0Gjnki>tY7C(G17aVZ!76mTG(mMnZK_X=2d4*Y~ zvwt_0O?#Ju}Sck$8fi*jA*dE3`jX?_LWEOoNTkALQC_Zm~w9R*20rwqut zUZIa32v%m1y;g&zX?l8CM1$LDt_$HmYFl#bY9iDzK9t=kSF@7 ziGd~6rJDQjeD4!T{mY&^rNL$b|CdEgO*G5YvIO9)q~BnJl!d=$W*$BL4DgJ zO$$Zlv=$gX{RwJA)F;?Lg=d!FMh(Al2yP5qg_k7Zt7{#gwc-Pl#|i9gPp|SK-9rSe z)*uw?_2l9!1^M5aG3YZ-17RTiOG?&(x91chPvX09ybkJsa9b(IZgDu#Le3?{$LAF1 z-4@yZ49z$H8k%pj*KdC8Gy{I-sp`uxdgaVaw#w1bIkc|yRj3Q)WMuQQ8QpO#=KbF~ z=9g#SA=^EYe{t%DXCh07Y4Flp%!XUS>&;Mts@AL9AM=M&jWzLF>3OiI4Ymde*#?Or zO^{3=EDF%zWTL@0R9-vC28q^2L)|QqLEO97-eGSJxgsP>d z%C8rx1VRcN4(7mpn=u0pLce5uz)W~0CBHsSCI1ih64pq5QqtFiPfaq;wPD|vK zO?>2v9@Jq#*A7JOf{_~0##>!mN>LWI&vR%=b`GaLPX4_Fb-C?-TDPT=$T5jydSdCz z%G2b^R`QdQhbHSZl1luI4H7MWK=Tqn)FeWbNtK0|abG1{;HncdiN~uxkQA4_N+0UZQqU#}}-7eEf)P;C~#pd!zX|c%OQGsV%=$Y4j z=Q!F*0-A4e^v%qR31o7Z8lul__(a{0L*dA_%p9*Crsx=Ok_ zoHe*P^)253UUMp|2QbN7vzqjfDV7gwTi zVyp-|al|>pMEyeJVm3v%LglHOv&yE=cHTwlDVx7yaY+A3ugV9EUmpboG*V7lxSJlO zQqj2v%_2__S*{l`%kiE{HD207cXsNH6L#Cj(CYswbo@Bv}&oP?vocuGYjbDbbtWbu=$L z-eEeJi4OSv&MYLTA!B8Ak!F^WOS8VCkq6>cz0STJp;Uf6!m<8k=!I zRD-z;Y05b?&IM*vL1AqTts|UtWi*@-Q?n_Y#)(Fuh8pC%{K89jfB2`&{_K^rC%F`B zhvA=*;u0|LyUV9G?)+r8_3k*P63=-6W`lP6IUsoN1Jy(Mz2%oQNUr5OSUUaIf~@ek z*nl?^n*ZQ~1|=8~Vn$Oi((af$QEpu>Vn72Zq_ui7fC&NRVxa2s7_iJml;Em&rH-xh zEp&34J+2X$^XQaDL_HaLYSpCFG=&SM7$EF?!*naDwF8TV5%u0zO&)E<_@+CSdBB(Z zEY@#$S%>|R&yNXR_IuJWjvY(XZA#KdHKd>(~h& zKeIuZ3D@%NSkA(Z_%b)H2kGq^J0}Cv7w7i~AZXPQo|{7@jsgy*l#w-pIeal6K`%vW zMpWL>Ynp{c z%ePpNN3&f+cD>G7xNNQ4w^(Mit7<*I2F;x<$Ozk+moKq!r1!<}U+j@bl9w*eQys7L z(J$|nhS4^6`FI^(q&3t&zRqw=QQAC-I<~8WPyby=A+!!S)d*N2oM_j|p?{8+>IFw- zWM55dzl9(HQ&Q5sw9bjXK^uJoLAb-_vnswg{zi$}s&T~~5x@Hq^tm?81S~UgTYu<3 z!j6lPkWABni}i+;g}M8g%9iSH-kgj2ko}|qt45e&)x$K_RfXo;SEaX<#-5Z10d*3U zu&A{_*iiL0j*k@PIWrSpgk4tyi?RGZ8bE9wH?`i3rbd6 z{yM^<_DC#}P5@mSaygTHWG$G)DPS#mMqY6Wd-5WPPUhfmDeG6iOT3C@%rD2jKPBTt zUL4C`KmTG-)6!I5C$9_sqg*+C)I5((7D=$F!%!(g8cm}e{QD`fIyO4jU6|CaaOoAD z7ybU_uyl-XY%>^fsB-vBf2jzNQ`R~A!>x-dYnPp~0wlA*8e&U3A^Nx9H1<=`0aSsT zZ*}R+igkjCXZTS!E&(ZZRJay+Uq&fLo?Z)@w7#yx!fapuE!gU^A?S>(qpbO|iF0}F z)Rl;y*c|R4>0Ypju^wz%@R=J@KER^9C<8`rApRLi7fKTI*nju zjErwSjghEkKmPhMcw~6zpiH)bafIEZ#36+&JVV*d5l{VZFwc}F(rH*otpxbx)^ITv zlx69$XTi~AA%f!TX0U-iaiHo9e81Dvrvab&8FjPzkW?opW8S9^B`mtj z0pdnbp93RuPweh3><*Rz#nv+m#7>_~w!7i+I!*F=Z}$f2);LM$qYXa^cw1qi;jWu< zGXT^QSH3P9YJEe!%}w^L5=@`yHS|UMRj=W$U3*&q-9r4&Mm^JgT|BiUmOi{ove6|Z z6bJ9k*US1Du_VdZSl3k((l%KN{W-zbz|Z8PgEF$uhERpjG;GDfuMukXTnU(Aq5;>1 z0C~6S{!gv2zNY87@So1+sV2CPQArwm!qdLT>ehg%S%O7x?>z-BSY$PO#RbD$ZQ(z% z=8+SylCY6**wdGsLjQq1dJkaqN=o|6G{Qm=v}tX(axr(#pg*RvHgG@6Y(r9D^)KyP z{4sf$%D=Ma|MAqAmc>VZrU2`lS6TRLX*TW*yb%iDnz~$#_l}*+BndA8Ve^V1(?!sK zjLn?}I=VA6r@#?k+oUf>B7R0_A_u>ANmo7WY4%|R=c|WRE1o-rF32MBL2=_Ehx0a7 znaeA^$<3_ME(^XdGbF>1{hjYd^@Z_tHW}SKTcg$~`|xjJ*y5PA&mjg3s3=g=>}$&O zlb+Rgw$H`+MvH9QYr|Ztg)*!Bc8^!$n+Hpuo|XT=ZE3$!2ES3q(iSFxTIclm)hlZ~ z=PS-?!=m* zfK;r@(f1?~^Qg3fNc>sVZunOfzH!4(8Z3z3#@0Kw0ZltknbKdBBuu4ezX0=+0M*zZ z!V!v!s~$%Nn;?%5B@^9V+Kul}bZGi;>8XjL2A-S)r*Oyl?uAYRqk^C!2g$y5Ykk!_ z(sk{s;Ap!V{i;bx)JO2UMo7tH;m~yUG|ukhgoEl~cYd70J=6NGo1|%0uVJ3J=~X2# zLEv-govMVHsWd{3dik?I01`4p@wS=a)Aw~wt6lR2Qo@Dl>0?bhb86eTrd*H3l4|KK zLz5aO?>PvQTk)V5yAR3pE%@8(bkc4}z!c zur^+-n|3n$?Wssyk40X#G#A~=nq#rnXB%X2rYYi)R@O4jt1<~M*qJon@vXjpww$W1_#*~#3tsN7(`~GNoYLFIPQ`XVs*nYWX zRO$s+PdaCWLX(jKJA;0Z&;Q5NUq!X`z1{opmzH9MQrw}q1PktbaCeHk1$PTlDDLhA zDDE2Eio3g0Ah^4?|2*RzzcJpUeVBcaz1CdUJ=dJ6fToZQu^@Q$DH&h4!{(QGXc)DR zc(7ftkM`w$7I&ESu&^h^?nIVL;g1WQGxU-IRUc4)R!*S3#M;mkl_5>$7`9W-oE7tf zoh`Z)V?%Og6NhQGTZ%vufMHdyg>;9>viLN~LMYQSe)0LcZ{ZrZ*%<~uif^}YYbC)Zx_omJ;Ur_m(F*d(Pdsyv3-^$=jbl)O!wAw zLXj?!lG=qvn-b?R#Ub6e-VmgHczWn0F0n*YMb$F`!#2MeaNXI9Ydr*>gjYQjz=+R` zq-0q?M_8dzqiD{sFkHi+usQz@2jgz68L5^#7>PNv5}_$t%zCc4sT%=uKavUK8CNBi z#kd&>RrVae4QW7h@wbjhA#WHtd#SudRi6s0J_j%05g%6t4N)e+?SDpo#xS+N z&BILz(&tJB^jZ~bS7GqnR|BWA<9j}eQm!O}f3lCna`0~=!gI=%IKv|`tZ9&h<4a;m z&DSJeTptOW?AtI$X3rN;7VDg{6AICFO-z*M66~MMW}b|Gi{-uPiqpkwyU*o!72yi> z?MZ*s<-K_gL0)@;K=`wOW~J zSJQTo``Yq`-ZYOQKHdzgXaYf%={FUeP+b2w4ERo%4aCG{4%%29>m7q7m_3xwOxls^ z4=~y`$b|Mu3SbIquB{UwTd(7H=ofuPBbh!(C)Vn^3Jgy}HY%OULAx`F0Nq%SwEt04 zc!)@m8b6QH{MMOng?dwXC=tTcoEa3N?ONp)QJ|T}hxvfkF)w05&R$#py8TIly%wek zOgePqCzmJcNEnEaS+2^?VaLq)c!(`fBJ>wemt4nToQd8#%qFsapeIlaiY=R6Z8T*n zJR^pgzi3JoivrAeiF^SlPtq1pm{2HwA}3KUPmjoM=FloO*`LcD|P06leSw! zVy(#%{5yM`P=WtD`tbP>2-a=XDkNXj>e)1Y9 zEc!P`$inJj^w)ZMaBx5iNOtd>@^KzVpI`0y<78F+x!UkjDq(FV1b8lgz|qj8`MkB9 z_w@AWn_U0A_UE)~^wD)(KpnES70XebOEyXKeu=sEgT3dTGtwcv-@@9yG9F(la-?-N zxdN5VOmxxzc-Dj_mP{lHR2{~7zI0kmqu z&@X2S#1iL=i(7L_2kvk2 zn#k&T(T)DETl4quD@*{c;8qyoJ{yadU!ei_4#er7Y(^lUb`VkE@Pk3~lLFFDpOB7R z(hYgv(tfv4&rPC-PI3EAq3r$TBO(j?(r5HeaokSv%}CK+K#2Dj)NM*G*$!~{f8OD{ z^W%>HO;-lh)^KXeUgcsUelX!V?hA4n608o%rA%=U^aiJzZZo zRnrvd)YlebCL^XEU|aeI(PN-z!2168oA8QKE|;xHVtnHvm)t{|)afs^b=GF$>BfCV zFT0#vCQBmT<2K&sF9T1(@XMbM^cbWPbB9TlyDv=qk`+0MT)n=L8jV_#?};aw*T>^V zpq?j3#V`84Z{@9d3YIal7Q&dP&m%uRq$)BL{+iWr#l^7+TfP99d`JI6S8me7?-A~D z#DG+J2=f!DJHw8)<^7Vr#GQnY;>_kGYy*~{3y(X{$`nhe>#W?pU!HA=NlNi5B$aSU zGRdG4{--a(NQ97U*g!v#2%rH~E>4qxRCkYNNs9+$8yIU7#)HinrVVJ~^7#O<2}l_j z`gf9gAoO__x`I+&xjWEyp<~u$qP%GK#M+$CD16aAk?0gb`+FK*Ip7`Y)1B{-#yc>?V8PEFS>^$MNs1&+?2;C~J9Od_fID{%zGt{V9?; zyi#4BBkV&5O@lY`vO(%$6z~p-y#5u|Epf8B11mh*SPq9jiL^ORUoMyi#*mTbN~4YC zKT5F2Fl)M9iCn@zgs5MhHS}}VToL$%oejuz!1yp(vc~`(;4%^D$r%4h{t@1py%nge z4y5#u>0?||hUX$sFGx*M@<-eB0AD5~A`#YG*U5Wj=J&~v41+ci5f8A;dye)Yu#a&` zNpl$A|9l1tFjJpqe3p&}ht?0-;ywRwoji8FwGw3JiWVv3`P4u-)5yg(a&A#&FnX)v z+GG>-GnMpunel+!JhZLfS#0U-rnh~?#6XHRuxk2?-|Fg6&9=xA9 zf3mO5abZe?u`9_ErkmPeo5m&+gjjq?Q2ZY~Kf!aLxxa4eQQg@TNArD9LAK4cHd${_ zBD?>he%@_+HY?IanY}oIUpWh@@JXeOC7^c3IX8VHFlp*}3=taj-c)heIAst(3vk}S zt55`n$*@wsiraQpOACk&zqI6Gc2e>or9+)O1{@H{gi|AMlsdE5Fu z#(NZ#*fo?xWagB1Dl79kS2_XEoQn$absD&R9Wzo6k19oH45PODIF$mqwHwPchHZsG z7tic3Mf=XlUgIJ<%2T2i|5E*L#xqXX!6dQ8JDe$2lC(;t@f4b8AwRT* zIiXPBQM8w~lPUWk|@3l`F`l5^CePA@c z4)VL=Nl*9I>k6B6JfYf^uI=8Yjf%K4f=|dBO^H|C}243eS-Y(lzOzBu8UJr36sb;@+z~gl6jwU51rjdKE5P1dmozM z{oy_TH}0iBc-k3tiN}I>-F1RBo~*0 zwdni3yL1ek`6$)km3N9?SFPlF55Kj1w|LBv_O5?sp*P1>A1|QgV(Wj7Z=5>sE`|J3 z5}|GrXG(8p^aQV8@V3E_&xZoUEDm28;vnBF?WLmZ;6sqVU|%#`BHA=$N!(|#YC#rJ zl-wikfc7#hNJLJ*YnFOrDmPWfv)q3#ep@F8&ti$&?k_>Vf%yQSMBTyHrk|^>Fl-(& zAtpxo6>RgO^K+Nlh2bj)Ipz%FEspNQ(#e@D?W$GY>_z^?-_4;cT1@rhJ?Eo-@!Xds zJN`W@!qX94YYnB|4}l2r#DsCBMBMa83xI4h{FoRum+Zmw%;yiKZ-sY%KbIQGuW-3d zXB0f5Ek!6E?3a@YA3ggBX_&{q{el>4upvNE0GHe>WDXU{NK5;9I z+_;<(iGv9ke`6ikTW23&B(_N1F!D@NqA~k7H8ICe)?LFjMnWUpSN?28WtO$Ssttuy z|MeYniejd$EImZVqC%q2VvLbZGi>4?Px4o=Bk>bn*vBZ}S`!RTe8wYoY!hc+Vi_fD z;0=Qy=P;vDvm~{Qayc<5C))kad8>7g!3!<`N8=eLAC)#YScdGnI3j6J)jMK8Msc|yfU z^$Olg^w)B=WtVa$xBrrFh)R1apI{cxCFxeb`afe|GMINQM}Q+4Y4$3F`y2b%F+l^} zFT)@Fkme)!%~|UExXeg*ul7Hf2f5$}BTtNg|3l^%LoH20J3zR#TzS8w)e^R-Ap9fv zM@lX(k!FyR1elhAJmI#H4r`{`;}IY$iJCQSM=3N(>CBJ8lve~I-UhY}GZ5MgunovA zmJ>4VKnbHT6*R76c3RoeD=xLZxRcKlLCgdehJ(v|T!vepd;wK2#_Vx*_l|=?e}deCm~n8cJRk-G8je-zR<=%2^aRjktr0K>|fZY z;T_+9v@Vj8I7-aXhf{!RMU(UFvEZhv$o&%?x4YW%+``EXBB)PV zW?wjz`@GwVlVLIc?x6;Y7ZZH1#Qdgno7iJd=Y@3nXSWj_Jvn<-1oqje;-AR*G!WCy z)K2R@e{d}d>dMsd+Y1=At)B#NV9LLr(2VweS^2q)BD2ap zU?4FskI!K~E-Xk0Zm+(1@WZ={=WMkpj8ZWduWM|5*cLngHna6N%}^*ia)p<+=$+Ow zdHm-0`Q{^h<8QT0osWmU4SNZfXs50*)>;a`JtwBtPY}o0&;vhrf1c?Y8eC2 z5W<1RK31MFVaAY zHiK*EuP}xwvSb6wCAV(0+OJJR3RZ|H4=_$0p$Eybr9l^hk=HiSlMrObCR1*`CdS+=JXltAL%!cl3)4b^BkTK8cOhyn%xA69j z>kDxX(KWNw-t_~K^Q@tb!onmw(N_3N3xv)t{SZ;NCi%}gTi#9NFH&Aur?`2V>H(f> z35|{gjj|%OGG-!gt! zk^RFhDb!5oM?%ii9+A<{M_dnO6%%*-9yeY@LH($Qx?L9K!gxqYnjI9HhdmfKI<0C> zOk`vY?IZ!vIx$!h5f-lE3)nZKjImpiO7v>=M?OnE+v(+a)#+Z*(S;8ne)iL}gCvLWl}6sRTwi zMe>xEMt44smuDuK{d;6zD6XG`{&>kMS8^G*0&Ny=Q6=_>cPQdzSPKhZ*hE;eK0A~r zje=%-Z818*V{)<}Cx3OwE0uS^hj?=Ym(I>|*Xe@?sBHDG?o-$Vhf_m$9n5o(XTT8A zh0DYj)v%qa!qSD|w!d$E?@HQAXSp>f+?BTF{);7+lM9?56K%hKq2R{Kood z29n}WV6Wk*vywTYGBY^qb(z_F4?Edvp;E&7F&zZwMa?! z#=+8XQtD%>%#Fr&u%Y&!!F?M_sL-el)7=CbMQYYWG7*Azeg>ckP3`w{@+icgE?CmC zq}lu~aD>C0$DE;rgQN&zmqv#p#y)g&xavP~@iISXrOiu37MY-oQeTe4lO9R|BE@j0 z(P2%Q)w2N4IS+zdD2-B%Xi{M9g8Dl;8sb6Zhe-_ZF0+{n|dS}N%Nc;Bvc+Exn=ZGJnoVQJ}4Y^RtDTa|~95Vejd;+fI8mo#R5RxG$w48q*^!sNJrlM}jQwZ)g)X zLzbPdne#LbxCMyj`*s%o0f&iO$ zXnRps1!YWuP2(hk9y+WX73q*FH0qWjBJt>-Xo46O5xMV6DVE2jdL zw@=GvjeMrY`YM~9$c1TB^35(SL}N?ZDOXjZy+Y-EYX07i@DEPr!2E4toVo-hh%38B%h!+4eU8;92pM95xo*m}DH+#yL7l(b~hC zaH=D+8%^TbLMJRsP**GRvD-*usrv|Rx#GKu6Ja^{e!m^lkF5*b!n85(v9Gz)_)~7B z^8(N65uu?Iu&<(FOf`yQq@25;0(kB}8ehGi;occT=qwQTsycE7$pflXP^QeEC(kf3 zU#r4-7UP|}r;ZlQKIHVST`w|(R-11%h`$(7n$kCwSvaGglMN?`9HJXV*4a^S$L^ys5}?u;%SB4&1DRtt z>?R$~HU}TlY<(^BFgNk+a&QQytvU(g*5~bE29$@7q3517r={k_2)`1&pY1B47W|2+ z0-p>BiVg1_x;M>mvM7q~B`e&9hJXWqtH{X-*hNw_5BWeW^@m5v4$&F-F$t2GPgRAP ze@YAf9}C!oW&c^h`S2d$7AMh$_$L=$IlDr=#U#B$GWWk~A^JyVbRFrT5?|S5(Agyp z(uQDuG-K8{(C@1Ws9)Hs}4b&wG#)nTs$%bdG+otA@PG&Ua=A-~l}Gom ztiwxLx-1y44V*(|yn<<+MqH&i4z9K=ShF2WMeQaslVrJPT0@vcWqsq-H@SX~o;V$r z93OiFsb4zt=Mm@J=0m{r-k}UP1`wyR$zOcmt3l8PAF5^1YAjMeiM3?n;wWA7^B^Lb z9X#9Uipdl**-qJy1nN5^1p~ZAnPTg7K8wzi>(}dJiZ>MqWk&w)@)G5*?#VzTyDx}IAX>Twc7F>`HzVSK^Wv9vr37pFD4?KmM84#L~7P03U$0W8Gx9)btlD$~ugS z$`ihB<3FmCW!z6VEUe0+lCaet<9n~RaFwrLuXucv3jrfzST5JB`2zn5+Vd;<%OD;U zzOd;h{!0)MsHL}tcsU?nc@a1bYjt`b z55XIRO>IDAKz-mOkk;Qfivj=K7v(SqW2VWYmB|}Wl1u|JPMpi>4K8PGf*;2%PGCR(4E2CZ_GyW9cIOJ_fB3xjAu?@A;L+jt+RBLvAIuPx6O9 z1~m6FoVq)`Ly;(Ph;yXbI(^BlQiYMO%U^Zcf9H3F7YUeEL4N=>o|D059I{-#v|Tmh z_$-EVzpNAds98Q~vh@XhC-e6K9I;7oXHR=rEguS~snm42`E7&0Ba$=h8S49Z_xC?% z`q(%NjIDV+h1&hFzVI~A94?F#G{kAE!a_ZCy)Y#G_cHDu`?0Mre1FY1GxetTgj4A4 z2cP5IppxPGbGgIsp2|@`&Rx$yCAf95g+#Q~cFWg;JQL8u9DNwqJ?yw9lU8}?vI_Pu zT+d?GPm5WmUP!Oa2oo~+=~~U?_tuaF=jTE{$GSiY@50PC=W9ua zww>Z%MH>##xD8yLckLS<{5mYLud}pATqFFnKt`0SI6*D6*Y?$J?ynqnMm$_)@ux1;g$$lB+m3^m%^y{SAX=rCWmOYBBwh9H2fTQ*3yY#S z?hnY*!(qGvzW!$DFA+Nc#{vON$m}){5 zABd>5DP8sjdB~EG$wf(Lw0!s%O+5Ewon+N`)T}w*P-uo_ApNOtZwgR)BLBwdCc>u2 zJrHQ(kCc0ziA_X3#>^N%JI42*22&#>G0x`s`=*-;Pt3_X^*i4Rpy-2EG-?mE)9%${~U!<~I)84~xLC2ALyMRFqw@;Bqu zVuq0j{as5vQXhurBBQijPY0u(QOra4lNBaP@IIEH4gsb0>?R1A>o*ja6JyHLy?FOH zGfG=i2F7sQhJTabfN72g&V50;?V>9G#|0pZ5hM= zAm_}KYF;+pi;zT|!BOQMy5=UTKl%k6+K7?OR#zv8GB%AyM}P@0@bamF>wOj?-hcU< zWh7O>U5S!yy;8Z_4Su{$*<(x6e4|@O7al7eP z&))Regs~NZG*CYkI|FR?x`t6$IFS{I80(#`um=g*NmQSg z;aXt!Z5qI^FlB`83jM}^r2Hq;C3c+kT%|jv21u0l4Bd3w^qWNTdzT)(^(}rbRUUrT{e8%sejY z-Ow|w9!Mp&j(N`V6*GU*W*hP-bf`*JikgKVRIWK19L%7o?GUbM4B>DDCw0!lOVaxT zPn5R^Dh(tW$d$PjyY!@K?7XW@7dB)ztTHFBM{F95EJ;FhoftAIylo8TKtd*}C6&8m z9-hBiGOIp{lm7VbCvv-|2)eK@(aD=1NvBDLOSN8Lk)K4zAXuq}c@`}F=s{xjxWJY5 zH&rEk!%Uz=wBj6pU&!BKyKT?Dk38)#<2a_aN+t7RKAtX_{~eY5!u6B#>8I%>tmm(b zcn(qYqV7+H1bc-N$MlxYumU<*&ZyGRn^a z6dfKv5wV6*Q-sGTj7(Dp*HNb%P#*BbD~2b!P*(>w&3ejQL9*aCF4r*yx2Tt;ALhW* z6V1_A%=w#E<@+L#i?e|J5xlu+*~w8e+PR?>GpM7d#VFk&x^1hAV#a_o2{p-nEJs{@ zv%viETkU+FQzIQcJA;Nu|wkv9a2b&&$^vF9+ zDV+lGbwawA!Gd0xDE%uoPi_vMOnJXPL{JOpq2p;cw1Jz|NyMh&jNbH?Mfou()qKQx zc($=b*~ z8juAQVTfSGpE$!`ckck@@dx;kq#d@uVySl_-18?U0?pym28 z=)vOOeATF*#C$pGrL#sT@vs{vUDm?)>UQk|bbI-tKS&=kKhILvDuLW=c`v zQ_nyV9E5R_n`Fd9zOZis@Kb`mGdfW~vJ2%Xs->Drb@r*cV6Y-{v!2v_RC5Y1O|#*W zQo`WnTWyn=p3C!`qp{ND+#-H+xb_5rDO#lYT?T6}3TEjr&)$bUw5l)EAR)&3zEQVI zLgA7qU@u>^`C_ga0BGBX))8R8HfP$6-to_n{m<4KuErqyv}YXFQ_vj9o!G^RY0-*} z9kcaz&Nn_sCZi;@n<$;Dx+JOpHrla!wU?zcYFq7Mr)BI8bn@Y@k9i+$ORbilGs% z5gF~m{lCsW3EC(0=A`+_iEfXKl8i6xX&Fpm<`#;=aoEFzABPYQ5LzP7wH$kr)!&ls z>OBK)92k5BQ)uzx$F|tJ)|F{*c_^z<)mhbT?_8>CbdtgwOa}oW4Rhc2E-vPy!}Mmw zgs~hk_3c#t5qgJOiQ>+V9f{9pywMCO1S}=4?|Tpug~G#^4D$24lE;TJfkWmp1LE;M z(B9?(q2%QweW8~8zo=W+vaxQKRRLNJRpn5cq=(GvwE>-f?ba@$(wlA-6~5yy@mk)i zQTdP-C=^n%+~&GuI^!_lEqKLaB5v}duubZd(T8==$s<`Ffc+6D4DU^bAE9ekdM|i(m3Z zWcK^xTYV?7kZ1Xrr+=cYeA@K+ZyGohZe3X}%GEBD3V{0?9^$l7kUPa2#v6K&RvD!Z zs{3+9R&#MQsc?@s>Q^3_pc2WxH3>`GQ)CKnVmL;W$A9SRJrfVmy!GF>mvu!#TgaNRN?v{npeXx;8&wco!H+XyGBltHA&0kP z-}s5Z$3StV5l1XH!E3DvFk}Q46=WL&&GJZfqWcBT5lB#&T}=WATlaUW>t`}{&v?&6 zEZ=uVQ}6dKd+d2G?YRxK!RkXst3UX@gy*9yrncN%{3RKP>%PFB<^9J+^oV&=ff~}m zyITKZ_YjLGhr0ST>n-O0yR|zTpxTUPVoTbeA`G*LrkQwXFWKK@*vio!aSKAHc0uPi zRvBYRJj=H-?Nlkcd;8Y#_6_7zuM0m>JL2jR<^l$M1z231h|tWp5@aa!zI?G6iZze^ zEW4%Z7`@sY6*N#l)$JaxFV8#aAM+mQ^X}M>;$q=h#B$izL0dkXo z`S$%ApRk-mGUvD+2CvRmxCN4BH>Hkp_y~1HlS7AS%PhU97F{lx@TAhA6QtA%EWz?> z^Vmr#eubeM7X!&HF^~;)Lg98A*_ClsCK_JV+40v4Gt5SsiiQzqG-`J(c3tI2iBwsZ zQQ91kua%wZNd{1rj@|_K0PQqu_{GlPQe@I+pO8xMcf2riI3je)E-~0|($-T2)c#C= zY(v6efZmfA$PE~aG-og!B@q{Zi}_&BXf*z4d`=ni|~QT7dKWO~8xp`ETw1NQsYG_GD*0GU-WnAts|+=M1v4P?;Q zie5OiTE4L~^F_l%ALPcLJl;OBQ9Fxj9_13~s}ynX&-hqfd=z;cU*4831UHnB!5KWF z%1t1M{`j4VkJR#OtleHiPKY=3|7& zu9_3nLxHpAxx06_5!ttA%{iUJGb+SsF1+Agd?H;FBU87s}eW6p1nk;EvH(%I)~ZfK0O zvFRPUy7Y^Yl@`gq7##M~CQ>6Z2xwvuRxB413veiRuG1-p3GD&=K6A@k{r*OrC083u%wo0A&lsUrs}{ z8Mf0Lq<(s;B$hhv>AovXeN0byEcN>F{H&MwM;2aGdM9YOSJ-9v9;<*NLOTtm?redjOg^*iMSHx7{l>6n$@v|7$g3wB$E#MC+ZzQ}4II?S_ zk_S{KXOno(PyeykMp(Hp&p|D758iWw==%>4t9ca^-Xf5Y=JMAsr@(=O)-$(`N z*>Q|rklf1p<=qsCcBvwRvHWjIain>KmqXg3@h-uhqIND_rAm#&fS@X<#n8aPri)<_ z+@NZ+LBGSC?p@a1d-5g|)^sL3r zItjlB@fB=qh&|8x!$n=wQ@?EJO8~llH|QiDId#7LsA;G-ikWtSI`!_XEDFNwDlJjw zk}NXq$6@7hOJU!rQuM^xdaqFu8oFH-Th*!%8?qq{Dpw(4pE z$4Idv`sF6~^{Mx8os1i{Llk&n)#cZ`i5FeJvYOhN&(uPp%>P8_7OHi_iRb_1?Mn8F z4yd{pX(>{{fBwwWp#%;sayQCvrbmTOXT3v-rxo_`umkQ~jVM>9dflA;-c80QWU43{ z3K$9#q)P-kNwyPi(ay8NIri`x=JHmFFT6wDyAlsqZel8hGs6$j@K{ls84L$TsDI1B zvH%023L_c0f2L9O_ll)TaG8*0tT3osLjwC~C7WBE0^m-r>w%%X8yDy6|6TD4{sOp< zch|pt6D^(K<)$THbwMpY7nP}^dD@=>ac9>5}vwTC>gPs4427K`<%QECPVZJ zMh$x;6f&mRs2fOWR22yVpIF|TJV(Vmh0v%m_I`X546(G27C=6YUDV(Yqv4b~VLo@g zpmcYziLH0xO?HCz49Qvv*XL9(xw|@@)MbC79(It`r}<2KIjWoBy7g7SlP0~Am2nGu z`|FtyqYa~CKR2=r=x6iPnP2n=#oQ06os=Aa0THUO?-CCKyp8ETW8UyBV;?)}?b|f* z=}nk&tJHTICx%-L8&8Qbk}Sv$N{ydHvr&eF%VcCsvj)-WUfOe557y{z+~-mLFn1&| zzAzdmS&msWFU;driw->!Z^tht9%=XEoC|uslM%y=Atzl$eBv+x)A2U(pgnXBnmEe- z*BV_b;eWG6&+!H|O|EAXb_Xkjjta&6N>+!a-HH0%Uc+b3nlOY}k9mBw$nx`M+tN>& z$;g)82^xb}n{m}opTWI5Bz#}=m(3x)TxQbo`s;^$Lg8QbWR>wcynw?(>A}bbGM#ZE zK1y{i#-?yHy31Tz2!iW-Cfo-e7|(uiBSjP|2jwH>HkkP&Wby@~aFpSCv&A3#!~jaw z8070|9MIX_-7K!5kpIS`|9|dAks#T^)o~ClnORd&8yaB+&JECsA)Sz>1a;Hm55gmp z5lqO$kf^rTJ%WuHfz%|%`(9grlY@MWX*iG@+jK37raVAGT+XQ8<3UjwFSvHN!4{F# z^)90W?f#}F#HWI_-eX?c*ky!q)HkLW!X&-=o|F9Qvvb2BW;3Oh6QD5h(Ge#bc_NCQ zR;>^49N3hN5!_)3@opN4mp25`n4`dR-AKWqBQar{drU_81`k~w?Ii&@3+(!fDUC$| zEBELeeVqbrmw%FjHxH)t#mZTBoQjQ4UmOa-#-xuD6YHzrW_J(gsIMA%4{kn<&GIrO z@-1;L%nDBmlBd@nocV8ILC=Vt=iYu%bBn$FjKEjn7oj^p`Ehh5Aj%rEM`@8uL(!`I zA}RN=;8f$)WfT978V_5;rL~wYWVqbbGcWRh(ETrG5og3)MP29R)9aGA@y|zQxT>xRvqIzFmts4-Q+^ zF?aE=7&kfe?j!9rsYB^o%dQ&IKhJYrOvz!j^t%!cbNfnNt)G`XbLq6W>_+58rc$mH z*sA{qGkJGhNN`^kXFY1?_;%v6D2VhQ<$G+cH5G4I?qZB_XNt$G<_WuIU7<~WW91in zR;b_0K1Yc%;5I!6ZIu_KKi)~q0=gdkneVlk|DHF@JKQr4VAX#8%!@`~LHrQO{e%6mPx00c8*v{CfyLAaTTQF z7WZO6IlH{6qRYh01T~;ko;D=H-4O1jT@VVq@?qhX;i?>5(4*F$i{J4klQ9nbIxS&5 zUoS~b#OS@Hw2LQhMbO|fE6gH=8;>J{IjjS@z<(ASqL5SvX;09FgQbS5ieghB%yad8 zHi?p<_C;$q^}baIxj49mAL9r^@(ve~Zs<%+-$ybOYiE2!PL5sw*-7#?9>7$h76@GC zFdM*Xb+9#iynbaBC^Jt37}mzlVT(^D%AX@5=X}lJ?oNA7tT~aDaX4Cal<-s|7 zX?b+3qgovLylNa&d7E+Eq9bk&zpBSe&5G4eYIz*C?_sq{UFOq=&vc7XZ%0hB{T1~zVIRXr z1V!aGj0)+T6z&*LnJR<{4JtTg4W-GK;FZ={$$Q$D%pG)N)NJIZm=C z$W#&bNj=0+ z8|Fpa6K&|E^o;H*e*2bq>XQQB>qfJgRikz+^%D`G&v21nElDi+8B?-8XS+fq^If@r zVNY*PGLEL@ep7*%hEk@tF{N~0iG7ciPu`ty!Cdv8%F4B0>!ob)cAfnH)Owpq6;P$# ziG@sNl)40A9$_f(Ue{~n)Bl;$)o1Z|P$@l>`p6w36GP*hJj5vOc}8^=KgP|1$mP*j zhBnVJ3sWRTN>T*wNW&ERKEx1yl#YK!k&#P@Rn`8~{k5>4qam)%=%}bEMEQFN$R9ri|wa4O(ybz5@ns6I&_(?<|nIS7YWN?ZG%z+?F7nlr*_Uozd zu9D|lVl6_LSC1o)#}@}FYXBl-Z6Da(HV8vV-%>Q-%0LSF;q` z6MZB-nW<0057s1>0|Rl(GrupYKfXpcz+$g&naR|oas+Nhp6y- zNAgRGV~Q>hW~zO9hYnr=fckas95AUD*-8E1IuW^>UQ*}9ytiyYL4u^AKp1bVVOisX z%K-_o4Cg3_`*6&7$@_?o1?~3hsf%f9-;=xS!F=OXn`25tI~oDDOy~ELw*8itxyovs z$?K!|WsJosRT{Aep78zh|8lvztq0fYGsvnPHxAK8y*}5f3UC)V({Rfu0>h`ZPx1d6 z>jZYz>^EUbtj`*UXRX%Yzt?AWxDC5EW0Fd=q3ylj7-|RHPct)B;tljw;p5l^Yy&jb zHq0X{5Nb63W9|orOiV>_GIH#W{8EOF32B^7mMUt-jxT7w|^ zd8_6q!@sU_;C`Gh>drIX7x@pJy$a_V;o2UIcg7Vl72tC&b`2VTJ z;Y+wiIO<8A-)`aO*j}H>;!I~1S&n_}Z(SUHVEU=B+HJS81pRZg!_w;eB1BNb&z7X^ zN)0BGU8S|2zD;yag$m^@zwaQHc9IPI)q1NKp+kww58Feeos6!Be5>TlAIJQlo8v*D zkjgR$29IPI^SMUcamKZbc-(Zums5+isq(ycKVB&3e>a>$oW(>R7)^_Fq87I*(O9!t z_A!dliE9H!DLIx%j`Ic_lU3Tr_G;Rg5WO8!bSXCl2IlLcSm-|0ulqC;L(Wm~@osJx zVm_lzB^IqpNFM2h55!55V3)=p_66SEaqZPN2sr7RNv?4@VUdEUZEK3hCYwo&;}3z0 zbGmuT9_t#)$*`~Iq+p4TLyW|IV5X--s+0BhJdy2rBZuUcY9-WiTc32 z4J>*+^MdwcidcS2^|Zd?ndgGhj5{}93mkff&Jn9eMc6^S6>DzoM#ll4rRbJ&CD$*4 zZ$Wh^#s+zw1G)uuP4F5Ke2>(OzVeinvX)9y(Ma?x9E-z}`df;o5~rKx`D&)^nW-!y zSU{}$a>=9?D-GLcS(P0N$^W_KtPyy=+Gzj=WU}Z^cN3txy4MF_2`#e$T#K`;}dd!TkA`SeG zenoawK;yvxh{K9^)bkSSyYS8H*J^k^*RU6H9{T^Gb=;Vk#A~rgMtmG`A(IOrT5}TX z(A=d4dg_%f`e3+a8DElK?O4H!kV))iUcWn1>CrS5(?Ye<<_< zN`#dVIpZ)R8Pyr!B_~HTkG15OYkJ40RlshO&d|YNeL$F1_wZlN;siw9I~1nnyN`Dh zTK_jm6p&%mcG+R4%gfg!r5oRbHX|}-JaVDxXmNL3^_OdF^$q%FXa8upn5M2@B0Pie z=hsvg0C%si3A!fwlEq814{WU#%1p1d>Z}4?{Ck>t{*fCH1}zL?PiPvZ10%NGCGK`F zzGxsX>)?n~J(o`u0l;_sm{Zpg(*ZtMJ2i&T9@3@BVZr@Zu2_#SEIT%rL4qxXIuAUV z5;;fz4D_**5DgfEm;Vz2If2%8VkGM>;mu`D)mNk({+^ZhR`@v^!TSD}%HoZ&a*wClONU4LMoq;{#sOXvBmx?1 zMTu+{euL@Ldzl#dd(uYwV;+v1ZMSUQLFt+dd(q>e4Q%o`)xv3~mdD}sT-N zwIg7VtT8|%fixz^#PMq3dB7jFu4Yz&T2&}n)Vv6fFu!RenjCrZHFD06AH3a^Pi^K& z^C4LP#7R6fY3!AnUx#>ehg&!ECewK8NQh1DK2wi2|7HpThm_U}SUNZaoS4#o@_iq4 zix|kJ=PttD)Q+QE%}NBK{k-2`-NU{~r&MHJnVPA8DLvfEB>0$UXFf|cO8H@xu$Sxm z*7fQdg>v5G+plE0o|il!cvy?^!c2RU^DcQJw?C8q&@yLmLcw716e+)CDaB-~FUO3} z{T=3>ICk3-gxX(HUlJA6W`%tY-;Q!K@%)6Z(1UnFe)wQf&HW5xc^t0OpgY4#r@>?egxoeTDd|Xo;B;4!@F!B^}wjoF(>f27WYC$%`%i_5^u}b24vN3ufM(F0GdI#mrb4+}vPyB75|Fansmftxh z7l%{(*>N3@P0&C_mnttfR`9Yis%urnQm|>Mh+;wnp28upV-;v&WBfgWoJ+lxORLjT zV<#66q3u_$5q)Ik(tZW$Or~}eqlpC`{uB^TplYCB;6sZ`cJbe)1@XkT^tZ(4Y`*P& z^^o7VPfmbGe&!9`);DxYJiIQ$V8cs2LwqG z)1?_$wKtO`!bJ{?YI>AHcfs~rqS%L$HunMH#-1PH%I}ksg+}aUS+DKoWBrfJfthCy zWtD>gs+p!?hvp(LNZsXS|H^bELu8d7P91+1i>%`s8k>vkA<+qOe zu24g;bO#aYYr&C&l$GsT`oESQdHQ}-_DxcBX)x4L=6m&NvoQ69VSc3AXDwv`g%d|n z%56)MuU6QjMlACe(N|ihoT0>s1=pYfXa*OmjOb}V(|W_e3$>Q-jY(K2Iaf#pvwPmb zuN>IAONs-022MZK*UhhHj$(Fhy*fP%Z>ux1PPux8rvC>XUS5!7x#jirw;}hoqi+1NvG%YW2RYk z#Wi;5;)JSKXGOAuvblF!D~O{CP6DwW*uPdR6kyIL81H_xeo4d&-n^(WaGd0kP;rQg&j7bOlG2z^*j4bb;EIohv^7qOd{MMnhhq6uw<_vx`u5S3lZayR%J z22DYwYb$|41+;A$S~=jNEtyDPgKs*%*BpyZ*`Ctqk4?YixQRD(fV~ti@AQ^v_E#!P zS)xIcvqR#wd#q{DD7XCM;1y1qv)>8LMSx&yF=wTjr(TqDR%6TatQpL$k# zIu+Exk+q)&o0XqLpQc}W&RQn;jBo{Q>5-V|wHc<`?!3@d%KoD2c(hh#yK=UmKn$LW zUgh#OQ+a#~I|$chq#DOBIpWdXH;t7cAXRv02|yi4ovs0{WAxaK!hc$XyUtl)AZ6Vs z()0RtAdVWvus;Qgoa(pFaET+|L8*=WhDcT~-Lm8|IM0>4l)7y1`+*3*lfI^&c>bp= zVwoq}xzW;LDqoa!9di;}Lx@apzjn5q^af@uMs0QL;wrbj@52c5l9wBE3~b%XZZ`b7 zK%i4(3)2vWXAw~^d4#+)wL2v!zsw(VF4jpR8X_3Xp-SeHmn8qCamvl8p2U;(w=e z?AZfXO2K?3{ORGNQ{C4YvR(S3l6(c5F08CbEv@yN(6+%GQl)ENO>3v)QG$A z7CyCJ`StTVk5%ced9o}TZg=$*MN|iqvKS(wQC{=4&p4R;{MJ+K(;b-_<9%uhbpqyL z#^^EN7#C{fx)!|G{U6@OaQS;qwt!uibE{5Wn@wc70w($vf2$w#dAldgV&&iBxTB6n z;b$i*+Jj2R3_D*8J}yK+XbfLtf{IN4Q0fwzew-wB?)#G{qb&a&AvZH-0ozSvk+2u1 zvjUFx=75FoDk!~`l6RKO?kfQX1tQHU5JeRis&?Y2iM|bFI5EK;YZxHJY^gpg->Du% zJu#u~*Op<%ymtC;FCdhGeGt!SmNE2+0tIbQTav?`R6{;)R>RfVIb%<22Q#)M8wW(^ zDZ&Gx;SO}P#%xg=)>nudAje){qYx>N(dco||MC%<6R}lNZW@Oy5t}JwV(qwWf`+-K zc#2Y4y&|<5JrgnW`Bfo;WgY~H56j>>%0gTDz3T<4>IXY_71wfVle-~fH<2d$m*!%{ zcoNB~>ej-2F-X|NQ-V9wOZAgc1blWyRgohc~TUQ0^Z1Uu58FOTTjH9H`O1Z8Fq-kAM@`tWd~7z zu_Lqjz5z#0MY)^X%iFINma@vRe$@Y4W_$572`|3F?8~UMVyc3MK#FOk8oz8su7KkD>?r9jWjlN`Ou4OJo>D9EY2JP~{yk7|7lo0cT)_|u6}E=FmUTRV z^RRa3JZJz^Bq$mdsFb{|346#XL_LVhXNHb_q^~Wl)1R@>d`x(!gXWZ@*qq+dS<IONYkSS7cFmx+vKWJ zI_RW1Kvne1vY6LaMA#q2{Exn#*qMxx*4ku$f$c0JoLg4T()CA|Z?+Md^PeOh$KIcJ zNLQn4wks?op1;Kz)xJR@hFBARzPjdel9{We+!Il%5^_-G7kmt7KT#aSkEyc?EmgKL z;CAw}F5Usfub$hEHKa_#G;gZ}F>-*KRq7yDHNXAtR(q*K+nw8@tNYvDvAmP$d)I)f zH}EpqJ7?g9Bp$3urF6O|ixXRDVmM-+y70S6FV#%#!tc@nFD7-W$Lo>5Of%`x=)irn zr$o?L;9eb9CV0XmRnDZZ^ZV1^_itH9uGz}-LQDcC6)(E&Z6&nt=6a*VdeLPW;16@# zz^0CTbgaKa%q2c%8(s$5X3PycO*N5tbE)}C$grwwCZ^lVr28QR9#tDklA#cYtzv%4 z<@g;b*Sc<6Qx)W0S|g1F+L_t6&Lq`m16tQuy|t5TXJsfQ|V^wocnQr|D+31Wh~O=0U5nnG@Qkd5#JT=K!3I1y69r-BH%BaF8ggX3fC=G z_ML}mTg)Vmk5;Jmrw5FBWFGM`$IY8tTGzMV!^vWyER;(q@(OVEu_I}1VOAXFt_Igd z>TIZyCIW#(phaeug!2$;Q$lU}r^oHgiw2gEA(~I-sflJ7n~Ym>l+h2bqL8#Q->*|E z$3*PW#{Ip@Dexp)xvafASwtxpoJUGI)aSi`#<^rwZo?VnrQk&Aj2xV<0e7x-hN4zq zUU`s5LjPh*tac;qM%R1G5CPz!yI{Jw=mfYK7J$DMet!OXO>uMc>|^v%tJK!JtH=a9 z)EE;_Gew@A51*G!BGLzD+1}_EL`4vZWb%uqD&&T9dYsO6jLE6wlcr2?I!Mg2=({)* zLJ6ztrm?C5*@xqiB-9}_Pnq~a&2w?m{BEXTi={~^U+M2V8gxbMu~0+RnwfqlTJFri z7SbVVH;^vr7U6Ha9saXLibfO8g+2Rxp7kD2qf`@T?_n_-Or>y0F#Ve10lbe=RDjG-$pBSU&f^^}W+TpR za1FGBCvZ`FHR1P&L~f}>CRdHtYVMk07fApx!Ahn^ONQ9G3mqW8C zCM;hA$AFLt^PVcP(>KYGedaG=Tx$8&AtDE0tyJnV3W$IHGiC-5nYA(J+N4!=W~H1k zJi}qUSUSA5XnmJbwzcT{)N@=n2NoVNKyQ(euE;OiI`InnackBhiIQpibRARKB8UcKd`(calrkxsq~)$Y&=lfy*rvs!dP-aG8>a_ z?EueU={CmHkG&V*j(v6`&-~YstfZd>E;?-wa|Uu)INN65>}y{A^YXj>n%L;($9)gop`KhKsd{VJySmuY+Dsn z*z==wx|V!HlZwYI;Qv_p2BsH9p#K&I(*MKCW9IZr;$Y^z{>_ePg)g#Ug1zr&?I2>{itZhH}UY!Z}}o{KVrsaC^N-cTjsHV zF)LGEEYBiu>?2x$w^=!`N5|S6ULDqT_tC=pgA>$L)ElhYX8AQ$^)BG=(zk#~Slkmc zcoBTtaA?r-bX-q*^!2c{^v^PjI2*n5W|@tEgFTv?5?pRp} zB0fA{0lJ&K@*v?VR*T77R{6LI|uG#JOzad0e9c3wN= zjnS60+M)$I-fK$RC)u!ijQO$x)+~RJ-sQQp*wTN#MKk@v=tY0%&c)L26o#w(wO7@bZV^ zMY#qKxpLU=+W9CJ6CCDgt}StnLDCjDa(7tq;h*5 zFVMi?Yjxbc5st{YA48C26r)x5>L&S^9XXF8a$GM}z7x)I_8(K0VeDg4_4gQ3Wzl1f zgIblmT-^q$GO?s9a7D*EDrzZ1T@Z2Afe zppQ|z(`ZcND&0TXqEpl?LaEp@$^l9q#HqJ~>YTQYr>5^j2smo&kn0|A0g|!^4=bE! zw?iHLN!9j}H<3Hx8z6^d?miB{Wr!1Z>}Dxt?U2Cx$xNftEiPMg=zykcGkA3Nhg-*8H+#B`$D2fN=K5X$Y|ok(VJwW5PIU%Fc%Hc7M(3Tzb0IGaq)+j!C=1e3 zN)K56dF*4$T85wYu;mj=gn+|el8p8m5pbs<)Y~Iu#&1UH1a1KJNa>fd0rK61Dz)%X z`u-2S_aG$a#ml$y=#l1>a_hfDE2&9?XBCn*ypJlICI+3*R?{9 z)!3nv>q{aE`;Xfw2AV!=o=0&cqXf}}vP~uzkGRd)-CGWXgOfumEURIPNKwN@i3cRs z2Np8$_vdxfg8Sa$EqT_Snd^cdA;mk+qs;k(Uq|8%%OdT%b!nr!-2GO!P9<=4x@(=2 zM@r~m$;;-YPL|5E`hQWYTu50*-MJeer%0@Q>A!%W`S4V0k-Yt)M}g9=T~Bk>6BSOD zthW@T_D&B^`u0E|OK4WO)JJf-jh$IqoFzXk<$R%NT!E(t9#>}Li+A#93H3VNupyA9t`%29pXTLhe{`MlNBG{dV^ zi#8ZbY)|L2&svdPxz0+5LxBRzL&3u>ml?z+>^h}ETH%I^i1&Q8R{5`5osm}yzPudn zNg>8U+W#1FRt5k%J8;$ck8@OwnL?bNMqM1!3cvWw-=Eapu^AX6+>^AfBf2nt4^#ZS zzpqDocRi%ThicImWPD})9_J5RirF!B3&Z2-3%S-`BlH+hM%W)les8zp2gPr2-J)Cl z@2>b|V)Q|^ZE%h<#xQ7mjlDhpB>#1&dG8sjdk2b+o{|se`g|M5Ci%&`pr;xB?{}mY z6IJ(6#>@WUCqFL7gE4aY7U7yrP}k!b%4d&kJRk*Qu0X%AD^eEC3kNc&lU@Yn~I7=QfNy7{4_W$h#)M(bq z4{8GjF}l}2(S2KAfy;nLR8@E%;#DiLJ>&ci2VJ^RxO1ZWZaE=CCYT;KDoZ~gXHz$%|r8^h3z@Yat1CO}geB?C%qjLyT=PnUw@x9`n^Be08l0L_)*b z6`hRE8E)DFDBd6Ty_&?#LnLf+bqy%c2%vib%(*QcybiGCZU-WbsB@I zE(pa1a5SY25M~=`XBTTvsvp=mJ-g5D4n!SET6ahY2OVOxo4leboyS6m@$O5pi3bm$ zPqH6pOYJT5_qoT}J2-OLFn}}Hww>rNal@K!rF8GvAa6AlW=Lj%$?N6ew=MhFq`B%- zl0iKeXi23?rLr^i$&h<>Ugn5Sb{N>eq znBebq5LszE3{6Ng+f8JM*MH?{zeQLsEWW&-Z479kY@=1Or&70(S^)8*O+x#7bB1r7 zT(2*klvl@(@l88fDeMRI7(M76P^G^8IlI$Xjb=j=Ta6z0to0!iS}T@8nI={JzPAp7 z^ZeO_quO;g%W%gk;+>Znry`kIoj9x^N}|LQhvJD`-ZXj?zsGr$Px|)8wxVH4g#YIWGD%qc2`g;IqiFEVBjPkO5?K z5J!ae849J=GSZ#6O9=(`3C+d->0_~p-#hq1NuD4)k1pWFLqcg>G0_k~X4sk?ZA zafb*~IL6i`>RR=%)Nzu7fwVeV+q4OP+B%&GZ||(|r}1QEq~hmY_0gcK z9{k8`vU<=8D>@#z{9>01*19J4qA;f`S$Tn7uZxSN%%Q^~GjIO~N^!y)o8|q)9VJso zYoddZA@^?V28hg@u8Qgxe*QW3?K}1qW~rOB3!U6=4r(9uUZ6Jb$D2n}8O*`8EzKTr z_*t&RQ{Py4$gz6lQ%?;euSFL(%T082ah9gGM}>bYNIkjpHk_vBAf01BieIj?wY|m$ z_Z#^9iSFKMGG?@oB(35aPB-gc4UB_^g@kbT>a*7E;Ts`4BvOl%sJ^0~%CB}EW0-|* z(j^t(hEHr7R9Izv7I3E59@hyEsQ$Jkf0A(K;bZ92(*R3z>3i4anx^KK0(exo5(;e030xpDcdp0!gYZ2lyB?2z%fM!{pzW<4wd3iqj3$;-!^@h5%;NEKbp78n&B!>toJtIYLOYyjzlHyT*GZ%Wd(!Tg(ZF_h{U6 z2IOWEa+k{Nw#MxJVz%rYKk86ZYL$1T_^&C^lqeHFGE~zr7nKTX--NMTrC;|_g>NIP z^5-^IfUHdkQKW*?>P1hMe+XridBEp1@tsU_<5YA4D15O+hf3|ruy?(S-#=92JS06Q z2vaXg%yixmOT&g;bNlO}7Fk0&wn!;Xn3x5-G5RsZC^6>cipt|-4--xKhcEq#ws%&Y z>4s}^))|Y)e2{ONn8#K0 zNrR3tZf9B-CK;fRyRXJA|9AehlY4K3t^T=nwp>Ks#-dH$=OX^;X#^ zZ-?q|BY7`Q7Z@D0{_$V=mN4JKI!e7+buMknLV@HwH4`CMFUFMpO?V*eNILT?WaB~T@GUHe*RlqZ8dARD_ z`4(bIR}ebGrDZU(6UIg$l0lF2QM6yD18DCz`rp?t%!%JAke66tGh;(4WDNJYN% zGx=A119aa>gmNcF&d*en^go7Zzd@ZrzD?$emqEpx^0#3-{ow&(wkNK*Yn{{Q?a>JV zA--oR>#(?HBbGi^jV4|~iM6AfkeZC^eXnI24BRt7F;H(PwKOc2tk-Dhea54k{X{%#@=1<6wDG5noh-)CWX$1{ zDw7lHIsaq7xNbHBiB^-G$Iq!oFz$@tc}tTZEak^3v}SqV)lPjWSL$z2ZaBuMxb0t` zQ1383rfw6=k5dckrcQ*nx!YL^KibbfUo5p>t(@GpuAQ>CUvvuIuK3*Iu3gKtipyP8 zPU|^Crk-GQ_?Bj`CGtQ=5-M}HeMoulr4r%7-luLUy%??1&5=_Q@#x&#s)xmAgMMr1 zg5>9xd~_3|AznjV6pQK$TDczL?Lv1g#oza#LQqqO$|tA4x7*Fw!-?%PqvXP4I3d_s zj#{@nzq>O8Y*mLj0$hKypTofiw$oWuP*vVL3WZ@jOIzOhVhiuG?@!9p;~pLr2h=Uy zIf%wRU#?R4ETqC-;fiO|&GAd|jN9SuusMysaH|<`COCmnUoQ)^Ni)w-tiQPh91gaaNX^4nrx*!v2$g=jY!h4D%ND;+ z(*{xf4urV{Gyo&JQxv7{Qe{9ngX31%D2xoi|J?~{z!-q@9K|}3z9&IVvQa7Zp-=O5 zSS@m-HfbKex%~o_`umv3$XN}jSsaNWJr`M|y4AY%!86^~PJvma9rBxNe+T4F;1+N# zq^k5{ySR*B7l}pNwq7=bzX5Xyg3=^tenDvI2;WmSMmAhT2}R4Sw0dhMStYxS-ofFG^Lf66ZSdX#g0IkH(CtfbDk)p2M#| zVm_E|y2?Ym8;(`6t`tMnB2W15BS~WpL-zXENTy(n#bWrLhg{hZ6F2VR zR~|j`ezd}&jdbgu39eO&P+5fHY{f`lLZ;#yVBR52R;qP;JH+LY$rQI6Cw*g7HqHtL&)uGxb%Q%3|zb>Pmbw8cpF8D zw;tQb3` zZ8JYqgR->0{I7l4gJ6lAoU_mt7LOiqHa6>`M(9_kbza*E&#^B_CqM2KAFPT=eR)z144il@Y>I-aXr zPNE@N-G34Y`;0&XruP!;wQa{R=L&6Nuf>!iCRY15k&8Vl(q(8G%a`(k0;@x6Ol)<_ zkL}{;lzMS*G2q`v#d9E{tx(*JO%Q+Q$c@!ZS@H!V}YV-as7o53UN|xql zCu+Sf;*VjM{>)T}EC%tU_Ebt3{&(9}Au)*B)e^q3uJw z0u#@9W8vo3;0-zc4%#$x*zY_I_M=)*dFc$14*fQ{K`G{JieRt0k9akL5wq!eIGm>c zFFZZ#PgbZMGqHxbu-B+3x5-i%uSvhlI^O1Vec47J{KxH+5l=_=Nt)>gRbPdyRa%&c zhSs9I$C88KYbtq!smFYao1!r$g|*ggII-Kw;_4-kNt|3R<58I;4*NOM&&@iT9OcUK zK{c+j{`Oa3cesABf6rU}`P)Di19vjxv^u2^Ba*2awKXS4Mh*kZw*7l>6B%55^+>lT zQJK$zM?+1#{aTPzH<+79t`ZNA(#Ay?*&H%mWb*Q$i`UP_b2Ky@R-BWClAwDBgY*4x z`FF|tvFm`tez_p%jO@q>ZQr6Vhi(s*pjc19-uA55XK2brp_qmGzFo_kW(XUdVMP=k z;9dc_?c+OBKlbNI7dozq2^2`vFIyc8;J&ICBSb&pSif&{wRkG;})1KTq14LrbkVqX5TF2vR4u*SGoGK;RIqTS@c`EA}${;=)@rAZwgJzOb>fK zsK(TpB$qvWe@|T23@t{Q4n@jZMglc?bF#Xl@ADnQ{c41R)Z1C%4aBQ8?Kw}{EI-Ta zUY6Klr58IFAl8PHLP2yb!l9H{{ZR7a7UA2yCd6pvXu2`l1GfMMGW9G*OAc1o0E$Q& z1z6bzD3pi{3YuKZd>TJPF&0m_@~`XdvM7r-=KUm39-EF`=@`f#B$*a+Sf%Gb`; zm)?w}2iQd#!0%u_uwVX&um%@l$7K=KrHm8XWWZ*<82~kXOi#Ng5g#K^Al^FY7Fd2o}0>Im=p;*&hgmIYYE3;;!o04nV$ac;M6Eq@njK*ZZpw7rx6q zF2T0;%cHF8ytUI+HNonMFlNuqshivD=kr48zO!$cLOTOC(`dhZNumA@kiW+RuDTI! zqAp`Y8V9hPyyZkWb^lmxHY!I25Oh+D4dmW}WD~@L)UVjbDD!HMk72mZ(oOe#Td#k* zBC;f1%vjyo2JrB&xaoFgWAO-8p^p%W5VZ)~;7ck5p4SnUnf`I3^1VzL!9Ldz`M$*C zfa-Qd5|gn}+h1ZTSTA!{hEGp=eV9EP(APEPZ4IxhxswSDi!f(7KfLp2KSMEpmi#v6 zKv|Rd_KL&)I6HYo+ciLWH5$ex1ow;H?&C5_L>X`s>E!yB61!bfg_H0nCU_kbJD#(h zTjO4b3<)3e@Hz)OuSyI7zXp{sQ8BW5IRPL4qp0Oa@FjK!C>V%0SCW%Ie_ev3#SFS^ zb&{HH*|(84APSepJ%CuJRuU2Y(#$kV>?rWH>cqEOvg^ol@xK975=62w`n5#g2SSNS z6K&yGg=yPjI5I?w$1j{563hU3yC+5Ppuyj;jrNldBFW*vr89cl#hPP~;x`+#2-V_G zlRaf}lVy|8#~HZ|oJN%A4(ySJ08eHj8f#q3gTr#g<=vJNLyKp|-|k(_FqBTf!b1Hw z*T;li>$)ej#lcu`SwF@l5sPz$aDyiwBwpn-Q0I$}@XuZX-H{ zzu-_gH)`(UE6p=j{gW5&Crg=A-$!ZQvpM;dDq|1-Vh&udSQlH0VKwmH8M^6BIzw@C z31u!2#FC>(&qQdZu|i9-$-hH2DsfXQOAa(UL`tg<|IR;mzDH^b=vuU^vc5+Jw`uq+ zdM`y%L^4$_IIviJyYFe!x^P5vieM@dhcT;t&VfmXr$?=^6hTE+Y)<+o7>mQf!xHng1DkK# zymKSvRo^1jwmy`*4dr!4^2TQ>ZJB#JWCmkp>@|ibkLuy;4Uuh%9sQ4hD% zzUaQ`c8b1Uy zM_#mC9Z$GR+)q!5y@(jTn$yP}0)nIp6lY<|S$-H%-kEdKOly>6=oOcPqCs$mG92c+ z>XUA5&A!nw?y4a;lk6pao0z4a&!;RO`W3q@S`35S4LT|dZcW>T--AiaU00tq(I)+p z#OQmDjXi^EkCYnSMV!PM)tPXNQ)GYcxWDyc@Jbw1$n?M{o~hQ7Qer&@=azjt zeJQBkz9!>D{L?a9X<=ASh3urD>|8R;CDqx~>BvT{FUlUeQmoq2mC&$+%BEe+GKeni zsxegXw`ygapKF~|TaEEDN5%89%E!)cyOHFA17{0_8A&=kB^6GAZ5rRO%s0Klc@4~o zKS{5$->M7W5J={PKUukT(QkX4jQle|w)RnU3!qpt8lvy6ggis*5VB(eX{} z@kIVBWKs1_9-hw^rf1Xw&mp*3joE6}OQw9+`OJ6w<#*}zKAc{gw^OS7yCK)l`$&Qh z8&UfW^IbxFqoNfOLE*@S3tSY;v3@GCbBQg2KErB;}U6F%QEpg5X$p04-oOjegwO|Q%$P5 zUgh`u3VjIm&?t*IYe_DzI6Bl2OuH?Od)u^n zlnDRB&ealMZ9E_9z#TzVn3N#Xh5#@~13+o8qjX;%+#6Mr^CMZt~+uFHA^S%;jYgN$Q84u>s3j{*H8_I^Etm`y+TWt9< zEdPJWgfZtOe`DEylL-}CbtT7dimkVSt%z5Zh%U+E+GJlMPZWVa*Umpbjb-toKw_Ik-!`AE~FY8s&8Su)6xeH+Okl6wDb z0mgZ-g;M zgYVI<|5h3_YcY_%KvPJ0JJhre8sZbU45DG7W*-slMi1fp^QvaalW$s8Q;WtRS9N* zEw-P*qVrmvTXW(<42S1UZ!EZcdc4zVNb*(rq z;lz(GQ__#v(=@*>1^KlKPK_AP*hKwnjPgsYniJ5LE_Gv2KxG(|B*c_b4olk|( zY6Z>%hUmYgWLou!?Ghx_Rha(SQ97vYt+3R&u-M<&U)k3SHpF#|=JGcZ>>9^)X8fYX zxWh}^uPBfvyVm8`zEd!f*u&bhyu+HoRTM$p>H0h z$#GNTwO@F!+#}q-=(&s;%C9O-HkAN&etXel*R!6Wy&YVA`KJs0z+yhR_%XkP1I>qV z0%v2~izZfg1~pe^EVRNW7-fShqswD&p7!<6|B-)sG#ztNy7QH#fgH~Bg;x{Ksr9s8 z>be#6TI$GWSHg%5|A{x8u2UI&&t?aeYMmuxRO>h=z$?JDBuw7-q?~Alm4`vx|EvEW z)%gJmbSeFO5gF<;|4XjQ#CZp#oS88dS2jXl^QHVl^jPGXiU&}j7?XW!2y!f^godi@ zVTkf~%QVuFNtg`M`;+UE#>HjHac+Uw+-xnPD|J3)sBc4?q!d_K+j1GN5G($`_Dp!x z29|z1g-yv~I*jk8C|dhpuz;?h16TvtZnZQ~S_%guQKhR5E&}Oac4axvb#^exti=dF z(588FTuaz65iAgq#lF2pgrc)~f!K(I4G*Hd1G9!G(xrLZ2q`1cPwFoya2`fvnA;4V zdrZe=psVYg6c^Lty~#FaeiCf}8&dKayhgt0}~elyv?WGaqv=duGZ=f_FX^cOUsl?z6c zt6#THZ}^^5RQ$IWz?fMxzvr5b9J?2NMlsiy+1eu``fWkWy^VBUfMs3^yZ(V2OtIiL zd@HIo1X<+pLr5&F>`l=gGTVZ6A_p22vZLZglF~rm_mF)qxuq?@p|ioVnREAj@Mq|N zy35=OrOw34m!9*cEgw#H&{JpyafAWqp2L*p$_HvUb7IA`{KUM;)5MBltnv?1Hp4cJ zoN1B2hO8Y^MQ;PGg33Kb#)E%s-;s(3VYrE8whHee-Rzlb9l2F+WCDnR0HBQ@7FA)& zrJ^3zwrs^-Ox8Q67$w9kHe0ZeD}Hm5?L^yTP-j+7F2l+jlMVRo%FN^8f$~n0u>6;V z4I}T*xdyKEGgmMD*}!R>V;L(qfpw9P;Lky3OBeoCahLO+P(&T;G?!Y^!R#?H%bK~y zN6MS1bB5qrW#DQ|f2O(c=gCORKWpPoD=|odTw1Y(Q3CTvO32%$U!lEqy`X(vsdTYS z`ef0aeZSv(X*KaqwAH3A_e|6f&fE7WM8v^aM`i@CpoG8CLda1$eYULFdKOtbfwZ$} zT1T(II%>XB*@V_#ZF#R=k-hs<;KI1vqrJTrYZmoox2Lcssz}&vQ#SJ*{&FaA{0a6F zPS6Y+9fWg^h#e38A(qkq0YoZ1T4;=4i(qaYM~vX*c%G|WkLZlGwlG^GekWqLj4U*~ z7A)_|2C=EcYL^H>@caG)N)?H+%f^pR=FKld9knzl5z4oH|Jmr((I`r-A&)>@u^54$ z&z_urUiLcrRC*O$QnByZN0g(-Qqx{oMj%y2FZS;~7!a5ihIha+GiNAm@*+bj8e?R> zEuB7QXWC0#jW_9D9?N_#W#`*AN5VCpIdz)V3I^h(tFG^)=Wjb3IacV-2!EZ90h5|N zV@PC$Gkar3`jC_CeV%vGVt*)9>dYahcL1e-d~fZ{jB^ibqJ|>uya(41=LTmAeejfdU2(|s-3z*u-hmCsDx=G2DMl-KX78^31qH?P(;Dd21`VAENRuI5%5Bm9k> zt+EU!Y3$2{3C6xpp05rJ?*D1km-;1+3LFotIGy|0`DICk_@w)M{GmZ!aP{8bcjAP1#D z>+H_466-Nw$*<-ch4X{^$M!^aLpMf_q5ABzlzfCa*KC;+j-#<5>{v_l3pM_0$&0`A z`J|qLb;oTcAD}HlscwEqz>RHgEaVe*-E3|@20q9r@?^$W9zO<;roCK>T}i;| zKi>$hqXq9Ux5qph(L)Yzi!z3(tQ*Zso6SGkkzaa-?5U7=TuqVq;M}Va@>fr&a4p3V zW_nwBEG2mlHn&~T>(=_D>v^7COe~>iDd!UV0Gq4-=8)W)5t3C^Di(BCyqQW}#1zRA zTF|Yx9<_piVH1BiIlTr7#-x~U+b|@dKeYm1QRux0QIllhb`6*(Up{k#p-RsK-x?-; zELZF`UuH)i1F}un>}pkfzN7(+2xRhpRSs<*oZjJpw$2RLa6qN7<2K<9Jhmq`H|9V_ zI&5kK>r|47n%-U7b<@0zyT(d0jmI?ULJM&%Bi;F1Z8R4rc{hI9ZxB%DH@KDKWfIt75Tw~QK?`SYGr>^?F~O+ zE{)m1c;tm;3kqoa(R#jGdVMIhbQ6hw_%uwY+(sJe(A)qeT#UGtbjLGn|a~t)FiOWKHCB zH7>D4Ls z!gM*4O3q=>Vj~n}I7>XMAxqmn2oIzH|1k*uY|~KsrHWIm3;^C286pocow&EO<^Q5I zSg)Ozwx2v-tgOMGp9lq?ums@_g3mJT4{dr+GfU5pBlk}e3Xg}-=T@Inb{|;5lhD)J zn)UO2*7KQ9y&U%_VQlr_1!~m@*YtjiC628(A{fZq)}k}%B@U{lcbe32b?jC;!zr;k)+5Vd8J$HTyy6 z-$nP$5%5W#KMj$uB>@Cx?V~iuJ>B3`~#d|yWW5YX=YrcRV zH~ih%Z_%I-Oy`d*Zk;tfcr3f~@fii7C;I_4n>A%_(51`+*8ol!;pF}R37K@)anii# z%VoMZ;+#=CNZ2wb^Cw_Eewt%*^i) zB6NgPzo_h|FKr5D5FEOT6f)Ma$3#`bk?agxOol;KYjZHp((mz^O9N;rGFmjxdf%ol zQAM61Z<;Gn$x^4OG4w3e`34>X6a=m|3$hlk3LvK=qgO?Q?z{0!qV?+zZGVsSF2A(x z%9VSi>)qV!sr_}#XxdGg^MdLxv{84_D}-heq^BOir`#voK2JfO z!v@Kp_`#Yyk3Q~;sx`&mTz>L=Cbv8cZnW^-TJd@tH|JqDdcDUJNCbbARbOG?;URy} zS0}t=GjwXgS5-mud&z5s~&vz1tXdQrFOJQbRjHhWUP?o8+bFKCCaJvV0EN!6zd?C{ca#2m=d zIW_m{-8Xwfxt^aOerQD@2x)qGO_%LY^-n?VXFv7g>K?A2sh_LsTQ05NX@M}!_qJ1x z8V{~!nOjZ^ac!ROZ>R-s4%)BY3BsoYZ|k3SnOmQ|3aO2K!xci^tr#Sgvsoe&k#e&_ zTC!u*{%rW{tUc5V-dnft?I)Ufu`rR__b#t5*t>`JxVO8F<{05ni?BgBM=a$=kd9&gQ@o)JK3+BNxcr8Uc}^I0B{_9`E3dpiJ!vA?9s6Z#CcWqC2C!*W#Jk+vRKE zkH;=FoUVi1&_?qna57fPI9}9SdARVPBO2g`SSS>V2rFD_R=xn3hmJ7(}RmR_yq zTL|DE`NhxOkzU!@>o*1X52T9S^yi7*Hu~Wmdewxav8OhSHr`~FxrL+HU%>CT?)}fh zkmBZR-Woksjx&#K-|gzSBB=r1PGco)RP zvgx$u$6{2yugh>Cp6=N%BrZJYYpb$xV-k92e#bQoQUZ55jD7}CD!b_CNC|OXQTC^q z`X^jLRVw2f6YUP&xeM(b{4N1>pdeG9D>TUW#Qf3_2cK=ji@oNKo9KZY9ULtA9hEN(WdfNVLDqq*Ms;J?26?dNIrA~ij zExoX{M?L~3c_ofEn*0bV&f(FB zLd2o?I&6Iuh`5ZGM4Th0K#^5kM(%Hfh^D+1Z`d*yuA6WX&s~p$0W)NNo4X|Urto8g zi-2?~{J9jq1O(mKnTDs|`D|)~AD6(-k#r9~&Jod|Tf{9D-TjAexi`1UhHeAHlv)dg zZn}B~ssG;J-HLBKo+8HeiiV|O$8wfpkFZfA-?mpGDDfxcSZp+f6^wy_!ayj4@ zvWC4JCOpyfuO@S6L=L-hLiu!Vz#mc;KPJAfwq-FGHD0hOJd^zmK7?)Cd7%oQ)mHak zKy0e}&j^FAX=G#qiUsW~(yyYLAbMi;nt$7*jj8)>1&B5}XoxXRR39hp%`?9J?b2ek_i^=Rg;UBm96qy`eJudN0<=oo6-T*tU zepD)L+ZC`nN%p4f^;_bCf*k&tvpUck+aDK!czUiSL4Ti`#LBEN{?eHXFinT~)txT9}aTz#n zK8g*ZF)l11Zg_M8YRl4#uy!An&RXGbi-oWXP2FIbxXNS>_ei!sea&-}<6}@t7~}@k z#z$x^AkyeQ#c=meHLvL^I6dsP!~L)NmALu-rv)J2+#FM%xiIaTKLF&7#%GT&2_$v5 z>T3FUa}N9I`TQ;bzM$Ua^8FU7<+$=>;x*?9XOX_|1cShLMH{)c2P+>#hf{tcu=gI7 z8fCqH<`nq39=jsLAS!uFRVoXkqt644%(+)M)%=VJH{8Aw6X9#ig~yrCeRV^KnXYTs zc$rQX)#;x*kvn>2hIvDtM4eBP3N z4)wqAyyL&yora^oTaUE8N)RqeKCz4mxBw#hN9o8%78JmUp$&K)-P0X>9C7&+u(=<$ zR7XY>8G%2C-}YY3?)Xsb&)h6Xejjjm5YPLFr(bZ);Ugr?x{0-wcV{}4 zt`wcN268O#l2x^F)UB~Uu-=awHqdOVTPFu4IAbgMnImIJZ_%0I7zy!o`8I{!>I}jE zULG1g9xb3jG<=~oPx4k|GK`gnUZFYxk7?A|tCyI_pAbqQ^X8Mk2z*bB8|Njj?7Tx0 zkY?g!c1Qwi#Lye5^}SDv!|$%_rl~@Z73ONMlXzUCFi&YomN_fF$H*{kzqZ&W`EA>= zAi|av@_Kc|utf=GJUv8Q+B3)|t@vH>tKMW__|w0gJzqu8S6x&lGhAD4-U&=L}E~7|E1wa3e9e z?$c6itFjXTy|>vOV(N(vqjJ7PkUwc&p_uOgY30~#pVPLHC8ycPG5Wz^m@kNm%oO4cqcXV;6PB?F&;2~_72#K# ztH3tyX4Uay-jv_ypt|cp*p!6icZbyWI56NUvXnKqG;A!9DT~L(>yR_-l5W@tLq2ci zvHi)e3w~Ah=kx~gU?<%Vosj*9ztD;Wu`z*VZCu@SAs=?HfXF?6jL-AFHLxwey!X_}qwVe;oTA?Zukm0pHJ z&WJCn)@}_CZQ!{YYT2XYV&rXNm2X>GOI-AVP7{ghxzUj?@R-j4e=Ipqe>0N+`JAbz zxDyoKFkHmcu-Lp{xN$2Af+3zvCCzj&&Wh=CwUH3hOhB2pLV!>v*ks{rHS<-uhyS5@ za6<;BybJlv5#C)Vch8)mAwc6lml3_F629!ba?eeZ@VjTh#hV^p@IYsy>f*L%`Tx@9 z8k4-6MivPvTI?OYtcw6{62pd3qQqar!0{O3Ak%U4E zT4X0OEgrKRP)kT9f>q!2wN$rh+nUeVdy6`j3g-oD*|) zJ~IyYQ^gE^`Lt5P*MRN}i+?UmZ!D@K%k%iiM3bH|c$D1;m9NN;e>LE$s>GlG;{0Wp z2KHk_KS#WQ4u5HEuFMiY>U@_npv_2NDC}FP?q6#2^udWT(pV2e{Km)*SVz8iI5Cgq z!{ELWF1w|S9OXTxSdKy3^toQmbL4d~YN`aHJ_dIBoa zhnX89XIMvgo`#J+Q}q`(0Ap>fPFn;W05rzC_HpFTZ1RP4%U>E+YRYda=INR?q+mD1 z$Cu4|Oli*1N}ffOT`NU$C$1z%r@3hA%g2>8A{h;aFe}D)&I~RkwDrP!WzIUrN|y9HW!QsF(?mJ4&E~P`Y;j#9YdGTjmz_&PLBTYlqlO9&Z?st!BvZ$% zT+)td2#S~eHS?^&RVG74-Mn=&`<)j^}C@Vc(M4R|`d42roj-8UlPj!CYs zhLfVuDu?qg^ox~llPCKeA?EcjslHnBW5y|yU++NI=dd)o2XX0}4VWJMOFUwvEpu-h zb1al@=pY>Ie^YtcP4=`tru*Ku(di9ytD(+jA1O!{hH@!+HG$4ehTU>JXv8=1 z_oB!C#?yOXDBx>vpsxtYb*_`w1Lem+70kG``cqPD!%5TNN*=qf&M^u+6z_YmOsQ>l zjQHZ5*G2JhJt@B)lE@FdAMp0v@oEhIdN$(3H0dk-rw5MTgq30Oz_ePJrm1!nW%H!( z)qq)YT$h<+A0Wa;c4RXIR4K+p!r~Ydk~o?K9e>z{iI$6xw5S6(+WX)4`9-u5MzazI zzKWp;gJo@{uKK2TkoBGQ$TwJ2)f$Wjc}E>$TL=31eskx_cur<#p>n=0SI^FiP`TrQDPttMrngkvuCt zpcx{++4MQ%=G>2@q{?~LqrWr25SJu7Lr!4@oAg}ql2c3ohr?73C&e$O1&^hxEtU+$ zE{X}*JC-~}s`7uO1B{D)^Fq^9hrWDL0?j2V!oPhqvoA|=e&j04JJ0Le)i&+!F{OO& zZyM0-OXB#|i2L2e^supG3vv3{+w+d;tHP>cgQ?G9vATbI=npl`0v0aKgIn;V)WhO_ z=dtm*-yPY81mgJLv`Y0%%PuCLzCf6V&xy^(T_sQF#m}WS?O-n7p`W%4wl?ElxGCBC zxDYi%nsc$lW7o)7A2f;>1B2zCb!c-5w;m*NH3^+QEIk6FZ|c=h?e*d#zBcKXo`x^E z1X(iYb5%orY|g5@U|ID_v7CIf;oT&*lBexa5g{^>X8j0#b6zVjWI0%wCh7dgXFUPg zn}_N>_G6l2%|btFxM3{dViIA{a7AWpdff)MZA8nPaiiQZt|FpnTBS|~JGLnxxxAZg zh+$yw&B6jA4>;vI{~oBg-tw`(YmA}QGy4eI>S%gt*mZmL)Oj(i4j*^e9rlZO*y{7FW16cx`;_{5_nAlX4^-1 zNPEh0MRRyvHwQ{sIXcJEf?|}`bAKgjy^VRWA4XTX!p&YI=S2pI>TD_ZGWK0A0{zur zy0xS!sp)U_NauM?+h$WFb?bZWzblQh@eK~)OXnH+7W2R)bT;+z7<%k=^He;Xhk4cz z>sz}xP`$IJhKHV!Ms77}utU!KP4{I(ZtZvkle+l#oi%p~XQSB0L01x99hM!5zsS=; z#yhvmZH)lj3JSaG#qFFgxU~d>oYpPF8xn_wB6$P z#97GYKsMvTuC9vmM>MtMUV+S)_0&K9M&bTsK#`r4o&P3^`uJEkQ&;Ds7xjE12@h+o zfsx+b4i?ve2A4%lV$h5cwqbwjnIyI3-44?u8{{Ochv(o0#c_46e`Tx8FnH$K2`LDA z8ZHO$EM+a8M|QP6eD318&`sTg&?#F#2d+CK9zUarmJl#T42_*NA8by&f zu*vN0tx-X)YmJ7)RO55#_z_+#x;OEQ)($BAEn~%L{c5Ey$6>|z-O-Fu!LJF2&GV=o zG@+BG66Lf%Z1u_d_POC(XakrWvO=L`7P~bZ38Fd?-W=z!T*@!cd8D0x$l^JlpqH_h zXlxHLkH=XA^B!-R3;-Ug6g`ZNr4HAnQt&AjW|f0IViF&pK5dp|TZwD(j#HJ5%bL4@ zL!_3#YvNNNdO#gb)J(X-)HO4yVaHi5K>MCSsr25m0(D-UBf|!v}Qi*0j@58y|FM~;f>&G1yDWrnS}Vy2AIsBDL@847&+Ef5eQPLExe4_u>Yx@>$(P@$k8q~ zElqe94|SdN-@ro**_qyjc@Z_d#)9GSFJ@x<@b@tRBW}5o zoM3~vPV)sM{6;CQxuueh$X7IEj?ko*OO(LDL?7|$cF%T%N{i!{H)2!?3qGy+@!)@2 zK#0<0(>^P5;qSys^9+xyIT`*#(gz_%2S(eqllQ@(13drTwvE`QwkWzSj+R}V&`;N4 zZ}(LcZ;{(f=qgKr@y_>4-V}+yPLH2()6KfWnQ`uo-pnO;x26a>rra^3RWaivX{r@V z7?UixF!SslFoU@i5ZTG`>i}%8I>Q!Mwph)aQ74Z0Rm3lGi{C{>C{OF1D+Ql#y*RvS zOs6i)`&q=*<66O&t%QX}I`6g%jE0|*SgdVZxWej33QU~MsO1@Ch~BZAT$(Qp>M9Sv z+VhTiH|R-vnUAHCKd3KPQuV3IF$luL_t)SbS89G{PO=0v%eru5m`xe`-biW8)tmp# z?1pvw<N01Wd)CPdO}6c_B>sJ$n2bdRb?sa8xT%$lcU$fk`Z!p^{;yM^~J<(gY^9ZIN)~4+Vy?F@=s{>s>(Wkk1oTwx{{wPC$+FR zCyQD~pTfD%DN^$B2i+*-`QIE%0LuV*aSg-IpSzQUEg#&nI6kqxWEC)0-zTn2s?u2M zGDxy9*|tQOiiDXFoccFEzjO1JrTi$LLqtX`+h$PO{~mQ1kKJ1~+ZtP`JfJ|aUz|^L z%+3w+niixfK8d*Mx*c?aq;onya_2c?YqqzsROWT@VfxaUt{a?PhpoaWmP@||MLNp<9WoPA)l^4&jEFxaiwz@5S*plzoq0{d zVhPf6Mg{p}?J(Rfvm`{%pY7L(#JJEdEC3&T)a^C%B!2UT1?he^ey`^61_}3^Y^uUx z8MdB?;7xMcBKf&?F4IX@)+&>VMI^*fO4s1^IV(0nuj(rmbMNa!An9CE;&kB&7rZ`n zUPd5B4O}k>@p@6hvRnhravKSMJW!B+WcpYZnunCm)SK^y)WT;#6DyrNYo?DB>cIQ{ z>jX>qObdUrlh)tCJTC-#9^xWg>O|aOT9+K6VP<8JM7qZGN_B7Nk-DZ`#tb>cxE^42 z6=kabJO2s1Upjfh3>sPlSOS5s=LHi`uMq-ln z`;(Dz&TG4wM{%O2T^vD@CG2L5QBqC4Y-gzjPBdaKR=MbV9t6uqtX<8<&7?nih_s?% zl-VbwlNjc|O=97T{zvK|7J0`VFouARRuFGpq$}l^#Rrs*6OQLOORsPu=l%Q6ALd8T zy^!M51sS5@z%Y_B@Iui9;=4`Nbr%kQ)K-_S_LeObCTh(!N4mxmg_+uA5&~9W4s2@F zNWLvb{L#&$Z~)Zwev{67Z%I#OXI3O^nlo7>U=$grr`$cG7v;-cYtk@_O?glPjcha8 zg+CZ>9xqln(0=L1?RT9n#f38OEP?Xqm=c{g31uj;Kve$PCdfGD_Zv1pS;Cv(EH_N< zg0MLSKG7@3C9b9}*YRg7Q+SPV*Y0>rSM+YItu0LuK(RFhdvK*K%XxfzvLBX#~Ogzj9uT~z;M?#&N*frZ1T9} z8nZLV5+lB8YuoTw0!mpbskKb-*?G|ZPZ$2Fz^gdmb<&~+hrK;{HumeW2)oySk-iwV|a!q-pvR?p^bB&nQJrRRHfpt zcuCu3kbwgGNuIix&%07ohBX@7cw%36bnI-1lRO?~HKekdsuCT((%a8S&BkuYiiIvC zb;mqkO6^7LRssjx@=vACqM_**m+>3&q4(vdLWKPgvAWON+ay0(gnedgr0zmZFXNg! z9|Z3Y(7E&u`dMe|L$Y2vJzZ+wZ$^TB5s))*z@ZKu_iZ$}s8r)a#4EP5e2_yOJ%fA)Y_>rfy4w+2v)K>1&eqq8z}vO?o!s*Wu9o8)!>&WmBeoDe(kNsDuvlSo zu}u0*2#?=Fx@o|m>0@};#a5}55^3n{7^UEK{MHRrSn|#ov^QDl0Bn^xWfIZPnbHTp z&w2~9ZkK`D6`EA-;w&ZIN0@*wS6x9zzKC;DGF+h==)^Y546tqd&tIyfoVSw7}r>vF>Bdqz; zS=8%5@7PEg{=Yrq=ze$!m-av>TAq=`I?F1?XcUNeP+|Y;`)|^ui+(ED;vI*M`1Wh-<}%LJN)yJ{+nc^AFqI>x zQx;8u(t^KDSmlaxaH$&f#(I!4)i9N}O?bc^%>~&DfA1ra@gwBM`u#e2z*CeBb179e zl0zq2g2ji4?3^DM%J7lksf+U2esN9hdih~?q*}ScWF%C-ZI!oVF~u`TVUCuM#mdw@ ztU~jzLobJpdZvSrSOb=WqxMz`LxV_=U^9b~z4{_N>uv{7laMN|Rij~-mgjg3v-1L9 zVJ2SqAmJ$N5Dg#pN~>Lxm+?rd6)n)d$FrdtxBV}POwu-k3H_!o+Q8%TdhHN$;qH5E zQ+*>gySopSnETbb(9&nHVsVU<-vDE7X=WEhJ%O<;R7c?NiX?vi)L2mspS=%LoM6=U zb=c0{n{;>>R`=TqyJJyjlWD%pKV?HfuB-n{c7X6G&raC&Mi8F=3t#%8KS{+Bf=7CJ zpiNo2M~tt&as+EN29^b8BkLI*jg}@^j|aX{46V1{sd?3YZZ3v5ATjWSl#y>|lah?K z2}sk2bN&?Th_bYTb=J1)Lafk4OAN{{%h|&RYenEk0z=BN@VC`4#jjbTG^!ngf$!rN zt%VJ8)t9fdrQyO(mp6OOoz)$W3+pCzK23Bg)lMGtOR@X9!KT;07rM>_)$I&52h8yS~Iy{O$cfZ-o%|+_x0vTv2-G6t% z&v+&L(>gw~YirAlGUy7Y__~%US+S}^qSC7f;@OT=zTig?-Ok%yzE3^xi8Yrk=#~Wn zi3i=D0A3r(rkzieYw07bMR{q~V@lw@5r^n5#~!{N(HNJ!tUW%_K_pX5(}MD4kSzx5 zZji0wyn&ica)DI(s7cl01<&(O9%zS2*L^&Es)^#9J|oG7P&L9xBy8w9QpDP4lWKWR zz1wURHxePdNU-(uGKu%rQz|HqpfEi~|f#QHS&C4Jz@A8Y)RZxU% zefPjNoyW`Yr>J1USM!9cfU1j2$M42kJuuu;RnZOfWw;anRsW&{HjyhfZ(Po8fLXQnkHOsy{q#$^mTiMsycU`M=9yt8#G3`;|$?c?XRm$QkvX{@|bGzPo0>K{Q zb6(0itbI4odf@q=7Ep}+bebE=64cA0y_TG)HIqL1766*Ad4tI}k{v5@J&rT1{kT|I zLBl7ttsSQGNvVlAzNNfszjvf3PVi+ad44K|*eIJ6qziJ=p!m#h)N1`)#J&-##h%T@ z+gT7swC!#=vuNl-us?DFV4L~jax%@C>+CdivQ7xm*xJ_MCK(VTZARSpApZF}U%LAq zL*T|;hPOGkC4F3mmDhQkFE}QfQ#bCP&f&C6r|#E_0Mpxbh%ME3cM>Etal_{Q@s6LY z!(Q)oSimIRb6n-wy+7ztTIzJ#eA^D&+3Obs^aQ$L(VlaLY5Q~&FT^jlPpg!S!VCz)VX3`(jsTa?@?R)ga6L_n{6+cr>oyUW(*pT z^oD$R@zaV0y%mZzuIX)q)G@d_bs-!{yGFn~VZ+i_;fM?0t}SEm_1>i4u}$Zp12EvM z8vL-j;&|x_d`#YW=vvx!n?RNr@hYA=Y?22#VV~x-6Y%t*Ia&>{xcW?3&g7sa1tHnnamP|9 zZY_lgQ6^zCxTO|q;$U-6ojbKk{{`%LU!fx>wtewF=evmClb@h&Z_s)viwMqnaqB9l z2^GrQvWFddXczrB#a9a?V}tDNn1 z@%dSFmt;AI2$g0Kf0ZEubwUW)Jgjhj?Pw!JkOE}&@~aLd_X^eLIvMV2rY0K2OHw$= z&f~}ZRP(3&*D5%TBV=vj6~77necaa!PpcX5Nn&2MyjAE5!G5_Ci(yT|6K0CvONcb` zYNHq(I6Z?{izcG__BW$!RvLj6L5$01#L>?g8_m9kiD zuG(L#?jZO(XUg=ah8#x>+T1A-Gar^w>yRfUXxoV$i zO-~xX|4B5X4FWN&*x;-s-?3+eMkUqBe@U@zvl4ERTvDlSs>$=c z;p*LwFt{iL?MiQWGWY)8c?<)>UO6^q^*%aMWS{F4(hVI|`JO|b*1E{>JYW;Rr&}}O zjZcM5{i1{vaXsECEeQd~!U5O2cmFl<3?dF-rE6YP<)jJ$pVXO;Ymg;oX~2j5&Q~tF zWD?)IDcSxsQ*r^ziY*mS#IJE0BP&$(y>=jzexrt+r{eGg0gnOBYYO6XGi&emr}F1P zAD?unn7{F&z+l2zzrBJDw=C556l?zbB-QleeU)$={U#xQNyFN@bf}s4?*^(3jY{Nh0e2^mc7R_#3W|A93bK-maf@vyJ4)rd0=;!Gr)T+P1MY19c8<#7BSan-)SSMO8q0 zEAi&}azthLtA8#7NAyO~tri&yJx)1!uU`saGl?cVPmz>R?5#rts}*T^=|;uDE9udV zrg1xMEHVGd=GfW_yzJu+#p7i^yOR+LMtg(nVH8b68OM9`)LpA75R++i_wz?(4o8?U zw{7St7&5?bN}RnqhE2GqhC)=LliMv4ty%YbnO-4L89=vz+jB3N$^_pLtWs{gXo*xM!&_^Y}39hfeC-GJ3?>^itc=-)kY>j zo@e}bCui3=YqG2xh-`3|H_yAtrQ9{!JO5M3g^OPV7BeVK^l0$~FR~?s=J76H$d=Z2 zy`KbX5t`BMv7t?}E%XT?zcj-;QNLLd?1E8e8)HTDW)#bnR)1hIj9jc= zsQ)h+C={kzW}@^lGWG2B5_efw%O^sVvsGD9bh2Mi{5Ly`RW-Tn{*2L9wA` z;U&^kw8ZnG$E-vG%;fxSzk0tI#OfZalkaGr6ardsf3OQZyei}Sw43;eC?kh33OXw= z2b7St3|2&+UhB>y^75CzW5_P?dTdM1ccbjwo>*_Yy+wT}OH7PVEG~NIm&O+y9v_02 z*0kZk(+Bu?jFad=67P1wXuK6R?Ss2&q4?n2@ozTytTC~R<_EZPlL*}D-=p5}TPBXC zn^jW`jFrKx=_6ajwl#=0Jj9G#k4yt)4#znlI`_9Z0-mad=XU{r0zLQ9wXh9T!?(bJS4u`z_y+<*9|q7- z*kQqOB=shMh^@#)%EZevJ*UhK%bLQ6kJTA}P=p>_9IbA1E#0*dBcd9R7oo?guF<^b z+kE(F$dA6NLS@i`FGq%5f1+Mn-N9Vvd z)Ds@fs?oCk*aN$0FR^tjNNV)dB;*Qn+FAz1!c~>lYQQ#Ms<^Dp?ZdIvXl_}OgRcr+ z*bn+?*QV{(nkqh9cEp)si3LIN+98OD*Di$qEQ9|op3+_qJr~cWM zYaKT~ULep=<<>u6)9VpEL#{)!`WBIJF$u3J5h8onMI5ur5i9G_-J20MGLB;W89Qqr zv5q(He%hl^=>%XXC7c;^AB%QE3U8`$t0hbuaONy?`lwqF}UIVN=!jo=aH|SkK;; z-RkH^6n6J+j@B`jLYBTX?j?shJP(xTlT1PryG5k*B=H$tbprbq%#;|C`qm^?*(ki} zQO+OyEPijjOQ?PUer2iBQoSufw?pD*i4&$+J(D;YJ7{8z;i^&is;aEx#lHM5!N7)G zmclh0&)H@N@-@!tBA|+{T8ja&I@#rO>v#3z2@RJ9ZC4Aj?mvG%103#s{SzxrAad-* z*fEtY>%N-k#&>DF>&!@rbk0X!6TRvzA~q-(@wxZMC3aYS+SI zc1`-N48+jyW`4!u zAT1kr)xJYb+9jSAaJzDT>5S*9s!@uJ3adz&sE3ClV3Fs2<&DG%twCY2&NKA4=J;`-XPdVWeBTkP18&$yl`ua@RpU9c#OxWb{W!{&@!xR@(dFv`Eby(OPo7V{ia zvfGX0juQvv4WHjVQJr$V|HsTPy2HC`MiSO7GHQ{1m(ITLjaMB^?XuVmDWG^~f7iah z#5?&^7weLcPGFYYN3$ms&K52v98T>~U06F2of+|4RDg!|nA(Ne{ffHzWo%1E;6~kd zp~@UtTy5O^+6nq_HuNvJv97GF!WB9DvcvRxNj#JBA1Vzc-0mrNee%gf)o)x1OG2KD zQSu9^(DTX%Q)FwHOmRP+QJ6r@O&}6ODD|su;i5aWl;)!LE{nU+z~|`ATERhmWMC>i{o2zCN_$XkDn^;gYDp_1JXBb zPy^)g$Bx5=3S+i7m(v;>FE;;;Lq*JfXX>&MVfURv*V8; ze&c52EY#8O6|jd?y|Btt0<-OS7=rNjk`F zGF=m|HBrqusFi?=;KO$#PoumCy)WuZT60ja}A_~WkW)6U(7 z9T4b=R(sO*N-8x~(yv~tyX?z)dU$pIzVM7!fOgmLy`l!LjZ4RJ+Q8clf%(^t35Faw zGPr=YdUs7UL*5^P7Abw77wjY4S%SnML?I1N3C?xklNHMLg*9?tPZYl=Yd$aQ!6&uY zuccxp3*M~+mp#66C{2Fj4A}0DuO%2N0D(V&grfGDZEVoqdonlAER^@$d;mX->#GJU zUMFFs6wMhKZ?JlxM2)f5WTRKRO~=mBKiQ%$y4w+ zryBI$W@|$08hy~G*Z3_%$U!`-ZTn_GtsuBDr281hyh@{t@Ws1ZFD0_%$kQ`02C93!py=&sf z0Bmc^aQAbPP#waa+5{Mm@t89CBYy%Sm2b5Q+Tx?7}vcQnoYwIW_A zq&Rzs7w9~g;P403XTD-DS*tFr|9;ZFRHP$EI)1Fgc&g;hJ&4V4w$c0Xx!55({ZGR; zk9k2$9A6rZxO3WIFYHs*Pc+PieV&RV%3&Uu8ir+^6_VT$R&Ez>4n#2hRy8PZ0Eeb1 zWlZrO0kRqUg<^|g%9HF;Wv@8vWcpPN%*O3ovE(rru0ux{2_zX6aPt2V|LJ5QVo$nv ziQB{YC1lZv(2S7wPIe^zd+&0}(}2&JA!&o$K{doqy@$-dDZK(GeBL&`t^XkgP+Qls z^jNf!)+e(CPx{5#V4p}6P$jhsYouP6sgE|VxKCbrdLvGSjZJ^Or565^C-_1eF6I?S zGRJ$%mnUI3eGn%SG(ES}@#SvRV5S6ipKU5`v2bcVnSo0(gWGmWppAz*)L&%~z^&Ur z7_-6ta|i_NZsG=~&|&pEp+I;n(gh56#0qCwj7v+@y%D~pV2{6Xg*IP6JGq`4l3T0` z`v1bZzZn(6DOh}L82+R; zMBv7ks|sv~CS==2lDx#2eAg$|?}kPpauJe_xOOcXA2!?A2kHQ1korfa443 zF=VPNUzGaO{`v^!mY&1tM!-QFF;PGHBxi8gHPz5FDfFS9nX&p+MR61#YQ{+#19tam z-oW}Y$_kskp!G3Bzon=puNQVu0h16)7=Cn*DV;2B^thSit*${}!HX4qS#NCl+MRs9 zZ}wDX7MSPOY@)d-}I_cpE!j)i8PIbJOin^T$fEqY+uxM0jPvPKqQyfUrkL`%J<)<>6> z91|#2rPp0O;$K9|h~iz<8nsPc|1Y>I%an+Ky2(4AfO7JA^`}jOvUnlcO^Si5B&fOwZBwh&_18;Hy zy=Hg^a05jhCVZPC_(Q`e&)I-Bq#bxU8F%-!&c*8L$WZb7GHUqDodM|JAhA#A)NWsm zalc0a`}LhH$NG@Q`Lu-h{Le2OdOuzpqhrAQmd#N%)i_AvLPQ5}C}QxU<|`CYqcX6% zUT8BV7MQy9ques@Xn*4|>RmICosvx&UF0Ji=&O^Hs$mfhaswT(^3XPX)Ok7hz7DFP zAv=7?_O?Z)Bo979Jx(wePx(Pz3RnK~A5zU*Q#R7QT^8`-^`AZ@GuYx@@l}uS5LA^! zPMFDa$?FekE%$V-Lvx?pVnu26E9wdBGm19%^QmSKGJfX$Z@ulh8oxo>6fX8XEau~! z5V>G$o^^~5CV-SD19W22X5w)NldX(+U%k-`Jn!@;o5*HSPdx14M_H;R`&je3KzYl1 z9Ym79|8jC_@x*Hk%FSi+>td$u)D5^8J$H)Ki)&vCmQmM;jRBLv&x^%rimMP{wQeQlpQJwz?xG1eUckak~ zPdQ+PXv{ZS!p_&_z*ykq*o!e?o@1X`Ew+1D=(Kds2EEF}D0#~tx6c~qSVQ)d3~sZu zHUz<>f}6-^A*Nk8LW}u#kN!zlp;%;G`nR{CsV3&>+@G_7odZX6l_j6EJ3UUb9=m>x=-b6e zf9t%2QUOKsK^s#3!mCbwHw&g+x^`ItzVj*NGbO44AZSdc?!?^bft;7e&8sGzfp(k8 zytebYr$7{{8>MB4I+(V@hk18c;sJU*j8JJ=TF`}<7$0VtLs(~ibxTzbo_$AAGdZc{ zYCdV+45RvYy5bp(&ibl?>Neb^d3;YdbJ5!<$J60V45`k- zgcNO(I$=WJY#mKnoHpAZu9GV!vIOl$c82rbJVw~W#Ir%x>1Mq)A3kprZok|BQg8+Y z(6r-TnN64n3~sBfo+M9mNOe=D)G;V?5sE$+bfC9eQna646CPVP?Z5wMVmyTUwKc540(s)SR0 zJq$j(U6EZ|OI1Ktb=AfE2N(}m!G@v6pzwovl02*hYs&iLj?F3-f0R2^Vyo0FEJOJ_ zF2tm9xyEE|oK3ZPes%L-d0B#ZPNzaM{Yoq)pVy1AOveO)8$S(dUaiB|nz*Z?gnVPB zw)+#vO;h({_unHzO%b#reFHpl5?N8HGN>;f>gaOe-j>r?u=G-H>L_e!Qi>7-sTCAV zYxIle3f8<23!JqS|3eaG`R+!9eXMaEKUWsDDg;NWIj5mlTMaPOp{se(Qx^5lw1ZF~ zpU+Y!u26o!Tod=*>~=!VJ{aAxrAdNswz$#(dBJxSu4mg}oQHJGh>O(1c)$D5bPma@DHgxYdTCQaWVN=& z-5Q4zQJ)>ZvaI9B+76#;&u2E%b%!yN;BegIwvSy^L{bIc()P z*lxFg*^mDR^Ba?bc!)(wjQ-myX3KB1fTxh{Nb18%Zwh|p>4ip%hpPuHQYPA`BBf;b{nLheu2`xAyRAX5J(zfV zTU`X60f_(nEjqye$>V&gFnSq13wt+2&A8Kki38H^H+br~>M}Y$nhw!u5+^nrGJim$ z-9md1T8V={@5is&mga_IQ%tw1(|I5DreJ3lB}J3*1U#0PI<{Yiq0@Q&*=if>#F)f< z!<|Ys$x0#3O}S&cfIV#(^()5=vz@c$yM`2yz+s z`I-(3Lmzh7Ke~G86|6CTsEJRYJiQhgK6Tv=r?GE8Ys#>1v${WDCsJqkWV+s;^1Ytq zp;1V4e8fv_zo%R8B4zeyNSBto7xovgK8M^SV>)a}a^)FxM_bz)o|vbxbGQ$Waq4WK>DNj#)oCC+ACkNDllgt@+2zY}+-dpF>{!Dx7x?GdddFGDWYIb(y>Th#yoOS3+xzHj*c~9L&oT8=DIBnjpy6Vg6 zS6xB50_1TK?>^a$w}m&cqnno?nl8^5RjeFWM6{g{6Fy`ig3zmrafchm*AW5xMc|$C z;8rF}XYh`D9iezdJ3-|B%t7p1A7b~b2yIsOBLt_I6!eprCkk*?Fxo6H-<(pNeOcKb z%kLFwqYL_<7Ojf?x0kuC-8~Ukvl}*WTlbx2gO$j z*okR>l?h%Rq)j31$~qT+_!s$-Y2IkIy1TB|U1E8+!-7x)rv4N@Qz@(jVhB18;-xC5 z3nET(UCs48>k=ZjmM<)IL2n^`2LdEuoBfLP=kv~3zx={}5afB|ZCjS+wiWV!e*f^DTFcu#C<&r2*qI)>Qkj&Fl+(;vYrfpXWEsP8{IdqowKMUArdZMBuZz4he82#V|_$4N6R; zZ7c5P=UQ8!g3A1JiN7t-Urql&eWPAlt+TUZKg)KemS6qXhDDb2U2Of!TqPZ%&~Ix! z+vYQ+g67j!Tha>Mbf}XVEzdc~-zP4QFb(rw{|)S(3igATGH6vK{rdqH(SUDd+Fbsk zVL@;p3Hn_AdwAAuYwoI>I!;Bwg z2~?Kvq^(Ow+P_b#rR%?Py#U{NcP-^0g-;K5IAJceKo(^>rWeg zCzT)rUnU>*qhk=z6?#7<8I{F0MMM(Q3Vr%)k?A|-?)`Idb)s;gTnp$v$tBXd8E|)Z zm(Q1JJ?~-fU~lgUI-X~5UbW9qt+$vCaYT1G1HZzc`^!tm?!qtSdnfcKprl`=lyOn*O(7 zFxl<`Gwpb1OAq4>1idMqDUj~xmxFX%Ppw#F-OeW}yOr?|^2(at{X5x?WFciY`%n>? zH1QSmI1co4nvt~Ep)(x!$eJ{P*r@mFa3kl``ZucX@#(vNIBM3Y7JQak@-4e273ew1 z4gGmObdoFPwSKv$=~*f0FPun-1j?*!#Gl@vr z?@|Zqv_6G37QHI6od_Xp(lr4#;v?1y(;8&f7s(?Sgbic}aJk z@1H}`@cL#n60v?fNO-z)6l=WSRfDTnswL{J-QYG`J9&T7ihXMQyE3X3YSr#vPV~3F zeZ1&#wn$!Y4a`QsmPD$wF-fA7wOG#<+MeidT|2K-Xk-;N04; zy;H@Mc)+MryT&GWeuN4Ea`?oc@}znH-38hV&05*e9~gLZ?I>Tz18D!w)YA=-P+6f_ zhq&byI{4ok!sT2l%c@r0t;&T(A0EorRh^et9aW*?I@a3E;OG z_(Ev2hgWx7LK97aa~jeQmGU-Jsa}dEf76GO%#tds9my7u=VO^k%F9bJPh&TjN=osQ z%BOBiL%K-hilGQR90Skag*0~QP53o1-TUtJL9ebOC{$MUdHqp@M^(jxL$P0$Mt``$ z18R=U_jK~UuKP}QM_*0{*Ed_fr5e0vojC{aR9RgF-nz8pS%Q|{oN%=@sgQLcy@TuT z&cl41U;6hP!1YUB%aIqvKd}W1NcZl{XPX%}<{TUNHEHX7P$<;pZ}gGaHig+`q(jTY zZ8&EVkmnKlvQz*J?+tbMm_R1_!P4goEYzCw1)_aLnHn0InlY|p2@ z_x(G=Lbnr8WD<4CF)1PmGD&AUyGOK^5%LRfrgdE_jK`Zi2L-SDVUboxgIY0JIo-Qm zH6>4hJc=p4VGs&#;@@eCbm#uaR>T6kL-d4a5-H|FP~#weV0G*HQ}c%BJwtJ}F0~Qd znP1bx_}%*zCsynE5-p(jYrQn_jFl#>ERk)^76f_`x?$+!WLf0l1C90bc|*YP!-V}V z5E-NE`n;XxX^>^DeS1aE_}%IUaTP!C<3Z=k7{f^>p4{xk)|Yc4@3+qT=reF9UO+Xk z$%?u2-G*E&%MzO6tWfp?BnbGn&vOz4``bSmw(MJ@G~L%(kN|D_ArI89uNep)7M}vH z&V{_zJeSsE1@D&m&4Lq>9C_T=eeZ91z{}-Y%8H-#LV!f;J*D2M7{%)!APrpiX9uATc*WsqGKFkMG zI;<4(S!;}VnpN3vo^t$c6JuUnpTs@3Wq)Pt;ZyNl%f_9N+4iWXCCH&}6H5r($}&k& zM-p?TSc<1K0Eyd$Pw%a+9wx`iB~@W|v(4g(OW)~#f~4R4Ffv*=Zg zMiJQcuK#7u#GueFPu?lfCe})79;Pe{QY)A{F^F_&FPJ>=Al7bZsr-yl>>eSuo_Wibnt51j zf3L+Fv}L(2MWt{9;jFA4wwW%yD^dL>l$nlrq5rWQ9g-eT;wnSq@>eEHc+edOs2Dy`M_SfINxwq zAr+w3sIVBY=Miusb3EyMsD(ifO*-IA$;k!Wp6p?<|`N|E{ldDNNWbC_~pRu<| zT8&^W#V^a2@a#UQc^st|k8gD7-D?^vtrH+(brNK-Q-ad$Cc|#af`m?!hAEvLDJs(@TT#Ao+|Qoleh-~|0}?INk@{CAE{4aI}fmpuue4u%{6zu^}EV^ zJZd-)evSd%J;LOOmCM0GP6H9#^BU0ukWZk7piR1Y>U+&ixQSh&P7t%?0v`Skc@l@ag+@NwJI$ zqwn*r_h~pym+zv^P(=pV<=Cp&;I0}p)5en0rVTGiDn{*KcLv>{$>D#_g!o`GSM)dR zC<%1E9NP#$>guoJE3DGQkF=5m*QJQ;ZeBjI*tYJa)F`RVUix`}J@2DQY&x&s6S^k_ zGOsuIcptn~bXlF7}nV+tu(!ERJ4>9hz5iS_?hLG)f-kK*K+7}w< zb$9xh+WmSP!B92g%phv-vW)M-`Fo?ZA31pft`2a_rkNS|gqAd#XB>V&PPnV0ZLiVl z;FQ?^NA*APrM0%Hh1eD;0~>E_pE@-9Y9D@r?^&XkIPEqTKDLznevx3u76uw*Ae3M) zu*dcH;3K9I0Zp7+`q%bZ_jdmxLrYmOSef=iEIJ%LS;q40`OF;G*KkdmE_TwoWeK53 zBOB(PhGC=6l8b@Ek`hc2ZBbJR)R8ErvL?h^xQIQq-1eCQL^H!EgEwgS;qPF~Uke4} zur`HP1|T2j(RrYvLCi(7!X)_b)SnS*Y*wl9*lc-i*%Q;?ceO<J{Lw(l&hkx@VKjP?Y|pu zJwm+?EQG3)%F=%16&~aZdC{MZMax+dGe>@FskHt~L_89EvgOk`TsU&YzOlS019ST=6w`<&Ps45#c{#sav(WjU zv<;aa6wYsEWL=h`8P_rrg?FluiPfQF4&D6mJAsx%cWf$vA8J&!%)By?fUu#)0c5`K zkvoCkw?`%yHV>??@Yac;Ljwfk8=bAKh`1c^6$7Z&!aN;u&Pim`iJ5ag8vHs@sFZIa z<~FfjA53x+r`Fnk*e_k)(*A40z4F_yFB1&KIJ)~JtO--FZ&H}*TLYDEA4LGq1!1|a27GPq@LC6Fpj{`%W9k{w3lBo zhwtS=&%QmG7}iLAdqnCYuDv7UUNPG_$Oie5NCk7sthc*&pPYN6^IrHsq1QMt@DjGOK;Dw z5YT00WQF5eb@DRXvmuV21LDIc>_ zIR{w@jQN6U$|?tm7MAA+IauFaw^@gnj@Ya`u3FJObOQ`nIFfxog{D>6aoiO z;Gop|)x*a+sNT0d&-Q{AAE5#nXePn_?vkFTdh_u@*bHXc$>~$fwH-#PmEVRjx0INz z9is5IMOaU@h`@Ui?ok0U_;DmcQ!b7)pdttzb$2tb<_L#cPa=xng&Q>6^t*m)n9p>i zgdL$-Y6?R!A^eDpqXrh4>rvgFtURZ5=_V(M5}D+>euWA|xHHtQ{x*fEp)d0@9o>-! z*^-v&fq>~iT)zV9%vVdMA(SG|rIe#jur1v*DYbd86PuOB+DWaHNdRnbR9p8c_7$8o zOaaA8BVgUdyoiwOLNJ`Bghf#B5(O~TR$BF#8Uua<`~FIl1q-KA2cbyfq~yK4+M z+xYrux5M~0=SnB8V`Bnmtvm>k;qs|aokIwBH7iC?Nrh1sUH{oPcRsYE_(iz;2xjj} znj)KipS}8}r|w7ub$Mo*;0tN`ouq!bSTa5Q&HKs!E^}k=Q;`|c&#f423L*|2j7?b!j~$V|a4 zxy(IuyOQHC2~Qgy936lJh+vfoAC~%m6)qfTN5M^EL}a4!-W-k^rSJVR3fER=jU0f} z+>c^l*L87tk#@QPHv|T2L~f{)tqO*~N7>N>MFAP`sJAedAI;z7PV^EOR5|qbKc0i4 z2?j-6p?^jlTt1}RNcBHFj&mx|fmWcDlHfH-l?9qe=G#{N<^qY@j3ES=zkCVgX3Cc{V!l`OlR#wdWC<-yM ziD48zWzqm`3gPLg@F|59})s6s9~P*Y7SFs(gH?nA)BT|BVO z?BKkjNfCpDMcfvr3J!4TL;e0(bbL0&YtMz});Ce0q1K1?cMrxUqXp3c#hCbf3D_1w z)%q)>)rN^k$f^}8D7x0%a6;|wM0IB)l|09G=8E-~y6^n>tQ0U24NJo)+&^V~(M#Gj z_)Rly&}ITlWKy$|fSGepTA7UwKYIeBB2oJmgJiO<&bF@;amGyEo{!w@6e_^U!u&1i!jn*Xa0G2#T-R)>}UfhLJ^VPmNOv21}r z>D%j)0bG&VfB5jpy7YG7H(vC~`&Nq;+wsb_6isyIoF{ZZoS|kVL(ho>BV=GtAZn#u z^IxW--&>BJLlcY~E8-c@R4pBFAez<~sEw*;FfL+vkIl0y@y4b}JHHJ#*X1m!u*F^U z-9?_m!;e){xJI)EwpIE0)4xWhwvI%eX1pMcN#x7)c8PN{>7}sBJ&wB)8TJYc>JLbp zy3lPb>zw`4+|Xp=6L$(tync`4GxbRD@;Fv5Qg~*1JDb|=H>A~dIms)~=DQZ>y^5(Z z50LXoXeT3F;!B-fWhT==(Xxxc<3E4EAqDW9_oIuC6c*mHbYG3-0Doc;W%Q*)P^Ap+ z0X441YcZfSPK0@CvL?Zd-yXyAFu2V2H^tGxe#Io`Z3p06@B0u8rmXt{GBgtY!VwXSYKCP>^?0T%LJm;CL4bFAgEqiecT!=#m%= z@QS43bk6x-y?x!Be4&=LqF7 zIs0cYs`2}iT`^)C9B1WuC#H+;0HzT>cG_YgiC2|D%uyNSOWViFfE>8xkavmW zqI_X^i{|`tL_(G_WERvQ5P5lFSA9g^9677*ei7u3{1E~? zLIG=Z!Ha7=+?f4|v@YjC=ce*}VgZM;AsubO6y^LN$C%*!7K&!azc)Qj;_3nMD$EYY zvyBM^GhKBC_u@81)m{v99Ia~yKe}nAQdFq&q_91zKT2qQs$J!o)D??4b0tonhLw=1 zYlgLIk+fm0&u3@P5-Qxs&h$&VkD@L^=@(9gkhk699D!rN44#QFb6o|S#KEH04B+Xy zD7D$GI=8GU5wCo&KyGoB0+*-Znz`NJB~-+Z)6hxS_pG5h=eZLSd5f4wmD0P%_nTw- zWpN}vD;%%StalhiBg;;><0owW6-(H7jv(SH*VY@&v+;czXXM~sILRzk;*i7#NV!xcV9;97Q2~_(N$h^&1!nmrX zP%=M{z}T-JI1`_4&YqWdVwbGB?0vU&2rt=PTe6jQe@jwgbdYi&A_9CqZjJF_atFNf ze-Z!VD-oZ?h1@O*8b$FPRu}Od!**Rs})&9A{1x08SwGrfq_98 zKMW|0r3BRg&j*Fq9Wt(Ax9*unGK^T_6;wgJ--sD@{er;4gD9Uhn7sq$Jsf({R@n3VE~>Hc%Pjz{ zP~y-sVp3Jy9toQ^Xco^zWKPKP2}Eg56@S*NW$C|dISXuQp(%*T!!e+UI5NUJu7Nn` z3|TmV;$F;e|8b3LGP(@M<;^!7nZJ9hZydGdw%%i6&1pIDO(CaW6-R3r`l5;`%`f3~Qi(tOju!twMQUi`#lH-vG{*fM27{#gctNYlS z1q+z@{YT6P90E0528s3}fF95uH&C3hxJ2$+ttOOs?wrFE-j!*ka^EzdVk3_lH3=GR zGp`*@I4m->0-zLXu+}YCfjRl^{OMv* z-hBVZ>4wR~M~k;pkZJq4pQml@S& zsbZ#`(e5wDoODEE@@G9DY59z-K3{|3IFOw9TOV8 z_UC1N>FaLGY^|H^C$=&eW+ZSRP0%x(>Ua4pV$W;zO@UDS=RP6mhwM&BK0TrMx~^XH zhLy#kEjym~6|%BrQ47BEvx~g^cz1O>dKU>Y-~Y4#;l-OQmuZs5$r2x*xFKPd)UKz- z>Rx0SFwX<;zr!6x7-TaFhfEr_4rI*#Ythqd40=iY)b!8V=HcOcUox@drs%)Gv1g-q z3+7X?r(fV>tQc`%lh}%L?vO*B@9LDHU<6zfsGZ@X`u>7WF()8xIQhQ%cL~1 zYsnmJ8UOaw+>Ou9GN_2#$DPkg1h$@U)L6K(PY>UBtYFVe(KWbiW24osXH6DE8A|3F4*ETcbBGx%zo~uARRXF6TU; zPIC~&7|-PG&W_PS72ycYsY2zea@dRNz92iwWjL(b;;GWfM+Q(z-G^NhAIOWu;N!3I zzg)(3F46mbcq9*Z&Ce#>5r)roY3J1p>%=m@O)|tj$$NKcl0v{}&$pk)&P14*hMwZZ zT1vh{6w~3p1cUxw6(S5p9isQWe(Ny8-W{&iAipUvD5PA((YwgbtY%Fm>ykro808V1 z>Er&*fWjx#X2;`bcF!I;-KtWO=_ju*%t?x|=2dPNYCCH>L)`Au3bT$*RX0Qx_5DKi z{Kv^4M^#plOGe-fr<2g!-+4QgVqP0X| z%;1QlMmjMswTv94ajB)m0CgDAY_YT~dL4J1S9$fv&i>8REg7Dt&;3`0>twBG=CoN& z0AcK%K+4tvlUK`)l3#EL$jKd>$9H!i!y7f)tPs2QEYoP%6P)A{^CVrt!>naDXB*uw zT#$}^IjcQd)6UujM2!xv#K>xcx}{?fCToE_J_o^>DLHFm0o`ky zopspPb){vvSW~y%gy;!ZZQ?2@Dk{Ep?0a#|2LBl9Jivr~&z1dSP9JcANT+&m7300N zWjGxDY?*758x`od{G->l$@k-16PlJfzRJ+vEb^%-nBg7mwAAaH;uCBK9OjGB3X>-x zbIlt^#W`?f?l5)*ROws%cL)B{f@VZ4BMh9O^L@Uf>c&O!F}Tcm#yEUC*?2(`UQFs( zAhK_%)oa!)rIx9{+}Vj0uhQw78~xi_P}jSG(twMVd_ERd2_T*0u0MGH)cYkY`%mx?a*m+|i8 zgHB;U>tMMNRF@nuFkTgDM=B2YM{~b1r1mJ6Sj?8t6yfoToSHTaBLM0D`?SgBg=lRx zEJ86ed|E+NWuLw?h-3XxeTT*Huk1^ySTw~2FhA+v2T5!?{Eq|o*99c4A7=n{na|fF zX&=JoQ(fGzPd&}PB}HX^4|1iBilARi

pvN9QG^JEnk-_*KVSE!zs>|KL9GZV+V< zQxIl?7n?O-ZVtNK`vLcvbG$XS_cEKqMVYN$P)=)v!(B;UW-6rIiTHhq5Sd1KBQ6_O|`ouN%V4IdM5d^;GMq<9D5%4jZAh*$^|@3PmW&yc|CNderB~9 zJy9ey-Sc6sU;I8Ft9wRET_RN>x@$)#z5CZ8U&e1*m@nQgga{lY&{Sa|4j-Mz+cbfJ zw5&_!j&pr3rrJ^GlaRZykZkgf@6m9N^N)(@hp1S*D}|JUnyCi%+?}b1cogx_tr!g6#Bl9wD*2-UpF7;E0R5)UF&$fz_QMXkqB-v z+;Y1-b?c$nTQ77s^roVqCYZ=JxVo=|%_v9DC8r*xNgOBwLVV=cU2_BeU4hlHYpR4PQ;>~;Zk4Sx{!(}fcvIN+q-HD{Pjtm zH2oL?)8Q;KBB36mNUtIx(MahH3l~^4zPC1lvz~wQIp*nYP<`Xfa>Z~b+FHNFAo9TZ zzD9Aly}a8}I$^y%pF04i0x9kQ?-vPZ1Igc3Qz%@4K^KfJ;oGAU-Cq2 zdH}k%LacX_B_7seDG{9s#ZRU4ro!NWCbm)rGHJLc(yo{cW;&HpInw5b64~0uOT;(P zgwrHAuSVf`&cz3g6_}8*t!FQhO!t-`F63}LF{I%EIhK!FH_Ir%on!Ia1D9dgh_@{{ zcB=u!ur&~O2$X|KD^ryND6-+R)^H%G60V+xOAjp#p(%`pzn6bOt5@w2=w73Gs3F<- zG^b6pV`3L}kkEB#6G_;d)V>rkoW-Kk)}ce96#G0fdzeQ(=THErXD8&5_-DZle0mda zA`eTH4wA@S3-OHdJWgP0R-8MS8a6)YU^hma9g6f3#7$iiOo3g-QY&T^6E7MMq2P)k zhc&Ba%H-_7%rV*7>$JwbYuGG9By(`8U1IRWYq9?3MwMOwVdK)~h7TZNy*=QMo4 z;@3i(82jSg>)Om-_1&S6`&TZ{^UKSn5tmMx>O>;+fJSb{w+zeZ;Q( zCLi=fvqX`w$;>#M#5t{rV|N->VgF4BzTXrd+whfLH331%r@6h)n>Q?kfq4x3a}j&v z2h&;4&~`}2<#9R8q+!@%BuXV@n>8i$Hf%drKZHq#CRtnJ55gT~)@ksV=|c>D3yiSJ zduAB@^madB8oM*WYFl18-MvY35iW~N;(VbhO=8y(ePWkE{w9-f@h{;G#N_*Y>Z0H~ zZCn6H>&`3F7o2&R&%_+@eIBXK_f!SiTe3+Ioy6I220Bb zPTO!=G9U};l>2iz7>Tc#A^h67Wate;tYK!4R@)W!Lv`J5cgQv9=1a-&;QJRPqjil* ziqObq+AMK&?{4Zqff0%xsbql0wt=aoeztp+uVDN=90fVkI;V>MccEe;T3f<(Sg?X~ zn)68V?l{HB3KGKP$N6xgvJ3>6pNeaOB6NXw+&Hm+K=#-F^*1ALApDGxDj#Yh9U2tu zA%S_D+v=A_6~mo37XJEKI$L;Sg<=o0T}zmJq7+HU9tx-moI|2?P3DdH5&O}`0=_io z0$g>&1O0inX^8Fe3!etUBYJ|PY+_=7FpC{=A?Q$MF>xCn#?)sM&n6a{ZRnOANgC+3$4j?iv_z9BMZCiwsH)sY%Z8|Ytatjj9n_$ z=_)ExN`HIY!gkp`R|d(?AsTYn`F<~P+WIc1{Qd+(SXb=q{jS${kr>BBe3R2*B`?>b zh-6rYXm;u7HH_BUf8<>)V!Kori_zXtr)xI?%@@Ws`IHu5Z3N8t+1+$DTC`~o6{>= zw7wrvS*Bm$8{z(1?gODA5b-zOI2x;;KI?vU2MmSoN}AjW#XF`{`2nPXoGMbQLD> zx@VH-;q&)NKdH$~Bl>fk_|~b{(t%9?m)jwu%a~vaNsBbi~gp~lt6vU zpefD|Z^l@x)9B@b{4&(ANQ?-R>^B|H-`?acG$yvJnzZ?<(+=4u_>!h~>($c9(uNI2 z!Un%`Y8$;{H{N!De@l}bzuj-RE=9j}IX^X&>ML7#4m(wr!m{!oPd@^oW9R}}hr4mv zI7?U2^;3`IWPTRM6R2d#B39X;^A!?l)MD2SCak)yoag@QF3&qYDwdy<8d|T1$Ommp zUoK;NI{DKI^c^bJ9mkQ^=a#_WE{~b*m3oUx-A3!z+a*XN*z5J_mV<1w^A#Ek@_DJ1 zwwO*gU5UhjL|#Y_&N$wb`y8G5$W?Ke4n^^7c`+3_*jKDdk$H*oc_o10T_`DrbrGQ(&2)&tnxp=wG ztG9Z*+JoKE`2xG`^8RksVLF||q7xSIU|A3i+fNQ}^@rY{tzwiF8@R1#JR8kgZ@=}o z$&4v5*}=SXq7ZPWo}QkF%%{8K1)J0?chCKF3r03k69|?PZJtZ_z0kuu zx}%RU;5Pv-8FfLC8{FcaBTQyC!o$V&dc4#Py=(506#Df!Kj-b`0LEX199!KUFYJ(# zy3Z-{fISaLM#UWV0xMlmknOr2wYp%>n{~B!j(6YYcV+{89+V_-4LEtUbXIv$H$bHy z$p3)j0+)`R8o}zRkjvUepViy=E-~g>JSFrj&bh^z(LcGJ?`Rv^H9qI(|6VCjH z&;s$A-+T0%{Ct@57c*P7Rs7!RP?c&e)}cm$0Y&2hxb;P6rFPw*(8$Ut;#^23x!vai z(rCO}vcTs&K=CheO_N~C7!0|S-h-GTDp)>_+fFs_G z7n^2&=q%6oKqG~riPMYv79sLuLG}+f2@jLAjN(Wf-M-M{DVWYW!uu2WPaLK!!KqiQ zMJRjyPYY1dohFLLdq`${;ysSF}G{ihBKaFEnldw*$SjLvK=PD$O+73J8H!WmN1 ztYVaA)UQ1_6*PnSGA{G8y@%oR<>4P7$TK)w!UO9O411I%SAPwzYb+#W5oD_0Bq${SjPE7BQKik~zcx^K2&(<$>F zItAEvqz1-4Nw1_?_Vi5Z>W&k-h3`Ba`npTzE0ZCY3*5s!CaLhN+63sPTSlq*#PtJs zcFmdoS|o;pRmMn`eltJ3=FqRd1b=+vs&h%%3Gvyuo5^h;JvwO2iUz>X$kg@Jip^7Q zhFh5j&*rpTe}qj<1F{ECgH)i>pAZWg1z1AKC2i=(K#OS2+3NsC_&*r46bcPDzuk}s?y9cKm#EJ@Mdpf=#EV{4GK_rO=Y zv?>M_04?YOB|i~BAC*&IZk0jK^6WYW9>>5diQz2A7Xl?gs~fk1Jg?)~qH)NZ$0$LJ z$YSNV+1igwe#LQ^Q%L_+r{0{JVB_be`N!I1k7tK2DAJh#xk%Zyka2IoW6s-JyhF!j zTT&E>0DfiLTtyHQ&p8x5vVESpXxrC<0hI$%$ zJ2(E1zAfZ_-5Zi_k-f6GxG#@JG=i?2{Q^}6d2LPm-Cb|M&MzSUUefH6Qe!9V7LurL z=q<}TKX7>jN9$clFX#*8oj8`JpQSG&RK$41=nF6HFE4E$T83ry9`2r9*c7>28;{-K zhbUgmYH8bv{Cn{4I~b9ShCgPEut^3sRf9wLiAnaJ%8A}^X_Xon?!_IZC{K$ zWi%2;fZj!Nf+4DhT4x0$Cy;E!1M%GlO zLxO0+*KiaO`0BptJfL0blAXk`gH{41q{!ERlLf~_(hK**mzGUcJ zL4!(p;^$-h^z2E45L*uCd4KTC&HcphMp{D21mZ;${FTxh?h;A6^|#@T!u$H90%}#4 z@dm{46cz(f(;j!_>{ye(9pW|a%05=PzGmCXgy+*(O~Uo0xs5@L=af#}7WlK61z0+@ zROgSy&65mJ^Kj`5yTLUhJ|qXU(Rk7 ziw|kb#{C-$M?Re91C-Sl*pfrf7ufKBmic|WH*=`;(4#7IB42;X?DTc!v~v7m((Cvz zRTJUI#n(hmhS^JhURvu?ZRzggwy4O$6-l*@}q|Q0(Iw=&(4?#A_?P_@0=HSSL>=T9YUIOM&9EVd6{CLAJ1E ztik?Nwi@&araZjBCWPxL`xt<;-rvXhK8)W9EO*L^4-l(L`j=X}H@bGf&|R+2Wx)LNS-Cv0PhK+D$fAF+w|f8?di` zE4@|N#d|{~TY9g13G!<}^brR3I?>;=Zb5I)W#SmZ7cSC1Zc~|c{6F~5+Bdp{mh@s@ zQO3c+ePp~;crcd=&$I}n1J*lO9^&hr)~;4b`<{n|37m1ltQ{GsfD0H`HSJ;Z zo}Yy6W)lG;ijZwPdI`9cQoifZ`MA$rAVuB%3nMPULYDZJW181=Mr;}-JS&S`!jx>; z@8(c8ky>17GN6SmG%Vk&%;8>mlCt33T5YuX<+9SS2cH`jTZGZq-Y`(M=zIKhSyJu z#M2@p`f-%pk7F|A*-^)n>C%-Fo05OJ84s|X@W!?|8nbQ1ZBb2-JSQ9JLBez{rYtP zQ>olI`1KMMYftlPev1oc;n3*i7%?fo)@V$zg2m;ESU${o>;~0!R$-Q-ZwcI-iXVQQ zcNSV<-;p|%in370c?;;mccKc}_7%MDJIRkhty8%er+wC{)ulr)$n)YmG$g!IL`22i zCuWeC#E>%>*`g&7Hxpa1ivv))3jY>nQyfH7jWJExQ8^Uo$g#i!(QM%OyWHZzzsRxt z{=p2oO)t*<`R}=2`p6wn%4IvPOri*(>`Y!|*4qR6f^X$^r$=LqUoxds0u-~}u31nFJ z9L<+>F`r`1A0frzJ3Ib%O)-5|H}>hgeAT$QK}Nk zT^F8St)Blo$hD5`fGHcT_2z?|{e_R8H(m`jvi@06zuXso!AMOHJ*JDqXCV6pVVW7+ z8^>6+Q1BwxJ^I-<3e^E$+*@q@a=3f^EYukjcj+`PM3BG59q z7?9OZ&W{lMP>JZ5H91w~^L-0Tns}w%ovb8ne>$gmbxL5v?YT1Lu62jE?k7@!Xgi`v zM_MtB!m@paUAE_wRY_Wc4fLk(lcHrH;v=#=%)3TfKYaci_4&GboY|n=JbK{0Y!|oT zCrhg!&xN0`nI-#X5NC&XYNbM08OrrI8O;NJm!(*o<#mk4qmMCmHMP2ZeK4&|`Z&q6 z5fot+D|9!1lDa!Ba{rR5By6?T;>4g;#psd+bEG=VkHkB4J>pmTzw_f_WPhpdc!{8) zQShg?TD5EX_`88ybRAJ z30~pLifyVp??$G5?T?d6yXN);@4kYzS`Xa*ISpU#42$0WoE-&Tp$3G<2;D8ygR-3W zqwySV^@;j#vBL%oKM&acNj?qvX%^{bRC-M8oK_(ApN6xA z?o8VwjGq{-i%Cbv$bUpG_lXmi`6}C9!{<|>~8MOsD(++qI zJaKSxNQG@KVjl9rKn}l`8lIC5Iq?}~q!EkjTCs^|qY6xrzw|0+rA4&)ueBagSYeud z5l4^b_!0l9r?^Ib)^sE@Qw4`i2^hKNX*NUMAL<}b0=oB{o4ER6|GjDC`LKl|M{ktQ zO#sYf6-2ocUG>2$1p3R^Y_VSLk4 zwb3#biHK|xnygDGreT(a-uA(KIDgKKbicZZMw!QI_m z|K9tYbMF&xVT>@kd(N6wUs>C^h{i?dKuzKeOayuutgVaMZvWtyq?>-(WL=OvYFs<_ zYeQ3UH zsuD(WRy)h=XBjs{52_E0)~!m$F(0w9zoW0v7Ld@J)lt*VqvNaRR17`SkZ9iu0_WE) zhhFO>LP_iRGE7rY4#O{v*WNk-!**WqS*6=>*WecC5(Ju7b8s zqe)*{+&jsitQ}eVWpcBc@6!nZb;NCqM(q}V|C77F=3DmN9c3tIoD!e$i^_K;pJi+t z4HXl-7%UXs$f^A@3~syJj#EqLMIr4sPZ8Ts`6EnE|VYd8KiG%9?}H0Y8yE5b-+k zTyeTN7rNLMs!0phAv&)S?31C59`l+OkgZPom9=L9EhPAVS^$&Q#Y4B>dAVjqp06)3 zjR8uJ^3SP1&+2$SLDRy8*MYh3Z+w%Fh*<+~<|Aa_Q&2D*n(!-E_?pK-wxeR|T*qiK zqlWU+jJ(q~=1bErnQ)Il&9Q4g#iygWLT!~}dVviT!GG3RP*)MtWanNH8sO3$eImDq zY%kLv+6sp4?t~mB5R1|DS#YdmUpK$0g4O^@$~yPXapUhGwAV+5S8<%c^WlO~04~!n z;Dr)=iWlUZ73llVFzVp#GJNtGvnF8#!;Cux?Ee0gf>Q?UO}D<4F;<>}Q>fpju0KQW z;|_YG~^ zm18yFTCqRCl0~#$fIP_J_UcfFUloLx%>Q=SCNufNS2^4vNW5|Z+u+$a0fRS}{J5+b2RHWZc8_{Sq! zBE*cZB)jU0KzZ)!>K`Wy6{QDaCvEQALcp*>2Q@&0dW>=&JX zu%@Uexw89baH4UOnx8?f?O6*eY*`fmOf<$e`|qdGind?|9+N~DDipB3smiV1T7 zx!yo_rA-FY{uom&2x4F7F0p7{vc2NmjkVkQMBG;@384Ch3sM{%71MR|itB%gG6-$y zjj(&45yy8MnoB$SnopV&QQ%(c9KnM&#G_6R?Fpwx^Og~Ml7rIv2uKDxLT|~~tTJrS zkxeV6^Jf7X^l{<>E|eDX_1@wGH?$?f>;66T*|wmz!K&@I?F`bZb;L zhLHEI9kQnY^i5M^?L?6_eUw+i>)Ckm#Qs#ql5?+&<$Lo*5Tv1AdzDe!_j#=Q2+w8v z4ZS1P1OWEMlFql_0rHs^b&}Kay{~32GJIGQdlS=Yv*HvBdQ^TrNsf;NyxkWoJs-7d zD=6!BCsW~Q6(08{`+m-C3I4W(acU;I<0x?{5xs-rgYcvL4NUJ;ghEddBI#1a-MR(xSW*g%Qr5SgN7NDI>klu zPuyW&2IDbfg-BDuKz#h`F`>2Rh3;|e=Q7W`t%o&_aNs{mfEr3L#cDdsIOBod?1MsMK$_k&`={6w!&OHjh^WgPszL%tz=qg0xRb$z8spADnBffo*; zlJ$7ar6ShlhU@Y(kk}#q1}{2;byiXAZEkk#Bk^O=uA-_t@c9Uy++S7Z{Q0CL;Ij_^ zY$k3(!`pwdfMA@UU!u(dE>BMTbGo-zDM?Y<8O2f!I+8(a!z@<*~zXO;JdQ5zt=o!WN!{;Fpz+ z*HddTcApv*Qs2Y2gB<2&3eW_i z{MW-l0-|`lSe%mbdL1A*s~+^rwPnc;r`mr#*BLAk*A;k~%ng>wz;q=eRHQZ!sLWc} z$py`T7){*%9*ri9wM}#zWap+BRqbD>OBxNVF;jI}GyqcQC>MUtkAri$n2KAwRXiSn zV&op3=K;IL(p1QyfYE1_yMo8bm+MDI7QNMZTn9xQj|%Y$WFosQ^HJVK@4~7uhi0|T z{>jX2tx*k*(TbpB`@mr6iB>(qYDIG51K80jTc_+ci>0U`MaWX)F>B*{%Gv6K&VeS7 zgEAW#-K)8f;Yvrj_pYVsHL|pulT2ib}BWe z>a>>%+fH78^_Zix4ot_}Cz~TtB4JI1?7=TO2b#Jr`OWwI}vBLYm!EYj3T=MF*OG(`2Cg;S;L2B9r?Mf85YQ#JJ$BvfX3yvFMQta_{C4rlYj9H)7G) zxo+3JLh}pQ4JvW8=gLnWyg!Y+EMPP>vz`WUwFgEL5@pFgdUe27#yF&Y*J;d#TmK@l z>4l#WE`=d7bkY*4e|zoR{msq4Uu+E*yIZ1GSU*3+?*4j_-D1D88Ek_x^^?bMGPba+ z%-eDFiFn-$*66|}23gs#a(?^By&bmKVP($`KfOkGAJj?`<&9JHl5o+0XOtD+ z!%a4jQf`(Y{XCH48#a|7M~P(*^oL;Q=@A+ zPJ1Gxw<3;Rkn8f)JNjrPpTapr5?6}^iY2h}gbT1U05DglTg;N?rrr~&&$nX?*%^7n zi0-hMe-S4CC<%qqov_7CQWZ(1eauAZPj@PcOzoho`x2`yC z3y`8J5%>kbidy~$BJAPwC=c2EA9S#G>%npbqo~~Xi&lE*2cwzA@?$Qr($UPu+dPrS zsR_=~rS6wok{B(bhVE&(Q#)(#s5sHLz3q)*`vsZvNsnk+!iEhxXb5C&7v%(G(EGX~ zk!0h-G+-EF&SgFu?!GNu+)oLcF>+TLihG?%WAC{v!M{|?+#I1ZHwy)(kf4#WzNDk` zu9x!#V{p~XXW+Zaez$&jRyU;~@V2??M#>BW{IN3uUcFPE-QXW)_8ti^t*2c4!MMh^ zKJV?pv^)iX493RgAYy-jiR9qkuTi3G$N>&~(!V`knz(+}6wL*>?T3nWeJvsNBxoI@ zlLfysRLqNyr|AB?@@!r-yL1^LeE|6E?;|_of0#wIyjh^d&kZ&&+wQu(aSpoM+Dx#4)TYm=7D%>C6Ds>wG;wvh=;SYkO zA=H~9>E#veZXmz|z@q{5S=fixyjG#`L2T!C7z?@u=wS0qXYhaH^m(hLu3Z^(WBC{> zBvys&ga3b?-oP)z!)e3izkU`|=a`d6ifq8?e7qn31ATlS=nxTTcF4i~P68)Z+YrmP zgihp@zCzLrdnGOyP68*bvQ>#dx(hUjaHhLL$0$Vmf^<*aE{PCjM~`B4)*f+PlE&BVD%~f+!bxv1~Kr@ zE1DS|6fLmOw?C?x_5(d&fiR;IfZw6@6 zYmRCLf^)K5s&e*J5ax>U`ulE{$6zT4W;l_m((J2E*C24jWuPujCwuBL_h!nCTT~~I za+dpDOjQ&4&?Mb&p*v)uONiNPs@uzNC5@}itaSvngRA5o+btLiD>)9di$c%$VRlh2 z(CYA@jKIcw9o)$R?Db+koEO(h{bgtJ_9MandZH6$1!K}^92=MRf$#nK57x}w`AYi_qBGfi`gFVn3!>c@7*AME`=c_lBy&u;qkv#p?}QR z{@b$!Pd7C$2OAJPJ6ZT=RQ#`{w|cG_e;XFbEAN$*JYw?WXj!wwfLii5ftXd(80GpC z_5afX@~fu|U!1?#@lpK(pnq%NX+Q=)NI2QH`Q*^rIsBiyQP_B)b#9ibQC`sn+#7JB zo)}+Ed0E8$czu~G)A%~|`6JV<%V^>$lY$JE&8)7LOeXuY7On0yY(y%#4<~MUXAX=l{khC%1{9)#Lbn)jiOY8GYQ@IpIr}lcE9*La1%_ivBDJh zJtV1pf7$*|0f#Cd{G}1(ClgsM%R-}oyMGeMJmy18$oxaV`2y{W{KKjnpZ*N5bHYNy zrnR;J({ENP)tQdo@W0-7$C`B-*T0jYt4{v{XO^$SKds+yW)#T*go*q`w~+nsRr=h( z=Z~k^+-~3FGV|fne=WuUb`jX?CLXQUPbwCzv5rljZwZ&pQ34c+AAc@Wd+cc&1^N`P zpsu=WTsoO7WAmEgV57fI@T{=rc44A1()g_Xw~+=>DR6 zK&_u$#n87Wb5nkkdSrPRhgo2T*Tv^%UunvNvN@E0V9~0sz7l61=q^c-45AFrC&5Dw2mR(MH>eE7&__lB{=J`24zg_* z=vqxYoMeO!$7Z9Z48xoVpSs{eQ_v*{zJw!l$l3d%kZyi5AHB4L6x52S1c}y=Mw?06 zEa3W8eGv;F)5S2xt_xK4b&f+-ylahOh@qs2$=3nCCw-+iqXnD7oCjyY53iPc*fEs; zGPuk%&EMm26I0!MQ7ff3qapn7=M?eKpll$ww05ugO_)pJWrtWmaoj54@;e**20F*ow756`PVGY{wU2z#hG3=(q{#i`sM9eF>!bEH20PsBfQE`H(UV852YVnSGa3=L2b2A2 zWq+Q~v0@pIH6H|2y;jj0#pPtT3U9N28Y2C~VxVM2n>1S=1DPqp82t*bdeE9AC^Uj0 zZl!#CFnDqTu>rdIN92G(h-rfoiRXctnxKyU@^@>RFhq_!jN^My8m3u>4mD%g>4G%G zns(E70#g?B?Xc1|7k6Th{=8c-gs}>OduZ}{d^wlgs_IHXDDuJNQI{#jk}A80t<$>y z3FbxDyWM2Nh*P+Kd#BsWt9jh$VV<>1u=NZxw(P0S@rk8nR!bon+XU*55l8r1cwtKut=snWBN)mb($w0QdEAe@zjbH7juWJN7*aYt6-@6EA67NWr+(TCih-NV5K!a}b12~s z!(ux2>Ul1H5QMNmjfif!i7szz#wi>H(|>W1)J()wAouDBUS5dA%dGlmSA`q!8*J<% zAQx@naA)OE1xf}yvWV6quX3G9}ss zc%p|v!D!3C5kn@HBxRFK#J9Iyv8rnAhcI{Twq3HaigG$dPSFFgB#Jb_RK31)$6cb> zN89W8%1o91Gk6hRxn5-C3qk|z$WG^pj`W2RCVtk1`_SXBOeevU(}tCmm63HXzyfF_ z8Wokygv5#lJ10`%ey#9bW`Ra6Un%@I7g4_;=@kK49l}g;f*L z#8IOhJB*g2X`3geij}mFz_CT~VWq5jRWAY!W{8IZ{3INcfsKf5xM``Mc9#!V5)d>cg9S=Shpsr;&wpl%bpIP=-zd2b@EWfNqfY$uq4=NdlS;u#4SL)7-U zhs^L-H*|$o0StQWs%TEdsQfabdT?3QIbuR>NeV~MPN8F@OO%gI$-#hz1V%xmoX&r$$v*f* zR^bP{zO23aCz)b1N28X4PchObmNqt zWZ0E8R*Ss&m)~qy*%qeq)%W0xZ$#`d$o%0I`>gTADTS?m{kaSLG$Pg~o9Rj3@NmYr zL2`($wLsvzyA`h0++zKTr0TTJTOHg)C{v(vhY7pw<{bVk$puuhfbk9AmbHh+Y4CfJ;Y*%ghLG3q!X0uo zWEc7y1-^jev649jbOD1b75}njt@>IwOIK6qhR3s(4PhKKRv+XO5qJ$w_&r;CkJAnC zKw+%F{vQ=mLD#v`ay5<=b%_fkFZ0(2)~915$~B)6QaGjJlKCfK@+(pL$!YT^FR|qW z&<&o!Uv|zqZ>m*kyKZNGGzY({CWn){P3HI^g?&d;^uy##C16N`?n~DJyn6R9hh?Xl z0P5H>`R9SlY)`hQ@QP*a?wjiglka+4!uOY~d`mN7chxWC7Hhv{zYs0k-Fm7Du7Pi2 zZo|Yq^|lUWtWeEjYh1Fgu%{APjF<1v*hz|;oGGpqBnkLn?4mEbrE>%X*16Oj)&2>+ zMarwB*c0eVqXl170G`m@gAKWi;(GF+^i$3tX{2gjxI72PL5 zqckSW#uWq;bEUl>L!lwol~ebrsO4Kj&RFFO^qX*TJuW<;4~NO$B}ha zwah|gR!R8oA6XB!j~>Jipk80wzQ6k1dMv1%5#b-O_Xq=4E+8-gDTDwhzvD9O{U$~} zZ8KN9PPnCsJ47uP-7khf{YcV!fY&y24FHkFKd(QjCTC)n^5C(U4zAqaw)-N#Lr$m? zO%PAJ@3w;BCTcrVblp<%&+hap>KkBz_7ABoVi3lWyPA(FJ4ERVQja zk0kou9~V~|XZB@}HZ8=E(OxPf45rvvpV>(|Ua-d+#4QIpy~5PU!eqc{M$_NuBTynSp-!ACS~6wl<6R+>Pm z_u4%R7)ODShle$ktwu}$8st5ZWW91L8x4`96OCfq0zu+c+2jJ3%IqSuF#0uENH!XpK?9JmTRZJ_Q2! z$&|O1ILc?2W?ZY+9a7@jTk*-F!mM zB-EA5!+VHYTkPe8vga9nhG<2{bkp+XTt(_6PC!#|a}$5oz$cdys(L)+1~Un}fI{{< zX~uzA%&TeaWYjAf=Q8!tanN6jZs9qCC}CbB%P`#5)eG1W-aiCb=1Y1t#jMn$qX_k{ zEbHh8aGV9NRL*3*ZaTNWedbyd(@!Nz_;9Rm!$>wDdH)b^H?0O8Ublk!Nl4OLjQpKE z{DhJf-{76BYF~78YMeKWx?YlB2jtm%EIJVp1Kmrq{zmyUSS5G`R` zAU^8-IXx;h5nK+>`=W4}^VF~Lnwv+7^)3+$8!gnHg#MIkZxr?#BP!#aG)xN|Otq}H zzYh~X0OcGxB7Xg{>74KBj}EGJ(~FBQ;kxA12iD(*Pt&^JeM1eug>{nzFM2@pR#S|p z7U?^+=~|`t8mcREq;SNd9CHX|k3z>H`XlCj48=y7zBC|6 z0*@p@a}0;YL>ZWvr-`9*9Ccb?e%j9mC1&DV?KMd-0BDOJp$q?vXU$}RxDpHUHt5~` z-crxG2&1!y0rYh+gkL3~ge-1yK+pW27Vy78dOe#EM;D)LlEo@(hiGuN&wn?CGs-gEtgMY- z9;#!GKs=NyOGhMGJ;+?d??dz&hLQld^o~%U4vC+cFO5?y_mXZ#QRaURCU*^EY~iB{PKgysEaC=k%9+uIWAQsZc@6Qf1R>ajGyeggBC<2r7Np- z8F&x}Klq9h0_S1Z4lAJq^_B&PIV5triqGkpHYuK;^TBVxMe@h;ayyY(=%teH>gV|? z#$}VFn3h$C9Z2RhojLnP1JDop1hqw|1REUYU4U1b8~+NSL%$j)^P*$>7pN(@7qIv#NcRlqlpoiEcc zQlxDZ;>y@IR1HraCB*z7R^KmhwR6!vRm0#^DQzd>eV^b$Tccrbx9qtfa)}BC0QW#! zg59g6jKACvd$3?8%A5L0A(m*Q?OxO#J!$8~s>N_^qxWT?=6Mp9DI}8_LaXeMR=`mG zadOMJ@Q`e(7K`!w6ZHL05p%d9NywoXvsKl&bMi8`#kNLZLbW9S>9^Eq-TaEXoXTQr z+?H5rx+h&5^G&NhVF}JZb0%IgCV$g`vvhHrdkXvJH+d#YX`6kQ(TR5Z?wqZLgC`1B zk8TkNrd2K&k$RJ4`fhxp=8JD})ml4opx?S{kloSy%Lr2}gafaZoDVF7Gyy~&6LCtD zM%NkfX4Yqv6m=2(Rdb-6=JEPElC-5g5LOhTdZFj->_a(65SS~cjeESDA4jpD>ja!p zD?7Jm#$KZ4?SKU^xrOoZUz%~XyAU)dYEeLqzMI>VmgCA(&G)ea{_3*NvL6i{u?Nr`Hn4IsDEYO3c@+&>4piYqKI8DsQBZeWf+Iy zx12dawI@ zG!Q>EH`dPt*_oTMRUYe?A|Mx(QcX+rL{pJVLvd2?L~5;L(}luLa1qP=T|hYjLqGj1 z#r+&5{YmzVE?R#t+d!SfaJl8wcp$fEJImAGZOe(I=Vqy2w5~oHAwr{icE40|MfK5E z%;Xx!mHjpzs~y%Hcdbzbm%?9J8l~6E8FuomQL5P}_7Qa-|o=xDfCbZ&W zAft;&N(SgXB9L^GNNz2sdHy4;8=`*oRS^+`iW~t|&Y}<`N|k(2kc-oIcc={Xf)%gC zgUag-T!iI3^9PIZ`;KhhJ z)QNFY!{8EhidcY%w1L({OO@eX(3OEa0pB#Ju42gPU)owa8Ej@%SotTt$!sYkY|(z~ z{uOcxodMb;$zrHo9wgD2pXlX>hSz+tXV7GHTf%n2&U>2sJ)5E9MDcPh)1c9qKC~YU z{c!6j0kjfbCL1x;N$Cg+V?V@CCZvOiiyukB5{^13@OS z?HtjdyoWaH``Nns+hQze>OQrrM%fnSiiB9d#!t?zGIPZDu6%g*b0%ksJGw0oJ*qb; zpOlEeepAYJ7{ZNR%Klzllp?@<({7$!)P~paKxu4hBDA!vePC`i@&ROAt3wLw9-`9l zCQAcG#%+*u0<-f}{lZ93*)_&GxHPE*z2Pl(rRVfB;0hm0CqXueL>P(6A~ynw(NhK(h1>7((xGvM|p0~Z$N**ni?}y{ixsS z5A)DolE%ITlqwJ$n;Ic2wX%iy=%5KycGC2yw|>-`MtsaK^J?z(gZ2bHA}GU&yRd38P+)7tBkcmNizpbjTx&qPU83;< zYvt_sOV>KentaEkj4_l|Y{|n&Tc`2!K#S{4)@_)a;wV;!>316_umr08ugw5m>Cl5R zCDb85cer$IoTw^P&%sA)Oii39juL*iuUBYv0l}cl<>6l;=aA(guGr`=HOw6I0~)4N43GQw;r8a`=i#U|XkdTqB05+R;R%m$*cnou;D*ku5~=PrI#J zivr27`@&qod~^g=ca6$vd6qi#OfIW21hvT3NIFD-6zm6^lDj2z7VWWa=Dk#Cz5hF_ z+ip*RnJlzArQ%GerYGYyZ}(sGiX;2$%I6k_4qHp$yXV~Vj+A#nANcEzg=>@yZ=X=i z7E=;&!EFI`fvov0;^*uyUloGF5DS*CS+GaRnE-j3X8>H!6P763eb#ROu;%%g{IEei zf~hHoQ8#BE(r`in%hrDBMjHv-(MGc zp3VXu);3C;R@?UU*3;jo8m(g5A`wAF;;C9(6~G78#_?_NfLCjb^7AaT`M z<{sRH=S{81cS5nKj8Hx}RI_t98A4t1C18z*@QS}N4<+pscXDMPws_YBPk@g3+J*lR z^v{;n$qv`!$PTIws-HXIFd9-`^^VCWJW?Di$|5E0rM+|hdW8ByEDm0`Mfpqg>76US z%aRcw0ILrs!AlxXn$6=v8GV%I%nf|<9K7U{e^#fNme>iQ%1KU*FZ}bVF=-B~ukLX3 z%&{U1J62pkUxx0EO8Xn23EQ$ z4OsFB=HH>x?Od>A7v-oe;Ybfn4D&S@Y@vY+ z@r1AHy~6keroRSHYI!3Bu30Q93(m}lK5y!B1+ekQ5kUaG(&Gvc6*>YUNMBcBeI+^B zs4nT!Z$Ba2h8f7l+Gg{fW@A~C*4P^JSTBEJNb?22EEOsneFL(djBo$0LS={lQYm_1 zqhlAno~2DVS)T}*e9~B86FP13s=D>ra_+p$vhGqdl)l#_tO3y+3qR6{2^<~Cj*!>g zH1|C9d1=+?Im-JmrAl-D7L%U55+_(CP%~gUJ1gcHz0Q#Cs=!jYGA%)ji{5bVP!s#; z^8&>9HF?c?G45-JnjgT^SB&hxts(JQrV<2Wm&yzdwNy-F%!NEdrHGr0v#~bUvEmyn z{QB{2uMy4D$UK6OgfGw>_anm1O3^+PdMByz>$`v6&(BjgfGn=885K>lx%z0+3R6=p zfx_c)WcGvvA?Q@O?SnA5mm`y4LPiw=MGbW{kjvy66#45d}`W$DJeTcLMo~Lb$@y+f zzX^`bE@{6zQlsdSq;6h7J3vpysu3#vVzx1eU-2clUfiu6GefA;#Ib@WsLVjuR1Qos z`2(1q;RQ-vIebu}BAtT9LPO9%zgYtX^C&+%TH}T#wko3$Iw;{~`u>;Iy;&z*-4B?a z;lzO^=WsO%11OKWsV%yJANiJAP%kz#71B!c=|Hez$R4JSw>9!xQwT6^MoGp{ZUS}B$e8M;z}USx_XcFU%)G< zQ&-hWT2bz{95s`}roMd?U#H9S49F-OCIdR`&-pKaVZ6hu43&t-RqA5?*O+tWpwuQ? z@u8_UZ4sGSwA^fZCC4Q;cVbwznL?iU?`D;5t!abia>pwyBFgHkL(=iz)ID)y2pVHu z68F5{PpKO~j_q8o+dM;%`PpZl6f+Td?7L3!LztIo;LDt!r7ZPb(G>(ZiqY9eNO!?MRYf4k!*XNt&nkqYHamD z@zc1uu>_npN`aXb@PyYe7v1| z3AxAP`6X%nSD;PgRQ?(_Cz6@zWP^2*sl2jz#3}TWIrEFW*!}JNNlmub{?SGE9Ua8) zVea!+#{Ines9yn3NrPMeK32~~nJZxZSGWcZ0niTwcbvY(C z`K-IoDZDS3rogU}br>LR&l3jW#(YrM1Z31hnZ|;=KmSgwsSlq!Vy=j_y2)k>j&bc0 z2?L_kt!?%^QBOMxh_lwXapt&j8ly0fpXhifZ&91{g{Kj?mjp_xfSC$)t9a0|LmrnqlCAy-aX7pmGojPkMU-&JX?l;#301R#sG=_)^c zG@&Nj_=x;nzNsp%mE|;6TkO<6q9M}7Ag|svFoaRspkDFeX^IocG(*$`py3ZvZnwDf zlMwDYVKa6c>~_pr6}FODv5L21HQlJiL@+dXGW`zSr;9}#Hz6qjO@IDwJ55w$4d?%u zlD~6UDd;sh6Nsm&Qp}7qQm!)Nd`Jq#Ww3hF091xr#as6!zzQo~3R6VGH6uifSy737 z?_3*ez^y*OqDl94;{1I;V;J&9sY#&xf2d`7s63zsxeK9i*H2|~`S7xWiy zkC-cGyuWtik|tt1PSBi;&(8=z;(*x>LmVgP^F63|2pLbw`%$dt{apY)j=*)i1T8(W zRsv@zOiS(b467J~<5rU-!jEN4Xomthy?guaB1&JJAIHe5SG)Q5L-?`5ZF2ygnBgfWy24ome4X{%p@QEhlY6je%W)Mt#)dT}`S$Q%uFHujp! z+O6eX*{t04Ums&M70ovAO&JEqW4XUo>57J?GIwa*v6$EAFw>qIj8kc^6HOiD&9fLA z9f3I4Lw9rEZ}Y{vH=!N}X$)%K7S#w8Y7D$-FK9C$B!lwFl;2fe#_QoD%U2R*VF;SO z2zod=v0eWY8XhElT!C64E51x@roD_*nJ=c|ElI~6zml~C%?<1-z!DId=FKD2;j&c7 z6q2koqR=&P_cDdgECLm}Rl|KT4U2dtza7yIboD}G>TM@X|A&R`iiitf*Wv&-3}o|= zj#V3H+uud*VT#2Ng8Fn+l1z{%)N0<2B$~CcWc&)rJ*`&Cs8^oE>X%AT(YDj4lnExY zWVSf5xJdx#i;>Xv{YqR*rUp><3qVo?U9f=UB7kn7oH&Ej{VfV>~qd7mp3VNx$L+o=fGRESp>_Z{>(g9@j-0UJj-`0 zFNFZW2Q6svI2^E$D>lHU+Ye1 zZ*rc&V{dmFj$G0kB@xIg<(Vjup*r!?D^;4L1)W>$nQQcqeaz9^y#rZCgZHOd=U0A# zHwr`#13`EfVG;x2!v=F-B2@h+NkTBpzRB*33Z3N$o+f zrS93NG?w&flJ&7huQ`(v*ROt(J}Fv?2AGdT7U?SPkUfyp`*YqtRn@5S32N$O*6Vsy zvE!O=GFI%G*rhl1SBZ1$)i29x0soimjE*LWHtx4K zFH$dx6K+oAAO|9@BdG^h=kRjTn-}MvrA^~1z3AO`#BZ&hQ_GrX%xO(cfXm%&zOig} z!_T>&8lBy^{Y#+z;SUL#iNe1~x+E&_^CPGL6Mj?{#dI<>OMLh(ccUi@@VJ?(qLp%jsc#4Wp~QKrBWuf=_s{@ z$#wt|8i@U~>Pa-lPLx>;Gh1UOSpu!cw~jf}%+e@LEj6w+;v+~)<%JNev;ag6e^+|m zqRE12&nL5$2@z3sf$f3$3)$?d(H7{~hp6XcfP70*5wQ2>g3O17lGX)wHNulWnD1BX zeTLHPhek?Ie0V394673*#02uCI=n87u2nR|sRHyvfoyHKp(ZE6@g^)XULU<^v0C`> zCsMT1|I}SasX+~KL(UE49ehmc{b2})a)4p(DGNjkUEHtrI_3Vo7eAos+8B zvqu+>>}nIym7-5CS_-i+1sP=)s&D|Xfp=;!h&P^zlCu9St-^t%xY_;Tpp;Rrgq3_<4$9H*4}f|ikADN@x7eS2NXgdqGlaqqfQ=`I5v= z?PFTOyz5_|%!IsR|BOYcLmF;_cnZuTEHWY%>#P^PgQvrY9HSsLeprn((IT%zEbJT$ zHq+|;aE^Y#YWAB-DXD5peMY}yK2}`qmUk*#Z0-Igf?bPl?i_iA+(x};J_NFr(`dUC66K}WdeS5Qf#ox~$Uw4Jd+{&2PWxreLRc{3EHNO1 z8*A;(C*(R}^W;D#7o0R_epMDpjkm|Xllwy^<}@(MyeElm-!a}_f;{GXx;1p6Z1|Sz z=1HyLk3vyG9%tc)$@`a6bXs+dl zX!E+3kySR=dOwn8WYx5yC6w}_nm{`-pQLepPn-ZHFTPbbvo*tLsBz?iB)|M75tkVMw%vDx+w44 zzk0SsS@Yc#d}?d1%zonrW8-_w?GL42v9!vOHBu576;SyjCgGoo`hg>)^PozVRYQ5F z(xzc;c93z9+0q8n3I8QZ*Z}&5*cr(npYGqtk|v--<`0{239FI8RQ3u$E}`$f#k%Av zwzO?=Z8mU`5eAPN@OfWuD%7|yU0Z6UDys$trtH%3I`_?XBAF`lf-JxTWPzHzQ8AX+ zJ`wN^AwM^c20!=vbVwRpsf}7=kdeIH*p>tYkmkte-sbw;>?>z*A1ztu1OSW>`d6?2 zgzI)=-*^unj!TT#!P(!n@UW{TsKDxRmMih%K@tYEh#lcw1zqET(-s9MO-40CWq6RW zIG(vxuI>NqjCwi|CiJJafHWOYfy0PZenpL+x)Y9Sm^f)jyW(QF=kX%B7Fb|o7+=#i zc*Ieytt>y~>PvP~+DU-So;Tk1{g}_!>2KQu3G>!u%-iUllXjOY@<}tPWtFX}5!7r} zS$bak-Xw3>k8kF&qiAJeC%Yy;ta%OJ`|5t5q*y-(k-@~gNJiMQK*V9j-3jBRmVj46 zE+$4`Fyl-@CHsv>b|(~#=`WO-Wb`Bmbg3&b(mFg49#=tm1XR};pL~!%l~d6Hl^@9b zVRB{nP&HqH`K6o-xHM9W(HT?yA&6@H{HcyNEK7@;g(VDBcA)7v43dKT`2~YjGd$mF zSD0nVG2~U*sz)hAh}yfl&r=sDh_e|h&{cZYNFMO76p zNF4Y4QGln8!|BZ*;5K!8w%~R6XNs?Z`Rw)q(viOCTboPSV8m4)`=HlevPE5QES^-6 zWC%8&lYIdg2Or;oiK9{QjUxBj(wmV}$xM-UvQkao+~>4SfQ;TEbT(tldtmX(v6?=} z9ILFQ)NLe-7b}i?l>+lKlSDgb*$RyJlWh^?<3F0+t_C`)%lEgYJwH%+|BQECcVXxZGJ~pE@vxciE zA>fqRja6H(hCNAWyjGD11*;G@?gw0*Uk~ zMYIMqC}>7tROTKUowW@kYKFjIhOoCcK_6*&?GYA{OS^BQrIrS78hY6l@c|W!6fKLvJYBCQ zh0UL%fr-~`(n$ODq&|^IQdEmUy-p&mU<*y~a8sehh#w4T_)SDzwOe(ps8iR{ke_(O zoR>2o3&A}8+Ai`#tNYLLa60KXg$I)d@%cjE#jw3S>?&UhBX|nu>o@XO2vHq7XJ_!< zUK%;DhXPGZFU9!AGllwJH$-uj1seu8%KjzwMExMtx>gX*4bE5@JZPY9SfhYS^h7N zYC}9ZPLdvpZl}XmMK}y^If1LC5j6b2aa437#b|jKA3STbh+Z2jSyPBTY|Du{n!#20 zS9{gH+ple&;TXY8h;@uiB|QBzjEX=U?S*U(3#Va94bg#*U}ifK7W(LVkc!q^^$nk* zf;QP~o`7>6$is6S(Gm;Cp#<@SedV;O$!wz6c^e#EC%-k~pGTzOL{0YrU9<3u$ZRdy zx!Yj@Z-wc8BFQ}Nu)`Y8l0?D@`smGuxlUQqt^dc=Sw=UX{4ol zgh3jHlx9S_8$`O1?oR3Ml9KLb7<%6Ox1RN1>*dpY8P>q!x-ZUs?!Au=?69bKT&5MG zth8NyA<;&vyAKP(C|&XpnofLto}g*vFABPY08(niGC_8QgT@FY0i9L90dKzSghXK>U@tQDI|+|DXxu>%o(Hk^&|@?2U#e zw@<-yLFUng#x!Lt@6(maT!UO?(vAlsnlk^WOtMNwWu_W_t)%|0mvGzo?@7Zv!{ffr zuVLu2$d7eK^F@unngnNq&8R|%^=afm>9Q_ag#<^7=LnD9$PNDt>O##jKFI>lh`dYiW_ao!#ANysnKIJ>V0Lq!b@+A0; z14{$Eq!K($R=9^fB%dSDtPH?b_lZMECG7xUO_)-wD=B)yz2{f{4ql~s)vG++kB1*G z)CuNjVRgOqG%kQwv#fU;WhdJwvL?)4|At(wGZGQ5gKG2oo=48JBiwo-yGF4z+C6QC z6%!GM3ub(1mpPE zkRxQKBhHW{mDGVb&HjG2s_*EmyNW}G8`-R|7Y}ZVDY~9-O6R}+5jn1tp2#FLd*Sw< zqZVlKxlZlDTDF@}5%=BC>3r;y{e$*ZjQ%@~Ar>3-Yx+>FADMTUI?V@;saJYFcx0L- zqUT?D{FIiK$qtYq9Wb2&iB-#W-*)nXlGp)rG9DD>Y9P#-J z#5!kb3T<=7gyvRTx%@QxtiGuD$&`KVD<5c?)3LHjSdGIZvmwW{X(^ zD)Ng=g=1JPvQTLYuoC7-E}aCfGiIRRUSYZkLY4w5B~YzBNx-|kf!bUg)4hYa{SQoy zX7k~0M?z#DBq40RV4qAfaoMqV1Nox%siuIB$Pc$q^sAQO>03eFy<_GWGLS|uHAf_@ z2W>xqOPl8sKgX$2t)e#9cdlfv)Ii@BC`o=mTWg0~7Q8H@dma z_sG&Mzb>LGsFA2gUph@YQv3dJDo#Dl94#szg?;LjDp6+MPgDsR6skLd1 zo%i&z9MoF@OuEW#94YO|{{TL~VfVdpI{)Gop$}N#4~}Q2>R9B;KDX`{UQ`c!WidXc zhmT2m>Nlt|Yk2e#^D$<9`1EXi_8N3K>8kmA{SxN0hkp{v7iW08Xido1e(Bvz-p3#8 z6fss2tK?T>o`yy-oWfs}7>v7tq&k zG6OPVWYW_!9>xmGVkiZ?uWF>+q`-qDVc0d!Zwksj#7^y9+D2*Y=3dYa8#(3oV_nJg z6Io%<*d{z5^@cz9u!H*@1G7s_^9g!sDMn5~bkz9U-}W}1Z9DTY&EchCO~G}gOtRMJZ{!?3p~wzQT`wc&Vj^�<=oBf$i&gbfy2PpmeosIyj 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%0A4!8qej1Igu?N}h?{X!??Cml!Ag9m*h^dz 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

    rSvk@T>vOjxuiRdLA84{r<&A<>xp5 zsht_TpB%?|Azv}FzEE$840C_w8l1B)ed34|INh}gof$?Yc%phPxN7}?qFw}4g$t1; z1LiY5qyyuBvs;o++*g^VboE`bU1uoj`lQ!$x4dKOG<@q5hW_n%Qhn)lNxeg@rQS}q z4*iS{fUInIvuy-FQ-jdn=HYV8D9b8P35-#KfHHPdBtLs}K3eQq9m=h+@|FG)|7a3c zYeQR@c%r;fZtn2DNi?&c>Fejy&UburD-*ugb{jpE*kw(gm%CAP+9wI|@{KG%_yK6J z!Os%gY}t}W!)GDGK+&9DVm9M=0&fWS0bkF0TN`Kc=b_I^!=mwA@ujH}Mqg>S5p zI+7kK@>EKfsxm#+jx@vq2dgt_FNaLvbCr}6zB>*KHa0K~Ut7#GE5aqOF0);1YB zqWxDCzzA?j6^=UMi4^V~7vN&;!4i%rSz!MHbw%yxb_0AY~aT z$5Fb1^U!S=`?coP&F2TWgJ6D?&GiH44U|yIh_}1ZCMkyqMF#nSiL9IGMDwU13|VCC zD?N(FP7oxp7*QHZCix< zxx0C^o`$sk2SV!;Mb(Im>p;k zFI`}9J4D`B)ZpCym_%3h$ju?{$H{8ICs)*!wV#zMz7F|6PHfdE literal 0 HcmV?d00001 diff --git a/.wordpress-org/banner-772x250.png b/.wordpress-org/banner-772x250.png new file mode 100644 index 0000000000000000000000000000000000000000..1572ae82cf5769874d4a9ee09c2750fab79e4614 GIT binary patch literal 98225 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 QGf;%V)78&qol`;+0NzCdkpKVy literal 0 HcmV?d00001 diff --git a/.wordpress-org/icon-256x256.png b/.wordpress-org/icon-256x256.png new file mode 100644 index 0000000000000000000000000000000000000000..93dff74824244f3acbc609e9a454bc7cb1a7bd0a GIT binary patch literal 55322 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 + WP Performance + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.wordpress-org/screenshot-1.png b/.wordpress-org/screenshot-1.png new file mode 100644 index 0000000000000000000000000000000000000000..5ba5d825d5a84256e15e42b45a7af0687dbb7441 GIT binary patch literal 284393 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 ^418U2EGh$Dei~@ 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ℜ7T;=Aq5Bma*| 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

    g%wAA<7g2S*(^9x2xARP z3y7bBt^RLt@B~3&VTn+DmR8zYm2F-69i#Oxb$I9y>yj`1>-g`EE096tvLtgPc`3@8 zuhu5PCd`TE&cl9V{2uG>!p9vn-vX}VUA(wEKf3;;%%RlwGfEl9{=&A9cCeoq+oYbi zdatsK)QvND@O{S_M%)2LEqM-o4P-?Wya%>SZ{NOiALQ+&n0NuV$HkGH5^Ns6daA>r zi@o{&{_f(S=My+-U2Zi*!||K76ipb}uYgC)rctf00vB+FGYQ;%3vWV1-SQvoE4a9q z!tUS1BdS@}-ETYHe89Z9U1`!h!}4lZlr3}(u3uUut{LK$WmO^~po`PIDYx8@y|3~= zF9?M3IYSx>i&5U5bnj*2=N;ntE9O@8$_^~j8JN?-jjkn*Q%M=GU=oBva3_1uAk|-B zv=3@=`ZtFKoFiJ^=j~0m3)$s#u}-tt<>_NnLfVVGy0^aT(JR62-yz&MhTEglDpBeR znVX2)TW2PwfVe(7sZ!*wBB`j_lFTsI*|qZ<%Uy#N5kI6`*?E4<&$IMRjfr0(zJ15F zR(1EaN9ix7o)Zu|hPPssX!F|m zI{S7tkE?Pbk1epogZD=eAwt4B@kLWsr4nGtlDS{+zgMw_-K=dwvvD1lTd$u#GZUpd zq8sV`QPAodc)cHh(%9c^0e@sGTa8RDKNqx|{WSg^Z|L#L92cLe_k4Rpyu0Elnfc&m zBB-(d`!%-U+PQwcXC_+GJ0rM~sUKBW6ri-altUCfrgYHS9L-0gbF_{bq?V*Ri^7+J za@l=+AQ(aD_TP_b-av-rWJ@^XPk-E$aJn_I+HLYprk{zJSd}!Vv1;}txVx{lJt&=Q zoJ<4_IeHFCM_?SVal;%YYlHM4NLlE&gvl`i+E z2zP3a|KH}*pAdyQw%>VE_5ku?V2RxWz}t&Jz^m^+^xYplH0cC)`CreGr2~vYJ~L9YWq~f z*dp3hKUbs2@L*?LdOmU^VFZ0zcGsvmlF_y`_QPH3zWlgq2Q#hqmt=SO^2#?oDh>q| z9aR4N5p&Kna}#==S@Lk5eOp7#s54aU)OxBWrh4x&07Jij><2ZjT{RH5$P!8My>NG8 zWMxJsQ_xU;T1D71IwSp=!@KT#|7{>`P&T*Me|Mj%kA5EtE*#Jan=s-{l-F?QoNQT8 z=XF&2y>?E#sGe=FR}oHXoMd7+{_~+uX#ey+1Eo((6f6^v=i?B^q4 zgWVi`56}f9p%c=}cIRoS3lBk24*wVl%?TLXT!&HKFahEj43iwduxv6+nsT-~J6x8S zKPpb?63|6ktE);fD$1o`LszQ+-eC%TF!F-gWR5BcF>x^f>5x?k5C}}7urMQMegGta z)We6Ng_EbdnKTP$z!*LKVUpO%&7{XwZoBX~VD7UqV4k1ty8P+o=~2()%4>Vu z%ZWVZYG?b>kX)aW>M|nWqe}X*qtp>YW6R6=onEhBzXm1(Sb+hXeVA;~V;4s%U4ayN z)Jfl7H0GKEtbN(TG?}Zv{;ER%_S;1bV!AMRyhO~JrK|~KEtpy@&do?I2F!+y$y&pu+`0A zv#IU&{P_wvytBjnXR4XBpV~RxgK$Q3wUR!$L(967zWRKp?8L7?PU-BD=T`!uvjyhh zlEbGtpYBl6OPvT60Q0XD3l+o8hfnQb)d8+0gLCTx-oOP2@ri9uSdM8_9MGK0v?%ae z>hQFRYmDJx@xS_?ms~8SRz7u~iiTzk=A$@PM`!35o-05X{9yMF_-10F9`2)GX9g>O zr-knyU_cyuo=WHAbA7OV;vCb+*A+fIU-G5?cQ1fE0NCsL*U1r}X5f%a0Re@8%SP4$ zjuM9jQ2#xJ{~NqJPoF-msH_Cq+fsNFQ2!Fk!3+yI-sp6{FJj#|HUfb_U~ZBmy8SRC%b}JKf5%{QUfWeXvGH-Yzvaa{b-_^aa}T9u~a9Ft@(W zf$2R2000UbcBuhOJ5Q2viLp+jxaPY2VWAwts~F~(K9}oVkBwEW2jPT~0jOUIAJ@t< z>up7Jfy_%>fwAc4Z1gETKC`Q(lYpx*)gQvp4nT(PS;^(_ZgORub6?bw0a6+uXnUJ5 zN%a^69v+^c+s+CAuxUMprd5zx0CRp@p(m(;?yvwoV%m;#L0}8qN_93{jDsV;h8MX4 z0)vLnn;+dctv>G!M_?B`f#@~M0Awe|9b_HBw?x@3Dd0a(Xg7^1mDUsIJ^<7B=FJ-v z=5`OwHqE1JH*XH4+{beU7Q2c$TM8W9(FJeNaam=F;bpCs{%;r{QGv#Qc zu<~wa|HQSmya=^lf(#jUiBwhk@%Ny-iMon`t+r9@Z5K6{AmLUZIe#bX0exyXAn;jW zqXT$~2%mb-vv$Kr*CJtfVL z@VXq(2iV)fE^MkG(OCgfmC-Gp6UpbiX1J~_r3q`JFEhcVakiE7-acp=n%a{$QJ^mA z06Y{h>v=ZMgH^ww+xWAyiZ{Rq6+U}S%^D@mcaI}-QpjYV1Y;SIbk^WtS zE{F3<#XqOOFpt};^Xrlwk`%V>yBv=2PP*+POYcmI)#79jtf_Iz>i+ogaseC~*sm4c zo3z5oiisl1T)o1uWI3t!cc&9${mdHl;auP_7~>?*B@8#^GVA;d_V?@$GW2ARqY{JJ z&}qE(6MIqjZPUf+58C^8p=nS-v38Cb`E2+-;jZHZ* z^z*i;(_r%-m9c)I;Vi)B(}0!syFXl`G>@N=4PTHZbjkeuuGC2-l07Yi>S`E%P?}#; z2?8aG2s}DiSFDVk2ovB&h2m5?y;Ew%vXM73Knc{C{DzKM3y1XoJ#{I4U>^_$=}^65 zfs@L`dr?xL4S50}|D%KE2M7*(H+57dC}G-cTvIA(USiPC^TVzE?C6}C7Of;`ZO7Nd zcR!BY9(`~zoUVNl^bkA;5I2I}iTUV3XNy$#S%uu$Iit6RqvE?6yRz^_OaVvDS(*GFqHe{cvBKCuf)E; zuTQ;JYx8w7c}pM_8HkyJ@b61VZ37 zLk-sWxr*YPTnizP-8LGP*1moI*gOHKD^bEs2jg zJ~Q&Y(zS%tv#-Em;!^rmz`3%>WiHT3CJJ;bT|_0xF-jqINiEQ_z22Fe5BGuiseh8w z&xL5Amc#%T*XJL$A)oCa>?(z%P~Us}rNyv*v)(@~DDC{5NG_jdJ|n_%?sm2waUYp# zte_)CwJ0G{pCSJMwhj0feT>x#%}>VCd)~L)kV4!8>&^2_kKRQT)x|_s>Iw6n1oEw$ zYj@%u-3J-Flt7lW)^rW~J5RvXN1z15z7jP_-~w_@EHYa zcjb2q>cQMTO8{1Kwk8PYK(qt?rVq2xJ{xmKu9em9l8jsfiOMbMXOHU`9n#)__o=sx z+^lta_xgX73UqqH{TS-4F@FQW2K@PgGQx5!GT&q~QFl6*UMMf_mAqNd0Ql=-C7ru!aTXHrc8uz;YjfPw z45eq`FS|jzCnfd9s8H@)JzO!-pIQOc@AH(<1%eYURI@>-4H=mq8;VUtD{wQKeW_rC z#|+^TR3z`gmt8nt=G+wQEqk~P=~MdUHn>$jXr(bxFFtv%oM)cA;YUWW?nJNr6ROig zobSw!97aOz?j0jO2F`&oGrYksCEOiImtBt!w~d+%csZ4;-S-_zh01#lw1r-Sx65nF z%9c3(_4)j2%=D865zgQWqb6cRz2R5wT4B6F83kUDW%Y|c8;l9ZX|QTn(UuX#;LR_v z6|O%IN2aW#Ob~)NT{^4g%NN4~_5O3h>8&l|h8AFBf!)n<7IvpQ3Al}FapX;)qcu!% zSSLzLMn%>#_Iehon;c$=GN;v)YjDq?+n-0b05dEdcthW~hmPu}G3P`DZ0^`n3DVK1 z^+qYPdt6apHhJxt5xAw+?Sj|47m=k1YKu$OYF6?iZ1o%`XI-b#wL$C@i(b5H?e~gDqzX!6UND~CwR?!KZxeM?~-~Apx>v)QnDWFzdX#rv)O5> zbb3QdSY5g5=Gxi2;p!9Poiu9{QJO*4SS3JMC#T^`M{kMF2+SvF;`qx9-<+`6ZdRFs zR5m}fDw(e_N~tW)Ei>&DeQl^}kIP?Xb&Ls4DL{fY65nm~yf86fckDKs9<^b}+Am%8 zrPB*5{IZF7&C>Gw`{bh*Doc1EPj?@|v2%C!hJw1C-3N8L_9DV1`-`EmsL?x6mUMGW z+QD5vstk1}TPan_CABaqft*1pM>}EZzOo$L<+=y+CP;$WD^_dCjMc&u0+^~lPRuju zDE(9SQO&+Jv%57TTBKG?EmUsgwIK5&+2X?kxc9e6kxDLrXd=b49~=@MkcHp4C~U}- zt8xoY@IIh6jrMEYNRzcbK2JWPwIa=Vu+y-@nU<4C4F|-d`D;X^o`t%_)Te{@GMekF zut6a}#C0|De)s|ZZ|1w0TZW)BYviS3PksfaLvqdr;U zmWcLkp9GohtXE++zA@xi8B!>q%Zg&llZs3`Bu@FlMN|YfZ)S1SM1$!L0NHsV45%0P zNSezO5thLqb7dJM$0rrwyTV4>D(tfHkSPkCo#83$F!J}LQ@}Y%i|+h5 z-SBckl-;-m!A3ePl3uSNkIAsuq^dr%!4tbViG#yA@WCXdKWwYDuc#Ha^1(xqJD}r zs1bstJto4WH9>q`;k z#VSG6YZlhZ^mlk|Z%^u`l@i5&{KshI#m;-7 z;X~Z~k3`SS1{BMj-8@jpAvnnExLclJJZb|eNO$BmLfWs?WoFA6(tGDQ1fWaH%OSbV z{_E?jF6DvN0=1Weo9zYgTQW;N1lz=Z9-8D;Ah>-xYL9w-)#i|jFlT1>{GJU-1MT?^ z6Csa-olt7YF~RtvA9kSwW`Yd<_gJBL4AWnQo%)`%v>=8j6ZM^Z>gDAVj5Va_znt?r4k{T_q7 z#Bsam!bbVB$b3;Jv8H8CK1(o$kDeL<)(_aC^r+HY>1L-CbzPt2y%km^1J({E1 zZNep&Xn4%rsyvhyL4??x6xOG`I^|EqxCL}B9Ebcx8*#AdRqjs3VkOtg++}SJt~{v{ z*^7Fi{Z1hyZcAXDihCSlJ@(;5!+8g3#DOHrc?4zX)o)yC#%12@e^V6M?L}Pe17`TaTE(cx{vvSbgaaur8a=>M|W-ML$MlROq_F_>*(UVRh_2jQ)^Da6f8EdAxczTy;WfftWiW zAfO=j-BSk-&_hoAP#}0aqt{>V@z+HKLm71`iI&0_hN0dw7X?6825@_2mwR()mUisr zjo3$hxw!<@2xd~3qoe(0w560pfpLqWn-JI(pnMuEp&`*7!$OzOKQXZ3rKyHe$nHi) zQP3jvBI$Ut=9SZ|1K>EEmySnx4T9PWng~rhAGKEibB8!AjP{D&%m)YZ@i&m}!LY|v zITjbHKsmZ`b)J>R)AJbGe2r{!eC<8Aos-iTKpg<-B-=|2{0ct?;En#VGu&b8l6GBr zD-9DqH#bl;fBu$Rl0`x9JN0~z5LkR+`M%tVcKn&gX0~NYOCPd>++>%OB-9RBK*@K1 zZI}sC9ezFJPTYe<{cMfWbwNZ`?@p1GJ62XyY^ZSaS`C?QuO!2{{&9_O2SIO82eiLZ z@%b7j7njDrm%)mp`P9?ZyLjiL>Azei^)Du4jl3awe7`j9?}SwuyC=ek^Uxn!-mv)_ zbfcWu1v|r`CCsKc;otG3rM*Sev<1N`p9$U7R8CC@*eAo)5ft4KFFh{SOi)tvvCBQP zoq2;C(s=g63RRp|2CK81BVhhY%(IdwGNHM6a24PHDf4AdxfQC^-C#?@O}+UKzPe6q z+}zz(&^;0b07RFK4R~y5i)08qd$DWSJLIsLALC1 zztIP@i;mWi!vOu#xTDCe1J|WsXFlg)k(bA3==Svd=sKX=5ecyoPlwq*48gi4+(}A% z(Af^{v4}W%YmhaB{CbvH$Y?a-9O!}UqMZ@6lURS`^_x)gUv`0(tgH-9{FqKAe$8Z!9w1~I|=^A|~R#r^QaIcI(d zF)39c3eBoEF$S}+@AM}zx9%yPx!txcI>rUx6;`y;hbba3TI4Y61mIns9H% z#zq%{KEsCB#s7Y3ml-eU3c2=WCS~R_n*1@%k(bNnpe(f5cH*D4C;XICt@U#Rw;H*# z3{ybT3I%jkcUe;PIJ5t-NEHUXqUD$hM{?O6qs9nmyhuq&HTF3}n+|SbMdm=9T!aQ?BrB$&pa4zU}&iAJ584ps^m)AVJq+` z9TyD7E6)#V1=v>`-sZbK^t}Lgd3QJ=i5L~$8dcpZw&=GLmkKg6>=o+&vgzFop;V%7 zx)QYR9M}T4dt)?}l90|wuEwi z`AC-AFBHERS2M91mOxWcqoDBKw?26UDlPcu?f+CN+&tFeTr7`3FsN6B>g>fu(%IN% zu6rm~*D;`vcxb$LI!}XV3C-D3khPp;Q$YN^IuWkOtTo5bXA7B&7f--3mOcpfEpkf| zYlMf3tzhJ$UA;i%?A`5Mh1|u;QOrs5V~(A-W4O&y@Nk`oVzT+=*6FCu#V;@t+o+WDY~3 z6LhmTxl|3mTS08d#oXMULNk>HA-d>LB{|Xru0imprXjK3CXa_xvnkBTPO)}p!`3Ai zS0%*Dt3VwGuqg8&Qj!L`^^(4q5uM^dfwqHM5(-r*Y3ckAAC~$-?mjOWYbdWLx+Qro z+x{Kh;@Ipg)9Ef~@kN?S513{LZBl{2jHj(5OmnUywaz5boq?oyxOPFU%FVf4bcFO4&DBr)o^)K?u0X(t^O@gGPV~!I+b~hpdj3Ewwg&U@jEhB%@psl5b9b(5v$f+*b@E*XHXF6vAUH zVEcwa_NZ&)*1b=NaE68;R%}>7Y)Cx^22{Z_Sp3ciHf24;KQI3$`Bc>uqNp8Y zlzcR2gHs9npm2($2#rAtc)uL6427#%_%;VR~F3m)&kh`f> z`2klL-6GZN@|@xjzyHM?F*_vZ`!+Nc?upZBgq_qT{aG})GZw(n7+Pqb8Yr|i*V8ncc1BcGl>haxr0m233h`a| z(FhRhH=D{bRdeHJAnT@sBd;jAu7%#HgX;ugJAC=@E^BFNOF2!V$m^bk50G!p_eJSz z%-a}>={dB5nEp+5mnOW|Q}=?;cUaSx8~i;9z1Gs9B>xewVFwax>X*wIXLL{45VPMqj`6hKE73P-FASS2UEl1;HK^Dh_amVT`8l0 zs0qQ8TbAiZx=Hd?8p5tyg{=&MAtKr1lJ0TESS7fNO((dr!-c3fNI6`2U4b#@nEl|#S_>oZpd`daQNfu7UGc^? z+`b&s#>#FI%(_iaA%;>d;LWHCgXx`2Kj<==nA8W zdLT0LrLE?h3KLm1okw(t!zw{LYBZ^7V^$d1pps&+WEkOpD8YHSLpx0YmAt z9_G>ka3Jd+jvD&t27M$MTe-gfwbH7TN^{ozw;&mXf7RuK+tV$8{k-~Hz;jAA0;`ME z-_g~dClpA&`3-E0e{~84R=k1#Rqx%q_iW+obrnaBO|=!4_~d=b@ynZ;E|s?|YQ5cB zVk?b$H~BvBsQ5R5C-s%50k9h%rdRy;{Zrs9ft7b~x%yJKwAlP$<(r`KF%!>8h1_LJ zT-O+93Qe=J{g&s^HF=M^Yo^sbfzEfDmCdieP75-+wc@w?s_XZU9sP^&+{s$tsKVNu z&)coa->otCVyOV$7q@p!2C%y{*YAgSMXvwUqW#eQs&Z^CZvQiZhgn^D`~Y;v=%&=u zz#GMYd(J__vG=D2+J|3zbErPd!=qzUZ=1MIM8Ly$A5s}FnVjqb9_Ij@0^bL0zW~n> zir#k!IQk8&7mdy@12(MZL0WkSY@Zo^*n0hGy;1tE`SnV@KT=LiSO}b)1Ko6%SqyAf z0cR^;Z!da&?(Y8j|J8pNl->yjHuvuV%MIX->8nCkE-EPhv56sb7VxY%mEFKZx(}GF zSX{$%Rm_97T?n_A^oERvJ($P2yR6z_YP!@?M&QC0(2d=|nh|)K9B_LlQx5R%#Ml}u z+kcyZ^Li>KT5)?Unip!e>T^%H20T=Qjh!91w7_rQIpA(t;D+S+e|p|mx4}%`Aub|c4|Z9fTYbAqvzD80zx}`X^)+22@gBa;J9qB9)A0xH*j)|J${!{GHzZA*pXar+ddK~9 zy}=3oQ<%(sIhpx|1%%SySb-tz!$J7yzSas zs%`Qns-j}aCSR>jpLR`_*g5-&N4wjnZG633W&qD1-~Mh*;B>vYx(b9O3Iy-{~D@aytsD9jR?6s z*fGis9~3?mlz;wH9+M)Z{PX3?@=N+HZxWr9^|xF2f8P;ZsAcwT+PS_*9TVWueTiwi z_5b?c?d|O;E~m~mZfbG)&(FZ{|NrUJ7eQ*+K)H>Xf#aI`(bJNB;47p(UHx3vIVCg! E0Jct@9smFU literal 0 HcmV?d00001 diff --git a/.wordpress-org/screenshot-2.png b/.wordpress-org/screenshot-2.png new file mode 100644 index 0000000000000000000000000000000000000000..8e604ef4dced2261340c0c211b36ea3b96f012c4 GIT binary patch literal 373452 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�UN8-}(TfW|C0x|3bI>KdZtfWrQb)ByY?Fna=oh+Jj^;oe#BUS1Qryrl?g25wyiu;IY@#fHvL3up3_`i<}I@7 zWyX$eko|aLU9!<35~EBcr&hl+_;vb+k}{|<)_)f3Wba#zkLx~hpWi=h=Sn*6<9%o{ zjU4&<@c7}JG`&`J6JR(&t%Y^#mK&qhzLb_`PD;jg#W+P;m_ELNkpQ3gxNhytPRyYb z3gRMwR1%eu!d_x>*d|GaZ0iljhgX{i;EB+eCUD2gjXI5b#USQ{<@TV~moL?Zk55mT z)SF>V?_fhAL;gFU%=$G%wvtY7t#2I#G&uC*8~z_~TE9{y0Z4taeb|>`wcKuC>LK1p zg1_#6(jlSC&WD;Q;CB)~xu9E~QP1LH>~NY(BTJW(6Z+eai{xv{UAdWwGi#9J{a`v3 zJ7V|EPRg51f3>2CJGv^F1#%0)Yq{%oKWeWFYvnX$@;gd|n3c|3PSqx*G3?ivnxDe> zpUuL5R_UwnncSHAJDK*Djt1y5h>6W4?oqQ8sIwHHVkJXVrQ}ifb_ZNMCOkG{%^l4= z%hb(`BdJ(|OyhVE#Awg#z{UbwIpDYQLQ@S>s zai?vqS$c9ZN4N@k`io7IW{Wj6yEjQN>;o=HGUM{6vNftZ=ORb)smKJ;Ozs#w@qD#^ z9o4t3cVmU=F-At529NHSiV~Sw1)7vPO@w_xq6^k0`Lb@kdt<`PP@#%W-CV}>$~iy% z#PlN$E3*Nyy_aBhIVlW3kSY|$?;J3EF_qLiu4_3`l89<(!ln&DqW`M^r#DuTSUt{v zKSjW(#Vwpq_!b(PW{E4U$0pTB-Lr8GZ3r~jmOjb7;A=4e6zBr>l%9>L=~vrn*SOX) zNnA&Lh~1GPvpdhHjf8Xtsf(nVS7CzPaI^6|JyOgPr{j&)QB*(G0oGSArtNRol5D_}md7zb`BZqTLX9jvSHDlGYNZV`iRN zuk&Rt$HBo_A9uTRmpt`ZTv$bP8Rko|Jy}=_r=~|F9f&CB$3GP6EKymRD^k;jZ3UzF3{)_{rEhma*fTRe*TXFAFc zdWRX=+1n;&OHVNbuUw%Ke17K6zpeNEil5pBj3e%6uy^&qJ=8H(BK5t@^}F-)ktAE& z9S=yAUB9N~<=$oTGi4J=2d)m@_0)FPAdzP!3&Tgui( z-wk^FJV(ivDCIa|Z@+jaO z8@6nH$Cr_j0Z&P#>CzkLKtld?V8Btg1``

      s1E3@|wzU?jOq8F-_GoEh3r~xy@ha zh8N0`@J2e>LQn#MxoT0%puTbR8Y14Wav({-f%PE`Q&B%+-hLB*nAa8-N1tzXU+9+1P84Eh*9Jv2$y2QiIc5g7O(Tkaldc|W)O{4ko)L?@p7L*X|@xnA)w@$ z(TR8_DvCiapjzKDdLjPpH__X}FRa{L8}u@Aav^G3;Dzl_*4h{^)vJ%Me{t^mB*zgT za2@4>*XcZ;evioNbvhjk;tc#Gi77RxQlpBgOUSRE*LC0Z@G$pv=WQtN$(|Ujvc)Lz zF6sKh{e)So{Q3Dp+q5AaBy@Ik);32mYF3(dT*de)qwkoYOekP%aAs^}&TGB}>+3Ds zj%m2p$8k4yhR+S3C8^MB#h>%ruF_y3rK)LK-RCmd$OP@89j>Y6c}sOSc=!CEzc3{7 z;tfqpw?zg%DlTrXqNa_9*-ChFvf@|+vggHA{RJhL5rI!U=i^XGY9V(Cz1lZc&}+=Z zK&}NON<8(w!;dE>CH1>!DN@cEy)747YMm%=F$i`XQd~Pu`7z9*{dSzc{@S%0B~t-~ zRG_t-pQB1|VN)-e0Z(^X^Q9$BNzvWCqY=EZ{h&IC!(#`^)U{mU>)U?|W>DT?Y#!Lj zwPtvoL6&rQOp$h7z3Wgs)zuTFz1B}eN+6cMh<5aYISPhzj$@nO5p^caXK)KWh= zS4w2Z0B6O1W1_dSbe{wJ;y)+N#I%-bGOs&wc)!t_IqE3kklQ zhzv3CDensA2_arh128=koI5Jo$`G0g^>qXFyqvjav(#`<7~f9(dP|l5Md7d)pm|gE`w2x zKBl^VK9*)Rck6d92`xXK-7Xn-npk;9^QQp$q=VHXX|&?QCy8T~M{{q$djy1`4lb{& zz99;e@*P8&64O_9=jxr$R7sEIzot3U8AGX5SL2{tVt^T?_IXskI)jOfk#lEt(t$mb zBXfJcT}SfgOt!*VbuCeAtlt3W*!9XJs9+yG!7p&Rqw^5I7?NL_3|6GoF(WzBqDS6w z5NcJrH%-E(obrwl9j}G-r^lixtgwKoSk?m+zS3Q;6uA(Pg(D@UrVXaPQv;4AcA$S6 z0OD|{rpAg+YoQTzT>J{ls2lu+Jqt9Icshqd=($g@C;JKN8 zCR6j?{b|~i?rn1Z=lXOJJjgs{-L)yE<>9l9H3$vwe4tpWse(V1^J7>xoAA0aMFxT< zkdP}E(wlAFw{AkQHC1y`xshc1zOVXn=oOa+zX3=IXb1sqv$cFGk{Hs ze_$=I{?od5t+^9sjyq1k_HX-NNzM5UFhu1R1J1*fZVisl0-{+DF1FHPt^GXsHd8dS zd4E=2*C|Ziu!(m=8?Hw@?uvV4Las6w$*6IUhQ@Zo^D5KuXXz!}g)Y6ePO_T)ky>|_ z4H6c5defg>k4~^?C*M3a{{6~Mgj$m~wbtlJO7|6mt_LIp536`R}|*xI@cLH zs_Ozllw4BPtpvHa~783D~|4Ri2`w+2o};3?<+C&-nP=peHbdUL9TP^e){#5Br=n64%aqumHnSt zKrMj)5e$6g2>G=Ol9@4AhEosy?T2HErh=3Cm;~1YPRVfx&x-D21(_=sxbE?-?VTvI zu}uw-(O&CL;5K5s)52=-hODoD17lZqtHJ+`Je3_qLm)FqR z8Jx}9NmwBAVbF6^iJ?u0)%+fq&FUZ}fT)do>rT8hQRD4}=vA6bfsG(s#xW}=4qij)^>)^~#kIgz~N#MRGQN9|JM4LN@pIcEGKDfh`f0QC;nfhrfhW0qX^4N?4g;b)cy+ zaBoLgYcM<6VIMzQYkvg#Er+$J0;lZiH+i*L^gbKc03|p90*iSTUDkD*0;xP0MAAy;h}wN z5=hBN35Yw`&Attk8;*q+GTN1j(c`C7ZvY8k6*OQ4+Kuvg*RtcCo!fYia8ydy?g5U|dd+?V;vEC)`tw8z7rs*SqM*f-- zUcxElEK(F|#_}pbZUq@_CbE?Vm3@1OzCa2X%OA3}J8_5k%7YTmADg9pm@gXs+&&3pgKG0o16vgf@c5g630my zDFN>fPXjOR52Q&3WCbp7e`m+xWjG89Kh z@_AI{ZBONHS7zAenEcE5aV3N`o7Kzq1412rNKtrsSC}9aD6`hE=4*Jg-(@p=bnkaH&FgNTiiD8I@Y z#rwsEZ?}W;;i?E(_xLTO;ZI*Thn>~zEJ%}5osJ&`{IdkFuo;NYTx}^BTjR6Cmvee` zQXOSVNlRO(T{r2_7aB>tC?C|AHz)0Xm*Jj_pP!%E&%CwLWYn)&@&!5xs>&(sfex7B z2|LTV@1JfguxQsB>}l!>IQ>p3-PK*C5WM0a!`e#6lc#6XjC?jzNy_&|W|8sL(ad#7 z3A>|vyty^7tMQgqr;1T`T5`7a(IdXW&j}B;l9Tvbg2=wdj(A5=f860%93<8UUIb9V;V2b@LZ7UY4WXxitVrR z%+#)31lYSj^bxz&)z-#7Yp)E+IAm$I$hj}&nMOWYpPsyR?|DzFtj_773Izc)FK*9L zi!!UK{1fFqcz=M=5*KI-Zksia#-!5In%1hkk>e0OV!t(oD_hc289!%%IqN=Lr2@PoRR54 zMafc)8lj%&j-*cyL#Qk6%~S+2K+S+nVP*i zF8kYI{$Fz=S}M&(g>MEKEmPzg>#udp!EGCap4ks8Q(QBpTlec+Y;g}x@7FtNuc#f2 zM6>8fjdPLss4(6a%K#Y3Fl$mGhs%2T3UBjcPn<||m3+Vj4UV))JVAh!wIXN*i|iv0J}UHLPXvaRLdXGW&6 zwArcDorJq~>KYnIugpt)nqY;JJX+%?QnC?>5BBFahYHV%yC>m= z$q4xZE7t5!V7fqj();;>QtT(jFNdl35CeX~riVLQ4YB7MS{irMiyY<;p65*pqKQ%OBIZ))6 zV_1UR5q&`Lyr7Uv;-C8R^6>_#O>YGz2x?1Y%ps%^n8I1_L3Rk>bF}$haRhLl|A0G? zJc{8@mVOnon3)~H8x#8U{{nE#E0jrKAGx=;1d<8>R+n+yW%JcUOZS=cL8M2~C1xWw zo?-!10a(%GFg-E;$k%bXK}ft9Tn*wXE6?h&F2*K+{?VCH`xa6Z;X{s zjLRslNh?fsYgL+b>ri$rEh}nI;|xxyqe!4zFrkAQ+JD~d%w1knluG`6baXT~TiP#r z4vv|Of-vszb9}TwEWgO-rjmD!M=h;BI}U51Yz{xNpXplOOYqKyNRy5xKkTKk{Dhdw zUKqNA(iX;S_jbUy;smbKk4-nh6{G|Xi#m^sr0i^ySMu@@KHWX^+3Ps5-UGH0U1p4B zW@D_<(aftMulJVm59E@WSqjkZGRAV5utt-=_wu56@^u3u07!5LQVr?$QEl9-5BX0v zFK9u!_sjF_gP54Ty*;gT^s&{1eEvNaHIyU6a7LpFn=z?9_Mtqrg{j#j{+d|>Ln}+m zfSRwT?J+Te1AeouZmzZHc+BecuGen}c4DL|NFDDl_m?Z7>YjUKQcJAvu zt{f?kW6BR3qUhO+{2q_X?fQ|UGNc^6V$c!Dj=-H01F#BCFGLM5yN=MH93r^b`+Db$ zlBsL?bv;&C5tqV%qZi$UD3&QmtP<3Ji8MbhWf>_Y!5^_ywwFq2z

      4s;cTH)01i7k$HyP=f-0~~pD4_r#`lw)}vo~x^? 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 literal 0 HcmV?d00001 diff --git a/.wordpress-org/screenshot-3.png b/.wordpress-org/screenshot-3.png new file mode 100644 index 0000000000000000000000000000000000000000..cc4f7ab0521de1c897ae6aa91f752c34c6aa280e GIT binary patch literal 300808 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�e0+XY=AG#c%M*;(Sa)c(Nr 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�_Xb*4udf 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

      9p&OcmR}>(>1niri@n1&H#8DZQNb5W5sGU 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
    1. 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 literal 0 HcmV?d00001 diff --git a/.wordpress-org/screenshot-4.png b/.wordpress-org/screenshot-4.png new file mode 100644 index 0000000000000000000000000000000000000000..7b56e4cc453aafde6be9d3dca8257c1e4fd783ef GIT binary patch literal 165874 zcmeFYoKpF;y4(aZ0rMr6=1{j8Bkj@#N zeSYVh@1O9zc&=w&Z8mf5*?aAKt@Vj@hrU;pBX~^y7zYQ3KtWzw9S7%8D-I5>=cBv8 z8R~a1S{$6ea1^B9X?mvZ!5@B{Hlyh~ENFTE^X<^G&q15Ok1vn7DH}iE$zEGVx*a^o ze*KMG`q_Om`og`o^W~hkU%3^P=B^8Vhwvu07*zx&_)9n%52Ku$S{M>Vz5Km0E;2+s zRPO-4^nagMKF8Ys9pm($J&OF_A8)Ph|L<6m{(pzB|6e?QWE_;LBPrQ=6`7jAW?1hs zhyKH3Nk>QL>+9=+dJHlu-727IulT=P`vS!77oXAQXnM=>^24W;qGr_k6{`D=?N>{u ztTeu^D`!+9Bc`(cBBkDS#T-V}p4-)%#{MJR&Rd(AyoJVNFa38GHg(F4Snnlr7)}!3 zfABzPwAd_kP3AEvNUK`2@66t?qsW#*z~0~Pk4Az=t>2WdSKt#;4uevwSZ}wTT3eW~ z8hQ!j5*`)hzZn>vuaaqfy|+=vO7dUeeg%}*^MW)hf6dy%ModZB!QLpvh>niTnnW3C z=~8gZD7SM@@l5$~s@txBZZ+A5T={2WzGrsdk@urazprb_n(=uL&pVqBiHfgGJl$U` zjt_73U2wgusaX)ZBtghST7mPA!r%Uc-jj8}5T6j}5z0l%#%fs1vGkQ&9*zOB9k7t?6 zM=W2D*6q%gC|loD5GzFdcfBvy<-xMe9)dM0sSS;u3&ni4_Hweavcf(Jnws&Z5fj;7 zJWyFCRjg_MF=tOtPf>*P#@@n1YOz5S$2{bGB5KQiGQ!% zFAZGUd?PEp2TpwaSWZ&oLO3k;wWIp9umU%RG}D~UMW3$I8M zbyGBF+8oQ2a6U;gH|x4OeKC?L;&hXA5JHIAsZo0#12)_ID+mYgpC5V4$owrJyEP;LIVy$@zvftayrexjs=68#?AV1UD zR+VYUQyQaYyPo74ODbk+@wE`(#Uya*Xy^Q&fO}XhioE$R9lubF&Rs+^h$W26SI2b8MJ2p88b0K+ofU42 z9h*e4W{`{apB1_7mZ>BbYn2gEQkEJtUyq8Xi@1NL47fZ(aUq%Uuid{RH8k=ump438 znjqKqJkzh^@B0o@8|*NDrpBm5(5ZZu=;JX_5^|z!?vVZ={`C9&_Dk}2k{{XIvPC?A z{QNikE4YXJSd9u*s=m#7JGjkt3baIXcymZ6SANw-t9WVlbXJeg_VuRvi8X6HCk+{ykn4rV zVZLW?AIztpI1q!uFw`e=pN>gbjxN^uL?3FZgzgnuRmTd!hOz^ zQ@BS&WjSFkn{?PTE|=atp^&G>u!|=oAl))Wlp+c1V8iE{l3!D+t2~w?;AY>Tn{Ou# zPaZ!8Y1hglWeFU&$BkZuB_`^Vbq&N7n7u1AXp^-ddEtK4p{8FeeYkc+)#8d?AFWoT z|4uh>ls)k5pB4BeVzVSfkKfS&FLJiDuBj|m+0=)J)*dL5QCSncD*BWK@#J1m8wkFx zBt2ADB11JRHpV8P@5?@rmr)vu5r-26#-)hHi9;5zrW*|AKvIDTm%uaEu|gz19l?B? zm2+1LNbTs%M?PjNABW;~%DZp)ZVzOX54$l+|sCWr^EbutW!o!{J7QJB-Cd8;2?lBl1ySX&|?`=C@aK#fF0O0 z9!=uwJ7fWKA3;%$!;Qvfw!WJqbF5mWD<;~jmZQEm3yC!w!*0HcvxztC#!WkzXo-Cf z9RxECO%lD_Q)twW@Fh7%w}11WJEeiz+3uXaZZgWRsLXKlBv=+V2Ld-iZj2;wjimA^ zSch2GD<*ae}g!4?Y77&8g>)(A9w+Ds-EmR_( zSALq}#woU(qxXHr{OUtvgYFv!X87uLCN(w+qHqbt_km82-n}g}ZQgN+0Jh=nTVrPr4r z+<%_@71Dq((q^uB`{D#>)$D(#uC;%XgmF7FF2S4VSVc=E7h>}{t0HS;FNl48*m~*> zT{_x27xnmYbwt&7N}^w_e~xSi?KN)G#MduL;Z4z_9`tfWyo_0rW8xkn<=mvf(HE;_ z9ul7|6@dq)xb+cOux`KFfaUZ>b)3z@1_{PQZy}~Df=9kYA;9q33Fe!dYyMgGv>NdcGzD(4UJ#Qg!;6`EQe>(jkl_4L@eJp&@l^!4 zS6WuK{bZ2>gks1QO*?6LHL=a=*qWy<|60BC*zCj{jtZk1bW5y+uq>Nn`*B8V$94GPk+q?kLAhPByFE;k&Dj6;>%9Q> z3z!UzYc)H3vdRy>SZDsb98u}C7?B(`rJTvvvbo=|9a3EuMRp#J^u0RU0XL}b3)k6z zI61+=QX$cw_Y6M+(9B#5B=8)7nKCu`r#sV!ho`Ykn2V{Gsf7G4XG&vYam;GeVjH`T z?KSqd(`~k-V0r-Hwtqfc1D1LRHMR^%etB4siSXVh!Th=YAR$z~wAK?g=uQW&$gHSf zo6)kJjUu}ZH`gY5xa>XDSzo4KR4eVU&gJ0nFIRXK$bc6~&R6K@<-Kr30<`k>_Bp0F zkj2n_g59~}!$WICeqB?w|LPheB;C`;*tWO!Q`~8=ti682^jLoHglS*3W4j4#sOzlPK3;01A?8oxDItjC1L*i$wEG8dJN6`0kV@M zWjEt59UbPaX6#3f8KO;8#*?`pq=u6E`};pgz?QT(kE12F#>>n6UuV{shPVf2de0uU znb8iXiEaMAMr&pG>sjhG*d6vT)9jR?vHl)})JLVr`U0Z33_MfWL>52$Rp5>K02!0v zvrRH&M&zDCt5O8Xr=z+jZ>N1zMlZ~H%ilU!?&vR9I!wLqHCf3a9Ll^Vi{Jr(mIvkKI`ZB~Xe=#2iljO&x}9M1(Q5itl9$nl06At^ zI=LuHV_%zq#GkQ#Jnyi*Xn8V}s)?thi}X~mRK zWK=Pm3c92dLudy^9tmaoJ69sR<)RFtV_$HBcLaZH1U}sEmX9+(+73AoDv#Y4@gTdW z6o=I$Km;7usYcX3Mh!;3JcF9AA3;l0GlcW1$p_wfpqGRKur~`emiCLa+ocqSRC>~K za*p$r{>!aRQw6t8W&;q@KK0LYtWwh5Oz~p@cywsJOfSNy033nST8nTykOF4-gih4Zpg_#l;n6FTFEYk|XMdHt3Gc zk;_x{oo}GGV{SyAp+PE!O++qqd)?T34+AL0daDRc2^jy=0!U&N@$qalEAojBE*Xj- zsD-c5;t&DH%KbDN?-g++X19lgRErI_Zx^`ppu|CsNhnX|=|SwnDLixBvXVdiJx=S= z1qB5?e|2Hl+m?Zv9&nx^MlzVFqw4v`x&^)nCVDm`uTaL2wUkmD6f@iku;eJ0Lc^L~ z0K+syM1+Ms#mDCjhBesJ2MiLR2IHM5$-G#&J<1I@j83RI>_hc! zo&(h)-nrO<_;(`_Ye-~)YI?Qb^(niV;ad7k7zwNUoS}z^Y<)ey!_pheQOZk_U9Kmj zSp90V0i!l=5r?=a2F(l}%d_TO57+D6ijJMR3PhDDGiQY+$7A85d;jD{4BD4HI+eFR zSeAm{VaG*IjcmTrE8K1E)>}00%2p{I8wM>wtF(4RH4VgOc~)ijgf+wbmN+|9c?B$; z_DDx1ciQ#qt@70i>0J<5RYPs-*bdjN0pDo{Kc= zL!h^t7WqOmd{Ie12lv!KGit6(1Lm~ej(KSKU6$H+kzDl~0iGyZ)(2$p+5XJrjysr6 zZgf58uACODPBqoR{=Q+AuUDTD_T&#!NM;h73#sk;>O-_6JiEzDIp~(3zfYVt-47%M z1wq+phSMy}odNPi%yi>?vh|^_z-;{-5xs@DrR~!Ozo6hR%@mr-M=b%|LN=QEbXvZXKAah7uKYlhbvPF?1qc(z8~NI zG>@p+;u4JZYvHggHway5_JifC=&ODYl1Y;YSncfjQF1F3aJJXP!*YO7o^?B1>q!&S zZ}t2D>$Rcd;21sJH+cB*!IKv;692GO)^h;wVs=s;(?~Th62)23>QF05!L1{IkJ(4!|&R$dkZy@pBBDO7il!S&ypNsHfZR>t$w^8?jJru5`M?Hwaa#5hVU6syLH@ ze8wyq&6-%>%VFr8`nB(xwC-wWPy(Bh^Ak#i(BVVnsoqEcBK{Wr4KT8unW8p-B-4;S zuZ`9I5Qj>CANJ~4ZQZ39e>%rUz~$VwplfVib;JKYqiR!YqH-)}L@Id2lyV6y z8hUwY`-566OHZjx3*wJ`9{^Bs2lgJNxJdT1v~ehrGc|LuZg(*~4G7sn8O*--Gax+3 zMcu5f50oHGuFv+%rE>C=66GUo@Xz;Q4X)cI65sXeY%qVi&U+~tzS&G<2ccKTC%!#6 zj=baOcyQ+)F8O|!%}g-{m1z9ZB?0e$3Z$7czt+6HUPGFwd5YI?f;}v^-t{^veIs@x zg`wzsnRZpOm5AFJRV2ZR>CUH0^0)6sO1 z0(JJIj>m_tZX9%-PG;3`TtKLqbq*=!v7B0AwQQxAixxZGI|eG$hveQS7k=AZ=_(Tt zYBayc-IJv%RC$NNGmXL?-t5*JvE5r~_J)?0_KIb|5sSTcG`+aoG>)M}_s7!rcBSyy zZVxatm%PvV_U!U|P*9V9i&RMYX%9f;pV4!1yY9_fFEv*6Ru1QC7OB^BChE#JaN8}` z7NI}9$4%k2u6Es4hrYxGumuatzYC_n)J`&oDUuv4nR7}ZAT;Zyhki}3)xe(0mo9d| zDQ0mQrUfj%DqiIxaE^C|sF&vAHf%S_!BBX}PQx$L%R@nQwxn;L3fACuL-+OT9Z+~B zrm!AZ*qvj#sp=0o1OyN^XDI0i?V}CNQW+RoU;Q#Rf1Gj4z^YSTDwUHi z;=yb0jgd8n-L{bG01F#~sqmkomC8_+kNKhqM&IU2EycvVN2y-~w6V>WrLJ=rK!_BK z9BREFHv?cRGjw9L`@Zl-!OnD%>37++;bfkytN~xhx+kNo)4vZI!vQ>~w_6$e*V%G? z8VU+qYKG{HJWz&=}@?)B>}Oar1i;^g?4U?5Y1msc8l zdU*K3dcQ8w==J+wSNqPJk0BLo2it47G8<=qEdomM0o@p+8GUgfc--*W&orwRf+*LT z#bO?wV3H|&y1Vz_4G3=a*>8h3!G0p0{9J$!7S+2Fam;nkgTxKF0n=R9iTzyPpfXU}DZZAD|^g7LfnjTXe@3LJFFF-@E0Ww3f0LC=0sm68`DRK`};J`BN6Z%4WF zKViH>fKj4S@ULnBT=fRe{Ilk;Ui4kPFFEv~*; zFbA)&6P;aesZc^JB)|1?aR~Tsb%aFf*Ytyh@>sFZB84zZlD}32ORCKWUF{I6=2ULG zvwV^{#LTMl+6=~u!RPxe^>16-+E}$qxAy8{V`G6vWP-1hJ6#HPA$4>;T0iA|EjZ7` zJ80W2voXNd*{S;S-q){R6J(Q*#u13yK`3jeiy$~pQR_dsIvI)~;HQM$1A~61^4e@& z6iWs@)=S|Qtlum&YD;PMA_09Qe!9QZrf;s8rvz0NmbAaFKyvE)oG(Z#20bBB2M>#b;_1#_D>(0W$!VfvJhOM3xo}PVF9)hWppRqR&#P;T`ST+Nw-WWB0 z{(VVVe!6SLp#Q=50S`>%|J?fQX?3=9!u0>8PrU%xI?ElU9@39XI~Br&ARgg>uJ2aFC9(7if9^Q@Ky z)Z1;l$RAZ5H#XK-x631Q)3@5?t+O}NHyyWrxwrR5g>{yi{jNKnkf!#zqNl6uk|%e1 zV-b=-gXDKyE+z6QEYUl)p-30=DX;rds!QzvlsMa4nhs1rn*h-stXQH_zdUf4#1YqCH`wDeX;8i=PlOCX%3&OwTBOa z&!%dfa$<7=+|N2KRLDzG4HNZ+fx>4!Wtjj1tMBYmF(<@qERY&kMeHpVN%el0O&6}c zzDjjur$_i7baCahk7bT6jxBR`s2FrO<(RLtQ^8>TW&Ojxm{QnHXk}dUIS-G5t$!*n z*!(9T*8B3=HJazv@Ez@TD{P1}5X_Vq+72*ZPE|U}C1nbGZjC>wXvNN0(unZ4ghoX8 zqI-1ME;WFT>1bz_OLU-T_FdNJY%gK{s5_KcRsv`S*gPfJQl>%%v|AqWsnB+=9PRqh z@@XVsS+O-x345URu$ui|Il_KVYUk&5hsv@{h{?JDh@$yl1q@yAP)p>oR3#Olah`DK z1wUbs!g#yQjFd;hsgf8{V=vy#QBhcorF$TxqV@9a7IUi@ltEJQY#%zS)c8YR0Mgmk zqTB9i(lIH=-@;f(rY~ABq&(g6131z&CtE3zqwVm_hbV1}>+tY!%5v0ytLh!dbfCCm zJ7#W>eEW9m?J;?5^c5yL2XVbcJQNRDGoTNxNnC(VLFQ$Z{BZ)3ck6S|6;2vg8@$kL zf8B-q~x(v8QzHAB#N>3BKBqZf*Jx7b^H`rxyzYjV> zWd>OEGiL^DU&Kqx9c}If0mRaGwW&bs#dAu^rOl{}C{{_6Bz$zlsCHf$NwDbQMWR%P zlkeau`SyH!dLG`#84&a#q3`gdLi(qx;f28_K(He4KKTU2C1N=LP^8h~Zcop<*yt4K z)W@Vy6UJcA!PGR`=wupABjF$l!0v)@qiui+>XhnMxok!OD3Q-@zW*gSOHziOR~TUK z`6?8VOo~oUP5~Icv7}#fb2<&Y&7OyAlX*(2>B2LOPH{)53X7O(OIC38dRBK`jrCN% z#YhT;z}v@!gaXZT#EgpZ@2y|G`!80_PUPfT<(gctU-wtNlY-5b#Vd_2((>7izcnXZ zUS7`hy;!c{Y+oylj4B(Y5)nN=(ExP;6gLw9{x^Wic5Y1fdv%;sd?-$&VK60F^zver zUM``+0J;}n(RR|=LgQb`J&VDh#a+(!lAJmkZy{HwJMFh;sZmIP#JAU2jz!*{3ZUu% z3h9rzWEOH>2X2l)643h@HuX5aLjThO!higDLqrdKNe|9X=H2$7KjLDOH%s0qZ$a~; z4H=vOGvS8)USAYdTr$PEtj&DoD!@Y`DVRopBt-T`W@TkT&bKUN0nKCL{M*$zB7pHX z56}P^7z(LG${W^p#fZ#BwE+3|yB(Q3Us{+;4`odA!EP5UV-Tqj{v!NM zB$8)6w6Ei0T}q(95nkQni0q38Y*TY^lM9Oc3T4@_JUMV`R;})^pEk_9{m$R}XqKk! zygqg6yyJFx)!5HLnl!4$d;8LI*>9HsmC69B_uI6|SGz!Y${49VX44CG< zpI19&7<4D6>=5nnw3l^`i1zoi1#Pgr`=S4NQ?BcvyuX!bWIrGb7p)7{%K}pZW~-e8 zbIG{4daUjD_KQ2GV(hhAIx;gA`HF%QuC7>!nV04c972Qa3S#ZHCqk~rQn|G956{nC zHjxh+tKI@06}xGgA5NJcj9&?xaX$ED3<{X13%m`8S^MF_gAVKsv88>4`jxdG#*Vz% z%jbGtbq`zrNkTu9A=Ud!$L+&|*3&%=wRzk$2=hp?zgynL)kR}Qz?Y6wp8F`*xcY3%^RDK*0eCb_``6v@X7 z6SdYn$gI}fw_opW92&N`Ll;suUl9T&bhhw=>Hh#;#$1!j=JQFgtLq7nDr)KCRPIN) ziARI6^p$`!*b_!Fk|x$lCFX7*UU1W65c&*gmalbxepx3NU{V8r07gRqsSGt_)a1-4 zE^b6b4(6)Avm8m6`3IPZU{*^PX0c^p(iXRrm&e}C$|7Oal;7Tr=k%OTnkmu%{66_v zb-)K$cs?ccdeGH_I}Y_1H8nLkxlJlRPz(j#c3hQ*p+Iew342~eu)a=8MMjp)X)NAX zu(q}qMJ?uiwns)bn#dVYWzqu-q-dsO<^6AUNL$^1WoX_!{(6Xx>+hi+;1kpC@Jq!N z$BbE;>Yo!hF?<&woVONoXa5;b@QKMsZ@uaN$TPlp_0M;{L;zDbukQWj;~63I@Sjt! z0{K8MJe{HM$3Oo&l^!I!0ku)X;2 zE-Ahw$l`EQt3;*Ia{POfpS#8ocF(D9Gt9wzXn|Pf7~7i=jZ=_{C{!&|Ksq_a{K>m9Jtl2 zo|BT2Qc;zCQGONJAj^*(?n1h){w^^wF#(_riGvMw1q$#y_z7{|z98`udPf`io}u4P z(8(o)E${n%wX=I{%XTvSL<>Dd_0A2=Q zP?Q;W_yZcyFma}chr{o04|+cXA3&6|-)sWd$VjRHMHdthbhOJ-@B!NukTCU|)=?<8 z>-~nIhi|9>ne2S6Cp;<+0GrP_jaqf9OaKh>CK>@Clio;*$kij%&|IrqFs-{XFm9Bn=r^n^4++)ocz z5ei}qpF7$s1=j$&2iv{s8xi-t!fF~JGFZFcHJ|~Q+qOER!no8E%z%Dl?(_f`x7oj` z>i6D!l@$LdhhcL(iw2WDVst^)!~z@HuWTlx4>-w1GT|@&CQ=L0eI?jGt6kL(MV#0B zi!=(%m;hD={5FSru6!Uaff-MwU+CVJSu``JsQ*o4mF#+C*b8=}c8i`_Bz z%I+?#&Bwzsj`6xBRot)Hr~v3*1dkqlP75tP54gq5y-X1E-JLCCCoVN?Is5hXp7ZC} zRrmcx0GhsUT0hhi_c<%I3jyB8bcgmrp<*Hj`+*f!$kv+$-0xuURNc9-8vZn$UEh?M z{)t8~YChM4+qp8%gA-hxJ3Px>0svI9KD60@vP0XcHq^ec=FY)#o6l6fO7CZ2w$Wu{ zxCnyojbmh$IpgoGya8IdgyVBuay}adTf{=iIw`=i@P%X&+Y*#H<$T*LM)IP7|7n)$ zelYi`2Av-u9NFfbQG+w(hOnM);8_}O!Xh8&H#is`Q?umBeS#S`Jii3~4+UN;5u;*% zRj)e}x}rNiLEpgvaYOEN)>`L0g_vVy$OJuKo2hK}_ko4US{S=UR$0aH`}HDZLbwCeM*c`==bch3n`P@-yM<~1dqhpiL(zcR82L#E-9I5` zF2MpiOI2G+!y_QD2ju>vlko#E*{~b!d)%9wn_OkOTj5c;gkQy4B@v&Jv+}sRUr}TY zTMi|#1CyR_AgT-5x%g}$>_SzLoFwPYz?x#a9!y*;FN;LdKy!>%j6?wTF$risL&3`e z(e76*L|~OZP)W z-S?8xaumFD6>WRZz`*&vCjEO~%;1&d^6s<9zUa9bFI*P7{&HWhY<~MiUi(E&3C2Dl zA?2N+(sh=c;2ueJAPg_NoCUdX8J=>1It^O(>tU`|3|c}7V-~bQ2Y^#{d2#WQ5cQ}S zA=#c{Kl1bW-V08n(vEM>`y=kKP;AdB{+8F7$vZJs;!;Y;;8Gv_c~w)?eMSsKfM@w? zJWDEJd3B$r`V z1!o^A!J9Sj?`B4)%?y$K@H((rJ=9BBvDu!?ONc#cZy_3>Rf`HuupChukmQ$ydVUSE z`<1}@CXHSHSe1z_)_+j&Z9m~E_WD3z?pc4f20FGm)Q*I_spgInScdbnkQs#xIiCNL z5Sjug-L6(<%L79fA_uKg3nlgTFea`h|M^ld4;6W`5|w(gj8!hAT#+o{ULMD5J^8ZC zc*9dEJckjV+<59B!<%M;qm~34`aZvuR93D$R6^?V4eBs4$I$SZaaH`B2F7;?`kCY- zn=V<48N5ysJ2-L(P3(cY*+Py>4IdJp+#e{`<|x-@L_8lcZuz`@MWNuZ{wH52umlFX z5}k$3d676gULJjOSnWGYi8!t52{j z^>aK3d_Z2Mit-1Qt?7sefzTTQO2P4}7-FDl6~q?L+v&EXOqz5wDWf8$J1MeaEkpdr z20x;o-(~!`1xWo!-_EYCQ(k*my&HbydL`Y=RYGh5k^NHR2heWbXA}Le$lqYCdPw&F zC5j+Dvxa(*c`9kM+Gq>2a?*8}WjX%{prPsDe93iCerMo*k|P)GZdi-i%nZm^ z%PglE{M6;UW9uUy9u_tk8k;twQ~3T}UMesUadR@I)(o}{C1P|9zt3_Bw!tTGel!>Q zVIo_`en`3K6SkdMHSLWAqZh>AR)~7nZs64eZdkGzvHJUq)ess3gS%`>d)EgYi8Gsa zcj5iRuZA>?vM2ZVW3)w$NO>%VE7M>}1CApc4nS0B(B#egv1cY5@p3ikWwL@+RvJfBAt;{l56rP6 zuW)JR-j7{<`?4ND8KxILQX%sx5UUPQUD`VvkxADlT=c8xga&bq61*elKgYCYCK{ld}`78`me2M z6M0y*dANPeA+J}Q#Z%RomYvtID(wFgpfb78R%RSVkSjKhHrmSYIoJ(0llMRNJiQ_P;6rQEqH^gGj01bLk*@T zMD_bB^Hmb!qnfOz3u9GzVct4y=2N1~Y@(lTCoXbLr+=H`<%Jn#Hu`IE4kgby)|f_K zZa(_6Ga)`;j^tzYE^x)x4?7jDi7KutRn;CM>2eN^I3W!aw>f-m}q@Pu4EFWhR| zLXey6E#ilU>3;gt$B##L{RG+kkBps;IC?LPEqdy#tpcoX;D&o@^0qpI?jsTE#th>C z%6L2ERT6JKqE({K3Th#@#At*9E||inr0T*Aa1}zinAd+(Pl4_0tT%CXCZCR*Yzb6 ztmFRt)n0Gx9uX;2*9L%^sz+gW!O!*D}b!ZdHbnZlADx3ZS1YA)r|K(cZ{78oUm3Y%~2k zmd_OTj#w$)eEcGgiNhO=XW?<(dXLPCUlID?5t7;=!g4+oHK7}=ZcVqU0-%Et;v~+z z__!BCE&X<<{`wZ?Y3u#CuPoo!TPjkQnqO*e>@KcPo$bzzy-c{5P06zUNYHwcA*WYv z$4kH7&N`J*|EZVrteEe`XVa?w&}{s9Bbn8RX@O*sOaRS~{CGwm(L^QTZ!k8Z-dE*y zY+?B610aLh%{%a&=JtPDkQoBkE^E|TO>~Z&zP=WKjm!74=6>5#<}hen(T!%Bp&U39 zxBRp6+Ai4$q?p?-Ya<*H0?`_ZqLWEX0%|)1{+zWCz3VPE|3mFPg-3S>Kd&q>!$uHI zcAM2<-GZx|7=Af`QjW^Rf`>x^p|@f`W*J+-4>w0B0=I_eg=%BQaUj>xfuQGy!_;iBr=$*E0};Mitnf` zm$#f$euwlxg)@(t-hw)jhD}RNeV^%pyx%7KB|cf7Co_6&zW!Wa5NPJrV$~XioHb@R*9{%hpO^8 zG3n+f4-7WCGGYwtRU`1#I~$KjMcg_$r<6KB;VV5z6SA$kPYc)%fA{X-JS(kwJ1|sy zT|Ot;NY*@!i;dm|HJI18OYGbgOD}g4uWp-6o%lxndp@T)q+tq~C;zFbT9@-Rv~lUA zX1igWoBg;)MV-s0$*b{sPcCl`&5p{1vhg*2&r?HBVYi+5Ji=eK-Xggq(Q`p*{o9}V zf?1qxbao}0JwfKSe&rkm>IuCZUPtS(Qw&H(4#nO#F1H?*sv5&1Vgwsl4oXhGm>j5) zlLy=_k=n8S?Ym<;_MzmOW!3e@@e&=*Av;tp!uM>=q7SNm=Tp1qxUck|FO>Ns1yMz5 z6x?5?A0@&5qA{${W14d9Wp5iV zHB#f`z(Wrq#os|EuZjAT-IBS@ug>;M`V0WO{SfC9lV#}!{;SmEpYs7Og8nxb)#gJ> z$&3EnY&7>Ch$9#BB}qK638ho&2ykN|+#<^uB6X<{ao zXG1BGoZoKClcetc>c(HM7owSIo15Seo{f=VuHR+qd11NGUW=Bg{Ec^f`gA z0KS3rSO5e13Rr^oJZp6gmxSp1mXJ=F-poRJ*wpvS_O%U)>?BT20ZY@tHtqLC1&-GY zD3G7)bORgYfi2q$q2Aqgt5d_DnrkwQAdx25ZAkl~%!{afw*_va$E86;4<0_$e_UEU zux(?turvH*ylU#tbO+U>qRnhjQ&$KuOQm&2-6*Uv$xJ?d4Ms{zV@_?8$pYdP^q4MoBlI{uqGT(srnKDEjMWv|+ z0IwK|6*AG+X9!*_=G@o=ZDhLaAmY095hkmmi1b);l1r4{z^YasueoW2smem2DMwO( z7K6I?vWt32hlQJ4J(E(Q@pX$}pEZNS-v*+8(q3C>gi)iG^W*2Qe}>GJ>0361=CoP^ z?pWlAGJ^CT&d2_(@%|;c8Q&?YC&wBas+vj(Y%F~*O?8i$kN2;K6Jtb{heZhnQd1mP zt)9jVAJ_`@1MLm;+)kuhjd&w2Af04emIx5l-0kqonKc#;f@L?ZyINj{*4r%{t=?{p zjJ*o~U~Enwgzu&8;g8b2gj_Z7$g{AIs)nI)lSlF_43jv&K>k_-5Hz^fDt2$d0HLCJ zdt$~1V51$tn@jZjmM2EH6rYVq7cKFKsQxu#*|AYW)t3{T7P1xgF^Ap_p59D(cR2Bh z70|1WxhB9OJVJw8`{NjF&hY+MHg<2ZkJ$El!{e@GLFP&8=rT^p#J0HZ?2Q6ff>&aW zo^Rc`Wo43Xvfak=a1FCGvLqi6HeZ}aG^J5Kd$x+*FV(2M{jS|Gcv@?E@N9RI-(y3& zBSmc_Y#Do7r;<{`OF&MMH*-UuLuA1jdhI`1NAT0y{-86FYUdt$zcJ=<$ePKGQu<> zV@ujF1PS}G7LH-anE^&r6f*B=&zbkbCtg#4Wwk?J zt0|CL0fOFx_&VnV5DNX;rI7d@60)1vUp4E@%H+{_SrsWB8-ZeaD49d9xhbVCEduC* zAC6)c)pJ6t%CBSM{(`p|@qgm5_L^l+;>hXOwyZ6x0OlpCz5|(7W+#c9Tph>s87eyLUZ!@FF zk8h~b${MR^H^v~LEEHIM68(@={iH=BG*ZOPox?KMJF=yH`j_u&u2V1*N$KB0AeY7Q z#t1-Zs#?1P>+IU+*$Et3n4uk4$3qF*YgW5Yg*sCR-=a^bpYC@NN@$YFKc-cu`nYsy zP=6<#Fj=HD&iMOf@XY6scnLrn;)H@hRTO^56>kfi2mn}Hf81Lu{CMaT)`*XVVJw{2EMSkcUbt}3z1A$JkM-Iz9agq8UcQt4=boyYU9qxKeC4@H@r?Aj@Dn?#&#E3h($bq2_C=Rp#zcu6)SKIFy#RxO#|*9Rqi=cuwX1^UlD!QrjO4x{4}o z5#p+mltSuJ8XF?kN_H`mvxIoJu~Ngpu=;x3?hqcTo4du(CX?Vo;6ETzNXjp~GVBz+_uZ(6U3GuhoJ>2m!@eER~<17JzC;MgrrW zd3e6}f0NWg%-iukxGQ~pcT}`(*XHeUi=a~D@%liHV?3jNIKxu8{vV~MivYdrJG30j zFa)+h0G5YbB)JUfE1Z?r0BmuYf$mDha|GyuR)C!o`Qfe2S7WCm!|>Ho3U8qs%Ij## zvy%z={DZ~15~RwP;Re1*8a2ZHl1ctlrVR+WJVu zrjjrKtfxpGe~^75M;D*2=S@>Is5~6RLM7>`@HqZhk%L zDLlsOyB2Tueq)Jo!JydN8KwseVtZqJr}MLo8+9gLfji>jx6tuTHl-Ol70k_0;t4nQ z=%F!8dd%=W(xO}J%zb!(2haM*{b(=s9wxYBW3DYyEea==cH^S-dpxj5|D?1}0;e(5-1XdbgEd|)O>ni;+D4PkbiV3$ zDJ4tfu4UdUIubg-MVp@Mkk2sF*DBz%p3DU(QxsCe`(W+sy@!j-jFPfDxE%m}h1_kP zCfec1$^-S)Jn37yohKsS4)4sp`+@WXRcV7SFIelouLt$4pg-24Ua0J&J)TXPbnw!e zT)u6vTgc9N=QqU4BD_oeT;tYV4=65nA|FM4Fa7|WAAMDK6z;R~^&w@S<;HQsNet6& zHsCN)0WRTqR^ZKYp0=U?!BOgD0WUXOY#F0Y!kTlLbag;nbVwH1Kd*g2_r%42 z`E$iUF~B1j7|7pw0l1;)_$l1uJlu^+#K(5I6D;Q1t&7U#7JHpRWYx>QtLjd#ey?OGvzZEFYwh`*pQd%m?sjtlOS~qp`^}+< zIOW`XL4--0-M~c*@6uuIbnv|xW@p4HF=sy~-Ym}_>jB^KxwRMH(1}c?7Wi~Fb7|0= z_GglmD`)vot)ziff63>g@xdLx>D9{b``1L;4q^IDEJhulXErX}U`Pth2BFoI!$`ln zpN{;yr0j;__tlGvhYA7U;?9)^q%9zbCNdGA1T#{PP7% znQ#9`^(Bt;K_`FxL&=MpZ5LjE(0IayPxm0g}euG-#Q*U zQaKMVWXTES=%!Yuhh6OOioD3vQ^y?2DCp=wSg{)hNFXi`=8ine>g zTd-5dl^4=NTZq6Y?Ob4PX(@M#R`_lwmoZ@hR&guByrKAg)!ou=5dD8R)PH~$fsh5*2L>g76B?SLH!0=lkC{-9JZX{{GB zT@qEaAp9B{c|xe7^RhF(&Y zpF+0dCExwtRH881Te-MnnU7goh$bgnz>=hq6VKkTA6YWkbCl&Q{-Vcrx|W1px@VHg z1_Xanuj?a(+f#q21hDNze?@{CqL2WA(8yBw44#ySp;pc=D#{>>EfY{DCJv^>?MMOW zbh<^l8`FctKNY}|9hmi-O-WT8`KBHsduZa)m5^iGz3x674$Tmh=g7RRp^)w}snPe# zF-s=KxxCS=hjh~R#qv;RLM6vkt}=CAn?te$WzN#DG9uf-CYz-QU?mXyI~71>YP6D{ zy7cq)Koi+e`TBAAWje%5^EI)F;?u7FcTed=$3SL>Y?14Eh^&-UJP5A587e5Y>N^)N z=-DK`DXYS(8ZETYr|&He@v8)MlggT#`WaGI3@VaGYp-mpYK;wa7qvz5Aaw_mix~v$ z#f*>F)ob5H5=x2l*WaF9K0EdtWn$^rUrb z#hbL7@72aYMnGAtiNHZbCj$xZdiGL&2YgBW*_7;8ame*ZYq7Lbi1#j~m7 zh*q?9hS2kP#`49SRM}2@Y)(|PBI5|SZ(%*_0Kh>tP#94Tix#EvTbpfcTz*?@JJsn+tBaTC&upNinGxYAstUWuHSx;UHcHr(OsNce!Jk$dq+PgqSlUW4F$q8qPC}L2>fMg!4SPqt?@wrDTfeR*C`H;C>W9PntS znD{hap2}9ms09l0x#`CwUYNVO(n>UJL%P?>MqTGbX1+NTTKS)VM2=OZzUXQr$9E5n zgG0Abrh&?>5I(+D2i4Oa*iaFwj8%)f!T@;@!9j%2{vwK_(d+SCO8Mu$Dd&!M8fh z0CwTh|3y4@#N&9|@Z`g(VJY-33D}oZIw2K^N)|x6&jnWRcL%R>{~47|%B4QOIun*p z$9;ynq_cZ5DQA?h^YpS1ppe2ynFRk3>A^So)c54iuLfJa4zIsavyVCK6}he8HQLX= zFh61(8S!6{byOLWSNbecsfMG~`bNOLV%WC5<0YV}s#Ok`Td1ZiNhhfPya81XE8$tM zG-WDjHp6M>uJx~8vcVTslac8y-Oukf73rH{yD$Cz(wAU-^YSYN{Ez93DwCo}$m)_h zt^Pw^$gasnF<{!a`Xmdk9VLRG7;)#LjL=%7a3JDX;q$j~WTq6Nz}A9^ziPnT-}>_k z_Jh6Uw-i@fIF7Yho(=<^3SInR;ztuSEv0}6cfwf8%C}M*)a~k0H5cQ%Cd`o^wTo1xm92=)vv8;LZ7O2`^UTRV zPDY5K8YUfnN78UnYy6rF?Jf{jFiHD@(p6jN?N6CmQmMJ>7Wrzdc3gAwM9@LN5Wo!V zt<6H)6ERT9B6wl|y4qVX?X?v=3|3I3I5hFAk?Kev{_4y;MkmC*d(imO{3$+yl&H>P zv?4=p>xp`~m}O&cA#2gC@JN~l!KZXToh=>b-uMO&;N{0wHJVMmSqX*3Wt3@(M9{sy z-VntPl6AvTz40820P^E-JD(}i6XX-D0BJl*3sp)aM65M`p{09r_&qU;*PDpZozR zp?5dBq8Mz&wI0kuk5c$Ww?N1z!!PZ&PxASJSyB`z**cVp%%qelUsOnviitm!Dqs6b zqX8IU!Yuc4Auxv7eSkrZ-YVXxOt>aiYWqEfi)Qed!A=9UGN2inxY_ZW#~P=X2@U|p zU_0atC@J(%PfMHrqA7*010+E1P~#~r0f`IDF*oXZxJ?z7iWZmKmhK*L9<7|bohaC) zso*h7YB>d&bxHfzM2W>5XK|hsJ|7BWVbJpPumA-w&SS-f611hX;ZdEYdPO{=IcjkI zX@^QsEIBfX1kehtF1L1x`=P6al#DkRXBC^O(9?Z~y`N121A6>XY^#V;aN?T1` zQ2Ec*jn3T2DY}Z!SA!plACjr;#*+J5Q_ zLYLDdOMj|nNZenPU{5r*(<}8H9a)IHF@E^@3G!L17m#wYh#ycHTC8B1Og~{OP-&!2 zh#DT2V)Zk%m~x%8*(w)_wqrFntZ(gQrIY zEh{1@YuDbMb$1y5;ly@wmV@v_R>6sTVmIt(!IWAvg0h63;5rD|{_CURp zoHi@Ec$?WL|I}l6^$2@M#Fa_BsvjS}k{|W5Z=4f7(`x>9cEcsEZJ6ku?uLn)5mxxu zph1%y8rrOl$26Ww8&%2KP~BM0!ofS0519dHei(6OrEwIcHlqgVDu=}E6t{I8v6S5 z_2)N)8PToXM5E^Ux!)s(FW=ZcfpA1Xf}>R_y|%?0Zo4eyC9?}VrD@hq^p;h<6xgxW zYfq5F;9yyAG7QZ2YC_JNO^!?zoJ@1f*?PK2hIba*ntuN5R>uN$H5>+Bapdj0e6z@L z6{LtS!JNS|*&r^I|xh$Sv$;J@`i^>`e!}I%^ z+>Wy^H?ade8aTd>wmB=15PDbK5ppu3;TUwYJHACT3srWFqj-J2&|$IFZ5CQ3lMYI& z5`rwpL(E$)lY*P0z&_ta*^m8JFbJx3Dy8!>s%RweA7}x@#@z-J9Fj9K0e)oSI+z@y z=;WhwG8MW9Wuz+!?m2b`MiihhlBQWT(V14gu`$+Z82TUtBj?4~k<8B#$rm$i%v%G0 zhECm-9ps;le0AkIa4f!`)W$R8V@e=9_X znZI;cq4wP^(@Xc2Dp`3HrBixOWj@p?M!d2i9Zbb(-WR7a49Y)u7#VY1;xx+M^LEKgJ~%R=BsUWyi}z2K-#o@nNbe!lt%!eMCiZq)ilU)YDV|m?Be_!$R}h`vb`yO zGOk%u7Uj?*6kt8+F*4VC-FeR*z2Z^AS`NtCx@lBN`4-8AjG+%h_m6mB4kzmCtpc$M zp8Ft!GR0jMLDw*bEONm$a(3CK6bqZ2Lan>~-ZVjbi{xwjkM%=DrXJ zXw&>#I+4?Y9Z528zfhVrofUd0Z74494EsGzNRo7N!+u}Mj(6`Kha1-7^AKx`(v)^c zl+8mb_PC~Bg;g`_$Jd13)blkACkJOrpZwqy0c_M#U)!4HSo2g!>&{1YM%py--b-t^ zLBvs{Ihe2BO}-4f{Lm}%&H8OE(kZCFUn!w*xSb#It6J61+H7n88ZOp&2&N=y_&zP= z91#52g+E>gglO73T+*i16oh;q2G*`XKhD~J5}0lMdCfyh^>!nUXAAio?pRawp zTg!}KybsCAp$pCT7;nf9REa%xI~6qDG2<&Wk17)#Z|S&At(Ec0uXJ#_eo@;JXr}1% za`B_$?#s<6_X^~B-o!Gu_4<#-uMZiUj@y&Jb#g#W#*P2)x}E=41%CaXv$6j7&wtgi z{C7Ld=VSig6M||}vGVJ-ANXf)F<|}&D67K!3-j}N`v3FiZ2{+{>VFRtJCu<9F9qgV zp&G~ESNeSo6TAPq;Qv-z{ce;0o2!YQcugm>QBnOcsiNC-JEcUF{3{av~YE+Z=~b>4VW zcxUHcNr@&62RL}=Xm3Ym>3M_vI~sNbJ^>Mww$+{Z&$%>erOTb8!=1yO9f$l2{NF8x zRa)I7so35KWHXe&wXC9=8Mbzpb7dpq;LXjg&CR!O9!q;H#gozA3kjxJWs_`cZfWUi z(iP|T+gk!p_Fo#}k@a3sD44})Vamz_$fv!MuiK=YqpAC62bWeo-Z@veMAAsa!P^_X z5r}lE6L9Rqza9Ym(-s>D)cD`{L$}&~M`dZby-U+^WjiiHfUow~=l1GAWfLQ#XzFLh zN4D!0`;?JN(_q z&tYMKAyIcCi3eK$t&@Br*iM$LbJ>7Tz&sF9O-lN@t(lG{7c@;x*uSNZVuulY&%OJtQMTFE2kzj;H(2w@bQod>mYn{q2(fc^VxVDXA~-|9yC@hyS}4U_Qiu&+Y%G{yd*wiueFx z?e<(ClsGmvR$c850i1cU!@1?<<;BHK6e@{J^2>S0OL|uYxqq;L7=9&@YgkVvJIj}W z44IFK>1ICzrqta(h=^T6<^BzDI*noQ2hLrhM~|R~y0419d=aYgt8cI~(Xs5L$HFpk zN+|XMtI=FG%VSc#(9gJ{PQBH(e3Ea0*k&52a6gyj$HDU1c!{6LtZ7u#+}z%%!V8A* zV2f--`pMqy+qZMc-tPj*^>%B_{jrWrNBUQPwzNAvK$?CBg5KErDnuEWcc3;59&RL7 zf2P9j1k@s`tB+OZ&G(jjqL>+SI^RSqf=BN(`TYhDJ0gi1Bn$#MEKPiU9Un42lnKEB zFRMbsppxtJ5YOazqh?PGOz^5{*XF)3Sk)H7ACB@6y}b z!C@z-FIknu7xQZNtczXXEG&w4qx1nFa6T}gY4QYyc#Apw6`~%pG@F~d8Xx~Ark5cN z9Oh{F*3i$NRj_=LvBJs;!}z1U(@%l*~o9?XMTn8)PA#sPxzV99&p^u;T( zXr=oM1u`LLxR2vSuh5c|TQKu9k(yPp=OH-cB2&cG09CdlfWbCn;?!DCZ3dS>_Kl<| zMWC|JI(?v1J-_kHFq0#h&+b`z#QfZkCXbSG%kkv?yX{QXdR*Xc;8$7+^qh$Fz15%I zU!1=~2_q%N_wYQjWseg-x4o8}Dv^ z(~O7~!vCVDmg3qIc~Fo4`=U>*bgJD00bLl@n;fx{J|GKk0IDTy#>b-$qI|gq2Gb9F z(;Dq({qWWT1gos~59C$MkCy=Uak9_F`6m#rnRYu=)|&c%U-QiA6sIfRKPVPh8+?2F z{yKIZkdw(F?9to+`3CKgZ?Qu6u)OvR3SuR{A7R3i6qMujBt7HT)F z9Pbo6A^ZG4ejsGl$W#v^1kzk8xGPr|iq89wNVa!XfD~Pnni(2#0ooO02c05*`UCKH z5Me`>c4bTLym7qaA4CYGa_D*KDitIRSp#q>c~T2Cb6kPg zA`AKvIr#;UQwMT?A`b{xvg$#>r%DB=&UnPU(jM_Ls~IpUt}c;jFC{}I^lR0!<<_)$ zET6OKgf&{rj4pPl<^bL23Q4m%b9jL-0GK+3n4{rOPP9tXBzenPWaISop3wiqCS-X6 zx0){XFKcJz<<*#ZH+y*jl+Oh{Hs0k$(lTp)Qv-vCWc#qPap4M-RC4YCoCiHt!OX^6 zWYn_z6=ZWy_K;485uix>X!QIRkarbu;ABzU5(2Vbwm>td!ctwmvtv-d+@xb?k^X1j zhd37fua=LL^WF@6?d5GTF?ZQmE!i$J2g=uP>fa0;+Dr=AzD+#qTAxdA(y6rN`q&l2 z$U12Zw7au`T2O&D^te4@kXBYBS1DaSKi1pZdqs0|ti%a@d85@nWPL;?mciEh@MlX< z5FtCy$Gw&Nw!bnObgJ=i&zIbJ(gqN{g!V`{rTZ<>4^59 z*$QW>ctF5Kq(hBnNhwgd?Y-X}R^^_WPoL;N3K`?vxpm7%yRMV73N0C$$On7RaX!u0 zBv5Wu2I7hJLR|C`uTJM91JHmYMBCqH)_=4fJ4~UaxM- zGSz$I*g)juT((O%3x~4d$`+m~98HFgkB>O9Z6-3fUlEMoho?{ z*K>Bdue6_r>ukRXk4b|8-X@p4-`2O-O44N4cycQ2Hf@o5+5h9E2LXT{7YZy?gXd`k zLkwRU8yU}doJ|9F9v1Wgkk5`|){(fDKrub^_sp0t;C=p~=x1#B7cj>31l$JudgVyJ zXI3??TtPkI2-m;?^`JPG&EbPe!1EFCJo$u{?6p7sZZ!(`JP6^VeaJyCkw|mR;Qm>w zkQq=)2U2Pk_m!K|ngR#x+?r@5Rv#seW1JIoR?7~aGjqk0j&Fk3J zyuP%VEh?noS_@-j8u9gW0+WjJWj8gDJ1_}m(JzSSSZN=~=tCSwLJ~oZ1n?12po5ev9Fdb9T|LH#tDUxSrBMbmjSe7C%rQb0B1()YerG_JNP=0Ozh!& zTUvZtpiPkeKHtN15*Zk6?o(aI56?jL@4cxWpei@sz zxS%FlrihXYcEAS}69r!)p@Z;UeTtWM7rRtz7!cx$acvE~Y8h88-PebqU>$6fb04Yy z#%shhOhf%A=v_(a9`)CLzUrT+wypeXFK*dtE}!%iwo*Uer6|fPflKlHJMmu2=*u4U zbpz<-+QcJSdIjP-$n-k>9lXKCBg*H`3>VP7GpLNC+36BUQ+7qZHwDk&ZnPJ?5!tI> zVZGDKN|xra;IOA!s~1GWAW`M=(LppURn&Z?stKWA<2<05rU!R2XmBmuQAVRj6%jwt z1g%L(UZ-`+R!z*>^WV# z)V{eL)pb}BKsizD(E_y8;?_(} z*XkujTG3HgN^Bi?^1ON%N`!INW2F$dK4R(24qoLFrDZc#J#bKv-4}0~YSz4MSh`^H zy1jL8T#|Bq2h8lVr?c{bLT@w(BXK)d${l)Sw9!!>aOi!Ht{o1kRR!0=mw_ksYv>GX}z;SD+C`&b4*{ETF|VmM?LBfzW)=Lj&F^}2Z7@_F=U zJbp`10$RGveju{AIEu}z!few+m}Nd7^U1FKG8Z5xt%1d`r2N<5;93{rvQxHIsO?JV z)M1E;LGPQ|tVlxJ6R}TA_1-*nDRm)f0x0{)B2a{2-W$cE&5p$BI7Ut9=Wsao);I3o z+?*))-b$dFnHjb8Gc|?otR3LuUB#c~I9jZyaqZg!^8}j8==+n$<(x?IFyU`$DZJ2Z zl$Lyw15|@u_{#dMa@6imT9SEcyn|7^1LV4}=3tE~(6<3%yJd7C0l;eKWE^&-m+RBr^N;$WR(Q>9*<`Kjz@r87iOP#zlvPS3 zh+)>96h%#o^cC??e72mTkGEHwRswc^(5yskG`m;3pm_5xKoLfoDP5rs{hDpQL}E=r z!PPkl>cX6O2zaXQdw9(m$7*%lhVzYvhkJF_fEcMoHg-J#AFV~V+K&i9+!!i-#GEGo zcpEcUK4sFZ42H-x-M+tHJfkr9p}7h85AcLVRCzmYe}M6RfE67Q^&(wq6~YX*Hw6b%?Kk1wLm zZ{51ZV>|XmIpZUcqaAfK<9saQ0j0u$Z27y*Tq*Ip?GCR2Nyjk}ASqXUVmO{jRwh%g zsnmA38BJzlnm~DI|LI1L!8zdYujHtd7jy&jAqx`K+_%?aM80X3jjw=MAu}NCG5$M|9{9AIXYSfHZzl3ruU<_}UdL1&#AEY zmkagfd@U1XcWKZIEh8ID7PT89(iMP?V?q(cBPAImWWaXQpf-BRlcXmYRPuQoUEodh z4kfc|59g~M&7SOK15P5G09Ix4!suY40=P`MZLCI|Uh2n=YXhX%C>Y>5nhH0M@5Cdz zvf|^37khOmw)YO4E+T>zO@oj28hK01yVgHe6I+yB15y>x8{zi@o9`w({`Uom^D0xh zO+TLvvFp|^#fFlzP-o#zOex1x37r?n)PTgLaD59~>+=V(ncku_uun2~u7DNg%ZGVM z-mCA=lKAXYvQ$hL+1UFU&pRnqv-7xBzVF8z#n;Bm=AEAu9hI5a@I;G0y*8=#1nh@_ z4M|Vnz%=x%(qibF?WQ)Sn0V7YdJbyYW~ISF3g4OJI!`Tl`_JB^9{Pl1j|Iy>l%L<1wQ8)bSa4IJlltUkJ@sV9%!#8S#tgQ52?Ufl9AU?pkGU@WKuVFI+a z(l;x8S2|(mtA1|XfeLTNI!sjmyjQ{$%}x&!_H>3Vw-AY(E|nS3U)l;)IGFr6r4Zr<2BG;V0dXKP-T-zSy=Jrqvr}ePvxo~&6sg9R z<*ilIS5L<8u~EG|F6?=fy9Aswp9%;}OzkV_-7kdO<*Vnbsf(?|>NoKHoq1ea>PrA? zc2$wyjQi#?G7UPh%Xf)HRXqm*y7;SCA8?j>WAXv-(BphRp{%=%oX^lVX*v;LK&|IW zj<|c)2JUMWK1!U})lsPT*h#Fy+OXyf0(xiPey0A%N{&X6wyCGillkSCrFo!S z9YZ!zZkZQ=M=r8^P&^MlL4nTEFF~}lEw}eiIB-;>h~~;EI|0^`dMYndQzsP z&ksAv?8XuOW$adlT44cUx{Z%CQs;zLa)2#MGLL7dOsKVJpU{ynWD~C4aEh`kVo%21 zoXpE7-_hfhB!@WCpPUoWD^{kQT+KkQFp>9VcZenc&Zf~tf<0+J+SdhKR&yo2dG?bQ z+Z5xGbX}0`aPw2q)A)1Y%cXFPbKQpzpWODV^+dh)Qrvok7l9so{Z3<5h>P&$s6ijF zo=A?;>Ntc`dT)2+;PWNYhY$B3OYNGo@b$&Um@_5e7j&p*Cz6qMES#Dhe=* zL*M?6>dMUeM(}LVklQ9q|73Z^G@iOFfKBZvo}kM+J3%cV5Z+@$dYRbxWt3dl^ozpg zL>W>yzX^KP6b3@cBwkx*ekP9@gT1z3GI%nxRy~mBt_z+|YYV}5_f$~> zYlMkh@rykqJBx1l@$%@b{oywuNMt6pN*L^THG&Da(y*%1J%2tno)4S?M{*7QV)8Y} z@B+e)^;H4@DG}KlBgskT#KnGsV0*zS{lH^pM(^pJ#q=e`26Qd5vPch{)!>5C$g_7N zT!b8&#&jLLfzKS!v8W8pert*TRj7S>c4jwKy_Pkq?^gD@E7G(JjX3%NWDE)K-qR|x zy`WT$+K(Kq=qlW`E7BFm=U(4Bm^s_dpi&glFSJxYIc>ZUS!){*9q$F8@194O0Z`2Q zG~Wb9ANyqL&9Ae;$NGwNPP`MJD{LmUuWl|iiEg)Nu!|g713NglcZPh@?A0;B#WjIS zJLIW^pxgc`8`WnH7A~*-oga8Jo_4@3goZkS%P#dK)Tqh@^-XtuD8DVUWAt=Lr`}`@ zfI!FJp%*lQ^^ZwT&_7%3>Mug|7j3jFcHOlg*+%}Tz)-K?x-ID2_9#D)mz)Krym2oB zYHO~Y3+x;f7Z(FSuhUV##4<+T_9GA>X8f;kMPs+G@sA!n9d0W#!Gz%?x6Q$ms=%n= z0GQm_(A|(kZp+-4)H^^$ADTU-l4q3FNO*3HBkR8l5UZH?GYuZz$6F&BukeJozk@W2 z^T=WS$sbF74s@W4H@x06V}f#9OucJvrwo|~Pzi;HvyUJgWPpqG@_&5{89jB15?emt zn~lW)X4^oVO1FNyp=#C=CQEdoG^5>Em%#FLd2mkr294H$@((~i6}{TEih10JC~&Ny zK#dd{r*e)967y5%rJn=cAZrO;QR8Ztu2>JNh>cg5kxBXMZlfsz+>z~>PF0h%1WYQK z+o{6RTZ|YFs*v|{LJ$#;tLYz#!Zt$D9TX(b+Fg5JrVdc?n>kgG)gXMar;yJYfb7BNTV&>aB3Bzj zv2~A0gf2_jei?7+)*wzd2qtrutZ?0z3}cdkUEzzF=|jeG-WeFu=3+bj&X$!DJaser z0^QhmNboC9Z?g14O2kk)Smf$Bqo~UD7oMQodi(|*-xhM9W9E%i{o!uVbgioc$NNkf z%KE)f$0pf6QL8ORvxR1R+|FdqujtN7um>vTz}XpYlk?L0axlK!1LOVP!{!yqgS*Y z@}ymZ<$6!o!sL>lhzHeNPWR2ua>C}9QSpV{o9Bb^xd zxUKu&_6CdgSOmz(;UdTnD_-$7qy?CAMA9;a~!v)OZTJcqSwxe`Ng>nqBMLB z*_+I^<7fK5>knG76j5`tqsfAXrVd$?)^E;}a(8jz+PIRI!*Z21)U9nXfqS^$q!%F58@*94A($ zUC}vdGqc@WK2DS512Ddj%8QCXg4RSo<~J=$%(zh$E%^_kl|Kiqg52`t^_+>580_EGtbbb4j=;?Wk}DiUmGt9lS&xOQYr6d z1qKlTDR=AacZ|UJm5FAFpm(z!9rCO!5PCxPy$IMtH0v_zmsg{XNS_}|PZKS>HGOn_ zH>*K=85#c>ZsSXfdG zAYp&BA!wpomBja4QAsHjpjLi>p|iJ$SVz-ysb1Hxw&ji!$|OSM-uIvLd{fVqpd*Nk zQ7O}=)e`6Q+TJeN=0XB~5g!jYjq>;1N8ef8#A^3olYG574SRDN`_WxS_0sqkX3M~8 zFI&w4U~f@5KaaLVA4YRYzJ2R+9c#|))d@}h7m#0<((${4yE=`+HLlj^A;oTAz-X9j z^+jYD?%Ij@z&h|>KjLhNYzayZdJbEb>5ed_?~G#w`R!^FWsweTOx}M`24wB>8Ru5S zkDRf5Sm@|@fq&gylJFrSJt}8;NICUPiVT*F}eM>K_K)G zZz0y}Lv}s_4;S!)kP6jR4R0dZ0`2nq7N37p3!Y;*g(e)WTEcFzy^g`^gx;|-Bv{|& zKkZ5rzWz-*@cn(ISNfqUYMmzHHIBDB8Y3d&056D-ypvw*;qPYp15k*>V(}>{*{?8U zDJt2H7?h>3Hb4*leyX6azn@AR%;@cr7#3IQLzt-O2_Mz_-**ezm5zP+*WI@M!(#ex z_9*CJ|NJnD_5b|-=btmmW5UC~fWPA;z>qS)@4Gw#JMT|&a$)Go2C%={6t%bSn`r<+ zWJE*^vpNf)7l7<4@QN9%w;%wG3iub{%D>wMoZI&&DFhHtf*LOm&$b_kf}v^*v25$r z+oiv;Ykgp;o<_|5#rVt>&>t{V1YucpO}8shmK&Mk*!9aMO!(3y zWun5Hg8wPdz{VU8#gJ@%AKxq-qGCOgSfS^+@0cSYq0?w+3_RooA?wlLLrUGjFgw6c zZ2bXgR`>2BX3uFzm`n}1pxeQQ6VU-DxKz(Sx3=)@XSfBT;qzf9b_PXq0k5TtFcD>N zvPA%f&;fo@%u_=QwVo5-?`*54 z&NgKN^Q5f*JgJ3$f4g2=SlaPY5ZpS=a<;O^oDv$&K3j1n<<@WzD|oi=VKTP}8rLED zIHYR!!fE%Fo!x}{HLN17N~00r$!GdRQ>m!#Y$hG63iHUBe|@EKg7kV*pKV! zE|w#A?{&acYz`(4qO#8!ZvcA_RYt#un87gq*9?$J`GVT5CxLI)^_(cp>s?+12XMVT zIWhm}wR;j5s(7)7e!*l4c#-iOo?CfC^K5j$v19&=2Krd|{oidbcA8FrU-ekX*&XB?Ll^Tk^Vb({V?jM94MKSAF0bFhs%B)- zDfwn_buB2CMU`*jkh~7KO1-}HPT{7dqtl=w!%P^(zsDOE1vR&0*Fu)8P1{i&N`VN@ z^yZ6LTyNF$P*LaOPd1P6u$~MtX=iQ|+@OqTycQ+|3^vOi^E<|;K@SR#4!1mb;X1y?6;`G1cO?*YSF(rv>|wbz49hKOm=R>4vPUr#;@! z^*%-~&_Mm6qL#tNA;HALhj9bO-paP1EA^0}F`e+i6^r)nx(-?|Fi_c6(EF)%`yX&^ zOOp@5klmWNKz<_LpiKe^3`41buSxjEAA3u^K&EJa&Hffv`>Exx-0Xm( z1Y5H0wsMk1Iyvr-vT>ls)kT)l4(%TlM>6tMg`EIDve9$2mu;oqrmYug02w0gP2#Ht z&P9O7t6S&2So$d6q&v|CHG8$X$7cZj(bbjjkZ}s^uy}38YmJe%#-|ijE<3U&LPA6i zm*a8zqcMUh6IF#OH49q}XJ);rZU^H|4-^}>CqAX80sVQf4q(RLfBLmd>K5L_Q^nM& z&ijB7hN)W&76OumU;%=f%ESye(JSgtR<*UXKsokxjH``K9Gej5&n4e}0p6e^i)%#s z)AcTOIAP}&1t^(>v{r>@w}EOu$HrcmObiQE6LhQkA_*;VDPZv#hyB=XAOmmOpj>MH z&_=sscFcfoT_!<1OynUk@fUL*B>WaY$ay{j=kgZULLJhko+NIMlMpu(vDBE_R0Z-0 zCKGZ@llT6f`Fz?|Q`sPxG)vo^WgHdT;)ZAI8#PYYSm6gJXJ@D+{(v-LD;zNRUny?? zQe1DvhKCm$4iOq3r=Ot#3lRsT`IPX`Qw@?ehLeXW ztztv1_gzAQ-_4Yloa-f-wJG?s_=5@iJIU`cyiLp+5{X2aH%1#R8pV(q6^-q$u`D}c zK6>Wi(mu?ExyDH^-+$I-JrVY63WVo%Qlh|ud9X<(YmhrLebYKD?e5T~lv#HwnfFS; zrU_6tu^lR{k?B1RNeX@sa+mk7yrWO@XuC9sZ|LB|*(C^HfC*#{=l9C)9^B6Wf%y5^ zv>8;}i`V=(OdU*5r^38@f|VlnBbIkK*0VLTikMEWpTl9JM&1w)4X_btxDeJ*-s5Y zb};yTcsR<1R@D2b0%7iRwu|h_31~b%o<4O!F(@wg#A)J*+N1UGre_uB&BQT{_38Ke zs?wzM<37;UaDEI~-H!OQhtzAdpFAY5T_~qBHUu_I194o^m_Nf@R&h4b6RkZDWPvJv(!aW!BNS zhE*C0@;RVmE}@t5hPpHgPHmSI!*Dz-M-p8;e5w5IfZAc=ru(STp~WlUj0ftE2Jv#v z`S%V*E^N`Bc43GkFxwA}PfAZWAUxdm#|*mdXexxN4p*6-!W(C=;u8$Sf_rm>YNL?)-N6dlex)a zaVQZxNJhnO9s{Bi1D4pY65FP1+lDRIL+dtI8{5rceNh}7oa4F8Q3LNqa*|k&WWg=( zFTg_^bkI6C^oZuAMv+>&M+H-7jd>a=_jVpK*z=X>*&vD&>hEZpCG&21y}~20H)UdN z9(YHs&)dO>dFGEgfV=0_N>JFcA)I154z68hv8O?DX|eGEvUioIo^cAa8!;oSG1IMY z@?k0Ie=k`XSrIy0Pxkj3BJ)KI$Y7tPgjVe_-c3ULTfL_?-UTuurS}R*gv@$`Q z?)xbXk-u9XF48KOGQ3c-bPCocj(H=!KR;==s$daHF3RCKX1S*_eo8heg)KWWw-<6Y|DZl3!7~u*)^IA zUM$?&1KQzvfKjbg;Tm;5S*$M~^O|Nx<1~1;*5jHTu+LWO)T?&i0bL$gp6~8nzx4uI zA62umC?hBL!mECmf&Uj_hn$H9kb>`yVa~Nr_XS2UOgBu=YrEnjZ(wG^Ww2S@s(Vj+ z2ahftP3ON@2nJz6FHhXny(-pKV`;8Nl0rO}=Ab z6vx5g=t(<-_hmd!E*Ch86sEg7mq_T7%f#d$i6k(By0C zuUX#wsr2CC%?FRN?tZ=d^t$h-`;T5jK0kW!N=*6YwX7rD_ew7Xq^00!6ZT-#7Tvhm zb*l0aYJiU6Zafh^t;2`6 zdi4cZswpME!!Yf^)QMWko!7o~Gdk_L_r_|DLD5BOM*m0Mo5j{^w*XiNRG5h=&Ka<(Qa0DTvxS#LoUQRnxuk5B!U{i}Zg&*zmte zVwihN{Fk2^DLBTbr=+S+7-DK-Vp+_%9-h~92kSfQ$HTyouTV^o@B8rq*7w%u{QRAb z9gK{m)-sNcTU4q6cvwCks|&1rjIlv3-2hlY{9ctJ)WTF z{d@=lL!Wz*fOt!`xVcGtMfV`Ogoi0~Wpg?28kT)mI@BoR_shjU0Z2$OhsekLQ(1?5 zc@`F=)~_tJYaeqm9upf`g27<)E^X}T1SafWkpdid>)`zSpsF}?1%=+gaIRhWNBlnf z;up&Xf$d=Nw*tpIg5$vxfa3`xKog9muB$Uoj*n+$W~U0mlwSq{6!49VW#Z$~^${k_ z@n6C5g#UFs1rZUFbi_CFPYM!pj}e!*ipM$P-*-n5QN zf^%af&N7!WFpV89ifJRAN5o3KBO|m+!wLJr!5M9eHMO9m2I7uH)F&rD|1te|ZH)v! zs3tky`NYu(G>@D^aTQ#>jA>E!2A0gd33}Q;H!(FWr~v?KjXg7@I2G<@RPtZ5O!pge48HFE;`AA|Szne8lcY8EX@50eY<;4plBNaz& zZEX(;x{SM1EQg1Oy$T9|{g6trH8Yc{pGpBfauyyq-~abVKERxBd&_aB??4m_iviPT zt9;7$_k;Iw7{|sfC@A>m8&|u#yN8Fl)m@#OT z-wN~dxi2d(FZ=)>Y{5%%<5%ajEBySd?x+`;*xAALs)*Ve%U4Ec)gXPLg){nm9t;JP zaja?k>krlSw=e4&Je)_1I)G`#+0>+BOq$1T;Eu6DKNeQ;hs?jr$gEY`J5&kiD!fzdghw~cU}**Zmo zz2FEb85!;JV^|mt1?htapf_XX|NHPECxEOi8SK&O{y88(vQV2RBnQNMp8a!FLSJrR z`TTAw%v*kM?S>%98>YT$?N#K%#v859>>AI#_P@{6l$ps~mxey{I4y6Hi~!B?Iv9+P z-#;CIgHhr;s=(^r%}b`HYL>nNjd(OOG}>Dd}nH+aA z&-iM5-gPnpH>gtB6gZXJeemExjnh#oFiRf>SnmHr+gpZ3xpwX2*okaKT475H2uMq- zHpz>f8gMNVVL{Au4~1) z);dqbtPh}7tvTrrW|H!>fq|BSj7%*(&<1$A_`ljDbx|9ol&$@CSwD0!Wyk=kARe2M zUjqXJFFGP3BFr}RXmyS)G+~X6k8`g`Ij$}C%ue6DDc>m{$)svI zUS$k9EEnEmM$tcZsEn4HLz+#aK)pkdu&>0eoV_ckv$Yjz3!$Z)ux{N8R8F6sg0wV8 z%)~~Wn_kkkxn5T6YVK-}q29CFdEQw+=!q>*fnBKNAYA6D3zJeZQkj?&Fv;k0W~ zh`z z+>h6^E9`n7&ACgY3Wpx!uJE$U1RU!7a04@4qormn-W3%Ukfm*m*wJa& z?=SY0`7F&;k~A%0^b-VMZ_{prNOL3 z(CXS6R9=LQ_CIcJUe0^e;k6;^VV^nbhH-bA(7`D7d?;d@useBgzI1Y6j;MFruCP+ol zM^Uj+j?lF?t5Cvm(ouew&r$VsN7F(DO0YBe@EWtmd=B8ZaVSED>aH&2a}$}yb>q48R+((W9yPi=mFNG>M*^~nsVn|=7?PRGZG-S;Ep4EMUxAi*a6Wo(X<`oodf0>KT6UQRsXYW38zJJ0eCLtLoTO>@SoSWG5A^~G$Seiy`azl~ zrCY9JUMwzx&!$WNa6lvb@ZYnaN2CWM7U*rZ94`<1smHv$ydKg2fEkCe?=vk(x1@%K1tuS~*cH+~C2!efne8=&ZC) z;(Ef`TQg0Q2>4v2k$1Lv=;%;;4l7jTn;-R(Ef&B%%PVI-OMaR|%z|F(5)_e8=FrsC zM7{$*aaG6=FvITj0d9IJCe_QUzo&WBghBHB+AO`8{@v2Wxh$CGNQ!~T#-&yeRr={S zbDwtE%XBY~&e09`&7LMG9!Ix=focgL)GMyIt*<}%Sd?7$gRi7)+_8z}D&6oQIOrP` z?9$AE#{@!|(Y`m_mc^P8YEd2>OOcEa0jV?BSaj*(<0Z-`{-ZAMc4gww3Y`FAE0!@DefMYetsh7b(qi}H!ov(-PN^&|H1PYnp0)-~LVFrx1YDm$F(Zet57xTQMmUe#{;{Ny-x;LhE<3!Sbdq6dz+ z+rz$%WHd3;8v5?@D=Rr?@T4!D2JNR;Av-Lxp}zBRfPzStF&Ar?yz*U-jpY*C;ShWZ zo`=}Qe1VN;rS38A<{Y)+CG$32iQEQb*Kqrfe@skIc54cUQ1S5{XRswfk-=jR6MeK^ z-IN+jTVx^|hx^H^@8aT0u27&=+6whtwCCDw&7UX{Pkr`>ib*q5Q=g-uXnoq1FI(3O zEj>w|`>YQOYp@#N-?m5oA|Z(;m`GqFdlddFvL@1xVki&)#*IO+20r7%J0vKtcT5+| z%cjP>Uv)SR58sVGiLdx3+WM*`Fy_I*;vyeKZEcGmPz&Gd92n-#lnyPA);Pw@65gVwrl!jx zysbLiFsxbf)WpO@s<{P{1GwX87Hx^@8)Rf;#bwYMQG6D1-;ao@KUjczL`?+vUAZ4L zU$`3oWCwC~uU}_rmj~Be#jrs5J`$Cv%=8o%v($XBu&yoyI2^zJ2-VRr;1y(pg;C2n z-vSv@#0z_cOaHDHeEqX@@a<{t`R5Aya}3}IT>tAe-KXizf3C+g|6l*$k$DBm$iyT) zJw2;9E-nWg_r*VN7RrW{xB$scM`veQU0ro`wWEs1(b`_Peq4HMfXG2A7!XLbD$)>k zsC~asV4su_mxL6pT0UXwb8F=4noByA+~K-?7LoGKVYx>@Q1Ay1H_Bs`sd!JZ+Qrt^ z7Hyl{s|(4-{D*i!%*+QraHyOy>(kThQ^}X~$ax2chfh%kxC+niB@x%I-r42?q5z3! z2Te)iu9Ieo?6(jIM3QIS{wTz7>&B z?Igmr$Ud79`tK9le!6FW;b89lp0cuXV1^*CW6gxYcm|cnB5KLt&WDok z)3Y9~!D@3(W`f|G*-I&ycmBeLM%Z}ULN4UNLwHiHl=oLl7SsopY@CF-_^DrnpJp9*7xOo6Ai>wZUzkdA+p{7QTmRbQ>QYZ+0W`(L`K&6u8 zS)F?V|91!Tq3x}$q6&JBq#cqU!AXx^&n>dMXfsqmV<`7~CJjf(R<|QRefsLwl?Zbj z7b4gubIk~`>TmVo7U?wI-4Fdj!*Qc0ELw{$7*=94PjvO3wT4FY%`U-=^auLbfJ811 zvoxt`u;V97 zPxCh!`o^95E};O3m_qLE#2Xo>>SQU4dsMwjj@CY^)d&&CSHu#im=)`W`s!3$5p zgokGtvDHD9oS|TYJ4gyHFXhdjT3p;;%?!hK%{6R6UH6C}+^<)d4BNgl=~?=F7(02O zF%ipqQcFPmEZ(obekaj$k`0@*RnlLjK;p4AP9PF1>u$WfLUi^VgF=GIgoLX{qb!?3 zmoJqoc(v1uH@?!gTpR-FEZ0WSNj!yKuuQ$uMB21mmd#T z$$1?NF9cu$mC9KYCKHA1TIUdrMag?4?v}4Fs5VLwk7pVBe*1>!fg6Svrgbc!7(7r& zPjhG^#*IFC?_0-(9RPxajI=aOzDs6Wi)1MyrRL;bw0RLjlkr*gLH@x!ounA&z-2L#Dwm^PzPEhuLU@l)d(i2Qd?P3*2odK({YmmfUi?>t zQI)InVg^cN1(Q*~y9{ZoDvCxj1XH&{sit=_)Cj4Wmd>w`NssYtaXUuKeTzOrh3kD8 zZBM=SaWavzNPL&6=_ls69>XR!2716_Pc5Q%1W28dkWeLshDJptCWgf%B;*0YxdRR7 z0(|_H6_2paZqbahDU^(i)6Tt_zY(4DF<}Z>_Q45nZwo`p`Bryy&cSGsRmhNb9c)K! zjYpHbTIgV~FgthoKzM%Z_BCyE%e!#N8=27!|15iwr}-xw3qL=9u$MvLaZh6H0a)$l zCF@l?yXB@`TuH1M`ys@ht{d+O%9nnleuj`_8w5S5s_shY3MS8@^Z~xD7%l@Hx0DHM zI+v8I@2T#lj<9U^a!P#B8|P<<;~iqwUX|29Dl-|r1gtcusTgt22UvsH*bE&Bj75g8WGl9!oW+3~bi(B;A1otB+Vm1g` zn4Uzkc+!G!N;K=}VHdHBW)0`i@0}FMrSZW8At%qy8f^9$JnVywYK^n}#;yBWhcAN2 z2jtTCqnR@%9|6UXrS6W29164C#&%R{w$nN82CO57g4SR5%^F(2y}=9cXd1w6C`weS zm>&zErjkWn`4|{XJ8UdY#tL80&UctUpk~Hmv1Ik7yvwXzeVZS`JBNog;Y{7HY0g}{ zW>C3CNMgDGIkvNF1t8=R*KgdoQ75dojRbJmwmFLvuxJL+F4g?oi~5}k%wbaG<9C`A zJ_O!58UtUbK1g-A__v$e0a?kyr_|`OjWN0cGfopvEcR)w7pdWeU?Vs))@Snb^K0F9 zL!+bIGOT`3tqdx7*+sd^Y94MaxCS6-Y}nYs85^wz3j?OJ|DvK2@$6;BT@HXhq-#o( zdCg=vr=M>*@Y$b-UHv>H*xTq=He;VVW9$q7=U!m@Ai)193JzSPAZ?I!umMfd6(J8T zFE_~zJ$#D(J~OD2gx7Mk=;xzp+L%;N0{pR3hZ3(! zTi9Ut$5Vw~pLpzjwI0|mV;vv3ZN?)d*l<`m_wl1tIQz}6c!7-Q_ZCCS-h3N17V+#5 zi#SyCd3jtEea>)&A{`=T#3Z5nwbUECEy>$WbpVDG3Pl=kwUD zf!Gl08tOknxvH+nL$8l%AUUsj#cH)pd_uu>POvOdT_g$d@l{T1)NG8vd-veLtf6L4 zxI0N`q|&0CHVI6C;#K#P*&U!FdiWHnAz>{x^VI0qD?f5esYKs1jVo3>s}A(wQbV3&%dRrbPn&E zgld+~Jyzj+LPE1I#EdZ6PqeOx_Ab)@t~E{4TOTj+g=T3KRwRYC|O zcXlX_fo5g4hJA$v)05TRclt>0&dknuX&&V;2?z+(bDEYRF3iTMid{&N4Y6)rvB|Z@ zrZf!{d4Dl{F%d7Maq<<8Ja+HU`(bTdHB6h3ng#;w*-Ux{NTcXzI8~^vl{3{+m=bo* z;aPsHt@X%TR=YtZKt>WBs>#>Z^Zf}kVsQyWpQ%>jqj$XSn|AYNSayx^N?AtIT|>Q- z<{rbJNtAhdqCP=V2!v8!UvKYetDDBP?DqG+VVQ{6M#_5H+M-Sl`!h{NrLF8vQEw6%F@#G^m_Ukyyq%&hp46LeAGlRNE|;DG_xlJN}Hjd zKSdpwop#5t>g5jEz@hZJ;Zy3$S^Gh}JC9nHTTw)ZwRyufF4-PDR zCSJSkt!|BOcx5gfQIeCAl1{D8(OQv$(VLq0tByGM6y{$6AJlH{cGRZ`cShE_czw-0 z+G#{e+_#>d*NtC?0yE+-^JQ^JK*yBs2DQY(>MGYpo@QeoUByn@vOdHt069;xXg+8` zz)n9q)4-meqKL1y@8pK;boK{|EtF*mo|nbgI#vXTEv%Z z(k^`AkmxAXtJ5|elS;OqGGzfq}XZS zDe}&$+|aM@MMjuV7qOP|=^navWhf~cCKLWH;1lFSZ(Z1^ zH58N$b6@dZkf?{zkk_R+%yRzzmYZ1+se(H=vuMu}+K1m>W~SyCUU@`XY9LE4-e|M7 zwzh+7?s=OreFpFG89?(;`ZjC|@N_8VmSWr{MI9Z3)qng>5b{zwX2?|jY;vtr_wtaX zsa0MW5^1}8=;Fk?clGU=M$IqoznYqo_}t`6`pi{xI{U=&@aAS4zuu94dO*vMZ-e{40F`c|FegQS>Q zpqYJNWo6|6WU7k#(D-RK)(jO-yb5XMN0{ZouxLj)fT&w?zL_HxvH`C9HyyTC`o9^v z;N9WZf3Sdm;>>?w+BeD#eLJnsd-MXy;W@!|9B`VrKV~d`vE&5S1+F)A|M$)Q`NjYL z>Hh!52c|Rs&4TgL6rh;uC?9-#Oh=bRT}n=_t>W-i5%BQ43C$h@jEpQb9=*Y+n)}y%ws1a~BZvgp zi=u04YXB_W+}a)7CW4Tgm@@Ixr?~}jNyI zbZk0WXKjsTOpKKoaOc^nDaA~%j@Cl|y$9)1i*aS7gz}?Ti?0sK@-Rz)(Q9}o12dRb zjTk3d-87!-Dj!+))yBzNNOzp&mWBwczL{W=MaB&pAAI&M7QgO3Q(;YXJyZs{6Mvt) zJxFvvRI=FSMY6~4bRIBkoY14d8o2LwY9sgA3wFOZC9!C41>81~OL|fKgPK)1dE@9@ z>R&oJ^QKg_r|2U4pO%itj01IzPH2|t}=IWlWpE$Q$l7%&&=yc(4uw|AQlmxzqPw>M{? zbw{g3g61#0H(!9^g~d!bEj4v@q*@{AK0{qS&k>Ecqm@==b+toP-gsAzC+s%`Y4dD| zhO$fcmfuJKP@;H&&#W`yq|Q~05hh-QozU47ItS=syZVCBzbEmlNrlZ?(Jm#EuN-Za zG2uvLQ~jY9oPh}An+XEr>RC^{fj*B_zY;fwy@oW+uE_lHk%6kqqQjVO68I#D>T|w;=%IKHJlnsTQ_`Gmto& z`fl#+QE{3CI;H@;M=9c|b5$;mr`BNWZ0WCy_~d`F-M3z~!h6G=>R0TFS=Oy~q@$x- zA{-wd2MutSg#;(9)jZ01XexjD^eLC9#xb3Unb<#%2sJg;UFOh+@v`D~UHxG6T2OGz z_(gM;q8aH+jp{^;zN$3ZAg-T%QZS(#`c&OP6akE%ua#zfN-I=X=t1GBumzsh6g{jnQC;oqH=Q)mCVeG)lsvM?G3< zx2HEtxjaL73mOF?t7G!CB6fEAAo8F{{_rj>Bg0hd-uKm;hGP$aWWc3k3bqZH=<>|D zxj6#i{pX-P1-Lr5E`8m>di80w%>TC4_1nqZ7K6<;OKatm09W&BgT+ysZZ0y+E_CaP z%m~(^5H^Q?X4mQ+^CX81g(M|SI>e);9jH3EsyW+@cSF&s3A@j=Qup@u zs^@7kd;1feZ3-gGD6zu!bgw_x}@y^>k@JoIIziiUB?J*fmn&ePt z_VZrR@k#A`w49S$!8)vb|15xxLg;Q$TaLlWM1Ft`^T!U@s+=}JJW$i43ea00q1^O0Yu=M3o<^ZG^US-KI2Uf*soHLsy_cbyj7ag3 zmrp-aRrS48ZTh!gD4Zn@EE;BcjtqvcGNRXetY#_}cF3EWKUm7AT*TbC!~ddJG+}~Q z*VoYsieFihy_wHhw9B|WnHN+exy*Z05ikdN8jJljHZ`TR3;825nHFTc(UuMJ_IV#m#iX-AC*!UIZm=kUuis z{shb5^ywF<@}cJDq*CX9`4K|w1Jjm+qI|%)3Wg85q~G0UQqBD9_HET1b(WnoIVf!? zObOV{w>Jckobpd?eTEZ`8fdBe_5SH~ps)e%_YReTdLFmEiG&A=^4>)oAf$Kh>c|$RVy_g=*v)`di3gV4i4~NDif`@ zSUM#gqb&oPEgb=&SLA|g~^dt4~7Rgy!hOq2MA_Rw{?d{jawtw^X(S9lQ%bCVZWO7rQa$H zH*S#+9SBvk8m}sC=&1khHrh&+9Lf)U&rwu?=kKJ&=GN27@ml`=JFFGV+$UN&RClv_ zb236oYIAEVjOgV=O=Sa7D0jpO*W6#J85wQD5wXQ*;ru+Dv#BGuQ#yVW7pO~Xvr)B@ z&sKk^+-ggYREacsG$hp~CXBTE65m;7GwBHezl_a%8l3{f8}GwPO5)j!Zfxsf57wOYOy zGc?~e6IdFUE2mxg>?zMN3fwM;C$SM6qO~{H=*Yvxo%nhapg4wmo7xy?!300X`S^^ zOO;I1s7d`%zR6;;JYCT7uxpx472tV*Muc)PX+fY~f3zESo7U*04=S08!6ug#GJk*w zuzJ2u){uzFBGb_L_)&~$Vpsseqe^GX6XZc}wLMI%{E7!Ex7{G)81CI_Ja>rQp*#P1 zqLnVwWRbrB)R*bGquKQHe~?vynqCeR_{%3fs}UWbk%a-7?*7SE;}bY4iSFBo4t}8D zMds*NK96c>al$Ow#?->G0=1u*^THe)920IELX}^5G`TfegeIrnE1=+<5!N z#wJ5PL6uPYo!H62kXIx^d-=sKrJtu-!X{j?yYgzLEp_O z+l$usblGYkq04?Ds6Bk8u}Ny?(RP8D=|xa=VSjxAuTbhFj4BNPW5DWhNTtVfEXBO&qq;a zF_dpJS$B>2fuhHvnNN6d{I(I!V{bfz=vORZ)C3yo{^qNlYSZi3WIoz!9GYq!o6dv2 zRGyg(p1;bhMvZP1W3`^Z)}EWZ9MK<~o9L>ltCS&v*l8x4bUuGp+vfaL%_OG@7s->i zEpNjG{ZrlN#B7jB;pq*aDQhJtPEG*M%6YwVAyC_R=!Bwg)TDQ$zg*rN?8uWr>1|mM zr+Rxl8zxG_k|{~)^2^97&vH4_Cx-T>aRQ3hu!b;Oqd?g5_rn3|NHu;(hxY5qJc^#b zU3)+7-ohJm&eP%wPYp969efEBJmxRn<1px}P^iWJ8+p|kY8+KL^uLkF(>jjZh&Fkn z=V{TXx+4yG&LfKTpv%{rYc0O7m>-$Qk>jtPJl4bL>O8ovZZBCtDd4mb7C8*;%kR9C zLMZuUOM;`LP4`$62CaT)?kVmq=vR^)7n=o93_@E}HU4N0b5^2lBA6q$J$tX!9pQ?DVm| z-%Vh?6Q8+etH#Jkc;%Utj_9~KlYTtAp$~bF)|Yc~v0Py)73Zysi;H(RCMQ8N%pv){ z%}_ztUHvWaHOiX3l&A9HGU`N+F5}~aZ_V8b=cnMcR^5Bpsthp(3&wb<_(2w<#Y-KP zDC+2y><1dFw;VtiA@sSg7{2QHRFH8k-o~y{YlimMfT!~3Y9XrA36j|trO%Et9sO#S zGO58#h{Bz~!Hm5}PfhX@ITuRTTGcXS%!zSh${XfXjuLNfhpEg5z})&CO8m4Ee`8R8 zNu@r1Dqbv>)m`Oap&8X5ee^e3^r^zu`q;4ZZv-KSsF3pCoDm-P55(v~=cv7oQNXz4nkx}*I%iN+5LPzlK!%CO|<}abL)t7V?oOFA1pvXyN=aO z_C{Ldp6j_c7;D+K>GZD(sW+*oZH`n~y>fQ=0G!5K74kz`_-HfF1uo6a(VE`x00jI{Eqb#YYiWETHGR$ooH#8rJ%bZphi;8? z&%l6MsWN)0`19exe(CmyG~Qa;R8|T)b|=kH%h-68{%mRHANy~ojN78J+WkZ2LOBa^ zkz6dPsC4;i5S83}NM17X?AR*skm9Xve)ReGCKafsct<<)$Pw*Q`_C!izZS@IcR=o^cpD;=8+~`dp!ARf=2-68*?N3 z?O(rE8dk@mn(r9#f>*P;d*@F7h7P^-HR+9!9$b2``6t9J;8m)p(~QdXyF>0!VSF?Y z?zQcpX^LgZ`d$>vW5r~_EbwHvQo`-Z{R`4hjefeCTL}pXeMK?|Qo{sh){8glw_78& zbhoXncT!$>Uqvb+q$l2j zJ=YD%gQz&GpsAOh4Iz;Aj{kKtwff0!byOUex!_dt!A`dRz0KB(CPqe{n2x>dLu}Iq zbc|VITL+Y*)Q~{AuF9*YR%`oeE%xrniD@b|-=(8E>-X^ud97fa%g2B;kQB2Nx?x^6kCKUt{hrSy-NJwPw@RoafMqNtb|xdqGh5^)GURZSv{9D)ZSiEkEuB7xEBa+Avr*+n z?Or0+_0%wW#NXUo#4pdY>QpGE-P@=?@jPNB!;&@67+HB8tnrrW_F5`-U2iF#dnVN@ zH4u?Bh@_J-!U!Ml8}gy)IqN$oKdDBkr}e9nNt%UA5sK4G&o}NTa~<8J!p1<=Y$c8# zS4_Ks0pF2RUYujv5lbgB-Vw)}(=;+d=6A3LidlEg;l#%EI-X+eu*Ln0w%%p{FewOb zebCvLOBB=$@%VV-E`R1b%DnD_x9svyRr7VQks5kos=kOJ_Sk90zh?cm)pc8!$L(MG z#L;n!&KdvucoP?y0ktn3o}A+IjH*wluPw{>o;i1s)c0u>kgjFO-^~m4A)v~)C5^pT zMtAeC(zR?~eDU#3W<An2@V{@~VTE*5s!QZi4D6WzBWx36y zUWmaG00;dca_XZMadqH>vK0efZ!q7A?Z3{;M&VR(xIY`B@UVM>@gm-{6yLW@GV!`k ze#Z7*%;ugKdFTALi|l+Jy? zVOAKfMP6Or;`R_@MMN!<(cCkmG_!o^bD)7fp0S4zkAlPK-ZBQ=Ru+Qd8wvUjZePYXYx6XZXjDZ=W8S+^cLb2mJM)+ECu$GVfq zeBa(L&m9~H?!LP1;?ec(jb~Tzp67$42~u-uyt;ggOq#kAxayOHJ*qt8-m&}H$I13k zHFqn>va+(Gt_PlQv|UkEnEu2NBuh@qMEG~ct?)BDs>}_}Vsrtyf(EEk`;O2jJ;wr+ zrThjhG0k)5Stu+#uU4DP2R$D4H8)*eDbV$x){L}?k@zfpX=n0NyFu(*oWbHX?#Ufj znV*9HB)G#tjR%Us0XU(Yiy88s1le+#{K0)!hx?UMJIs2sl|-aEx@U{j{~D121naBi zu1(Z^z-w(a6bAW$a@Pqnm@Up3e$@%R>?v6=rp*r!P>8$ZDnkIV&1lg|Qr@Tt4js_s zE0VH&of2KBcQTyetC17yR?BZ&*L%J&bN`tzc)Fm(KcF` z98$^?m_r+r!C27sb$8{6i6H<_{=|zw&JM}M<^wLKfC(v!DN!(*vO=KT} zF)N4yo0^*18cu+m+c>cp2|#gVL?m}Psf?XD>^<9kBQI(DZ!^<{|tCwbxEgl zh|mu{K9qvauK;e`j#fWzuHWetV5>zV5hcIo=+AX*_6LY{&CbjO{zUhBhKlt25>Q3e z@7P{^@DR^nYaM@fffj9SHdr+OA&pbSG$!8B*shrLkaV@)6us1d7lp-R>!ON z=32s$oXyOpCM!XYBR}^(IBI;r+CNi_e)};sxP?%D2us097NBYx-(K>__bIo-?H$pS zlfO})UtUN)b!##SQ(D=RJd92id3g=|Fv^8IAHu|I*55s+!dDtZ!O2h0<9N_Hj^xE{ zuWZ!!*YW0WHox(8-CIqs$84kH1?+HyG)X}L0V1y!Ki0^aJhH$=944JXs{G6eZ^S1% z4x|mDJ%^rV2%x>0MwAL1S=>1q0%WdQwQIdwJotETa-d=55eW4l1H8ihY?aJ!oev{! zocjL0+;VsuVx`PQ3443A{zZU?C?CE0+~Q#QmY0H<)U@ZiP#Xow0~5tumx!iM4a{~P zU#i-az2+Nd+A*zWW@f$C%&Un-kAAWnHcEM1xsG@wfv@ra&=Z#~p}jFjZO@=ofPNRp z(Ik-+HRaqnULUeY2?LJEV-x~QX0T325*y|N*)8{;)qB>S?=(uj^-j>_Ge2#_^O%cx z73$lj^Sm{VFW#~_NIM;KAB`!`l zUUi~=%y*-vbRT|wFsm@TRO@E%WLag8cbHQYs%aNPJ4?-u>=6PU!W&B5fx5{q2K5yI4{|$_XfX_Vh^hf5Os_g!1Flv(KG6JGMm2_Ey=cafS zp4&st&7t>TesJJALB%K9pt;+I$GNcZSQkwWZY+#Zn z4#8~VZO*NUu(`3sAZbX+{Q^?1=m} z=TvIDZJ9O;&EjdM9%I46z7DnD>GEO!gq&?(H5lgg?>+o{m@cA@(r^0t^C*kqq6l`M zh8tzpx`|-d=J68{QDJcj2OT+aD~TKABpvSd1I}?t_SG z1~u^|W_3cA-H$I&i7grD{;Iqk{jvQMyP*-ixwPsg@823P&>dg~sYnP*M?HlEhN%5M`jn@Mh1ZuljcN99hDgkO<7W;gH(AX1gHk&DGqRi2)E{iXqJNm3U zsoCW^G-%EgYOeIm(sohzt7ccMeBL$u?&&k*cC2t?)>Rf3%eSw9qkY~t*X4}eKK@>6u6`w3XUec5cG@}w zMk}N}S|0NKCb6ku<=|LuE3iB0$a!|}VS#Bj)aHnxTUTtOBezCscwCt2ewwV#hJd&Fu1Y1Hfky;#K~#5HPZlC36bm6}JY zlis=&N{XGowU~`GuffboC2${XFkpwaW{V+E@y#yzD!f%{Viheo8UJebBk)iPo zNS4dD-k~!Bwuj4I#eU9hdi(fjamK#Zv)-I2JC?k^^<+SFJjv_05)dw!>>uWXTAyCU zt7QKBjkHJU?=%6R?Dh>*2UM;8+v7Dl>;+G2XzoYU2H$z$@y%*h^c7HAz?kzhD&)C0 zy%L@Jwv^E#J;3K?-?b)?66S^t#n%Y++p6yP3eeNki>u@dwAwA zn~ONfTPXHQk7vO$FqNJruc{hxN1AacQ%Q6;@;v(h395m_bxta0|c2Qx=|lhIF8B!VbC&`S7t&(op0B@@jWDU!Xdaf&nm_WwX1$Q4%S zHnI;5hQcN2J^IXi`WC@P-(S#22q26ht6^}XHB1#T(}E*I08ciX9&iZBwNbL+pNXiL6$8WtBV^U}+mjmc0A{pvfSyKM**`079{o4R78S&T%I zhTmzS@;Xc|W-G?-?$V*=c>qT6PCJP=%79{#+=MhmJ8l;_=btX0z$7U-@)i6EV|qpc zl-ZFfP4a=xyW&Sy;KW_+*K&cUR3Ca`|EfGx8EU+R30?iTWnam|QwMg^=Y#m%h-dj* z9lGTt-2Q%MFymF3d_(XsOHi@V&KJ=jBlQ{qeL^VuWftos5m4}00@o|<>f%5wm)Q&3 z5cA{y-F)7Mi4$;4M@lVLZ0MeDHPeK+V+J&A*YfnQuQ2blb9OC~Ob>35`3Yp+3DFt# z!kMjC1aq3ShvJGC!C17)KQnkPcu8{<($@JBKCs7;f>G`oFIXEb?n`zbPE#^m-*LxP!Z2PzLLgj{%f}+~6>Bg0(9-xiUNYx?_Q|*~d zGM4fUI!2ny6{G}atkW__Z#{^#IH0RdHdCZf-+jybP-)!wx!$xNL*l~_<2Ho8Eooy0 zXUD_q$iv~GpXj^%_KE~VF=PCH7kREE6;_&f^BZUaO{#X85|S)-I)-wV!JaOr$m_(@ z!UU;7L6cO_d_%w1wKRT(fNZf3Ky_Ky%<2n(IU###e}6R#U!^h|kID5DrVmf$of{H> z=)T4K(*v12wGc``UVpWw%Nqb?gTBKB_ivw}Zamu*QeIbko0vG=^PX+95eAr)po27b zc7A@aT5_m|#&_!z@U`55{3h0uFbNnauwMiR|xYfzigED#;CLP^Qz1GUgBt)u|PMHV681G%~+mp4P^=jeTsh z#_GLJYNB3-wHu%pdysD38O_9}A%>l4-{>=1WzLt~e|z+y3)-%>nXjnij&Yhlp^*se zw)xqQ(0U2z;;ob(fpb0iJ`VxNNjz~x^e(==M5&li#t39c#Xi|hq_Z2@w!$I=v#qDz z7)zr{`}n4toNFIm`}ILo*k?DLbmv4(2z8b-2CZ0=0x`8 zj~}FrPMqL46r``4N59(=!+Ya5H8pjGkp9^noOtIop!IMT`4Df1Vk_IKeB2p`)Cg5U z3a0@K3}|QW@q!ko-~qGgTku-3?JNa5s>glT1gkY&elQiPnQ*{-v^kU|c;r)C9P#fw zQk={`tMQzt1msIH^~dh0-h!cg9o&pvN-mk%73lXKP7q2OWfxaWL-v|EAOEK}bmtZ! zVK{VufytlEUt<9xs=$zt=-9^B@hcIrvE&pKIh0{7UKfzz;gATze8e2nS4E)@vawu< zA9rkZJ)k$q+~>?&V1+Xx1PCMU#NEhEEqYzK?~#yUQ98GqggT9o(D?W7-;HE|Eag@7I~@}Q&{-0W3wi#g=HDcg8JS|nf(?)S;i;$ z!+fVDc{?K#6romYYpZ{7aMV@Y{w4Z3(iZaG4;Nk~{8QB_SD3Sb;y@~{kL8Jx7Yx^n z0877mS#Q=DJFuh!fZ#w{+NwQxC@&IU(Fm`Q2@U zIV(*YTwO}px9=V3boOB54+4i@(kL7kEtXtlasG7%t;bi8k?bS5$P{~j< z+DS8`z0@%0xN&w=X1Q8?U;ok@il1fF6#p5FHSMY!lXTWDe+f4Ad0g2>>l*rtX81*| zmcJ-(ru7Jo%NZOcyh*&M6^1kl#2y6_S5mwj>VRuTu6sUrQjgh!pZt?Tw1rJAA@&DT z@cUDMDB&bT@ds~``?jCS;&s#2-$kypPk)3#rM%SScM6aJ6K7GVmRW{C% zhOwW;V{Vyj$2+%DPwiDiSFZY;o9}{Zwko39#eWuiWms4E;)p|YPEZ)Z@WLP!4b*&F z<#)O77pAXDSa|x=eZa^iJZ)iKQF-phn6z=qz4NW~p4s_t5#{COw*{P}Z$^1xF1zXI0LZ}^Y} z-Mw_l_m=Q;76ib-diB4_ zuwMS@^@Nvv{=?P--~S(Gtkd_v`+djlVC=KHghcu&t&?)bLkE6lr9Wf9|BDz4de86k z@$KDCmp7%m`d^X-QeF*`HS=EpRK|rHRcw48?@(hl_@BRac6Dj3N1T41GQ{}a)Y4LN zv1FG%LfLqnqi(!>{VIA;sGTmSu3+1tmS zkg9`lxlC8{BiF--oPdDnXkVxGwzd|(ZzOnA^Z~(@_I&J1+o)gtU+rC1p4;f>Y5CPP zytQNa&;R}uQf>+YD4hueGR^ocX)Vl5{OafMK7R<)QBp+tcXrYhY4G3u??2?Z@@*hj ziJP5~am&_L+19qIx!EX!2Jc%3YU=sM+~VTu>gx3R`Vwk=X*xO5`Ok8^Vh(*CFZXK} z9z@aV|Ksf~0M5Lsj2bG^g$Rr8PaXHae;*;dzdIBJ~Z}a@f{FG10IY3 zZ?C9Gr2y+?`5an_;mR+h8!QJMf~XCwVjUNGJw1JjAv|Ekam<2(68hxzsec?Dv;G;$ z%zKvLfw|}a=^cY7l@Tz`!^g5LuQ3sOmieHE{_-(Pi zY0Akm`_pv|ADXjng!x{-==P+s>WTa^Q*z8oe0Zq7uT(8sFBIH%*u9ThU_G`EM;i27|js=7A}fRk&MIkL^%wc)qey z5Ls+U+%ElyO;C`rOv7<){x5=0yv@yR_pjJjyn|mn8T8`Xl^T4^Qp3M7ec?}Zi^<=< z(*{>VI2vhs_Of#ksBME+pnDLKoK0N)GMLgIQ#v3w47ZOCv$dLfM<}^hPR0k zV^Gq4J*g$& z7|$5~{rv`@(ITRPf;7SZn?ck8x8nVw+3diNCYGhKOx`dw&lc7n+yUEVAxoXru(X+? zVju~_>vpy@#ZxwJR;JCRduQApOYTQ(M11v$i?e*=VC&>WTmT*P^smqpY|{6OVrig` z3L$fHc4k{&hhg#8I#+&S6&@JV4)5&E{txnzx2Ko&n9JVtUAdW18K;x* zBUW@ganmsd(;srq&p)p;uL@2AYr(~vH%muELn1&@1Fr`#64uNL+d<&@@W^MfCMFs; zY1hx~yxloNkT?I#W+Ln1SYeGQci7a&*5>&7I{MRJr}e@`|IcH)n1-LXVaJ45IP8Xm zFz;3%FI>QB((s+W#={uk&RJIaV52?srntG;$iln*0^5!rX_cJ|ceyG8GcVo1Gx)o5 ze?9Cw|F9^$m9E!UgHEY-fd2AMQ~q|9G^_+a+89T6bKF zChbEtUV%1ERYi3R2?$4Xf$!tT=MP2iKGCPdkE?hXd?T_2d)7)EQ5g#V;-VN{rP6iZ zmEbd3v66h3=tH|tr~E&HPsMh9!JHR3)AR#5jVPr(GE8=Iw68!n7SJ}uZ3BSF0`3 z;m=RYRjMbk8(Rd=NX?R>QxR{cP9Yz%8R0WVaJxt5=k)(XdtMhzx;LmdD$ zp2n^BgoVu|zQa_g$?c+k@?-SbOXhSX zBSzxLLe3EAJUpBk?h<7o{{3|R(5MTO{7YK4#$F(4>5x%aI5z-=)<}aTMI^8#)a;!F z+lI#dZ6cOOUO2HI%gZk|=#`X6h$Ptg`1n=~*M6#9xNsrXs>PHvmfw7P*7V}7TdA=E zRw-u)HYE-jXp5Ds?*h5;H6_YuJc@|mYyO)wk2`ucj4;>qJ2_553$0KmCC%zW?(@iyi69{3>pQBM|u`Ql)PXYc#MQsC@gE2%$*LvHl8h~c0qM@N-VX;zrMB{Oe%DHJ~`>@D+8lE zZ0cFIRxjAEmCZdJ8p>wLRg5r2;(!@S4RFuO!h|g z9PgXH>u>IE<~*T$;AAfv0Y8@hR;m%Y8C5O&B=}{XEALOof%F3>_+qMglYm&!U!C;f!cyq3?k%^fArlr5OJpm8n^YLQLLPBnn^9HhA zkMY|zm529tzE9K8WCTUxtBps_(;`iDq1irG`HEtvFYG$%rT2H@ar{Cr`-szm>RZcx z4_r30Hg8d>aLE7D0MD{Gk4C`(7$Y;wC$f5*qpJE!9Hhcxs`%Ec4X_1abrpQA5D$r- ztoW}-o}?jh;5^qVM+k!%(OYx82wZj-&qXl-J!Ce|k?*%cwg6@d+HfAzP7duV238?S zgc=YTF{Jw8S}I0HeTTHj(i4;d4n32K)ldAV`%+lRsk6w)x+k^(h~ ztlq@^^Ck`2>LGQhXK5)!U;RYRBdsS>8eq#wQ3~0AOEoYrDPnwFJ%be^^;JTY?&s1* zp?DJqOH_TX)W4VB{+?$4sLuF+ui)vS&&J~+a7a5=gZfYavtrUt=`aSFuXivs#VCf- zCN<@)Yl`lsUte_3v>UYkzCf<{K9M*_cM)8hxSlQ?Tzr1^97$MR*Eg^C_l3GVPLL-h z<|pTADLZQck0(h?8HzN!@ZiGZ!x>z+Xfh(DTa@efhWGVGYPmMsyoH)1n}vP3qw!qB z&4`fbAg8c}krKpwfu=!{IaU5;vE!RLH1CQbeMcwj4@BgG#_%xOjA3(0Eb5id$HN1FLh50{Ds*gJ?`D||xO zxBqAL-1yJ(31AK+d}d=46?2d@egwmBe!C|6G0D5@vu1WX1TV&YzX$F$L`?t~MTGxn zGE*RhkgzcL1s)yS46AlJelkYNp00Ei1cppc5aX$Gcqpr&>M->nVvj(&}8XZ9c;2_ss<&Q)+G+T-L2#@N_c{`mwFwekrO zXG{vX8{c-UIes4Vr&rofjH&-bw9rtj!spv`lbaVwnQ~V{BNoR?9DoS~BlIon%cl6v`=dbmZ$)MTPdHwS_Rj$y1(oRU)(aOom`no zTS68tAaP%UX`S*Z_*8mTu=x}F$3d;eQ`<2P*u4Gms?H<{|0tmHZFe2-wQw@C^I7$y zEH#gDmGTCgV=6G|o2Hj^K0Kmjy#Np58XP9*Z_c_#s2pm(oh+@6JlJia{njf8(w?a#bO^q#0T;E;>2tu6Gw zfN>*r-Moj#6?($XFljTo#{+y>kzti1{C2y{cPpaza>FpcwdvnHdxsSi# z=dSxj2HsDzYX_w^Rl9{tD1)U@SNG0rn>Ky)^VF4hLpHSnhk;o6xjUAJXvk z8Fslm`l6@ln4MR~<02B+&wThp;9H98I_DF#1p4Lp%Z@nJ9WS;@yUo6vNGqJq_{quq zxeL74mgQ%fbM`;1Wc?b!YbIilSxD2|i`~(obHBs8U3_4ZZRq`VZ?0o|i!FDY-$F}FSXgR|_>S20GD*t^3}^LV zWm5#cE0)iEG~dAoL^JfpzSkX>N0mK)QV>u+{1qBOh^b6!{_n9$1gx=Oww{^rKBP^4 zNs+MouE!8}jdr&nQdGWD2q}Cv|Ay{}8Rmdz?T_)tr>2Bn+|GODdO^*%MJk<@AA-4A zLRbKeVB3^}H(0?7SUg$(noMt>U~`iFCwYdVCuaY>F^iI`>rs6WQJCeAqr*LEIXRsY zlYEmhRvH15;tjgsdv&eT1~&xE{Y=V~1@NERO7ahOWBV2ZnT1kWH zy;gB2TE;c9g{6CNHP5#h>p zzpBi%a5rct=jU9prut(^yH~H`!IaT?9Ba@5E-tDMW8k=jsp^t@NxN1$GEXGc`SI*T zl$+5sA7ikWu7{pmww+W&c z2I!Bje7=8!Sp~;j4`cp6Fq(EVrhM8nS4T>r*kZh|$}6hSxP{kR3pw&pZ@$CebhMm} z+wuNPI4dv6X*{kiSA5g7z9-^z>oJFANnIsK=2oJy?v>#$ARiFSfz zTP8}iXLuk#8;0p{lMk){678N*g|KdiQWWN>Pqr`^OgFw#T1J5nby>GE0~1boM)RY@ z%a`9Ea?9$qT5V%4wd#djcP{JKhE+hcO1g|af?$DVAm;aJ_C#Kqg6u&-ncBlYn0Cuo zR8)DUrlt`HkK&Zer0y*A^!5Gye9i+6H^L5_#r?Vz7Iq+q|LrNbXTVN)>9)-Vz5f{| z|6@%TO6xlca&iKRx1&&p#8ksYHu#gXKB+HKrl&~dC7bx7up*@(H;?)haP3iNe6}X@ zpkYFEw3fP7(QXj?h_jjN-L+i?PVDD7Ea$FDJS#LR+YP;A`%&_>uSzls0&Eh|=`ceZ zBmV`BzQ6f>k;fE-ww0#qo)@0#`}xbs%W{PN45RS{2uX!gegTrn{xa&?)D$F&U61~% zrz5Vs;VH6zr)`oNxBq^b0d?aiX~|@?i&zO#Q0&48 zrUJ;h@@Jn3n$WfOgJa??%^si|sy@727 z_tArc&Eb-YlNbi=y{#_$RQD*gCnn3g38)&;qR%1OQ-Q4%$Cm;y$U3sKXCbf@1 zuTCyym4bpo8K#3ChiUf`c~cOEZ+B(7QxGb}zn2dq5zOI6Y;1h|;K%jY$X=YAnD`?X zmmM9mIBI_Fk%Y-DO*@W)0^%j6NyAD8Hk}N!HQ^erjE?AhT%NOo!|C`Z(3cQZ)iC35 zU*tZMf~yFtP~#N3jzfD*?by)e9jjWN*27jW&pl&sxHz|q{95()@oaoTJVR+ZS$(Wd zctnCR!gxIwZEjF?QQs0P0uC*J zg$&sE4<>$6(p)hgM+Cm>@4LK=TOB8O`L_6G%lP^qBB1Svt*H?mIJ&RqEN5tZ4$S6YncQJhbsi8z`^;1i+%ulW8(sda)c80q1pi;e3 z!@}N~m0C|Ywo|*dlB2Ch=y>dG!-r=`ftvtfkjscHe1;(s$i$h!Q=XYBfyo1*kE^Rea(T zoL8}TQJ38pLyzunCrtqQOMP;@a-BE3`~{X~wL<+uPTtLP>;fbkRHCs4wfJTJm%K@3 z5U%C`T_WS$*Nn0uiaqgBT8gvzlPhfJuZYUQrIOa~s={{Gor{V~4!z+hF=whr7nm)_3uI>{xf z%^#oW{I7F%`&qZ={;5}9?GCi8AV56l{_0wq7}Zh6adfZ?2NSx!9FA{--}IV(axG z1=aI=B?3LYcwcn0M=8*pj-}BgF(v_1?hc2sk_= z@nM$xVkd)LHF}oIm4-^vWk-9Ft6<2&(ZQjp$a;JFpCa~*8Ux^afqaoH$fgG0-83>X z1=bKWBx6XFh6@?npDk=FhWn5$DS7Pda3omg>VBEp2oB2yisix=(gWn)&yW}NQniC6 z4n7q9xe0_K)hDR-rIR7Rh9y#Mnw?A_b{8k5f~dt1bECgy*pHenW-kU2xoMpS~cAthmQ2Y83`LL&1+tU~k78+L1AvruUGQYbU8J3Fkl#!J=a9phbc$|Pm-`BCO z*2nq`mmPk5orHptppf9Kq|r=HGnc?^RS$7_&A+#??)99+tr|z6SSi?FvDd?|bOzku zH*Z;13Euxu1r8RmyrHiLJH{e~yIhuhzfByM=@wKd2x*5bug0KiwSQ3OsXSk6TT}}0 z(3rY-wc*K|OD~Etl$6J;uT91(CH|ZO`E}SubKfUb5V#{M{&YUAq<*9Bjo98?8BY%* zyqYahY~F9!5!XADpXt*SAJfY)_0O9}zGq_Iy_vDC60vj(3F2l4R%qvhPATS*!fw@_ zFFNxd=W2sJ_`lr(cn`#j8Xi!MzwfvEM&(F@mf89zwe;IWf)1429%Eu(HjCaqh%#uEL-EgaziG5V1-9v)Oyf?P zW>rp>;?`%=k!eckg@$>_(?a5kN0{fcVYHPMcj*}d$|=oKc@=xV_7bJEr|D#r!_3(7 zxnd==BwaXV;ZypxTnUq9XZ^6v)pXRni|qo&FNu}vdvSt@_!-?*pM ztr{5CeOuNI;Vw6_U{=>6$GX8`mvJrYLOzx z*11MfMw5;4(HIbhLOOC^Aq>TGhyAy+!(~?AU?TH**4-tN9(Z`LJS7}2ImPsu& zP)uxHlcl9|Je`@#%);#*Q!UNJ9-t`SJmea`?z=JO?40B==h~^~Ed8>3Und2BcCVV- zE>C>pmDpcD8iRYQtxA+wH81t~omma5f<*Yg^2zsxv z#?+nj#I#Csa?th$J&Hz1R9nEMo!X}W{~sC>9NNTdu5Fd5Qdde-HJ!9PJNy33`S?CO z#Vu~)hASaYNE zk=ebhQZB7A_NKnr!K^{qWu~|%aH#0ipo`fKY~D&(RL+!zb82?n8&|#!MPETJu79Q4 zSC>LBTZ%?7K8~|JD5UbX)SoEHEGF}iXyMim@~ zp-o=Pg+M?L@#=^FT&WCjGX)9Ilnu0a7{Pk(onC-i^|u>ty2{QQCs2uVLl-1$OW{Z_-fz3v^v-u|F5w1-=#vU`Sdjy4z6N(ZSpMl?%e|uplez{&OdF6fgI)F*1tLy zN*-J}*D~I>CE(v$z<^EgTOXgMr6gpIZgyycg?J)WjnyHsx~S`RFkE?4V(-=O>wi`U zRoaUtr8eICifWJ2GBWtByS1y|2T`SiZbtaO3ZD0?gC)z;N@BgT0U)1C%Y|GWp8G-K ze?0>}TiMiZt&Jm2vCOuJUpM*m`usL+gBxP_?bN7D)8ra5TH4x!qMsf91!CM$m#YWo0{jw$8am0#}WABzi4CRqXJsGg{v-A5G6|83T6M%sFA%z|j&^|eFUIZifi;NsuufG;|6uJRsXpNa z!R*Kyt1ScgpHXdL8|3TNnd`Y>OrU8t1F~Y*zdS_izr;?8kHGsSFYjpF=VBX=@AdYY0vaSWMc)s2ilOM%g%{_bMeeo~P*~;~(4&?gTV=HV&LLwN`0by}j zm4DDWcpd>9<=jq^i^u24!|+ffie}8%+6_Sh z3WQrIu&e6Jqt8x=9?YelieP8M4-4Nj!%Fq&S$ZBT5IQdXiMH$=-cL0a%fIKg9St(J zGh@BK*X-B#J1gA?usAV5?j@Kse+-}&+sJM34`^cKzH;TJ;9@@uZX|tzLwWl60|4w# z=2iqPM2p5_w=i!n;%#jx5pbvy?QN20hA zHQIiZj`O#}bqnvkZ$@T~esL4H-sFy{!U7F!R>X$ks zq2j&C0J2t#jekLuFGs##cmbyO87;z2tGNB%&duzjrV6p0&2UT@Q2$-*7lJ=hTdU4G zE(-wvGORf4^Vf-h_v%J1Q}hE7U&3DB!ye zk7-swNS4}{sjLwC?I7sY1A6h*? z1h3Z?e{VF;w!j%n%Ko3T%T$Dos1J`7CF4@>f=<^0U0Xy<_ABk&|!F z5j;@-{H5!?o2WoSB}C^B9`^J)Py(>LVSM=4X_fb?ewaC3x07b<-0pgkk~i_{@ZxMz zB#QT7yDPbV0#U104NB<#?{J>Lkc|2)#M6R2_|<*uo*9<8pp%76rL;!LSOq4VzthYb5OY*Z!ik%(y2wD@qZOsLwmE4Lklt)u&XzgwBudJ{2@*R6JiL zm5;w$>Q-XmiWp9JFopH2uD`j8ru97XO{5wwK3G2!Bq9pSZqx0>z)MV1)}l=fpQZ|5 z&e5hEDL4YGLE9r2UAen*0yiXJ9#v7Q3PsxM9Ju?pxK+|Gp`;*$-r3xbVoJJC#)`>t znCA>Ym{0vae*E4BG6w4EIVe@!9K~EDARr7)42f&7bF>@qyLp;&K1-(@5Pefwd3aQA zGrNihlc$+3?Zml`1mXgC!-C6YvEXW7bAz}L)&*i$~~WXZBO zV4fehm|2pt`}KHlXQ_K^N-9mTNSKl-l9c2B+D}g0-yTp4{|9 zHj~ph>ouRX(P0|zXEeIE71Sr!moMEs((>6|-Ha8VSEN4KJ1}+Qbg0Nsh`pn~y|}Du zpk8$Rs(T*F<(ek@gQ>W$kEUWWr546U^YNC`?*rqugWR0fPdy9|$NQy{LXm}CE)GpnV4v$NgRvjdqx*amc+)KQbd5Dn1llBB^K~Gvo1K9A z?`q_Aa&l(#K2DB4U<S%J@sWp( z*5miT-a%`-MbcNdnseG;ST^s3^YZ1Y=d*(B>UD~VyA1v0+Fb1HG#NSaX{;`I|9TpG z=-m*%3gSCXc6JdVehv^|wt&xqbwR-}(c@DIWppLD6TpX4SBOaqi5%JU_X$f)<*kC^ zBz@|Oeyu+WIyyKCIEe3uT?Aew#6uCWksOoJ5I4dT)^0mtEGRY+$6dpFdW}yJpHJW5 zgXBSr9_g}*3IGcSRbOLP;4*(_Y?8sim<|EMr)v(5b{sl$CcC&tzkYn#;_0^%EDzcC zNK1#c*6I$ywfp+Ex3@3(wiy{4!+v-AZLdxtVY{!P1`Yqt%`NiZYG1$d%WgMa_rl9l zsi_vGG)&Tux7O?p=rDgf>B3h(3*M*tErUEgDgKQn;E(_RqO1S!cwznTMB)F=Pq=q# z$O5m|?EW8p1znelQ&Yv;m--P11YsV&okZ;9=d?Y`9ozyU3^#ct1PYr$0Utpj%TuPo zehQ3sXzu7x1gSNW1s=GD;#YcxDm~C00HK_*u`%>FvlVTv3~1MnYC|Iu5OZx$pUO&_ zm{kAxLBW?JD0KZYU3j2~)71Bd&mTT4WD%Y@1D<4AT6A6GHOM+j{FXCJfZ!iRdnooIh-@R*<3QGDLJS%pej|qJPF{T-o6@1vX z+ini2szdcuCA|>Z0dEXgRvva5$XZyKNM@vly*Q!d=vVvJqL)A?7L^An61<^(uQShj z_c?#Ngc0yBg5QeNMRF@>taEVaCxLkf%Atu^iP*IdY8)uewZSiPHMcHMPRF-zM&zEL zXLP2Yo`$J4_a`N`9`}8jW|kBYQ*6bO7;u(GdzPJ~`@<<1k&8Uu@8$gE??r+*3OPeE zZo{QXXNLzzqRl2;t$d9=wC_cZ`$%2W1;7jB7-MP>Pbgw_zq`HNYE$k77`mqGB@N0& znY6o_LW;uFD(c zn0+vYCH|9Fyl7}MTDIn^hO(ZY&Hsl}(dFRBB)v)*+9t_VN+kVEnWJEU>+`&$pdfVS ze=<uU zCr?|g3XcycD(D`~3WQQ{#Y99>>XS@t??skcX}h`}GrK{)*Ox@eZ*k!Ec|v54?FoY% zIsOng5=8Eq7!za8jp!Ud?*8&+b)*>VLU^ayH|6zL>Xp3g2dVRD`peovfsJ@8558FjZA0>{atzEWU2UO5{C=cg~?8H>vnzOjTNJ8 zG>1&Oi>vnEIC4x6;|Lwgd3DbvOq09Q`qIn-L~88o$fN9)FuvLo8lbg{IFFehMPT)j zsv=#gsct3D#m{4*HNwc~h(Gb-nXjQI1s~?sEj;^8L658rO=23+%{iSdwSxj-w+RO< zH4Hy0D=UL)^69`+p6w!RnhY@d<1D?&N!?|LgI^|?xD=Xx6(`}f?)yhX<^{)iTV{U8yeg3&5vUydu*;#a!QAaCnsl~GOF30Rc(X7 zRi|tLnR9=?`-}o5-}cs482#R1(lTB*Deh@J{|hJBncke4-9hQrKjaL~OU&~wUG1G5MfTR3r>Dpcu(-t-TonE9_s zLQPFQHl{o4*bXMPAU=U2qBdhG!ruP^kw_}x-k3WY^OfD$1F^p5(Bw|*d21G0dfL(y z)c3M(CjNY4hX;8>?vW}4(c3?(q1n;~Zd_S+8rG^0ZPxqs@C!ZZqjqMj8h`f@F5;p* ze{|9D*(#>KCxV2(r^&%}*Jy z`DA76t&FR8-eB2Gs-@y9NeA6ePnaZjH;k=|c9}oxtx;b_XFR<(*Z=_Iw)T(O{a(Ka zl5r$ToQ7T+(`Z2;OFE)RfnlMWv^O*~|h z`fIG=wMxOCrApQ^ZkZ17xwMJx?38nNkAHjBX=-GYV`{C9wn$cSgO)SQ_sb+B;xy)p zdVErRKl<_~79{c(&T)ObWl$k%)-HlryNj1i5_Xg6ktVF%UF{7!b(6GU38dhKudl}P zF_;?-W@(9-gIlJjI+*)J%hJ650|g9h<4mcX4`+*L?H|*~##>vzuE* zk;7WEWN5!xcitkL^hA^@2B&ay+xi zjI{N{J9wG6>=wvn5`!~zIm4C)9_M}{Lti4H;xJzz0veppT2hSFeWHB?;eYVQ^UBI7 z`1=N`?yXjoSHMJ!ps*mOwzwYFfe3?m7+C!!hS1?Ns*9J()#T>Z)ScyDMfRbn9S3ZEK!Wy0z596%PjE!;aEGz$XMyjCS5XLmJgo z_M2+Zu~&EPc}MPPfF2)fuXaawxcwz_ajbvdiJgR5DN$wU<6QemI|+EU%<~umGBOR6 zZzt=T{N!4x>vEDsH-s9XJ` z@_M2O?BSJAnxGQ)e57#?Wiy6cA5&2v6vGz|8}=+f*agNfa+8TQ&P(-XXUa;3AR~*_ zwc98+B^P9qu9q|9I^BH`GxpL`oUDJ++r=yl$~}ELq|6oN0a~v6VR_*tk&Vo z^?_>3c~q?qg%j6N9IYn|?a}<~I$nBy%{LBN{L`U7Ir4jp4zH!*X2V&Zf=euY&3F2Z z6z58TvaVj1^TRYZY?#xgNDIK%AA@Fe@OsfUE?MgGXToO1g+L`u-vTAEc8n)|O5HGLWXy%h` zsc+z_aLZL=ODAtTFZ4rz-@smE-gD6*P6vD4#_IbL5r<=lsE7&eikIH3yjccV7pNPl z)1tR^)%5wnsBY~%t>ybM7oEe>0T0HcB;At%3K~vQi-&qbrJ6&Zpbk10#tS{8@Bl2# z$h36s8@fF9{z?!=SetjCKn9BIu(T^rWCx9UU~E}J!U)VoTJ~Lfh3~?xvp@8<&AI#o z$s$U}A`?q^ftYv~`e?&}ztdjGy2EthW*&(~iBc!*)(E3 z?AA}bV3Y0{DVi`FE(_6c0Yk}9HLz_7p~6h2Hnk;@jg%rX^&|7U@|bvzc72Rh$~*)& zVDiA?Co`7=&Js5*doWUVK))eWldNs;as=?MbSn;{oTR69=uG_KV>M4n%&D^rgHF848T3DNvrvUB z;h`{K=3-GMyH!{Hn=rb8(tWw(G) z>DrTK{S2if5zE5ujs&4gv_gYN7ij!94=}UqoZ=a>Jon#ZDy{TaFV{)n!|n`!)T)bQM?DFJb3xf|=T1%+wrAlffwg)mw%XIfV@;-&%lU8NTihV# z_``sflkdc;N;&g-gWrEEX5r_cIa2?+DY5U+JM3O%TwEM0?R}4#8Xp>E5}6ylYy#H0 z4+tL?3a?k8A4Fs-xenD&i|Jj2%&V6iw{f_YNGnpP6QxK!f~My3Sa`cP4pUPyJPcoI zPIi6ZBt3ahndY&Hb8}KGl`-}gJ)FuF!`k!}q^T$JoZMz-AKPE0Ka1;(KN&_iPxPle z?S+_@(>JAq+D4VOJyzHtaN()e-h?~4gx+Tn7>#BqnfFh(j+H&B@<=bvtu! zJqmkP{kou_Am$`0>ScKBtqWCLFo19}rvu~Qp!+g(`7Vc2RG(F*Pt4QI{HP(Fn3!m> zxLN;1^<=orwQIVbA&h~g{-`z%uLMYSPv=f=nK1+SM0`-6DjI<2dZ=Ib{q6Scvk$^fX$eZX>4MSB` zT8-uhN62k*-<;m{+g(J~N#W;^)`R7X9*naw z4ihZ2KWs*ku?%5q$;!t^=cYp}IF(%WA~LIvLS4}&p$Qe8cONKXIjAkMIp#+pd5tnuq8@Flqq8QDhzVi$~dr@xq}kaEwfc7WAF*lOh^~Y-=8~7x6m<>ckfTz z;)NW(`p!WzxPaY6E-ftFGe7bVJuA%2X2*53@MU^u>AFzutyTm$4ngTzp;WVn42E(e zqE50``h{)Q1@Xs0X)6(X8qr}yPmdNO`uu0iKT-+TEckQot%;REBna*@_GT+vE-trs zd(xqisH|5n^GHr#d$I&%Wd?3gJOJ4qve;Hx?N!@6z7>(N)cxjo3upL7tlT3W9C$ZF zpwQ6P(K0~mwY9Sm;t@oZ8W@N7Rg%7o{Hch|7C&?z$4h^#>#WUN>&f}h+O{25>B@cKD4nX!$v#1$A4W6tj&6V?JA$8MyKW6)wfAMH!XAS zuN`zJ2y5TyZ$!O}=~g0%iaL09--23=Nhal|UDTAH$Kn#p^%z(C!r6%)xV$=4vg-}K zC-7SM$)+Up_igRMHtl!U7dz^YCz^DJ(O>a=zc1R2zL7`r4wnnhi?Yxe#;x0=nH zIgWRFRKknud|RfH#Ff*#iNk!^mdz?=<Wil2w_`m_8;4G-EwLFJkKNY|svDIe7D(1+egih>p!Ui5hX*pY`Wdd#WB;SPZwS zX54pf{sGcry8cfW9SvjZ%5 z3Hx(3+H*gq@%FvAKHrg~nSe+rkF~HEZQcxi)Xl|3s-Ku5benSb`w!2(?RLvK@H!ks z-rf6>TzNRE+=#_i)h!lj4s?x-EVl@ekM+dynwMF2>a$RZ(WvBGkcBA)(TXJ#vg_~* z;Mc$eamTuAuHCbKDojNdY?u2!NRijqv1|0I{&RirL9+C9_D>$JpqzoEYjwQRfag+{ zYDcG167YPZ>=cG#B&t{?#bb7g5nxL}KpQ;0AY}-5(U-MWWKaR~90?x-oG~fK! zZ{jMaTb|6celuG-vw4nbV?b10XYN2*MY&T|enM;wY#IPeDM1$@jedw_`3?3i6^tSM2TE%4Bkm2I6{SZv^fd705Mx z%=sCVo&b|tC05{vUK*Xr(#57av4C$5hB9tYK=IG2zS9z-{mani1Lx$SA!Z`4y$@lT zii@X~k2Oa)Vb|lMRto=CA=`z|tl@i{fUz9u>YN0{smxOqCX_tY{7m>f_3q@AD{e#k zG07L7KQCNpkgFN0Kx8&>E{$Eq9Uk6P;_QPvJM5_G`3B@1-Pz*qTiEYkUa0*gV?8UD z>wZb34`Yo-jN!;YoLsIyCUl+l@mX8TB3S;RSo#!rfQ8QcP!2!)HKRcI%4>uf{TUWu zuAL!Z0DeMv9J@^hpo`s(^B2`xl40QQ^=r0H)QYezqmx1F9b)T+Pb)h-ruMWX6x%<& zyv`FfJ0EC|4CJd#R;G(BzW90@qU5C^Vml}y5o_xBN|bHmc9vv$4S4R07TWKi8fmRY zzQ~Et%q%bWPA;Y1^;^lEN0|hSN8@DuO%%2aT3|#W_j~}H_Xi`ikvEYHm^k#ftCC1F znOeEZn2@I1-|{jFflAWBnkFV08o^L@lay$ZZkeh6D=E59%w@khHWxUvm3tFDHb$nR z{8_cEVqNR{2)BCN&T;GP+zZdATO)wOkiY&4CIDzXbqiV)P;(>UU`>AlL2_DGo=hs1 zNvW;2$y_EW>r&*MTq!gMZrfVZ=jh-FDF@BXXpiMn>qYdtThN|CxIHJSkN^wYo%*p) zo(O-(;nM0&onzO23PIb0HiaG&3xS%g@jrI9dl1fh-2~yH`~&|=ePjhmNcNtK)4K0@ z1*OB7HSI3#eQ+@GVSV@z0whpz;P3!z*6vw8?ECYipbDWK}S81I~j)nvL(hogX7MnUfH9ba(Qg<`1RCa73l` zv4Kvhp6iiWTal8Sf;uoBP7LBsBI}AZ4L}MK7>NRtFAm&ARkcK81oZd2bI?3AhahgW-uyJd8lqghbiR!g*3%t?4|?0`mvATvPvu zvd2@&%`RmlVl<&**jcy!oGWoenuC*5;_gzKW@dY^ zh{MYM1w!L_8JCyswW;4eL}1U&{W)ZG*B`GBD266#kDmY$WNAxk}r zr5-ts%RMrTTLUK>rlKr~BloZWr`J5v3#CyQ+DCx{C`^q|D3L(I zvPqPLJgTwtID+};oUW{7^Wnz*>=2K8$9os({ttOy85iaHwTmL6prQyO4bt5rjVO(D zNJ|Xe-GhNh!%z}}G9Vx&L+7Y;OXq+{*U&N4oEzQyoc}rJ{hg2J%lmxTKX4E8)P1kG z*0ru>&60baNBnR;Rvy$=RqQHlM)n%2tnp1Y?v*@B;-;y^Hipf$zUMU7gupXF*(0At zh23yG8G-3ka6=CgEsf@x^jOxa_^3}_tt$fVH-(#W ze@cL%RT3Ndde~Tca(rB3Y;(G%Y&y1vTTnk{_BK*C`vE))WYKY8TJhYRaf87y znA$DuumV)$S=2&Iu60Fi;$1l!Ei`FrYBJ`y3JP2x5^QU2uJ!l10z?x4+z?N&#Pdet zp!pixjUdb5`tl#3)mMy^!tXrbJ*fSL5L^Nk<+@&LqX!Id?zf>QM@I@^;MI+18hng> zKYq{6U3L#0WG}fCym2k&-N16jt-pn~%HFQ7vY>`qjP_WiMXr?(Q1uj$%c_Tp_}U6v ztiX)oZuUVZBi?|1D&GYy`gQYa_Hvt%ryPvqT(Whf7d4ka-02rE_!nIv13N|H|)uD_V~=TP6clI*ETi)%&4~ z`e&ZSNhR|W{7X0vgwW={ltmW~LPA0y@g67BAnI98iC*MBdwad^y;!kkK@yiBsP=nZv(C6>Al6amFOiQvsjm?-Bej6%qXUF98_*DE=8!1ed4sumab0xTbBU3MA*HqAizf#UVY7q|TFk2+l?7lXj=@0Rv=dGCR8 z|4revH%&k#YaTFdFx@qT3ukBSSChOwvKubpuo~NBCb0ftmKVx1fT1HzK&J@wq3IlM z0M$N!pK9OgI?#V0BI5e0P6Vi3#lryqEIuBlIlm0Xy@LRBm{7_?6t!YwlSdId$YH@ zx3{n_UBr6v7EX0W_0iE2c~u3t<#uc*Y1g*kT!6Ay)cQx_mM7VP%kA4oM_2H0q%X+^ z{APc5q0vS~7mf%1Dn7Tj6DcV2P(SFFDz_GEh!4wsr+eCtcgGaI*W>0@X82lQM z1;l(?7@1g1BO_sQ73`#_sVR~j32*O1yF?BJpq`fpdPuj@!Exd9 zTgC+AK(R7G1l%$Q$w9?Uco~5D!TRowFsUJL}K)6sike#;Jba<+>f79Z5)VZ7UhdV;ZdmSdNdHS-8WGE*4jK?q!^BIe;7A ziG2L>5&<_89i2o>5|GhZvzlSWtzdzxyUVO^b|9&Rq@AzQaxRazB60qbksc`}I%=fj5CDu&A=CjD7@Xpa;M>e zDfeTQv7fUHI!-=&aiOLej~@Rua(Z(8tYTj4Q^RYsL8YaoDXKO0hZ${|RMT6FX`l?l z`smSf@WJ^gTzsOa`x0{IM1Su;mP>q)wF`9Sx~Wys^lC@mn5@K3mh~~rF7>j3cRmH) z&GGn>sYi8z0O{Xn8+#Yr#A4XmmL@+qbR0@a4&-{n-wJbF{0U%tl4H87X@d;DxY2>e zaz(ftTRvNFA2Dd1n_t$L3=+mb|9tzm77anSkrV+l=N_Lnv>||2(;i}?9>~7h@A4N# z?Z4=wd7a_2a}*X|c~>m}Gfay#UPt#znBW9+j1cuw3Xfwo zC~t?g5S9scbrVSj*dI?;o>h4}lz_c>?P3joiwet%E0avahM>;DJcXWgzTugfnJN7` z-JTdJpUq-!W5?W?QuomrY@sviOU`ASd4KmsE>O@xtnTgX5U?4PKixLJ>HLM3SW|mp z>@(M7BL*#Rdj+42ne8=|-E^UCm496%CH7S(Zd_a(ZNOfbBQ#zv%E@tD<`Pcv_1_mH z!+Gj(x!z;Q0(;$=z_j1s7xV1ld}I6Wyf`nOmb0@MDK?5r!OG8T16pc!@7!Xx8LwXf zbtaucbrWOfv??c4q-&WHEtASk@*$wn`((CN!1ni15YeGN(lx%5GPC;w86~AX7`n7F zOMv52^k-MnZSpFlYDH5^nRy?b`+2TC@{!gk!CyCxs&E^&!^2^{4W8xEmc^5i(+X8% zXaBi-|TX3R8~^bt^N)QR-09%QisrN=jod-{n4kGl+8ZGhVw+WYr(x9QXIM& zx(gF0UFn(|r!{hZR)snbrS<#y-H0iiY%}1{xGM>3J`6o=R%Ck&*mjDSaEzX&4CJ6U zCuAuUJ33(JW7WR)Mn>t|=%ZwlllAz+0^Q>5;59SwMAUB3EU%=>)a zFMZp88~_YUu#tR!I~%mb(76ifI`{V0k``C0Pz4u7*goY$4Pbf5z>v$3j6>{UcJ0v6 z5X%3Fywu67xK!VT{i?;F(+q(94@dGPbBCa%Tn^Sn78Z38PfI6+?2k{#H1*?PFod=9 za!Q#sP|uAZBh1&$aSJ1E>ACy#snNR{5`W3xNHe==8Zq?R+S=@_Nu!Z|K@PQO!2D5% z7ND)jzIxr2%%N4G1i{nO1wo2NUk_K`vgs%Yb9yEU}bnF@{ zg@`OMlh;XsZZBg}kydUJ>bz_gyun|HDHLjLv`AtjDmgTo3hod3Pbq4#FN#u!qiliX zfEDzhWr?t{JhcisGkr$8;+WQ03c9yPFB(_eSQmS}9GwCWQsP1gFe}Mrk|}lO!_JG> zuS$q$3Xc>USa~RkF7C4lfW+A{0|7)~?q*OM*J#S(>CG)H2nBYg8KYO`=QfIVru}IH zEUTb`;OR>@{(buCz$&PU+`VTtIsP%IL8a|wzD7eW>iiuc83}N6!zFswM?b%}c1ew# z&piK3+lQF~lEI6;rjHJHLprao2|HyRb*AZ(lW(7-B3qGr27pH3Hj(nRjG-;MsQKaWj6M|L^D>O3)z`#|dsz&b;hv^zNS0?nW#kJEk~E$F87d`y3` zm$)UuTGT@Q#Yfcn?h*sIj(s6eYPF%2bQ`ka!I-U(MciBS$_ZZpHKn;(^!d_+rzqD0 z-;~(ctV5K0)oZ5BaWc_G44J3cqw1}Vjmac-eei&hKX7M{tS!dV-Q9k= zP;vIhW6-=ZP39-9HnTC^YjW=xVyV5iY;DR56Z7_RFs;*#0=gGGhK>AZsP??vHq|4W z#l3IeaPY=<(I;i=2Qd`q3Bb5W{k?~W;c_VgQc6RdtgPxH-)CmP80nEOyHhppUlMBzZ)z$zb@o?M>Woa$gRO(KAaHYoEvT_^06h$!9JFWyYHxZIWm0LIkJxs{Pi1Ro zmzEBv_c};95|X|8PU;%5v+F!ajOs)I_PKzMG?G6@+0(&0?X<_VdQ7472DSLN(b2Z& zLp;c0N!OhOC#0a6QD~*3$H~aOo{Y4kaKU-wj{Pa1h=MnEO~U0@8q>_=fw1$4_Bja- z9rjOrBVEZSZoCNOFL&{bOvsdp(xOWM{zfjTFA)S z@=Z)k-@Dwm%U+h2+E1UpeUkV&C&zK7RJjU&Zw)TMKN0)*EXr&7DtQKOLS@dhso>;L5G{Zx^w?EhXStSkwa*ec=h1rY*TSRxV1w%sT4CD4E;zj_Yg| zszc@pQMtW)L1%X*)O)$LcArw}$R`?8gd8avjWSMJi@3xg=DlH3c}g~Uo&*#H?ENDC z<5IvYCFC|5bAke;em9wBJTWpmQjU87J}mA_mtfP+dgHWy6XmS(bv`tQyvKiet3Rn{ zg9UOxd&E=ZzBhIqQzoXr{PGFA0PH89)EB@0-_9G*-`}5rMy!h{gxA-;b<*oZ-t}T5 zSp2U=w7a)geqxlh{9ZYwm*Y|~>fD?jgjgTxc%_VLRaRiNap|WsMR~2ic;DV-QCsN^ z4!#j8Qc;^SY)6lH^Xu1-mzOTJgp=x|C@S_^YRFjw8pLIlht8La7zF|4rpOi53V zT~Lxd+cKU@xzx*Hko~SdgKuFNh%|gzC*US_D5u>x`57EU#PLl;>ode9t-l@EzJE`{ zGDVuMj3?W9DK=38H1iEC4uN1fe* zQmbX%;d9z+54epY-&MOv0)g2&4cVMUutrR5V${JsK4eGa3=@`ujkCN`2(K!RhR6ROMNbVTHp)cIp3m!}Q^Ds`>hGVD;2N zk1{X@7TB5(ItAJqKok28EiElMITI9wYbA!r?WXa}n-rqvbBjf-R~RxWKpXt3?k*qyp>2FQ8U$w>RG z8XJ!Ex%6MZ*|z1OYCHLPzaB&AaH4m15IVHpfV4n^@ESv%vnOb)1(DIqm1iSlvV4o(6on6AC2BDln#(37#`!* z%SMoB=##mxXdcz<0u^X}e=vefd`h5ZkpZaqa|!A2D^-p^(0|9t&b+889SqHfF#&GQ zu#m^bA*v#bs@NjHd=waBntX?%Bw6%RdYz0B!huZr4J{D(;aR@uAd;FW zx_@DbNqGNQVvy^{m5ED8mM4yR=n z1Z3QW;6po^Ev8V)dtM`z$PLFLN}+oFKY3^Ht6pPzj?d40873{t#3gN{Gx7Z|630^( zZf>VzF@cRnApqb0%?7J4fow4K@*Ohn zu>*H-j~9pVt#CPg-8}VABD8&eAlvzMxVB;@ z4i*zQf+_K2;p+Dn{n@-i9mxTIBd<35>zHUlOTXz-| z)JWcgu-Y&MNpt1d#^m$}NSObo>(zWd?3Q{RFs2O3lkTsd)Tl)K_L@85Sya>ONhs4| zW1m;5tPlV=hD+&{ zNk41u<;$mlmdybLpZj}!gYbz{|N9FLE5+Zm9{fWvKy>~+Nd8ZNBY6&;5wr!Q+jU*o z{E}Bt_yCas$j(2A%0;m5~a) zl&R5fEKujm7;l3Z(Bo8cuK z^3sG5bfkNN6#W?MZ@)6WVnW)~ouTmTIF=cXRX0bB6vi&7#d z7%AnxwN=`jogH{WbaH%jwjvtVxj!M}Fjfz8FuS?%)Tb*&J%dU8_gyP2_cP(a61Zx?1H)2cBSadwsqyo56) z{Z4I1tOcNDU&e{PwzdaWp2o>f`7S{CVx4b;uml_~Q2+o_k})?|azi*GLqkJjVq$7( z&ViQM`1QLvrA}v80YVJg|26f61BL|Zyf*ulCwKZLzz|qq&3_SqNK#8n>qF)=Y0S6t?n2;1Fza4t`{14&d?7ToiJ zTytwHnh-UUH`@cOUiGVo)SEX5#nw*uC`Zm+xo{KH8Pxy0@?R4m=@$V2UVlk)z~PT< zJyFzX;AW$`XVH|unl&7?G0n}sMu3k8I>_Zw+&W+8pWR#qaG<($&S%JMW%lW>1N2-KIS3l2|fGJ(Xc!U7lpWM6a+83&D7<6mccsswu% z0qup)6C`cirqOF2qtyRku`|`tFE1XSgF~THTT2@_9XOnB04Q{QS4}EkJO7narWkE$ z(AnE6t9rPplAGDoE{_72yz$-P0-Xz|-q_f9;rYQ0>g{fy2mrvRTY@2j-2TRM;gcq! z%ebdKn@OxDMl}?d|2oTJz6;;i7*L}`%CTB0=wv&U2jp8MXx0HXLnU60{q`MjK~k(0 zRaA~oGNIAbVnGkZ>uus5fH_!>s4qIfY>A*72jSbLi#pia``VzlvOc~A+Wp8m)IWQy zd80753}kc-uNDa4sH;@1IZWZnD=^Ra-M8Fi9io(l^rGFf7sI8Y`OR8cX!HH zFgpFib;3H270nJ}CU$MsnJ==0&dxjq9RTsW1Evd33eOCEYinBqWus?lRqIm?hML-- zPt_JAGr74RXw%}?Kpb7zerfazOSOv`+-9hLoa^z+m%4Y?CmQ5uBmfpP3|594$t@K0 zMN{iD5VUzuO@F`UoUq_41MqlBpQEo-zm*eNHOj1_QilsjLDIW@IgyDm7DxKky)bgS z(L#Nsi815?eV>KPFANgVh-+snxa@<$*m{7M)y>Lsne=)wNHe`w_f~+eL|8PK2*Uu? z9efWjG;aylDbm#UW84}mhbVh^s0_2~IN7Nq18NY9khdQsz!U*)_)>d69FZ6~9u@Qh zbjaQpC(R?Kf69!Tru?k*s@)PprYnDVV{ zu)_@SkU<^mhbV?h4iARdhQH|Yd5a=5fN@`vi==S}BnOB{Dt3EqhZ{x98?GW7ac@|b zA-}OZ<79j-K6j!Q^q)Q9dFErX`oxQ@+Vjjb@c8Cfy=Q@M654q4!`=^{0=q%ewR7^l zW-Ylfi|Q)(+)>jHmc^bT*R;8f!vp=gt4Wc?2!nTTsAwCoPUHNL$PA!?h3|JLB>8*g zP7``%q-k|9lUm?-`(@0Ed0(45!0o=apQ62`P8p#C)g@gL0@g<3{BQU!o^|l$4r6-Z z1a9LAo3>VyhZFW#6XE&%JC&pi+pB3>l34RkPA5M8-pEapxgzBGd7C%{P+$ijT~W!c zPd;tHCWeiTYbQSQHiL4-2D$}r2dsRjE!)TMwrdFn%tecv2tbqT2dxO%N}+5Z9f>C39z52n!$cdm%IO`hRm7=idCbN{k%G@JvgRj1jz9Q|dG8!zoy8lRlLD~Aqcam90=I=% z&gf+$Ds2M`PVM(-rCi-gZIjYV03g~RSa+FV_ozn{v{BrPQ&G55V_e ze0L;Giv5QMw|AT_<2!q?a?DQS^(h#xF!BQvYIR`|&|E*v@;F?c*7vBPDi`Ddg>E@Y zwenebDJCL}uA^g1Z6*3A$))G0x@nFG{(Ek~7sy||Q5%3kY}Bs_J0!%!%7JnRBd-8* zzjZ$Ucs0q-b5)^w_+ya7ToJ)SmtxE*YUpDlnm+Q6Lm|<=p_Z%#Ld~+J0OpnJ@Z96! z(v=JpVoP^73g|~$tK$|ZalChTp1cXt+6U9 zrBaM|^qjmS=6)5vkmG<4nuT`t@%*vW&X&dN%vhCJM7Do##?7ighhQ_{KYE0|(l%n0 ztaTXscYkw~kmFXW_-#bdpz0<9HT(THRgxdX3xa_;ZzUxB7QW0x@?7k;nu?2s#?l%c zbo>&Hnpd}tuh&{9#f6#3i|bB9{t8hnSv~-Yd!ps`_H}}6(+b@m<(DNqk3C8x zW0rR!kG$J@Co1feEV@P<<%$+oX4N_}oeur0)lS63R#A+XNnmTyCD?Gh&bQFHZPuKb}BL#Tu;=S$wJ7durwSVOQA0SLc_zgKZXdo!hwW^-1%LN%{x z`~`XGr1h_|@Ubg;Pfz#f-Dm4+DVob57xG>8fYk7Nqomd*Q6sIO+Qd)N>X{EZejJCh zYMijO$HErVpxa&Sc~yHJE1Wu$E+qFU0KOnK0Y1HLWsE6VGyGCf-$sa}xP&G&*Z7N@ z5|4ip_C>|-g$Mb)EW}7rK1}8LGJIA1_+9b+>rzt4>wQrI;c}t3XggZ=L9{x4u>QXP z2`z2*WUD)Yl#jQZrX~zQwb$c)-+RrkL_=_*+O`aZ*Xy(PY%V1l(v?7dKJ?SNRiea{ zM#4))xcf;T@R9d7KrvCc$PjL?w;0Miu|GGE8Fdi4*-*eCCnJ*&N;AXR5K7}@pdgyL zelN-jdepc*mc7`Mdayh_TwS$t6n3{)JmTGdK0$rjzTRanMTr~Go$IJ`?>1HVOjnot ztC*tIvr)kzl{Q0#D_o1oq#WA3 z697|O`0aNYC)lA(wAtQ`GFgKSr>t?j!kQJ2*QnWHv0NA`=woOm=D$G)!v zS*q5-$kVg4B4Um#gJE{Lld0hcu^@pY?co6|38h4K+mpNvs^Sal_E4l*kJYpnZK!$I z;Is#Z964ivE*fZjCgi+FY>qBHxz-v^$}ttVMBO^(L@DgdR~%WBJ7{dY*>JcdaCP8c zETD3vXwO)TTv1i^p_EtY8ZMFO`$zozoz+B&fEQ3ZEGYY`?5^|e){7g*Az&{K=|(sm zdXn#r!FNXC{(A0M3GW$*cI4A;ChJ|!EG~FA(P5hL&FwHh2f`d8x zYm-YAiae>I3H^+00#2udpr4qR=(DvoL`5x%TdOu<I*|N zx*_GVmEk0jO@;V9s?)0%iI@l0cz@$8))7092_=7IX_Jg5dNWza*bWlD1Fo%AR;-MbilQQ)-j9TwR7iOQDWQf)Z2ZM$u5tQ# zSB+fFlEiz)R~}F*UJ;VrA|RkT*b`tE_VM*?IM|7>$n^DV=`oL*RgkBv zYtHzR2R1#cdT%AzH0s~*L0%v4*P=#SQXok{EzLH*)h{mzP`p8{aYB&Bra1}tvn zXK~S~;z_{MX4q!Xd%oR33k_iI5(Q&X5|ZC^m?hl=9L$4lcIh zl;_?UAKaYrQx~k{VsgMrG6<8|^%Tj!SjPYsiN2HbvD@}2=#U?D-k4}$0bwF2R!)BC zXIEbtz&I_@zD;lhZqV!Gy2YP0hesp}r?N$Tfq-IX6h6ONko|FbjP**TFKZ2L^7+)} ztRw)bZtHIL^C71u)-Vn?{21Xpq4&l;L(sPw{Lg1P0D*~ zYgX#qsDMQ*=r@q0W#}(8uH(5Em_I31^4!;XNp;a1beTqRvtjU$3>y+1>kilXkc|Jl z#1|w{Zg%U-aeth?4)Tn9JofW53gwI3#?fG=7NCKhZawQ;8Wz(&o-i6_S+|=Eaxr|Z z6^00(Pc=3mE3AqE+zY3^G^DgJO*OJETaVv3rQrmmDYW^MnwH0YvjN8WN(u^NjTX6l z`WQC|xb;T=O_0)=@?eUU5<45fUx8!|TvXup!f520HIOL;gG8Sta@8O%b|#rlfkBH6 zbbnu1Vsq03VR_8ef-Rik^*9=27e3t@9Kh(6NCMb+hOkenpeYTM@I$#`+=e=nxaVHb zqv}xhBvBa@eC&V`1IiehP$gB>Bpf+&(zB#DW+H49q?M8Mg+)gDlYpcI+Qoj1j>=2^ zr|ZcF^|A_Q|4C<{R$|(Cu$ZukJlC|Ap3V@hv5zr1rk94<$07l#MRD@99H+ykow%Ej zQArSQ)A z#ijcneZr5*>IeEhjVH6Y_j=MkXJ;2<)|}_GCZXiTX%N9MEls~b-o0a`@QKczu#<_s>wj(>6C+e|N0(xz4lV;3>vfYDo5<$Xu*Dl zIX%5;5TDurL2I2RH@{vaNTr1B7bhzT*S%&M7L)f^N8+^KxxK2Y8jY-CR?hgbtY3Ce zk|TvR&*o(Zb*JH1zLzeYM<)aB%oWA)NAF*(&W{$^8SBFgFLGhGh}_(zH6ElTS_HHW zb2oW3o^bDKh)n_qhXD~ut8#u_dp{K9cygukUw8(Yk#Q?-$5I2MMt5Q3IX)J}_Z4lI zl3K@!v=bIo;g4e^?1ll%dG5mSk9EEz2Z$?ZH1_7rrIlH;{bCYN^omFF_RhxPwD3iR z%oyQg7K1h}vSI@e%KWGa#%Vk2TQCj;9ymGK%|ly_Oxq9y@&R6Yis2GKQG40Tl+3+U zNq>jz?D#e-!m+YT}Py7SfbFQ%yq+E}A~{hA}IruX)@OV3E~3HP>K zs>H^Bw&5$%f#Dwl1?<`&r(lkTq5;}65_4^UpFq1g?@p5mbb%?5s4C?OJF>)x+q8L^ zPu`U#V}xVfc6EE}2x++0CL!Rr7@6-kHe0af&IJ3P34v3aT1FgJtI>gNfj~8#K&!Z{ z(khw9R5Fm6lb?NHw5>`eWCwr~?3=Q(vH)9=smW(gWVb$X8!fYL>U$f?!pw9P?`k5O zu_zCBT2CTyJl{q@*~my(vO~ehXlgs2g%Cr^Zu}*?Mkyfz@MjoX9|bN(BB7tawgECQ z5Py0z>pmcdnZ&A5?~$*Wa<3Kf_+CbA?61W|fFIkRaDx>|S75{e8XXM3Sh@lvkD&Hz z+0q~Q|02K!Ff8Wg1p*r@wUTwG=^t%YVAKDzSnwY;g#U&J>YH4ddrXXs>EgcpTwFyC z;|So&Iw3&%^XzCYX256pQ|M(}Tv7z2KTG!0r%xY5J?$pSS1MBOfZ7!uGqV+Xss>bq zh@?(kz&NvEp;E`m%4ca06{jBbM|27^a-QxDssTiFveMBIE_XALC>{L$I07;d+n|-F zPVf1omRkyxxB>3!2~bj|u;5JSxo=kzm)oMPN2j7sJo7Wg%}q4g@6bV3UY=ImN1XyR z^n%DjzB3fo0DGG-gU~+dH~<>d_osd4ZYoBIz5mrOPuo*R@s`AS-i0{|;A;DuGp5FO zcfyDpeEj?ttFrpf&rWhQs+>>(nu6hxkwa!CGBQ7I8VdezSKq_RC`D*q=UHxaC2Asr=bH=IfcT0rwG`omMjb@ILehSYCC>Oqn z4UeNzqEey5!%ehi*DEfh1ec=IuH%1*K3gp)$>uX}e)m8&Jnxhq)c=4y@xby##afT> zOyN$0JqD=uvnu>N(GlDPxdimE08In-kKVR2A& z&C>j`5yDb2#0ZFF^Tfpn0=ZM|MtV}E2HnL;^lsVzb{U;Uc6O`N4gNVAl@8-(O>fB= z`tk7ah70v~8xE(%e0Q={Vq;_J5^+K(K_8Oy0s3C&#Y=gw*uR`)=%g|Fi6gGG-$JDhnEdTV82C|@fVh;(}`g@=WW*ZYD@B(9WYX{MOag zg-$pDS^!*L;NQR!NaWBfHfit!i1@KFOI7ap%3yBJTb8=d#&uo;NzQ@u?Q#5&&Z)pd zRI4DO8wl5=OF>O4eZiZuEJ)>foVWsc-DOyX@=7aZZcRF!i;MpXwkz?uWSPD6H(`a|G72r7|-!bLW-TV_X~pagqBgENF$V^r4KqhG4tKH$_qH z%ztFVrp9~%u`{JGkR8dP$7c}v-LBCpUb1)baNNdVuMu&n$r+%CDAL^C?8X`27Zn~3 zd(rV;FM84KnxxnIbC9z>z2+tk8<&vSc$&?hQy5HDGmpd4_Vaju&3eC;P5;StMzEee z57zas=gn`id`i_J{eG>Au@UxMRrmR=8RD(>x3F)0=f}T|uUPcZosWe@g<(}yRfSK$izqxO#3lCYc$?_V<*(FO-RwsE zPBcRnpJt~dh>h~uVxrt!YZMcmw(7dK^+8DKZC|~tXJLkxObb;k5}s=#6~-Kx5QTO| zB-6MJv1-@7*iG{w)m&6&-Y(_$j(u0==S(*)(8pggtP~Jc{>!!W*2v0DrB-YUnW>=3 z`EH+-+p%4}QK@+d;)b2Ir1R;)q_eQY*b9?)>7iYM404gYGX;zhFfAuGJVmR=1UG8S zo`wH6>%g5on?{j`^f5)f2KaNkI$<5)_M(xeY(q1(( zljXDh8xg=({yv#OD2D#Y+vkaOmCiGbF0(T3eV?DD1s%=eV_xZo+*RZVIL9ot?%v<~ z9KYTadc&gWmHXFhyZe5roE@$=Jb2X_m@@!mX6 z_|NWik->Vy{Z&Q%0_(mExtLNd#vXc8`500-r)|Vc&`A++7vSaF-r@$K>|b60KhNVG zGC#j(ZW22sjPibmXvfp~OE`Es($e2bkmu~%-%O!rLP4iK@E`Q!2LOv#gg<_L^?1vY z>IoD43>g2Ewh4neuOg}zQLlBIz4m_j%eW8`BMNd1q${bz%(zoLf{Z5#5sr=ow!Z~; zC56x8Ek;Czn4Z(P)?;tEUsIaDq>L&eSM|dej=P=2^o9Cmax!%8ir-3K;}a=GnsI*r zSz;>X-a2!wirb_;%o(2Fyi6_uCW$Ej=U`C@mWpQ$VcV$W1&Zv`t{sk|T?v z+Vo~Q3^93^@Oi#$ZzmBls=O_Cxfk4QN`(8JJ9l>OCdTmcs54)9=5W#p^TG0A`R1#J=Kg7|lpqaO29v~EZW8wxs2jlF*{{6$Bu zB@b9F{szg}1oQ4TT4r}j>IQaz610Sp@M467-o=;dwx!H zs#RR_o-aHB=0lil+VTwIm}8nWUZ^j?Hrc*Xi^#rj)svc2<^Fkc@Y07{tlD|%LWC$b zHkJ?2IHJT=18}uHVtQ&?pxYKz1L?X~0HKiBY2ZIL%GX}8RIhPcV8mx+!_~)!D3U8& zRf4D-oUf0U?K>r!%5F?lK*ZLB;yefSi8v5ijPzN~N&Jm-w9r%fla}{#nv|kC^kOoa zsznAB0~j7f7lkv;OE?6gipk!a)5iKVvb$hEuc?YG2W+>HbrLIxZ+*knEn5ao9+{oN zDDRE}=T`c#*_)u9o9#vy%FD*Cov+En%BrBxe?%Lw^|JVW2YUz1v*EGb^?}UT*caX0 zg8@ggp|!1a_)o82-FsF(S>>F3r9pt>_T9S-W{D=RniXzRJ`}XOO8j^QUnf;@ow0%z z!+G5;61R%;DcSH1(89vYE_b}h0u1`6`LYCe{+q;|Nn9MCqFqBvo7s0XM`l>9+LQW8 z8OHsHqwZIcb@gKpXQ1AvE5x@cT8J@pY-8=mYv(16$DQ9J5ikTr>)FCi{7-s)5a#v7 zkE1sAQDlhQ`9BrbS!Pr#zn=dl9(!-^2@sZj4ZTRq)JbP#gKm)lf6l3!C84tMvxRB7 zc8@?R{DL=T7c0-`mNx|i%nT{AXp4ri##NFSWXnCseFYqOa=h7O=`Vxl3hYqeXkmWK zsJbeQv53@AR~*4bKovPV(TG{3l(^gt!Y_}Rz(akmGMCvOO>b`wvP@3^1Mr2%HbFqm z!mop_{sdhI!-a)+Df2XBi+Q7`^6j*#_p32DemB6~=riBo1LTUUIygTLVF^g$CIgFnM%WVfE zN4!8>Tsy`P_7=nr`2}f#$9pT9#qm>bNQMj10Wf1WEsC(~<2IV1T1gY{HOAsIlMvZS zmR*#|%RxYU9gzV$1*5U%*!6H+Y~3Pbv1e5q$xjkpIb-25+D7v~dC0ezpQS3OntmZU zR*DWfJ07PQns*tgabKErs(Xe^NDZG~UiipBjsY>3n0s9eRWq&c{GDCa61U~JM~~02 zXH09OC8h|=j+O{ArhBV{xiRR|*-+ZO4?UV%aZTxsgi4DS;bml+J#{>8vD4n>%nYk% z`{?NK2N3ln@|aGGHv|ZU^~gn2ZFra>~7;3j3{;!1`$^ z5w{#gDCQt?mr=WPtkN;9SP$jD+0cs5rp%bn!Bk{eg&xR>KqoxGWGlwcb0{PX0Hx4K zNn_^tSMi9U*$m%Ba`-euBIR|T`MU)mH0*CGwTw}|!Mu>EXW}bs0>W2K8TC4?3G|`E zI^p;xk>t_GAU5OxpsRJ!#AOz{CZ7UZyyxg5;eU`YQ-&4?vF+0zox~~=ZwJSxucZ{n z%)LnDy@23@yDkW%Y!n^jb07pwSeOcG2tgQGvRj9_G3WDWbPr`n_$M%p^7?GO*u@R1 z_1@$je&xQ@+kyGAp^uJNle8_qpI!|4fEoj-MxY427V_@EFN2WvZ&@9+z-1 zBVc{)lj7>m+t?dDeUQz#J7Hh4V#r71zg`Obx{hd?u(Jt};+ync7_-)nOjw|M&_c;( z(f(Z_`fZ9NxrU^{Ey2Zpd%)J(lVIAItP+k&hr!e7G9TdEhgEdLrxhinO_T<(-(KP_vQXP0T;M*;^4%c#Tv>bZqp8WWe|c-R zNwhuAFQz7zA(Lscx&EBILoxQF&KGS((*U@hV*Hoa%~{|IB?FJk3(e%<-5pA+ll50` zQQ0&;Sq8fy=xl#9hmJ8#0-hBY?{HYxdE6L#)7(fD&N-^87-iR!Dn$IU>v*lmGP2it z8U`3B{<9%ujN0zECoL@)9+gSny8ZT|4(lRvLv5*03|(#U>l6M0Pg{iV>);;As9LLzWTKOe9#t6J$Q36gmUyH#oe{8%!L5|#qJas zKkwVc_$UVDhe}4{%%mg*G!17U*ZEkWdlmCEaPWQUIe%2KL5e&WFD=qg0?d^hExY2S z4~6;wRCGq3-J_;1I)QLwG=0Ay1zR%>vnaU#J-4CD10B{yW4qBz+86nW%Nz321viw zX3IT9a8ps7uulH-Dvy5J(YMldABTS8bWL^YP8CxAAzUTWnO+ukPbV z()TaQyWbXEay9NuKhUK&}WaeecIvn238T6@z2}BAB#tWF~o6R-e z3uJdXqb=?_!L^p9$ zoYAkwXFJPH2B3o=LuAtDk%#81Jj(l=hef)|mq}!ZUUOT&YEX%wW_+(G{Xl*f*y(oW z#LYbK9D%*#E_rJbJVga&K1bE!iH)_t8b4&QUt6M7Os!MH1jp!Z#yMgM{LHv&f*e@zwoAT zH=zSF?2KyMV99aX(E+X!4~>CQaNv1Vq0=QpARbCYI}N@Dq{;JjT}c>#cgjamK)ml+ zTo6CgoP`GWyps0&rUzllNt~EpuZcRVl2X%$zA-jEKt5441O{LYr26yMyK!7z$Knox zR6T#vjpPVjx5-~Cs~Fu?c_~b?(V8M}4AL!R_Txe{8g188460o| z6>F9|&zMBFUy#a5JL`RSy*8(d5VE?QaJsfr*6%711_j3KNl5{2`NqSA3N_=;8e@7Vuaz zL&cTrRa0&e^;5N;YXG@eSGD!$4UdW%_MV!Mh_>#0uY4g3g{S9^~~oOtILsaq6dE&K;n9^PBCjD10BvdSJYBu?Wy z9|uN-+p;+PiD1JSFUxL1v_V)IkG~vm{I@dWl6mP~jym)$E^;SIcSdQ&y(-)bepI+Pu0L?_W__rQqUI&U7w?)uvbylEu zJka3peRh<>(|Gg)J$wURU^>Y@8SAyj_BR3inp9fP4bt%7r(+gP)(#2JXdWeALQSRW0mK?64G?hGGL1aXMre z!@dTd8~__eBN_0#w<+qAu|b7hPACMs-A21`H|Gl@goaIB@rMiql`i6LX`=tC5Cc{r z6Fi%<<5r-2G=dQZvX9T4Dfv9eQ_Yd5ow5KskK@VH!u6hV4V`|!Q^IKttTTcw+bKJq zZfEmH2;qJf#Y2ZY{>cn|hyxan@ZKpf0y|uc&P*I^lh2gQ2fkAHsWuv*YCUu4?{X+V z=78Vvyz%()Vv%1Yv8T%Ksq=@F%KJ$=E44Ug+MziJ-=;NRwI zq`&$6&wT8XakwzR#P_zgE}#K~_?Fr$@=1si7N0hNPWD#HHt>*|%>ASA_Lq|WYG!dy zG2kH=bCOjn*qPh{D4qf%-Rzsf_f)SK7#MJIarc|$9_@iA*>y=H`~h*`+39W{*dwls zWx##Tf6V7h9&Oi)C4z}JmM^&L+|n*K(l?!ApwxXuHO`4}wZtHv2m16R>^^>V2cxjX zY&e})GE}IqrGHTEAUy83GtBrqRn+r~K!sp_GC+G|DG-WGH)8jbhm#bZ$naoD#_>|F zinPMh{s(*S9Tnvg?QP;wK}F>VC?X1yGYF_iR*;+|gCr%2)r z1tdw%IW@6KJ-gwY`Ockh?w$MJ%vy76xm>{Ne*5iut9DiG@cdFl3LUo$)c%r6ycI2a zDCjDaH`<@0T@9-{E)ffzWTmtqjixR~Q;@P%)eUwX&VSs>J{TJfWou+`HtOO(lod+_3)woAX%O081!;uL)$Dck=ZkFr{J9%3mY9dOPpz6T9ID&oM)@CAY? zt(UFJ7)wd{L@IveW{ri<-WJCZm%V!T$qOWZtJTF+6amS@H{Su!J^PS8Q7mTK8P^&; zQR^|QV58nSsjptS)yZSUU(xr2cb2($q$gKbbXtGDGameaJ=X+On++aXvB*2JoBLpl zNellSZksPAZm6I7x0Ex}C7&C}r?X{`*`^s#5>pTH$d`pO-yeQ9{v~BR#7=~Ag=CBW zXrnHK=_8bU=Ur~BK(?`=8{?>KS;c$4spbk6tzvw4Nq$Np?BSbV48`B7K7z8NXFVMu zAw`GE<5ezTcv!D_-?GvCESt!GKy#C8LCnkrLKg>vUuiiOJWk$S#BGlck&XQHqhypS zliOzDKFUSBU(&!0VwQ8oHd*==S#rsZqxR#K2$WUk`6L8HDjHXRT`w>mkTHmyjz=*z zuY}YOaIPD8wDZF@hh8B~Y+L{43}(qt=42b5MFhP_lOjI8FOreFShu&FQ_Z5j*spHh z_qyc@uCCKDp-59=wnstnxU2eGnOLUwbvWs0{J{}UobggT?*21RMdKNL^vSU)nS&8E z>#lI7^0ySE-pVEGt7?$<&$l0|S(6OVzcG=Q%gwO;pNtdI|BP@sco7ETc8~+wK;K@jbns#vSn>$3kQ>g3aGi z2X%ly6P0`^S}q_T|NfASNo44=cZf}hx(s5Ivd@C|z+bm4?}9D9(4A-Ts|T^wF=2F6 zR|*;aY&C3A32InsqU55fHH6z^ciIRXJ)SzMYJNj564-s|(j^Co$5Ku887H|_B3G%R zg1?V^OkO#8o?mt&PK_+w@}K2sw&b3GqsWOYDlavR@rfmal;%L8w4@|19^L@n>xf=K zu0`9pA~9&<;=x<8pn*AD%%V|pANOj(i=msk14mB==?3dq@xSp3S@A+3Fg6^F>5DBbR^*=_+oe>X4t>vG<$>r5;r> z#xo)OvY#_2eeWrc85hTM{oS^sp0+J$FArF)h`;=;s@|Z|^_hlEMKv?7*4H;XTJG2O{#aW%I43zYjR-P`T!}RKwSj!2t>>J} zHFAl#h3=olf#LQ)ctLPB{EOOEvtiS$2=VNJY|YfkqfZF%MBIcheQ#YIr8C~*X_i0M zMJ!=TJ;-J&hKLvxm=W4gGyPr2D`!bf57#?u|4NJbcec#`R$BY_%m1e+@t=;v`tNkn zeSoR8G%OT+D<`lgli;>}JlkFx);md`YiY!QrOmot({!}s5pomF?Eh&(;BynVz;I38KepHx)7 z+k4AR(-GnsjCM=4+%XML2oUe8FIjBtd)X7tQeE){&EJ&L()SzVNhIBf+M5Vz+b#sx1)R5GK`EeNJ%rU z86OsyET|X9$ZjSj2;(|arKbpMOYqr~JMPuKuP&}P$CDNlx3ssmRxw+f`{fr_*eK(R zKzmXoU?6pbuUcA+BKE297)7ERX^~@|U&7j_L(jM9rVCdJkPn6)o`Lt8BfszH=OWbXHR`s5(x!+YTWrY0pneXG$HwMny6~Rd)UMcMUwbo>h4sjmeP;G&%QT+cMNEV@qHSjMLSpqF z-nQLw8gmg1@x?A5$ev1tp+c@1+x*vl{T0lIT-Ru7CMVhcjeTJsQ*ioI)2EUN&7M}F zKtZ7}j^Y)WC5{h<(E|U>#@n5zeooz#FeDF^&-EMdmAz#?Iw)xn>8X0lcDDcXJY-qRL(ypg8(b7ZjLYv`$1Tyx+*ui>UlE}{H<}bfyili&G z@2T}P@wA;kK0GLqCRX?=WKE{_k&87nC}j>E`=VNB*m#MdHJX6lc3V@AfB~8TfsSrEN(}b7ax5? z9VS-9UL2?aX8qdY$qQiHAlU7z%3Svyu`F)Z(<*1#VViS=hb?xcg)3Y2pJxbPOrtJ z*AkhSSwTCL2*b&!zJZJ9x$I+u+D9A1iN-smC`4`K`GXxx`)Yn_Q&&=8jOkfd*9h8wqaZsz$j`2Rr;dEXsQVe~mczgcOnFgZ8-b_&oi`V7mfDUGy zDcaxP?=}39asxsf8lfIJ7F*Ig^KRVBCi|r#oZ~4l@^2(Qd5W;|KeL-pp9yx;5fD)* zD3MB3hp42chS3MN@g&KsnTMayy;I~YW(X3_i-< zz0dz_jRFJm!?F+pJL=6bk6gomAQ(E>uSmU(#vfx)@g&>~YbaCW7d%mFWu`FCmkfaD zPkmE59{=?Ge5TjVM?XJqhkc9SiHSV@*8Kx+rwTjptHa}GZE665A%Du78?*15zbpWJ zikg--oJlUpCL_cw0yjGUx$?S=>L8F2$jODS+Zgj+x{dai}Y0 zO-)V1y}h02hpBEk-z`wZafqiyyC&I8&v#cAIbH(}1@ep|STyAy=XrQT!fDrs#Ly0k z>Rl*uY>O<67kTV!a#vS7GZT*AHF-Xyr2XfGS^`2x$&c;aqKk%qzD2RG1MUuzjbW<` zut1sz51yX0cver#B?{OYpoE-Fi@{Iu94b2WRY^%c^~ekPIAmxjF%2>v)AufNML*Q% zTCNBXk4|*eVq1;hOWmyHQRqq(K(~ybLLRb>t=gH-H{tLut()^gy;e|+3k*reP|$$8?$345d|tkcHU)kbx$Cg zXSlG`w)xXZ2w!f@6K-x1SN}GZYXo--G0&e2`-cRne?+#@||8y0d6fNcYaCH zkUp_V;i9AjnBzmM_AO+N)w`Md9|X4IlthHY7$$earTQ$0l*StD4}`+Vv!Lc&m7@E%YJqv7z3!dYy zF9wDU zw}?1&@G27Jh;ws7KMwfkjQ2%G<9x?KlFtuV+f ze`P%vQR<4a-8t4QS7kSf!YkXnUaG(^4N+GOEKFUaz^0O26tfbI*aFCFn7*@Jd9gL*{=oh3j(O#$YWHwLX_meQ^&PUr2Ro~K zw&jN|d(EPejOrq3DC9DA$kmX>ro>KX)1C{4Rqr&ryV;T(rGJh~DyIpR4@1Rhp8fdA zBe!qEWiDO_R&o4eWZgiK%DeeB!I|pMM(Y){1dMI7lX=L(w~7KzNA*Bm3>sxnUqKOR z$Ft2oGS6X*oN?owx7O8e#w&jr&aioTGt*5we}8yAb*qmvof-W)cQr}?7`$}a*(N}; zY-Ob-=YKuK${2Z!%-m+(Um`(0ca)rM=UI27LfftOWH|QH0PfUu>>#J=t!mW(4p|rR zZvFj>HMV~y&QM^62WEg^&NCAXfM^U#Y2V~9@g}J^i;P9rmf0aHXBgDOVn{n{bbfwxs-U5`T$++l-JmInl9!&e!;?)QDw&+Db+eY1i{!s0hcW_8Fql zUt2{)1_yVWt^ZV})enfpro{}ea-y45XCYrf;XOPTuh~ZGW4CEf%`W@VE^iv3^!%6xX35reD!TQZoJ(EGgtX{ zGx~a{ki_4)#(~{KMbeptnGr+TAtpx=%rO%3B9BkJ31}IWvOeYQR019-J#R&0C|o&E zgY?mn_uya~ILZuv{6IR9GpZbCL&Stv&QR~6tZWyMABz-&z2D@J39 z6W4hDiP^I1c<$H3|MpyG$BcFeKG3{XY@ZcoUSZA++rhge@bUg{XXbEz=mAygHy4~UW5qe@bwM(0A&h-!RiHkg}1mw~> zF5jyiNH{3`<|GlxkU>(U@>@CA-nK|{&gIKj_E?lD5M7CCy zSdbH)&?ZS|-YSakh#gHL39(kh(!kji--Rx!o`bz$NILE*?+YtPw4|4gz|?FrdS{k8 zT$G86cy{ijt4Q+jItVo^lu&7)aAJQ}=L zP0?)i+DK3^sTAV8=+RQ=;c5()-kN_3p{H2T*K292Z{u%T$Pf;D0SbTMF!yDv)vZ0e zaf8T47uBkSHW^7_e?_`WMLDFp6<2P-CeQg*F+P=d}U6iY_f7*1$8w6xOEq&8g54VMIvz>Dj>j=tGj+T+H~4%aK%q-|yGN zpBgkv9qH`51Rjg5^VwwB^~LdX-QTuYAtOl|<-<*7Rla3Ld_v92GTp%ws+E}3l(o0D zwcNAV2`84DP>FwO18-x`?W94aGd}P;&%h$bE{>7_ft@mEYZ(1E_E#D%LmO!amCifg z2=^tbip&|@6w2HF&vD7&8>qit5y zIpx&T({t0S{pAYevlPHHwAB(q31(|!hk-OQQ4z+6d?q8Pcxcs#jj80d#2OQS4>@Kp0z(?-nBd>fcO8{=y^`sjsU` z?(Vo2roTeeVmv5gF*zlSa=a~24Mt;GWWbq6O}f;m?Qys+AV3u&yds9v9ClZ%w*~HF zc;CaNb2+wUa>*~1F4m+Hy6>mZ!G_cO;->iHTW4PG`+-mdDN%h0I1;466Z5tWRq zi;m2b$ksdHS?7t8>y)FFa$;s%tY*wk<$K+;TsFEe7kjrIJvIkrfw5 zRj*dBL~1*4uc6^c3wz!d(4RM3wM+9HS_0eJJ=)S!Q#*k3JUTfC`dqfU({s$q%Wg2k z!u2UDwwLs_4!~hjg`895>v1W6T#Su9V}l^)XtBP@dMk;E=!*nJ%TfP3)@lsm-RgjG zaCUXpc3^cie5{nUG9qe!ytf$~8RHJdAM{43`sB+LGb*&2i=9P zy5>Cb8s+HcFvm5jaI(~wH#s@qq0l;y*cuIFX!5%ocf{Ut9Ab5#(>-wA07wRj9H*2t(;TEgBep_Q*gIzOJ z0f((r$`0^#-t8^GAbXNp@UACRewMvTGP+izo~f8^v)|l3jy{sq7ErI!82an@kUPO1 z1P%@b_sIC{rgChTz5MSClqvbXe3U6FB8)DbGoLfwy)X=d>+7njj96UV?`<+id}-n|EB zZ?oaK{;%PT_u$Ojp}lOkHkQfxgM%_rzVw@tufaHaJD>4qj z>2R&ecjJYLbDwdpwHg5*zVAn*2D%2ey6&F}EI@oc1!D(jHBbF}N=;xNJ9@*)CXN-`9 z##0J+desH@URHqJ)z*9Q4{?UlNKrB=dKb z?f^18(-sZq{xHnW{OuoCN(1lxxj*&DPnJeNy~{-(H0f8752 zeJba(mG2J^;4810%sOv4Ac+LDluKD$?%&3fl&9(7V`f&$I2I)+yE^!5XLm}7G+TqB zzMCVdjuM~$rNegl%}JwHb$0f(wK20rw?*CRW*xGs;ulS~9QQviQVTG3EPMk4JS5o) zQ0A*nuok9}qi&!uR5wM?TCv_zK0N=1m;cka%D5}5;i&TYZ_TLP*c_?$?JLUBuYSko zTzAkZnIWR`{Y*e?5UTAWhgTl#Ys~+8WZ|5wUl4&&%L|M}Jt_iuFcH}=}%>gUb%?7r;_ z2E>QLct<@`G>M<_W>3URHY~c145w!ojd&`{W8<9@Kn_{);3>tJi0ra*hXBGprq9;X z#c9Xkc$Vl2N^L%hmp7ZKLNOyGvD0Y}nCTtskAb^Bte}-Ik#;-ZL6!gaizJ6!yfN3d zx0eN-s-m_&$CZ3-*E8w}pI!PL-8&9~0KugSR<}6PD~&WL;!kQULc1v;X>IddNMWw# z%iN%#Jp-vl#K5ZZvAxY34DP;h;bDwN{M5;~dOy$aK^yF$qQnYxQD0-}H``3Lb*V>> z%genKv};wVGi8HQT6jPjw`Wl%6K>7?a3y)~uExc9D*tqmj+f%2TELM0_Wef8!= z^_m}jj)ct5h2YC+6}urbqIxJ1!@kyVy^Ch1eIs_0Ys6?Aea98A`0(IsgT?l;sN<+= z-0Vi*qh#gN{AkfsZbni zYbN&do8lrLWglYPDBwfE>a^f-MfypQ&6J(e;Zp@d_PDcG8@~KHnP!di7gH)_U}o+> z%KAt^@J(7qQd&YG8f)zb;%;z}0TFfVVQdLppgvhOYZcQR@Z*M@UHEC6? zXnzUPdmE?rsuMue3EZ|Xs{|M2sk3@+*>Rm*v0GfHK1_X{t22iXjhKN`OFjh!%X1M? zAV`aSZ5tjQuC0ePFiBTOk5$jv^B$<$Ul*{?eiJ+qlq5VlvVz{@-<;)i)!vGH*nd=} zC`)M#y5cl7;{v@qIR7N1%m^wj>9X8NB-~Mb@`&nFkTLB$Z`o6ReG-IqqRZBTg(4OT znU(TNFri4z!69p(B)P{_)S1LvI#ud7)2+fg+rB&$r%6dk6=xAa8@Dv8o@_r~M8A~D z9ARpSWOO8M3r+1s7i!cwoAXq&oxkGDwtXMVS)6#{gOvxNzoHW&C5{O^W6XbQn<^=T1UQD(X1OUJ|fIV zzXqoz+aV>@F{RXbF-6KLPvkfwdIKwg0BFRs=eQE z+xy&GMP!V`S#kkZo-ceU+x3Nkl7PJ*sks6<-m)@srBiRUXyPT@CJJWMm;g=^%MVqr1+)&?wnIiJQ$eGEHV@MIXc9F^Vm4oN(3gh z$aLKf_*mG)XXC2G20~)QtDkdL&Zc>Jid!qpwSBOar#X(%*48f0zIQ~nr1(XTEgf46 z$3p1xl`HMZw70OD6JhO{aXWQZJgsWr@VDydJQmL!pk3h#BebS}#Qk^`iVW|jfhdz7 zlT=JMHJb3+?xk&e+$$F5FY3x&IL5jAc!_a9xv$(T&hU=@%

      E1`V(q=FaKwW_^)Q%y!9RyC*^RLmrP*V{M{)S7)VRc?JUVwkt&CE zKK7!W{4NHf{-E#k?p%LV9GfWzKxwQ8PzXnL^K${PABB{iGf9WRm!$0UF8 zQsWJRW2seYEF2u*Kf#k+yk~exv)EuaBAK_`1dmZqYxyPy#w>@F;5`pZ;A%PK)cGHL zxjbwC^yN;5|I?Sd>F}?<+*{98??@9PqG<0k68wuRS0hw$DLS3GJ+zpeeP?H<+!CUS ziMT5;tz3W{N}l?(3oJxu89dJlZ7eOLr>g&U-}+@qKVOLN?C2<(W|%bU&W-++`$jC@ zBj@2oCbDlTqy(`Y*w58A3k8YgQ5rrUx5{n%E+a3uFR<<@u{n{;N2X@PmPe~ zOYO%u1m?Z)`c#1>&o`Hw$$;Uo;MnAG%rWW2N(5{`m&VN{e1(vqxvAs(aSaXqr$+`j zl-&Ge2LfIv4x>MMx!%MJIFhgl|LwDlsTtd9dmz*gwH`7)@*~!|mn$xPCwYBdN@7Ar zr+v!VFyF+{tJ?>J)h#T`!PB-PYWjL9?O`QXVSyU@%=IA;xTwZMNQ(^`=OjZ{zZ~9H^{d_CSXal) zN_I2wXLf4OPj3*uBR!!O7}skV6&2OMW?(1m$^?8e@67HPF3#Bv*%;d0uChAUyw@w_ zvKN7%H-^O)a?S7sbSkBup_3?oKlU!!eg_QxgT*%^?0>NM8gWo;nnK8WMV^hGpM%Pd zUevfhX_d_@SB|=uAI_$p+_t!CHK%ao;F-@De3hliu7LM6cbh{>!m~t|p{I5<_X8vE zIpU}wB!^K49*_&dK}MTc_7nB>;5ck3X?C0~#idV0ZwsL2Cel6YfrQZsOum~=G>)JN z?@dFA(w4!b^M*l*3#02XkIf{z6}qj0=czqAEaD+PzU$YOC)jm~>=LCE>c;T(1Y0H< zMJ~Qg5Htmc8e}E&9c6p`sa|cF<0%$L?9-AZr5f*}w6UG0m)F`oG7+u#nX$b|pzcJ{ zp+6%tK_c7$B~zVXv9-FMn?VE*1dz1EADV4>5kWt8Y|5{R`6I;A*2R0cmY~aK9@+AV zU%hUakxKJr5W*zXZr0b<7X#-Gg4#x)KV`m~`8YztGeuLGdeE>5g(y@wDgK_FhVJ`1 zIH;bRvUB(D)Wd55688vIc%R#l_nLCO?KW;ICqCD&vcqSiA#-@|Xo#O6PzcXkxS`lr zjv_WTH~Ue+9*(fL7e+{AMhqx>1ur9OVGfJ8ndVJY18m_*lsqZ78(&8m$M^^kMLuUy zc()KP;|1aHjeB!%Fjtv!!~|^aiVJW%kYQ%p71RuB&xB6{|9F&f1hW-=bRK7=`Ep$5 z@I^*O8d>DyS(DA>{MmIzl>THhR+gM5pE$TzXK)_H4uVZMDUW>cUEUpWDp<&Q<) zCMV=|ma8h&-F!&#;4#(YvrlI!@W+9k3O8>>dsU+sy7R;Z0>-ZYQYYm%_f;>BE~B>% z>Q3&O1EYEnWt&PYbE|R5&7WdYdKI{#(uI@@9}TJw$|CY^?OOU7 zNy$DsXUU3%g~FnvD@-r1SyvygDa8uiBh>f~`;`e{HwA`3o@eTCX1t8Z8mCUB&nRGT ze+wTfGYKUIehOgwUpjRf@HHm78JG>s_8{z(8GH4~hi0~XL=St6KX`DVU9K_gai|z6 z)<6G!JQrJqPupRs|5S#=P=@_Elf;}62+NrEMOuwJjvwCBWQ=+QbMaewMdxHTsyJU- zLF%OhJkqDJcDEV}f{q_jP^5Oh4Gj%dB)1pba5dSwxY49}?($2$*b9 zJ&6O`(BGSeC`9x?)qbH$jc<_p(M5CTFIpjxna$=>M(7sFPh9z4l2q#)jQEDh(Qq9q zV)P@1*-!tdE_Ix&$&9AgK)uYBd1N}q9`BBqSg5z$)H8S`h#I#`IJGK~TAWaNNU7R#;*O}}@nYnL4CtNGzWkQBOIY#F#h zP?DfeM{R=rxvKG7umrlr1IPlp)HVjOcOxd_n2lqY)YKw3K~z6qJ%0{FW>zG@#H6!6 zYf!PwLqQ=!P1bv{=mg|fff#K&#jjvtx_ggi8!j9d$CdKFEgc#)mi*rRutuav$vWam z8|FUZRjH_}wXd(QNt#(3%5}R2=LAhl82W+>9d;W#Z!|})qj-W1C-ens2EZ%IO@l}w zSs2}*5Z`Dh+j*i3#h0NZRrHbW=Cf#4EmqNlBtI<%gv z%D$Cnc|2w-F_1E3a63i;V$kT7Rk{#nvQdln>^t=Vb{T(tNSz(nZK)C5TG<579xDmvOytcfSZv@u?u-|}ytbt4n-Ss#c+jaJ{o>+1LBo1dGz zFr4B0eU=>c{ys|x?RSt1k#9RWT{k&E48)g0!;b?Zd;eNTUAX#&PGy^v!OYB5u5weu z-b1?@T_$|$PQm&w`BnndX2V~HfqwLJzLO>)f{UtKB8nEq0ZGu{vNr3UHmAAqprndm zAy3_EhI%eY_pmv2uEQ8rTSr{@RdJGy^f+T z`GrcYkwnpubLBEzwHID6CnRHjj;+)-pq$O9ngkaNcrP~x;6se0F?}&vIF!W42DRoF z&i=y`@%);sCvw8ygd*f-m(`<%wSQn*0wNeruyKb@lv@W zAY&?w6hF2Z&Pzj!3)*zwL0!jfxa8iNM zn7wv3wxP74#FEG_eB>O(i1WE^=Y@S331BOkBs_qcc$l67+Drbr+KvE2fCUrk?FegD zytei6Y=Q-2RMZSD#s1d!hnf0&mGNHIsEJUtI)&a5G3Gp0!Uetg01jsQaST z@=vVjkAaWiU1q)UB)mHYFU%3Ue``_F(sBwhL>|P4&s>lB%su5ihI#$kCH*GCxnT7#_W?vY3|4(z$=U zK=;FXEVq=b^giC3FY+y}^0oRzoyYIW@;0|IGEZ?_6ARi2^tu^ zb~UB=;(ouM{vx{nJGm5+M)(a#6-!m>Y(4zfoRvNcuz1#{^0DmyaNNvQ#_y@ioIEn;sOA(Q z(W9{~x>6+r-YdU86`uQ07j@3f85g;(9>bwSE|N7sz|DH%l>IdjmSaB5nQUd@47PFR ztMfTZTs*)Xvsbd(quvU-G11DOW`jW7jQcFJ-KSlySie~j`Lq}FWUa(`wkUq8)0jcZ9gXL&v)}m||pN0zS`+;&HQdOpGVNBJ`&QNj$>M)B{ z(0%YR8u8LTumcW+sHmR!(XVRh?!BMi%5lpOVS1d2OWTf@K}dv6@L;n@|1jcKZ`&?% zZfk+?Wnzw!W`_^KYaE?@VUi)%4a2a=w;lQ3Z0F`7q;&3MKH1}4w)4j`Cd0=ft&(LA z+Q)M7l)`J@Rwq5no&JXwa6_MN6+8J!DyKNnJaTHx`D^5`c%rWZPZ|ZJr|HMj>Akff ze{b&4jZeM0M?u*K&}FO_ykJ@L!sg=oAL~*VX<5UayP22F>Sd3C#IW5QIvdKrSFPCl z<>~yB%RFFtHGZ*SpKDlM)SW|fwnz4iVS&K<A|N;U%q#?rOSy z#j0>b4~uG-=Xy=2NS$|hni&0ka`{F33qAG)6LJK2LNE7M1>Jnb_5KLo|S;$@*BiUG26X?Zw-u_dJ;2} zKghm!fr`C>3Ir}JUsC5f@5!sjp%sCHr@8I>@(alWsSC*Dlr~&aY z9N-E@=mX<3bkr1UC*@<=Y@JeP8oO$MD^H0zVRX{ApB3s$#dsUgG9uZ5HT=VQQ*FD< z0}^g)A6W~UF!Z_akBf5j)`68PrRzxkk0Scj0pr;0kGiGCr9i^Y#)q0GoNakm^5ANU zd^hEjHB<^mtpa74lz+Y8f(4aF-}`2Z)_rcz z&&OA%%f?)~mQtZm2PL(gVAKBzPl$ZEufcMkRv$|!1<9!3Tq1Oi5m;Z*tq{1qe}H5# zsWw04VIfGw=3>@j8aV1;u;RV7oy~B;N7sFK2xm2v4PjPJJ@IdO-OI-c_x2 z94O0ZZ~yD4f6iOCDolRu$Lq^mK4K6%m(mQszq6+o&AY3W>$W_7`RX zF$_!^w(?7W6N?`OSo~G;DQO~asBHUOFAWOu zsp*6}Z@4>gt1f<=i%4?;9{bQBoMYYEo*2DSVYLvgFG@o%4ZZh+AdT(^(FCfu54L9V zG9KfAu)KbwUG0&Rt$x>z+phxuI-}@r>)|5pOaQJ$eh%{a?X8#51}jeZ8@}%1Q`gIk z%)GHWb-8^s@PIup*5!AM`r;v)7;&l+S67J-ee5?GXX4l_3cBp&jMM(a^t`D7O1HzRHTxz1*iSe6e!=c^&L6b{~-`OiQ18K2;bfbQ!H;*luhE^Ja=>Fem`@SX7=dQ5y)tUi_QI-x<{p z>L)K$e$In?0NBSe>*Xrn7}*%l;pNGCu#D81j(|#@mNYaPbYdkefx%L-F0{0qEflj?aL$B809e4C4!1vGZ2Vec) z@WKBLAN-#lK6nSTCVuBF^Rs|#2gCdsV&ROzdarp5vZHO4*G&zsp|V7ga@8QzySLv= z5(EU&&Tyi36zl6mLI`&7)rC?PjD|e(~ z!DE?X%2_YB6twt_Nw0zY(S=0+Hxt2|tiCL0)|gFXj1Q{l23tG59w_1U;%WEAgQh2cUSNFpe)am+M_cWVs>>@|SQnb~cj;m1Q3GOp&@_JKtn@#jaluG5FNY`cfZ<+JIBYHr4{YCCLXf|BxPDnDw zwo8UdKXW|^QO%P55}*Z==~7{2{Tm!va-+qXQc6mfJ1}}0e40|4SS-s8f_Lq?0DDxZ zQxy^r@Ps?KZg2#-I`+mC>Wf*s3_Q2y=G9NL~WNeBzb~$Im3FTFmS~>a+D)N@= zU%1zR-7O`t8zijof^b5;K`CAN>MFUTedZ(NUC@NLvEn7*XI2gcXxkPPBQ@} zkV3sWah(K@0#SA-K*K%%MgTw=9`iK~^n z?Ju(pa`7xXVyrX~ex-H&z>LL>go3P6YD#lABH+*ZPUFS+fAZfa{GnDh7_&Xw* zpGUz`&~xMM@Yl5`sl=30yu5qZwKY*) z4(Mp9aBF>Wh^L?+vs{nJjRH9mlHEsN8lY>>n>wQkr#%icSu^ZBJQ}83B&KAZ+n)SG z3os}(X1{x5E^|pl1YYyZiZcAbi=LiNGenWx@mCIGOP~|qi-FO=ZhyTnySKvuzhE7q zzp6G0h%hhAM9>`o4k5y35HKWz3$#n{k6iiGLPLKxAF=qV&IRGmED1;PZceukRVpOB z@B*Q8gBil*I+v8))tPpmEV8G@RRC%fPO~;!ZR4+4_9OPP{0ne${Az>Cu{EAt z@8?|l6dH>e2065r*CjpJTnZYT8s|J#6sG75-!K_ZLfsyHYn}NCo3J+Cpc#vh(gFYy z?JF%&CF#0VHiixIi~K@AQJ)nD18#;4S$BGAg=SM}hU8xK6((ibQQytT3Y9BQZTbHj zHF$qc4A49^oA$P#WB6)WsL;N#`2E*Gp{_H0ADc|2OF)ibZ1+9MiLP=&OyA&fLOMCDzi>QKU@|j2}qkAMSP<=eC-7pc!W@C(k!|t!I3hR$Y=&4+_SuyqRkK@r$tYb^@4BYZ zJxwPPtqGgaQvEqye+c|U?j!x-9pY}d(!zN*38-x#vN}j?PBk(s^dzVZ1T_KqGRR9* zRJ5Brub-=Uropqv>&EiE3-`-wnD=Eagx6h}(pN+Z2ls&J-8+`{_2|gugg28}QPO<1 z*`2M2NhSlQM|t_)jQ94y)&w`-H-M<)A|oLpa@{y_Or%F7Uk}xKC(STIc^6cl{Qcsf z_@fj=1c7{int?%uStR&)M&a&$%krL=w67E&zt7Dz z7&F$_Or^U7UV-zLTFknwJ*%4~SFx$#cuEgTGf$6^JEomggf=)XA~x8dz1?CQvl=%@ zFbI&2vw8j|9e4jG9m}Nq4aBhlYRfa%#20x#7@ovIPQ!v2a>0@bI8}2DI#1_ltt+4- zs_;{47TNWgU&{{4;% zR!R}b6K2}pf$=&WAQjT3>-C#lK5&T!i-!Su4lWfLrdy?|z7rd3`d^3?3~(p%*=7JY zvN4$KWqNXx9sqn8R^9{E_BD(O08?&S4?<*^RxaSO-fjqcvPAfUPpqZVH zwvHmG0=_)G83>5`%`W3Pz@h`VLXok>AT+)frVm!}YT3+rB>?0*+vr@(K*W{SER(>o z>N!^Rb_v8-vuMFIv`jmL>3f%~(TaFiU58L~yoF&D7>pBIqk7Jh@)4k&huH@cc1li~4 zXmOokT8i1YH*Z!vXg*^tU37v?z+I``3Ctw8d(Q2Dz?^^91$@0iISkS|fm&ooq1;j*F>^%lL3va-1^1Rc?xT!to9AY)yF)>2 z%(aLYtM@CY>amXFWb6qAtp-R*4-b41m62#omcr?W9-)D*AgFZF(vIiDB5KIAC@j1a zKQ^{@ak1xiDHL@s9)zbV4Ur13&*CWi1{PRVCS+MbI3jC4z6sPtvr*{w_RA-5G2(l$ z?C#HSxOiOw6I*C!2lGd{9|f}&mJ3YK%2rk>2`8a%b)iYw{Z)}(nTLLI0K<$fK0+_# zSCnn3H_x17+|lA zG@7SO`;s-+?;S|JQh7{7H17QKb&T!XGPTd{b%&d~D?`qsei+>uQfztBVkcA-e6bIp zI@)>uKlq`~=jjw8ojxJjrRz97j*cRsx411vY@YN!T-kf#4uJez#7yPUHy<&nV4Gz! ziZ3v|6%85$!Bcn;PAM2=R&ejm*6n0I$k!1L+Xheb-pMLpa+E)K*5=9?Tm-*UhT^ve zr7bc;*;i~lsnb~0!xMe$-#F^-<=&En%pI;jk3ynbzsD0YKv)Ce_qvSjjrzkW1|2v9 z4=Fa2s90MckBxWqbO5OjD%#i%UrK=YVt-9@6UOnJgC-{l3N!I`-ZTjOnre&_|Q zMc^_gNom^(SQ`XTyNEQfJTIMHc@o~qq?Pvm$Bq{G2yGL9wQj=HIgk6M0LLeA(P(C$ zQ;;3^?=qC1evQ73BuV^XI)Pp+G-AbP)e0aHkcWel4hXF%+O6o_-V$S(9`dqYm>K%1 zb`u)(Z~)ba=1HMe;n?RuzJBCwPe=FNJ`fw&0?z4IMYh4hBc^2f*RAoGRb5s?v|}uW zHwWw48UZ;7nWw8Hl<$2V*rzkUncC@x@_8(Lq2Mikm8&#k+~i3JeGC$*u3L-yQqDH~ z8`HhClOXInfSThb;eOV*veaV;Y#=6RS1Q?M$J3MQVL#}X?;zU-ba6DVcbEalPru3g z2@W2xbQ5%6ZTrYyo!h^MuU0dQkXdcY!PTpEV-fz=Snnk8phjX=RF1pW(gs{Iesxf} z^M4@%G4+l%XzE8`+VD^@Q_#`Pu4mSd3|@8KPJ8R0yrp+|bxp=3(^sHtmiS((8`1IsB=ggn0n5_P(PUHfIZIEIUz!V@8V`DXghFJ zS0}f6-2+gjPAm$&YFo|~UHkRLAvq7Ve3RZ7IYOxXc^q*|i^1S*iyyvfFL*K|=%p3E z+h$50oz7CJOP&WhGJ@I8jv@n$%tqz3EDzuIEj z?oYMQ&6iYo6l?ZUoKKu?vi`z1e4b~&DukB8Ye#7K(KFscBP@+Q+PGnjTQhuHF-hMZGZQS|| zO;VvjUYEb5==>fd?u|_hK+K%1aMbl)6B4M*>`W;42%rn4m;`MqTib26Z&L)l=|Y9h z?hXX$*3D7SHP1P$;fmXr~MGgL>w;C*f zf?BnBje+)s^Izm+^#Bn4hvTheJ>+qWNB(_zc^Reij?W>U1a!7U<%=mqE=4xyRuiu^ zxaL15XmTV7cOvFCa#@hYw`X2Lo*vFFMuCpKW36_n>#DNdH1pUB3OoUT6&@wL_rA4H z&cL+jSkHmi<>fjCOw94J1z~}5f zI5;*g#EpGqy|qSdd0I^Z=X7PM0Uw&0I!y1Zdg?w!V1yr3t`??nsh@Gwk;B?c2R*Z^ z7o2xL^u>97OAvs)QB%VMrhu!L@%6uV3EL##DZ&KU4qbpIrT{UtF8$~xFaMM`ua?s- z{anv(xwC`uK>C^VOr`VUXF~7T1`l2spw!C>BS%lGcuqm%(40F${e;hB;!HxW%Sq79 za{KGGvU_r|yc9w$UTuJyW-6aRqmwPv?6#lif5i#Ul>XIXH2UzyN1KF90H&&1<#~Tf zBqNvmPf+;($3Q|4Ernq?r>SP4z7q9HiD$lKj(zt4;ERGS+0oIFb`?k7C)CXpYX*&# z6-DdT6>9~zkfumbUz{P`C;qVmw>Q<1%QVsd!F^q!x8lpLlc-r>$#E0Y7}Lmb|wZ?b9b@F zXCt;yZ{Fi|c$x65$x4xxt}IckvEAhg;9_4kdZ%i%0Tb@l&6~q&)&wzm6|oAz_DgJf zXtdDQyt{<&@Vdj;E)b#hb$Nz--=K%B8qP|3278(`=Zuu(bf#7}t`9VPr9+BX)yzb|Y;jA1 z;{db*U}D{+#ql9T2R{O=6rJ+S1m6Bw*PXI{L+>h-Uy&3<$W!M9@~G;6olOA0AJ@)* zl1=bW9Lcwzhm7SD%ku9xU}>%gX=duE$An*{6U4t;O6MOmxggF_c|cJ3mQLxB5Zt5C z?1>;7tJ*hYQokWD|MPGHMs1JGwf|B!0d@`0 z2{ue9-3uOXWPJ04#nLN4cJiuyb8X)|iuI@JY zTw%v)m8`9h-jL_FVw^F;!iq%qLzJX{e!BDWscKC?cd6^HnNTLtE4tm}k>#zjn0yz? zm9!fLr(e2IP+A2Rig$J?5dOHVFcSrm-FN|>Lzo`dy}OtT)d7HhBxCB8#$iq8_gJcq z$ZpbdvDSvTLCryBvW68t`*w|2`@ zyG{=y&oQuZ2H&pIFi?am=lpl36F5F2ZrxQ4X=|eMxh~tRdu+F$Mn&$MW8i|{8AkkO zggI+n=5vM}ec20-W|&dy?ky+#+HmzfZDV(LGV(rWT1xC<<&b!Rk&)=Y`D3~b5EuCQ z2Wfupg1b*TKGdL#0qgX8cKi;Lj7wQ(rr9P{LANTB|7ZY*a6_D0)k6AydR$@SQ)6?0 z&`ckTj1u=&M?Dl#RYj(p->#WnEEd*2VbIfJSNaql+x}VmV0q@NT4a%OfaKf+nXqjX z2`EC2RFsP{eae?mPb%1VxRG`j!Er}le;TZ9(9e=VD~oLR5I%wOL5^ht2h)Bq;j1Hq zEUMoAHef~z3b|0$_+*MzN0q&F5fK_^10wI3b{8Nfv``*on@*38*!V-I{9b!Kc=l2XG0fnNIV| zi|Z#RWdn68^YozPo}Y1rU#j`T2N58e)&-K;^NU!-hVij9ld&iG9{;C71P*0y1=>Kw zeG(#M!3j}dNe^7jqtfk%%;4*L6z8Pb{VBcp)W~5L_dU>7M`bf3pshu4sat(q<-r(Y zb%APC$Bn7Rs)KC{_H(IfHSrSsJ_?_-{@&e;iUoC5B$N$g0CSGh6&*cG^}`lLo&k{4 zJ~UB%82jiSUXy+iu@B4XcRMIu?0>oi+Jr%;)qX6uH6nr(^^GmBYDw8HqC7@8y?-`p zO^>GG-UBs(C^m9Y?_)GA50gf28ZxXjl8R)qe2J|llE-F-*mbu|{{2*w9%a5-dPb0g zl#wI=q&KkXQB5=O@#zGgPX-g5FV0)c6hNiQn`_DTf87|Bjl&^fdz=6Dfgr*?E?BZZ zh0!iLh6&PzsZXX4QvBnW{OBc3m&OquYn)S)JTV^;5ZqeECn0g(K|?^aP@u2t;5OBN zYxH2#lIXFeT84`)sJ7eHSjepIeq1@%%_pvLeEytWL>=OKsJOp9*X`>SX;-K(dk>dQ z&}@p0Wv-W`zuZ8c{G#Rx@c!?E2P+sym*^kA)se3@VOUqAju#{7za!^$5`ZnS+K)9U z9KBIz0IYT8`vs?3BSq?R9;k(l-cZn(C5L_2^BAd`_ZWl=)%C6Bi9|9n%3i_%Z5=l{ zFy{poB1$HqOrDvTN6oiH?TgkMAVD%Tqt<#t`6}`FeFC23NLThYHhZX8vQtf)(U-d( z8hqT{ndbKk=eRiiAWQ2QQ=f_Z590cNnmRBWyK@2BF28i}Ar-{eEv?W@3)P2P)Bp+% zK_5R6y|x$AolwVi`p>)p&Fy2;8=FiO`Kq7pO=nfuk>upa%1A!Up5l`T2yXTT19|J? zoCozFWYiw&O(F0aN||3|`CZuSEc#arCus`h5a|1)+_JSknmzkf3NE%lcL!KUS_C!ns-@;+eXI;o;dPEzH&`e~NOyRijDA7Q;%x7{B$>d`AA5d4!4B@R;_n`H&VT2%Rx8v?fN%)#5W`GSug3G{ zK&$AeT36>6eOY#pQ?3hQ2%kfEHU?Ctk6Gcqzm3GOhCfOE>EjCG3E@!&4_$rSL^h=9kvt_L;SHTSrH-z(#uRt5PaCcOJlU z#mk&xH3-^$LrA_p^0h)pAIl&fv?`HL8`~q!hgXy#%EU`0!J;a-Evng9CRw|w{J7M8 zRkLbPNaQd86i6PMAJGp$ik9M*kcO~thw@u3nNp*&T9N$s#sUY_NHyNpl_Tfdbecj_ zQ%ZrNiKPHIXkMU{Q(!O#Fz;j#H#9t}2~u>k0hHC=KV>a4+x@Zel*o+yAY#@_u-|Qi zKTSGhyvUIx#+(HemjwC;GdrB%b3u6=cbC`~oFJr$mw@wLUWSxy#kdFc{&$&zumJ~< zOe(y{v&~aIqel#`q&Z~0vH(>*oUY`;xVX3~1_inDFEiHAC;Qc3D?wn`uhHq^%|0eijw^~ z4aEKd5!|Dyx%~NSs%jPDO8;{c_~ozRc=PNQiiB3`GDzK` z>r&27frJNHlM|U#Z={)SAn0y997Yy9U2pq#3eJd4AxNdPV|xe-jxGG@hqQtLZeR;0 zp!G@Vh3|CE&+He7Z0) zmO}8T;N-!;BD+u~4;8tX10Ia+2P%N78FTM-LMIpWl85@e?{=1_+eVW^b@|G|$Kn}YNG`2L z1G>_PcLr7R&?_r;t$7U7lva~DKK9*{y%o;h)@ZVG(Vgi=XEs=|#y-@rUZc<&tu4#< zu-89AS;7TZAE&Mu>oH#eB`Y`LJM!fPA-j{biuhq^~q95gr1tu2k?E0Dudn;0!|8tN=sJujUv3 z4|{JJRpr~Rdz+{rB3%N~4N6KQ5|i#O>7I0#N(o4pba!`yN=^_a-6f55H@p|>f9nE)9<-%}tj0damlL#L3*MsJZHM<~}b|sOB#hk2L2KdczVG$Brfan+FfA)rw>RV?Q zPRw$9)7@Y@>@-n`UQAOG#|_s6^M#NC0R zFV33f$OB)34_!~5OxL{eTp#)lX=Xl^rawQTYypTpj!H#d@*mmT?_N_^TMfe5i)|L{ zK4=7dD`)g^v(*!E-;W8itP?A&qZ6vKnAph{^dc@^+UeJ09Z3NCVIZ`SP%k<=JuD+k z(VA&c9YoGo7Ijo0aa37v?(wNtts_Ev`K7M7=lhz3ItV<(eQBtHh?&GIlOaf&>`~lw zcZkSx1)R}8J`UdA^J6MZ`8$8XS4b^VaO9IjI;R)0@Kf8i$arV64v@ydH|a3PhWz#m zau0ku0{TK{PeHDGh;O3N0!exM9$5r1WGOZ%)-o7LC(6wBQL#=xe`E@7NARfQwGAnM z_bh8D0w5?&Hrh*DdOS!+n zM?}8;mP3h=lDSqeZx`^2wqgvY*>p`Cmbv+tpC4=qwF5DziyEw9CfLp_kGf1Na^VHB#%yZOV$H03_8pAbKl5y9ck8QlH2Lc)*3KZr>CdaAC{rj zZ;4K3#J8hnUpkYk4~7{E--)ubw_3H?*^QJksq;EqV~0#-DsCZo7gxs!zpPiRZ#F6I zb4yYED)+u!Tev^Mg3EzHqfR3-5E`1*`9OZjF&cJA8QvZ{5mL`-=Ku^}*ejVf>nR38 zfq}PolH0DU%n4%uB)@kp?&u03{R+ps@LU--8()C_9(r~64WI79Lwk<_EeQ{zWte*% z+@P@70)Uc&(Fzp>`RTOo;!;|2RSFH)i$eBerSv=iSjiIv{Rw6|V%@-AWT{rIl!voh zyl=%d(wI+@o;ai`{G|dT{@dHxyFPQ&puWy1(zWY~=YP7-<9ycg|(~R#A z+K6B8?!3Rm!zA6Swuzyw)%DE5DOE_$df#;Q6SEtLjH&4}o@~rE$_u?D0b}lZmnECs z&H1{}g~M;EDE4hsQPVHj*oLU~BN>eZYsMq(_4sOAy zg>j!qwv803<;BQXvlpw2^C(bLN_Jl6AlZjEV?wn#0|6q71v)0vNDcV>qz_QWdXrME z%?IT5AdihO1hj`dF~uhym2tOw3H#?KurR>(Qy>cY;>RpL_Acfk~G86Hn+ zlduOJoCLd_f#FkUIx4O_UP^TIK5G>O6X+fRU&{WIO;>l%<3BTe{pY`K zu$1TWq(S$RwxEEiTVjWPKym^YQkfvz4<8py7n!6K6ovri17rsd2n#QkcYkSztsDYr zYSL6KEJFO71R^W!5bGHl9xAHN+Z0P%zWKuCqDagpY{Y1RIecdkc zZ4CIUXPZMZ*k+qtlRtk}$$5J_4o*{~9|Xc(UG_Fqk2VkhbaA;mMp`cs zJlyCtcSD@w-|OH?c${kaHl|UZ0k-+u_ZI+mOsi1xwky!*i8JBBJg7~A)Wg0B0Sy+U zapjEfc28)rcJm(WCOCTT2NU_^LhG&#g+b;pAe0CQX#0vZT%Ck*Z~PT5@EA9MrBY%) z=>HKT!Ucn*eAF_Vq~RHBhPsHa2F5K9`rk7AFWZkoSU%if_W8fUQ2~;{u@H>p@7~g9 z0$4o8*R(Gi0NSaFc=I^?BU8#R@ z2R}SV2a&6il122l_uNZ%HhTec^Nu@1T!l~1vtujA|Y>Y z{_xG~i)X;Ka_-{qX6ht1l8tR1!9)n)z2^dC0jV2aQ;$jgN#Z6B;n(X*?-v*A=I8Xd zL(SUFyh_0O8RWEoG?*<-9)Qiv#?~9io$&jU!Iu~RmyLkmwal134g`P}b%cnE)73k|0m|^^1^_%9V3;MIS^gf@ z0?>AUb}r!Cfe`)*cwh>f3!MYzT2b*U^ZsYRnZkFQXqFb31FtiLp@*Y|%X!Xf}z$xW~cl}1iU1vfSIniT&RRmSZbo6f^0Jz=EvV7kF-rnGGi zjZSd7y;#(aj6$L|c<;d~k*o>!t!tD?>!D?0cqUdzC0oUpndUbKS zK2kJYBMatFV#Wm*%bV&Ti0C~aRouV7)Ekv=9$Nwmx&PZ**VT8q9{TS;P(qgQI41q>TjFd}htYqpg zKzrPoLj|C5OJFHh?+8f755*sVfl`z0aZ!7SvDh)#w(XMQHG+KEzV|3Z_m{ilM{^=& z_d(}odF0o0<@lz*uj1;|($V;3?qiby)y?->Q6gA_rg z!#QEB>)Tgw@&C+Va835IwDh__tJ>h)!6fyjbPd2XXhtvU2)^M9eFDmr>no(c&^%&0 zA+F$l;yDM0e=pezS?zo_V)bN~h5h8sG>^b!nntvPN^r2I&S$fJ_~ zn+O9~EOYk%*$e|ZyOXR6IxFM}T4v}>NfAgMqVww0E&X#AT|M}{EKm+- z2GFJ!--E4jQZS-w@QzFcF_}(Dha?XU02R|nGMm9onCZI2-#h2W5oYW13rleE!v z6gvEF2LMxoft^MF(ITScuUWui#^m;5>taAZES=$kMd($()Po0SoU*5(-LlY6crV>R zV)|57B5V3rB6`Tot95(c)ixw+P7@Lu8Zj#2jA(;aWJ{b8 z;fv)XdUC?{(K^Na#|oeRT(;*?|0;w4p!*%_Ic#g(*GC9UF5ie?Fu}v`A92t5USTO1 zX4=~Ek`=n`ea^qsz|UO55eER;T)-L=0 zRW)?)dFqch2!T^xr%|uP7by?_RSH2_h7~yW&;b}+A83-|b?Yfc7ocf-iMND0@iZ|^ z+=gd2F-KP&_-~z4Z%mYj;JZ3*%Z%R%SZuV*Vvr!usL-sp_WA^D^FWLXu%lHoJgyVH zNnul^*4EZ2ckhbM27o8$W%l#hEs()N?HGSgR!h=FPxQUx_RMVK@wOr#A0GOed_3|!3LN8Bl>gX6juz*j*2G_34|!m zndsgWe{BI^c=4A703?v?l~4u-FVnrT<}G+yhc{H*5d?%xASY7D zr(A1B*NdE3Es}{2kkkR18{gV`SAuqLsb^)`rbcW@EH{_V;Sr5$gLj3-0S$vzH?$^E zW$eBeAszJUxp_|F-OO{o$yiYw z04OG@c5&+7JjR+FD1nUjxK6F>13Up`W4GQxuY=)1sjIwlpp=8H`Or2!NFgfKu2AWG zY!{Rzm0-+c^myUq91bd+Y0!@69Mz*##4=BmW!~P>6;MhO4 zr8d3fKLP>>hg%;#d4%OKOcPc6)gJZzq^QqGnsrF>5CB}qfP?^;HPxID-Ajj%@&VotfGR>_6qho0$D9mQzQ-NL z17Q?-p~KixPG>KrO11Ui!8qH1ZZ9`xla z%|g3=?yFhdWSFCI^ctE}JV^*rEjRQu<5NxC%oo z&EyC7bBXp2%^vevU1s&L+|B^^(iM}$uDBrIZBQPPu|m||!=x{YpBRD!mFM(iI-fHk za`TSOBC(}q_u{Ld>qCWp0lI=f9BXwR>^s)A8<7RUB>m>`V}5~h>KF0^Wa02V{BKJ4 zO@B-GTL;}P&!Sv=J_S9l-kvg;$QYkZtXDyKHU*Xl`uW^vi4?q45%)1^^H!OiA36We zh65Na{cSkF59()9SGqqDA}pT{_f_x?MzdRD+U8n)6_}dSApvL6`gA!ZqjPqGC9qqn z9fevX2}T$J2mebYV@@fZ{5m3V)O_g6K~^%OCrB5KhpqTirH*c{&&pwExC76hWu6u<+OD99fqzk(^?Xa<<_p((X)wK`=kWqkLY?J z&kGPS25^c1y727PhjVHa!sigN3((E5oaXKt1Y$9rhW3_}VxB!KwHQR;bc;3KD;-TIqcKv*#RMmCsk?6|&0^O^o2B(YWWv%fH(3j4!Tc%aa*`7(@K{!b2o%kh;aB7H=N&Ckd9 z(2!?r2b1i+v{SnvZZMZyMUt@PUj_m2YY9+HKFR){mgZ|Wx=50=*2t1xTv~?Fv^a8$ zJ(;Cdb`FjHpV8)rQgE|J7pW97iHpjcn~j8N4A|MLEWg z*&++#B?P?>nY0+Y>JOed_`lE7E}kiCLlPw>bzMJ7}%+XbQ~{(g@0aKTVIl- zc%&6agX9edsFVge%)Z0vG7kdfm|S=S<)@X}Z;)5!13ARS<$Be3*@3fr6jGGfR~>3& z^(zJ-R`?T)`SamMQB7^XDaoZUO{kejoZ3u{VU(R014T%VdZU|3qA$~QCx9iE>L}*( zsav)5OgH8-bw!Bo`5diI2tC|6CgPrQi50uZec z@2V^iXE+QFpyx7~;DBXAON5rk>7GGR}zep5?Regim(y^>$FmL7*DO% z2%czp8AD>G>%gJ!rYM}f^gWEZRy9$SHW2p4=_bH^^M-R&q!2b~hs9C}7Ux-LJFThK z>8J}1$3>cM#ai|}%fe|BpoJ(m=x+bhDO^+kk>QiPd}&=5MAAP9R%jW##=CZ&TN-7Q ziLif3{Xeck*)XDaXSwQ8_c0bs4u9Y_SjUQT7s^v(YqrUUSUd#)~ zvI)KJpv;h7HqBcMz69T64;5ow^cR<8m+Rb%WLh-(9zj_RJgJ6~NMNU5@qvK>paV6^ zqG8E3f0+Ngpw9r%|Af!fi^ev8qr$(*r~g~#Kix0pzm-kM-yr`J!K};w7xVum+ejV0 z;17ZOg)XXuR%6bv_3xliWO#t`k-(s8dt%dZQ{7y|$s42_sET=*vd6SYZ_PH^PFsHO zL~WRY{s^}-l$RjC5fcG=5K6ty-n&NwuYl?PGnFCF7|~41u72pkBS#9F|RZ@H6;S&VP_BJB}99Ba%KZ*b2(s} zTzPGM#{`hg$H->8d4J6U@LuV4k@Yhjo(|`aa_bxQ z7T_*AqO1Bpe%xdb?1FJJ2EIJ5tc*mW8@XfWCaNv$^@kL{J%h)+aICU_6R$Ve)5N1M32|?;b?sjT6=(Pdu=qsYJ^bL5mYMt3+w485Qjh{xXjT8>o+3fkTi4d68 zolEiaOD-A8#)_GZSG;n(`bN&Uz0cdEEC}h5^5X%}sp(34=8%e~OMaTcT1Sm&*yo9# zzpilfSj0V^f?d_ip1BIitm+f-(F{lp&@8(S59O&QCYPm%Ep_2d-aKpzNjZ-JA+X+l zO`{k}ptcOlybwb-v53XOfQ=nrU9y9OaDlb)6>M_Ov%m^N5oX&Y`hAdh)_i3SL(&ZC zvKj3E7S>+P<9_xDf7&&d;?_kTMgrk|gsbs14tXfOaC#RyA!1%u&AA$lax_+7ZH{-B zVo^@0gcgnCki1`Vpm3`p#O_$D&MmW@^P1P`%Yal?Q9;V{Ha1uKcy{qi+04htnU+X2 zB65qyeGmB%=j z6%rPHc}foXw|xInZ6aQ`MIub9l+Ttd&NaG%3`3IZBOkX^?O4iJ`vbYxfG9&VkwB5f z>!2@Nxj3=@xR1YI@ww`UKnsD=)xIKnm7c$KEL1i@QNc1HNwo5jG#ZzvpBx~ z97w7@bMLk9Z*UYfG(CKRb?B`1I!Ms-G@Q~AdUP%;<7_myx=Nz}Kk>c?{dlXD#79w& zac{ZbO&C}qm$~x$XTd6HS76}v1C?XNFxa42oEo5GaCbW}h!cP^Vfm#qbc?dq7y}Kj z%Mw+S(=ojF;tOR!W92{c{rSY0KZ|~x{J?*~;@vbvhu5DcL3}*H3@aA4xl0mcEWs07 zSEhBZc}^IH)+X<%@cv?!9!qmcS5!hw|IcjY8t=D^66+O_wQ7kzE-t9()sNv~_DlTS zwco4n(8$*Tn5LH#3}jv_{)C(YrPu8@zRb1HUk8M_m=gThq|q))=&~LECJ$eD^qG!D z{~vh%Qd25#*<;RCgp!4-ssXXiO&M)(2N862@|u7|k|ao47Lxqxt5CWUeSAHk&6y56 zm}`9<=mqI=61*C39w0|XA8$_@f$ZhQOOSRb#MS?Csw~5&uX{ubi>dN$QlV9MczCOR zNWR(3D>4vo3%|NM1x=s2BWU(t^8CXWaRa56L9-umb_fQo6lC4c0TUhsEyKJXebZ{B zp_W!w;U7;1f!jGlj9L<<$KgX!7tH?(;NLn!IhZX0EYgYXdL|qfNkBSsOuvNaqKdf> zc!0c79U$i@k$c%?V*mTh8v8U zuq7r*7=!1q;-7V;KEm&t;h*{Za?YX7r}Os_&I0b~g3fMUIQ7G+VzA3^K)+i=2C(J* z2K0-~$##W4XwH~OdINj?>;s)tojhHbWq=}{2XQ1bRLECq1IOt=5Fm8eE<(yl6f2B%bU@=) zkv={<6%1yTW@JG8IpQ=|xjyQAAI)hXxm!HWI{;w%BPc#r-#*^52HbxiGxf#Ka{s80 z=Z-qP#upGk#STj1kzb^uRTK*=6;l=&eSw>O>KS)&iYbcM($b>Hiw5-ZK-n}1IL$6? z?d_TkZsXuA4q-04d=C-b>~D;(DKvRaqt5G~fm*RrF`C+STs!yQhx0EztmLsw^N%oVmxS}V&WWKG4<6{$3}xkgE$x8ez|6zLLNQe}+xur>a#_w9YVo8n_fyw+)L zud{R^mfJD5<;db2O1?lWQ>KsF+v$!x07jlCWwf+}Do|-_xj?|OI9jZ&(;8m%6L#K= z#~OM+?jEm4!Jc4kC$+v@7TsV#J2ECQ9l-SBytSb3Vmv*wNtdE;3w}=0NzFtfmKnyV zjiLSt!ae~rpJ^POJM=h~`XLk~z1)8unX8^%RRV}Rs7ICS>@_-S)xqs|6aS8||G%{E zta-}UBgpFbr6HHV*K^x(o9Wc;Dc6fN+9+mw?IS;w%MoG^C#9yQo+}clN8|E| zRDv!XC{V*5e$%3Ub}687LB80Xjnn?hU@WLqmKvI2zYtweSN8JyWLMr-x!20cS0b5K z*{7kS_HU5-x}ZKkh=~b3>ty;6slF__xayIghSQ%R$uO!q&1vtnkvQp(4wl7BobF&4 zN;53cMY9zFL=Jj<-(+~J*9h@}$zbnY2oINI&Pp&k;71;BWQ~2# ziq>C<27q>Jlq?V+JAi{>BdB(W|3xvGK%FfXB&`du0|>r=r>GX^lC`kf*78C`I2I9sj_xsTp-%YJ<=DsYkP zRrsYzwFS^^PM@5t$xBFla;g14pjV%}Jcs-@1natKNBCa=sRqayUe*euVI65|^e-1q zsxtL)ZxA;|g+BGv4B@P<_>Mch0FOru~- z*@BcA(l{u4iGcj$Q4fe-+dZ|d5bHh&=WLp+QZmQjbFV_?AX!*S*xN~9_XH{1{W|@n zq=Ny=Jy&xcZva%`23%jw@Lz-Ldy_^@KnXe+4NmEQL#{U@JpXq0+s7k|$rpt{TJm&u z(^oL8b{`wGeo|K*nE4~2*D;9kY|spAX;OB_wju%0Fm>i6G6ONiLVJyajFgwfqbDIi%XDLavU|Sw z{Mz;UD{vkgqwOK0cLYa|Y@7DS;sYRvCsjy0K*My$9pZO}NIP8C*=OESSuQnS%JcQC zPyvxq_VF32arg(LI@?YD^4YtHg;y7B;zrWRy~uJ_CKQ9Om`@8Rj9C6oY|iO^WG=@b zYVtghRgC@)qh!>Y18Tb9D(y=&v=!n)TphY&IJ$cz~?f@6KU&Lmv@v z#QaH_3>lJ+L&zWPCc{GO?T)7IsUVT0S1y$E!S7ZsoX@*OeVYZvk#j@z2d(!%;Os%a zZ1+44g*Y`}hoX+ePMhFwc=ohPk&olVL0dL(GN?FK=iUJp%twJKtRBFwy$xHom<;LO z=H8sBV53$S4jh4~CNrBM;DP|Lt(kf_SiN1@3S+N>kws_W#zTsz!3V02+f4`Ur!v7Cl5#GixT0zWf2B9Bn^)tkwl_K%DZT;uGRH*i^-azn8RCT7RwWWvoQo@;2`4p+z$?>QF$e18dYwlGEMp>z?h130IQ*Qm_bds{vh*;e2=PpO99&Ourxds_rRolkI zmp82Wfz3E$tsopu@N_QJ2giYz7R@MNUyw_v=Md~k4vJr8^h)n{aJHDM~pP!LU zL;;N##UqY_TC#Rjd4<5PDAOT1zABp@OU=r7=6aBOMi;c$9b&d3b-DS zYP&uD?|Nk?`A;+=ZXGAz74E=kQ!gL|z~tKKOL?E0yZ@ethTgG!wZUY10!**+-4gvKOSd#JaW}nJB6}U% z!rPd$C3V*LfwcF^*k&2<;+dSky*dnmB-qY0v#VE`OQ^3tL)jQ_V-G_cDpo%RyKdpG z>FLbSla52afiWiyfv$`_7UY9Nyo1}KIGUkHWq3pb7*7J!?iUo^rlcwDz0xx6n%O8`~1GPotI!7K-;jgMd9`-m`~?r zx^Mt`QC;QGnD#`V@WNQ3j5}R!nKu6PP$0)Qr2V` z9(Od&AXs>P7NL}I;30L?q&eyAADjivxZ;ggx(WU??-$4|5K4Ev_-G4Kwpi@nu!)A_ zQ;D(?s4)We8mc48%WIQH2^_9E!AHpT`r& z_%2;YH46K1JqGl&;5FAQ5{*r)bKsdNhNTC7eO0|%Z|!$Ak{cU_TXa#RS-vr;tv0{5 zm8F?SgbB2W%}%>%3e<1(NYg(dmwXHeaKXUANe)$+=={j-jyv}1befPC@p}Xp`zeX& zXVFxOT2&CzMoL2R`0)WUGIAgmb$HU#dxic%L4dH%bdb4`j0j|`q}LQC^mJY~=SVZk z79}~1?Or&isV5WgK8M^PY7Y5SAk(A)h$wP7v7w<)2?=le(i|+Ex?>}w zl*Glv5FfeY67HTYbim1|G5-ei9=nV`tuLV6G&DNe{fQNl2=ZGmRApq`G@cd4fJq-& zH7ee)+w0@~xwm!6F>E6?$2A9irDn&VRwVB?UT;6-7GwR{@}SOCcee8Jdk@tlUe}`^ zE!h{R`vWe-_CW?uLDd6vVgq%K=RClN_byq?O@O=mA+Rm=2O8X2EK?Rmik8KolSu(E&D>nk zCmLwct8E_Ci;@&XP>Nb>z@KO6(L2h2epvKNk|A2BxjWys+Qt+KzNG%Z%&?&YGB&no z13bG^$fab&EeXGyt$^0XH8sl{?}K^wT{L#FXsRN)po~g6UvgIHY?Rc%5YrlBtRwbP zB5^+tYyW$N!LhNAS{v-|pbuj)Dny#;D$Ry zwAe`Gt3in;|w-REn^TSd!OMCm>;wA|lc+({afCLeI=y&|ja|ab5!rMtaigGf4 zvhe^Yki+Um%h@Ri#t`xmW=OX}fBf&lYoO^0-?9XTFoP{GDt4m9VTuK3T&?(6)K}saEx29cxzUOQ0-;-LSxBalGvCfa502xWVJ0d)M>)ySD z!#$6qi}Ap@zGoa|@sZT(<%Wm7%Z4!Lj?NGVSjXt~$R?Q4MTnPzz&oI$?uy{5c9FC( zOg!3o=ypN2DzpPs9*9elT`|mS{gq}-Zm>KhP!%?-2~MjNG(kBZtnuIarWG+&u{>4M@D8#qqZxWdNRYh zrK<3{3j_vtKQz82?VR8rd?it(>h}bes3sxtT}OFz(s7H|{VZW7n%Y94QEeEiNmphB z?;Yp?o-QDs_h`8`)Rof(*?)ge?fXfD#PIRs-9dGpXvO2;2H-3D+;y(!$J!^qulhTM51vz?MLfY(Ia<|fhH6F$*dRGDof%O^7u9l9O{wrKS#4e zM$%9d^%&Q$bg8)EE+7xQR{yIT=C%{l(^ZwKkP7aHgA1Wb`XGuV=(Fsjhw} z26>+d$g6OsWUkw{L6+FU5s_s4P&DmFx6HnS6Fl_pfu8P?7j^tZeC}O4T?qiHJlHDL zj70cOLU;X0^8gq!ek>!e(?m1EnI6((A^m=v&3QikZHyu3uw8z}VGaSuF9?S17Kh*h z2uHw*Dx(d*~i^ZfWGu}o2hs7XZNCCCq)9eTe zK#uU%6*N^HDX0V4zv20AyWxNc1%cU4)dyyq#WPu7grcTH(o)vvoqO|Lv5}%3R?!Mn zD&r=LdV{&c3p{6=2smMC>R0eQprsIuMA39v8^(4@;$SzgFt-A88NG@55=TDePs_bY zFvqjgS03i<-7|}_Kr6v!dSV4Go>LDX0t7f4rrPGg%d?)}lXtiZBhx8$%*xCZ!k8`i;NN8%&Lr8psD4dVbsk-atYQ z7nT=0)aRSHZ>M9l9>1GKQxoIDK|5?hE6$5`F)5UTl%a1SA-w zH+CODRk1n;qNIT{zhEl;Byyw;=P$^Y^f}+fR#x30YNv}YmCtM0Ne6>(WmYd}});va|KRBIH5Dx`Xp)2BJUml=CU%zASYn@u;)4IY@%@ zNN|bkc0ed=9o4`|Uh^bvQUB(t6cYS{qp}`GKmKqOmmNmS!KQ?;C%vi0F|tKFUZQs+O>E z>I-~ZN8-3O6P2~}oyu51>-ad^IX*Nr)JF0rb5A}{NtDgrsuStAmso$-Cu>*6*zzqr zpC5VV(ZdvRfai#?k(ZSXh*j!s_0IeN)Dxg_vb%p-q$%FBkFF3a^@4Tf;qQ0jN#g4a zR8aS8BjmmU{KKD1LV;MoIz(AJM#$|#h1fz$!k|?rA)JnoCE#9rJ(v10g*eyiSxUQb z=7~C5@{l^kQaT8Mm^!^;+KBo{VLe6}_#=g}a@Dw(31g)NF*X17rOVXE;NT>V4kd+G z>r3=(Drjj!)Ggry!az}3i;9g6uOQK$af34W^V3;^069Ht@YY4`xU849fxykwNmVu=C& zU?O2I<>Hb!bP*Ooc_?z9_loam>kdO+=Jwr_hXMXUk8~X$ELWbZ;e4E)rbonbaHOQb zdiz%A0b)QRPR2u=x6ga_XA=#$w;0yT-p$*3&c=jnTODnTquV|?j-BoOo{wv5o*5w^ z>rij^gWCj!9+9K&aEsC%d#MKCNYR@IHcxkg(9N4jNuMZx;aoZ7%Q5HlNcAk1|Y83g**SL9{UpI*-JUxB~4q z`{PMy#e62KPDi_3e8)E93|W;JR3$t^6lR%Br%ocWdxvtAERv^#70nFL@B6<=L2q(c zVp^;3)ox(%>_;oT6EPa?&hpt#S|2?cvtbv(o^ZTJR8lze4iOUp}BfX!9B0#ETb@Yy;ia#d7}L zZ$8~IncYI@wz=V)4vl-ehd+SXmX?NheqbqLS42ds`Dmcw{sYRk7f=E&JDK`BtSX*? z$4h}{xm*_)7|bTa1t#rC0LkW7z!7Yka+2k?t1IOE<6zu&AZW@;(Jp|7$a5I29$&yo zu+>%?F0Nc;x@xZTnOwZd%{kU>o_0dLGy!jmQ9I1w?a*F4WeBRcjM)c{;b3b&Gek&(G^R8_}(WOdJb$I0mXVLKni9 zXfyK(tgX<}_a6Z)Z-S`>>7`&D31A-XhMZjSXw;Rh(^qe~pZRO}72z?;3^sI3*V8>h zt6TyC4k~hCi5X?zC;DA>@nd5uO=RjL1&51p_45`H1;*-bAMpUyuUEO0Siaug2S52_ z)*4=p%Oup-+ijm7u1k;lNJZ8Pv75vRP(S3er@QT6S6*?zqcOs5*g|4_aWoeA z`%)mbJkRnGO30igfI_1yf-bo4ktcr2iMXKW9mAePX_HX9`xJaTz!Jvod?r!%f{yN! z2?qB0;B0ziO}TfFdR5i7d1@q1*k=947N5*uwatdN=s@eov0iPbiwx#ptD<+!PX&J6 zPE?RNAH3l_e;<(0Gw;*jytnu5y;ndHvF>s_N;BT{N4%jN*>ITrv;JfXZtjHYxL7Qv znJT?()#n|=radN6_`Lq6e93CYpZqAtJ5{2FkW&nyEP(%Cbq=Oe_b7!0{s-WX(`u_8DOO@s`2`KZ9L;WUTbb%pz@BV}Ba=y-Uy``>L`IRe` zuiLZx^cn0g-tM)Ft*e&jzA)zZyz>9L?ZwiNI1y;V{@LwAj+!Cs=b{-;nIZCYjaujT zj_A2EO>RJmc^V$Fd)QO+_O&?D_@bzSGZww()y653>15_DlX051MTv@iI+N9O^~%jY zkP}kG<02oGKUh*ap~h}9^-Alr30Dl-hmW0*5H?^R1k*%COEE|QrEpfTRx2$&c# z@w1$<2@D7rDB)dt>UPG^^6FX#Ua(ldubkbkGFvn(>)ohfdeto&ibE5Jz z2Da|6BEWZSd5u%|LYCHcZ7|!h(QUUq6X{?u+ekXgCx5hvJx6={Vl4trIF;_66_Vm} zzOk8Edxv0dPtok;_SSgqjXHizFh;2kJhJnnW!i`Fx+?Y^*d6}%VcEk|J7jty9RfrGBi<18D z_bRHvsJ4l+1p!5O&!x%m($`xli&U-FkU;U%QXqCB=N4qeYH6TtpqTVkGOt;+5n}}9 zuE^%G>{50Rqw0%fm~?Jbk3<+etPp>6e?mNdUfeuOGHS%s1fGFWSN^Ii0EaPNyhkkmk1K%@J{VftT|@_7Qtk7brOf)<+BJ3TD8Tp?s1O& zWqHFFrc+L9S>GqCD-$`qF0l|0)`AH*Y8+Z9x~dJo$BOgKXLd!=&;th*xZ5TkK6Dbf z#>1sfiv!rIMptYIaqDN)7H;k>S(+9DOJ?ae+(FQTSx@F`9A8mWr(R?C%vke*( zv3e72mlKdY{TbYWaly%Xs~|RtRw?bRztl&ZCtw>s6=E)o&7yu0>WItKiSSa~D3n3{j@KNysln@t z+Lg|*Ad~k+ARN=oxlZDo+j>fcR|)67pS{`W{JQz9K?f3WHW$*vrB>y^Ea2dzbfQbb z=o3uj#rlNME=ale-@`ZIFNznmaBle-HSnnJbAt$2Xaweugf9vAW=jP=%8z4#b|O(G zB(Ap|@9Br{3ea=fW8A(NG=d**#q?kamyYKxiJuA};$=(WUGMb25#wZsj!#rOO7phk z4eNLWP<$eo&P?Z+{jsYj+_>vPy6JwxC7I0R4>u8UWiq)Kiz(Jh;_~eOx^`02pH9WC zbdDufPmPTB#$dq2d^n9G#Io7*nzvi&XeT2;zuB=`Cz?({DxS@Pa{p-i&Mdup?b(lX z5#Vq#9Z`5`sw>Pvy8$0jiVzN**V1qf5=lx_dSf_ z&ZLc+Zw*#lIz!2&@pwVm_i z4@Gt+gIH8D{3h_F*`;FYAk!Rjsrc!>7hMsCL%p9_^HYEB`5vz0F7@`<31G);hv;C9 zN9Xcb@3X1iDmN~&$dZUHGg4;JHN{DXUG1Q18P8@(3as~KUF9mrT=&i7X|7y8XfydC zZ?rojMe2*3xh&gqQg^U67*dy!ogMR14`DZ)UsM!TUOv&$3umc!I6Z#Jqn==tp{{1O z=BJfa^JiJZ$zDz9R+l?hj=fgpZk*hEnkbsG+05TjJxkNj&kZg23=)_vR$_+>Ex9~X zaYjO5X4KLPIZ+zaYU%FF>Cfw?n|kE(lcwo}o(beBDt?N_#UKJ|aZ54^=_eVQvs5^t z2s3gG>Ao@5G0TK%oRFdDC^XX25`oh_g`LA=Y$R&Ul+buYj713JR_%VkSefK{wC)d8 zY@uaN>nWVfpySQV&ojOu_r;*Kv<&Xq$$oJgShJJT^z_?w(-qgXC-> z1pH$L7EKk5P73rKxB2Fzxw{gabjf52(#G~0?^PGP4wzAG^6z4{>g`|9u-XxQr zu2X|}vgQ}n5PbMB`wL8U>tyoJ9TON+xQJe%qGku3sqjA_f9d5SC`iUCw@*=iT2-F& znvaP_t~B^{op;rS%?}bH%WT12-J$Q4?y%?6A+_Tx@K|!*m^iV!URmEYOFni5OLZU| z#q^N#diI9{JYkvkP1@0L#v|SC3i$TS{XGUQ<}7vD`goiuD)%!YQjx|TxAAmozL{Q# zs=)X_CLm(CY-BLA{*a6{+}!eT-TmO~Cb=?bL@8Bywgi<~Pc4tQE1m&5_d|S^$Oq<; zPi0ubDJ0{}*frpF3EJRPNffQOP#D??UjE@z@orgQ?>o3M3mr-XS#^QwFkl+W2vDAncBMsl4 zN%ii{cCN2dEyLkGKB$;12SB0pq3|Zh(W8L9tfST~1Y927ngeAqT`&fPAXi?*Ux`N- z^Hz9PJ4NvZ9`mI;z2%?fJ>6eIdW<+#=AM0?$TjV9tj+>gsu0YsFf22*{xJ|`29B+| zA1?BCx#K$3=S%COT-E0DJoK%5q)((qH7$jOt}qODT%_#dY3^F;OIsjbCp-*D*yzS? zD~Yhf-mf(U+w>F`wzuO<21C$t=%$(-QGaQ*`DChX#}go@&79;;C2mF|FICUN576D{ zkWM-|JAKemy|Ev7qeZGStY@=0HI7v-o;9ARLDgPeCBu&oh9-bB$)6PjI=3Kc)={I} z!XYGj)wpwDK2>r%Fj?(WFAdR-3{|%E5i7V)3HnN@?4xMq#ZY4#f|6wkuf{O`ngvK> z@?llB>O&3=v>NPcC+w5BUE9$Zg|_J|E!$XJgYbq%uQVyz+Xu95+mc0J3e*02rd!$ixranv6 z$aZ}6XLH+eHY|Rnqq=H^L8Wu@eB*c{PqvX$d#u{AxPO5XEE~5bdm>=2V~FpRZ0^S}$`=}V(aMpY z=Pm@#JFE^jo;NQOP#?!JO=szNopB!D6{q7w!64{IiE4CrlYYg;s9qZfbDc@x@_bKO z%-htY>&{!0qNX$3Y{bfVX7Hd%I(#75>xdFX5+sSxwWgAX}O2AbSGvWqU zE_QnThDgK(XYWHyHA=)|C2IZ4;TK-ig4|g5cC)`;7oPQfgbE|;6*q=m3`17EA+9W@ zH#ZBBHjx&U%Jb%;zrrt~CLEg;i!lO33x3 zXf{1VjzUVwD4V}B%pAp_-0&TKSS~($V;`tiJG zkL-+zPMLI$Z~FQi6}=d4VZ^7Rp^CTW2C$wGEqm=13zU*JPKd zDHW%oObHIwDvwfdfU0&p=}&f;sIY6^VCHSwiA@qX@2O6hDU@{1VMNuO%?(ne5)TRq zd;CrZZJ7P?Z;Q82H*|Q7Hjms7w>!?K2GYPR?!X2yAhtOk7zOQz*Z2LVl$7If9#o9u zmY~QTyq6nBJ^oYqov6i7L0T*m$==wT!6DV-sUxAl!0@{<0T%tkLBZP!b+fjTKX2u{ z!51^;i}Dh2Kv_)InnWR<#Y8v#Zh+1= zU~UIpZw2doeqz@;AeG$43dii~4mNvrCl65w{RS=N9MSy62-9I710|EbjL%BGPcOd+ zU&fFgwSLr0O${ntTInnP>)K3{XE!!XCRPm*X7Q}e+}f^zaQ1qCEVFJ~8ZBIkWmvF_ zpd3yuOE2zBXd2CGaDa}niYD{(^E2s+UVX!0r%$D9tJJJt&vS{kUtQ@Jq+;jbP&t(V z{pImJ!krhMOsp2GqVogMcNber@hC->{j4VlP71dyK}`sfkLITw4{$8oeOT-{UHc`cz>d}nn`Ar=+_Ga zT91aZzQ=Y_V-UA6TPmXEIrHjtg=9=uOq(otbT0dWKrgA;h0B9t6AvTk+rz$lcWb;y zO6WJt7mm>|IB!>5yeP1FoABqW$`1O$p!t#KZikP$OKa=Uq9a{FB(LAl=6)Sef`xiq zmc$#q;U83xIX#k=FFfoB57HQ3z18Gas$Er}{>HU0gd}s*>lBwYUcIp3Ak;sMfu9A+ zVb{TR?;b7%+dJY*5`hop2uF~+zhlg6iU@Gs6!E<0dbIj5YU~dC&8XKN_Bn{y^W!~D z{eZyG5krvP@c8lJPQ>$id``cB^$dQ=-(#ggY8?CwLFarE6^shTY92LYL!vYdU&jM= z;p^Rf$8oF%QJ%_tRd6bxa#Hjs18EiITwKErG~iqN%+)2~RC%z~a)d z)Eb${?`wj|BlRo=SPo$|cjh z1otPJT(h)8NlBfu93&^w^$A&1gg2f;yjms_9tRP!oA9q$mk_fQ0l7VM5tmz@pP$?q z?WAiNio^yKRSWi2_tz&qr5%Uepj0A965Db#ZY~GB|5+W1*{rUv?t5}DumGqI$749h zkx@ULIiNGy$k-S>s+N#WHj@QSj9gsN;qj8Wg_cN$M3LuAOq&Zx#MQAvOYec7*A@hTt#Z`d`F^#mz$sW=wbVS-7I!vqBr}s%sl+QwC?OoT--?)7Ww>6Z#=uP@5z4N z+#K}GZ$);bW`Iv^viOC8u=aF%{oGLQg9FAu9lnXG(;Dt5T1whv#b7@*# zcO!n>R&-yoLPAG8ZxEwul1JFEqs(4hzb>-Rh^RCnlf5<~hJCzvICUKCe#m&c-Fl*^ z7H)}yj7tKGOkbm%TA7qunYc2#S@-Bae{w=dK6I=<0N5&1F9;diZy1Iqx zw1r)cR+sWQ;gq17&yMngn&(OpTATLQZn;Gv+P0>fMO=>Pnv_neoZU3juKON+G?gdi zK09ERv*^Z9*&Nvp%CRe-sacU(286^4cpgk`)?&wd1mW&Eq2d)thcEqW$S7XAxNLvA zIjpmSLUG!n2~$lSQE+XHdB(_97uiXcE*VDF@0{x78yN@&5y$+Yq&#oy?%ltaNwpxN zxOfL_r(e8nV9z2PXB1h%Zom0`l7eD*s^_$62iGuLJ$PA;R-)EnZ^D+2FoD}y|Lxlc zRU#~)bV7Jr7=j$ckv@wTMv=A<=18mM``s)lu7*9IrTYyU{=&l(+48Xb8EN8?0Yzlr z-rqpC$W6LRl85g~=p**-s^;vN=YkfIv_%1DHCeNCuRjykJ#9C8;C&ja^EFM-lgIhz z^McPFe!E$cK{1TcjNOd*5GJ>7v*To~;g3zWi#fjjMB3mUTW3NtYd4jTir}m;>&ey2 z4>FD5oQ&D_&wy~S9il|83uW2jTm>YS%=>(rAy-qhj(q4~;aG9$}rDeba>h>|vJb3ZL8i-ImYvs^E<)*@0Z%nsNW}7B&@k zdU5Vvg>YQU7d`D{#7EJp`>Joedx(v-A|6a=$}c?}+a1H)jSbZLrTlBu*VXc!#!;g? z51;Q&SDE2O%@!AoGyy+rO0NK$EAE^9pZx}dje#Y932C0ikywR1`Geug1&zW}VwA0w9gYJP=(`jvH z@8>W7vwjjt5f}-}C$U$^^zxU^p4G|5>d-rz!Q_)honkY|%>7v)^fXIkxiX@(V8&Rz z<-GOJS=Ri8FBAZw;TbgIgOxHUJM4QEz0EzPI8N3jC^A6r% zxRye1hl5$a%4uxl9YP^8M2*F-NNLSr7T)P8`i~h?W$FSBYqIs#wy_FhZ}u(6=U$WX z*kzzw^EEJ8P>2Q#q!lVYnNe+VqU>pb37F?Dxcuu=xk-1mX=HcAgjmEz!yTWM%r&#$8y376ek(6x zRGXK{U!+%OWHNFXn~yQpTlQr#*aN>Xv$$VSVS6#^B}xDe6Dsr5=J zakzJQZMxnKmdV{g*wrS9$AQG|LG}0V`4vPmpAXjGhr<>>R26W*WMk;`Lu~agto(1; zV*(dDgn_DX<8FsB?W#X*N@k{vfUn9+_DO`>Zz=6{#eV%Vy?mofQ;?GxeIX;jX}a`2 zr%-_$F$*vP1&)-jxR7_pnLPUjWb|%kBl+qMtLdM}YOG<{?C)BoVm<0{{uG4KW%jK(4zRH zql~JyL(Po%P`{SvtPneOX0)lTaP<$h8hh6hue`R{m-=!P7G?BCV9;KsquzS3#X^;) z?8U&)P_#~G>T#+=XP>48*3=l8?X)f_{e4f@^ypC%pxemvIiD=RI%Upd;IV>BIr5BbPU=OuT14nf1+gCmn>aZ_$Wmn zs3Y#TBVE9BgBPl?iM0nS zdz8|+D2W#s@yvS$N1IxD^^LT~P}Zr*B4T7=?b*7>G%MJ-z@+r5*IL@`B&auMaA>%U z12iOc5r>ng2Ze#5s^njVt1$RSs*JH4u%G{M=SQd6ySv!wmu4z#AjtRQB~Oh2-s)^Y zOr(PjA+NJ@x4tJ#wvR7uz$TB9dPcYj_<3n)+H?HwQICB!(K9z+#a8TJjUNY`rn0O7 zhix)qI< zKg%j82q=vyAl+z}zxZYAeL^TYdA75wYHe-3rN@^qteVucT;p+e6gY$4Rh0_coXB&N znw*01*iJB@q$OyN!B8qzZWY~#<07ffCHVZgW*^8AL3XDw#w{oL%`6~M1jK}IR+z(; zDHeUOFqn%{(&+pzpZ)#!x;*CL$WLM>(gzb!9l?(o86eCoEPef#HcId3;#g(DD$KhhfhU9%{RwzzH6iMTJCuADLJI%`DPC&d@ z%_HG8ZV!Qf=(!-2*#@+0ac^SuB(gs(+)JyxD}qYk{KY!+uv=lTOJGDq1XJ4pG7H12 ze4VWkCby=7`E{YFjPr1?8(BE!k^$n=WeSxmO^x)FP#B1GbRM&6$ya+tU|ICPAgShBM_l+-5 zX$=oWlDQgU4)eEZsY0!#CnraxO@w9c+fCoLXD4ecsBYkc3efx+QJpiYfa@0Zp9AyS zD+d2%(C10LJ~=sQegdF#6;W_5y?dhY03W@8ECfrwnRM!sMX92E+M6!CJY+I@5;(&t z_(J|+w9eGocHMjv?GAPD#&g*njI0m7x*r@<{xN$?(o$WAOS9NoYl!( z#eNFFOXGT7&TovBVxdxa z^5^VtuBOs|l2_RNypVrB<hBZQhQ+Bftn@#(o^TFDaf9!SFo*G{LSD#`5+=E5C zNu>_Z)VIN(c=?i*@M@N5(|YwL^Kpt&vCzFdg1k-FCv60!5QmiK*3^DLNJw8CuOcw= zOnA40Ko?OF@4i@Ws|gO+-{EsV(tHO1b>(#jJW%AZi86hZZK>AK-@ktcAWv$u%W>!! z8KuFcTmr`T=qmz8Gu-_U#Pmta2Z1{ccpRKG#KcCpJw2{$ zb{og&n3`}qmp5-fz=RATtLb3A>cQsS91Tzg>NkE^1mZ1NEi^hd#LG^v)Lmp+K@%E9 z3p%W0IIMskW%G#jtKT*R{5?3o;v)_T>bIv zRI=r{{i*e{O`aW#w$^&qK(FWp1hq|*h(jL|S*V#6j zK2iY8c`6j#Xu-R$= zJHR?NN3u?>lh!sxjAvTJOKPSp6Gz7FYNGzWPtW+SZi+eQZzhS2Fd@J4{ zr)+Gy+S=`kn%VEJ8$s0Aj9}3qCKgb7!Z-buFfHD&+y*BeK?59mii!gpfnQ|6T2dBq2gtqd#!aXb05j# zQV1vVIhfYlB+;`f>r8+FEa*mHvUwyQK+_k)sE(-q;E7+s$nWlcKsjFNSpQN2alL9X zJH&7&Ac8O>kQ&N>EAX;Jzs9ipOI0N&)7`L_FXhVr>rLWY}5W^MW{TDHM($TUdwxU@Hs3r@q8c_L`q z@r1B+g8I&!}fI;i_y5ok$3U9G)cjT992lVjT z4J`Ebcmutw=0B&*wcbA>B_#ov$GngL=o)O3mWF2;4jMmoC4q~N&weSUz3+&UcfS(V3Dba74~CVV<3A%rb5wKtb)Z{x8az^QCH^qvN3TZgq(n4z zCAyti_xOn{=Sq*Gll=omNlD56gyxTNam+gAGfl-Vo!yg3_>XfKEeB`J?E04i2kB|= zc*SQ54B`q1oV+YU8{VPSCuX-^{mh=_;<^kiOuXdE)Awn56?&d^(X{jO-EY8Ly3#cwBGUvJ*Dvs?BH4}G`8Z8?(2eeR*&CF?1p%&)dMl9R zwyU#xyIFAZmr$)bbiQ#|b%k~IL+oO~cXQW-EBLv;tMXIp^E+SM2!8;))sBp1Y^phOsL9HC-&+=EATt7Hpye~#{P|=zC6+GCzR`6f zj*RcU6#Ia|Mr^M(zLLCFm33fue$=BB{`H-MB?L}TFld0BQJL6j-cn>UGs4)hOj#|N z#|{(Q;`1<2rl_r2&%Cy{-w03+(1bbWRH=(@hXNnz)|%@|i6j^UY?g|4?oPWOa&7Zq zWqNS0`HK67Q;G<=oh`*Ck);r1Dc|A# znD~fezFFlcyUs*LxGS2aZRMLQ*-i=2W;|-AXFTO*JnUvlm}NBpG4E57$X&2^gBwdB ziCwkm{l$U_`%jfG_k%on*jebN11z2y>jOWnDSu}w^XXlGDwFQ$QBxCkA;q6(SlQie z`r_gn-^pkd7-;TT4$n!>usP3%H)+r+q+I0cLvVC=yiX6n{jQd7t(eGt&+Fo%7(ws$ znuOG}_QRSF0#&3{m*+82u0|QJ5NX8=-tF;%UQ9?IxtVEzC$$8URF@b1hG#mcgV1V~ zL{PRid<8p7P_xKm^hgL_b!^sIO&`hVk?v9Lr^nB0}- z2QH>GBbUaU37d+f7>)&SlhR~&?2zq&JU))R(9JiYK_6dqis+oGk zYCxZ{qt^7v~;I@@1qWH6w(pxtt}rvUenLh&E@G-LxAe|Z!LhewY62QD)pIX zmbXW6_3czvq7=tGKQ*Ror&lL6Vw2UwPvk<;(c+N$`4gU}AG?_DuA&-ZzUikRGBaFz zPeS4OP>*vD@mjqJj)osM@6NZEvu-3YCn?lRwk?1m#V18dc!$?Nrx zk4|>L5QvC~^1~Xs^C*j|)WF?h#>aPvU4L~v!xur6_wz)zfz<#%c_qi_7|l;B(fOT> zT9$AnFyi1zcuG1Z8WBMoLjKFEUa&UQ1ymt-nN?W;hRuwqjH76cAiuFj;C$S#oj{ztr+ zigl`XWB$V-i>wde-as-2nB_!Gr+Pu3s^(0Bt*mJ3iE`6oTJISIrEsQOErdmHL2`O7 z&CSSAN=mBq;$}=ASrkrNZN2PaszLJw6temzK^Gb&K_Bh2quPO=j!cQsdie0+FUfFn zPQys3S-fC~9{2`VSPfbufpDuNk*D@^bqv&TOm&AUC??o>EZ>RjnAr~yRkIs96a%Z2 zvycby$De-YW9y&sPd+Zz-3BF4DVFX0>QHR>%B!fa|MLCLgETw|IljGl%`7ryUs7%v z4%Z;6rde_diayPCxKJ`TM|mokZbzvP)?JZb(g^$u8TR409g7A_>ih2O3aqbIn$2GP_>rDIH|Ke9 z$JM(COt;skC>f8=-J7s3JU#ed{g1%#ne0hbkL5R!CA_Wnj_@?oo-$a=u=L^@SNSZ9 zWY{KjST1$*fKm{%%v_U~M~Abaiu*HnJM+GAZxAwkd&X;bwdp(+B3PdCawLf1u|b8C zd_}!&$yqKW$vdGTHGmr9aCs1(flW}w5hv{FHrD;vPOt8jh^O1ZJDv3RB>-|+QB3nV zn4>^(ip*b;y%D$nC$bkY`Q^x>@X>f*1~=u*hb#x9=CKl+4UM~wDuXIUHFAm|4O){m zdC%i)Ze&Q(Op#(GgUFGSv3(8mAIU~dC-l%+1* z6oEja!4u2EZhNMV-F|!^nwV}oj&2C#(maVe9G`g;m-( z60Eh-bK<*-aOnz?2qiPfNYoDIK>-fEf9Y2`^96)p92_J9PD^uNKi$mRcWO_rts>(p z*jE(WNT^sF185XEqFM4k;JV1=X0V`VZMy!|y=Uzq#Ic5Z|Zn1hG|sVH=kdUu=(v@7zdvhK_`H)^CbR2($OuV^{t6S>-gi6B)_cJGnn zVT&@;sCFFJ`Og&*TQa%kI$=z4#9ZfK8R{?nYc&OyntCPv@mT4+TIB;;P46X5u36T zGO7kS%=gfDk*|H|9r_M35ag2tBl-lRByIWaw6$K2Rg2a0sQIrAPiV={TOd&aB94!T zF8=MIbS1=m4FZRzLY4A;Or`bU4a*P$)Pf8f!1sA6edV%`EuSs3HeT*X z|7x$<8V7~gov8l)XXln@r+7gUa&9q^1;CLh;_b3M;p=XtL8pTRmJ3$W)+?28X)#X3 zpsA}}9{*Wvh6kSO7~RQVNfsI;9Pj2>v6?UGS7qXOY(CwClMPc?*;+3HdB>_le>Mg;aj3 z#_ubAX)AspZYjvm45H^^xbPBLMgWS7Hf#?jCHrp3hc$t7!FJ=C5{Pz-%0geA+v06j zxhDb|_cv&j#9_lqXEL;J9N)=ywOb~3nigkCCS%TMExScet1p8%MyQ3K7kd8)4@TF_ zYX5lzeeF6gdvvuiLmhCf4IW5RA|_^jUOU8_lgRkjLeHN^lIFWcO?XUd4|_c(AIYGcIUu_Hh_OK|8HdLHm$DVAU;G^lDD z<;m5e1ak|V@PI2@p|C0s8#%Wd`gPg!MO_{BT)!0`AKzo~QVWe=!<9;+X`(AmW23!H zZD;w@M;GVy`#suM-NvUwizDB}&Vn{S@O%eBl51Z!{P%3PUEa zFbAF9H&t6wG`wB9qE?g7arX1RoNr4`4%|Ro;Q$$IG%j5ieEfzRh%a;gOwr7$5-1+9 zSx@}%A-Q{ZH95cYrc$GhdR?#j;w|zQPTguz^zB|}OM#_n-tTwZo4y)EfBUu#=bo&x z=$7nma66Y6Y7adUm86{*hx*BdFlrXO7zMj0a9E*hIfB>Tx_HcCT81is8mYFk7p0EJ zU+D2eEF-ynVoYV>_8}U*?B~5cGHB{qM?xM(?%XKNJ$q?$_QvgbMtDdFAzoRlZ9?Zw zsojpSMZQKTO+)kf-zUOHHQY-vP_U{5gV`avgci(SlWdHOF$JrROO$iXz?;DkLM9Z6 z|CGk+*ZHI7uoDF~pgG*eqwHKVzBK``5w1EN5Le*xiBwCs%ACbBA8bAsgQJ&2>L zwWrrf5EB#WPhcf;Cf7R_3uRY3cQ=PGRWAFI~Cc1%?uPf3#|XfIRy$U-14 zi4ilgqnst^>jN@?DLR#RrO#llvoO50RLcOdRQzJ|^swm57pDDAqRV%47z|Oq8C32* zYXEM5YY3XIk@vq7px591X9AR^|7n$Svp#u&3n6LBd*L=QDiLq*ivUn%H*zuWdF%&0 z=E8i)_J79e;(E%~`8MVTq!^zJXtF!lFn)1*0zb z*+1*`cclO(23K;jil3My`7*PPsNX$gcPXSykDKo|(d??JkOOX%H@W-HkLwvotw%Da{%<}}S=?L%xG2rdSf*bb27>7K4((~F1vv0F~m0$1r z1=rdyC-R8#n2b4&B?-a;f>J^1TgDR)I?IvE^4x> z(WNZ2Kv!ekC0qOF4Xk?wJ$%s*EUl5V11rrcH`9oBx`tGDW6q{(iC)JMFXyRsM#@aG zGiMXuMuo=VvA*k$EjFsQX2MdcU{(Ar6UPK2oL<}505{NoMKxzA4KnTiu$n>n0$|j! ze3ONQge2cH>l8KVfh8Nv(#a7UXM1sEJCGpqe&^e|ecijWg7b)hfUNWYe+j!8x^_BF zcJ^f~Pa#h**_^mcdBR8N%XJ$Ii@p(aA?5?I`EMvDorzava->=?s3DEz@95YbkAD!i z<2w~{GV!Ls-h#{tRO#A|g$$Z9X;XRPl14LP z+J3v-5W*SXRtNZne)_4bLtHw5U3XTFlSxLwArsY*|lK z6pt|HD$6l0heqV`F`8POhA=b$Y4jClBp$?(GE9<-IRBRxkZe0_R8`$Y z052G7&0|$quA6P}LDdF7WJI|N{}xka)cxhl7a(<*cCO%UNl5PDrm1~7J0Zlk z2VEwOT~dh#tejW`75+OF5@96K=3LLt{H_ICF;&PoFhav1Rs*aB0n)L8Q?!FB`orRK zG3fm)e!F!nZn4fD|Zvc+W{hJ(+8cr;d2b7Pt+y+)BYSfd$L zzrfhKdX9Py>>3&8$5-YyQV_Qw_VhTIk{3s`&6UO5VhzYT0=D({}xy$33y z>lL8%#eD?1!pcxS$q+-xXWkw{LN;6~i3KDXRzZV;CTb228Jn6&kK=cazFR(uX`iIBj}bb>%Y&rhYC9VCk_OGwMR6o19O(90#`|?Hx9wv8b(C)~ z2zJ(L-B>Mq`^@`H@!Vbo3}BiG+qiODP8j~@*YMRJel`S*GiN`E zxz0BiU>E=Uot>GR zck(PICnwFOmgoh0*AcLa)YJt#_TmG@#yYu~YeM!@E=_xtWPox_VV8V(o6BdyuT=uQqn)>Q4WHE*<3 zZ=wJz8(RSBNnEj>JgT|!O3t%f;o_h72zp%SSS3|*tN_M2trOor>^(A&;#Ok1ufDb& zgJ1u1iSyd7qM*Z;paK34i_+$ocsa&>t#S{OVsFwu-S6Y)2R1>b`L+YiPVNU`X@Y*G z1KGRbI+j9?46I5%vfK$ZNvg$O`zO6%3b(;y&1A2g|J;x0`nsBxl?)5LMS8OOe$Wd` z6F0p#tpvw1pWlQiq^zv|Y{MqVk(+LGrX-I`s(0VM?mL33aR3s-Evq)*s(uGimQSNP zWT6|yI<&!BbT3(Tve|~DGpqGVthM#E>g=geY(yX(IC>s$B91hbX*G>lB#`hZa-?w(p49W-N4QPZ%y8s$&^ z1k4QBcj6;{C7jg`1KSV3e*=dSB-25qR9W@mk7$Pc)t)+wjZpz-A#-m2N$58aA1%EQ zOCVeG&pG~zj5rk+L|PJGwfu#{eK4mKAWcmy&?>MRloSD%-qmcvd4HYvRUKknnW{kj zn7y2&DkU&5EU!!j^%!1bt2g^n*tav9ehBzPK`6BRRc6I!c%nuW?Q&0o?^^4Rr_-Z2 zR`vT^k|w~UgrU;61kcD>eIXblYogWU=4^E(URI>VyErtHoN{GPWFq`p!3EvwoXF9L} z-Yl`(xNr0Ot5fP%B>|*Xj8S0Hs0=_ckrf;e`h^j5hIQTy0sach8JE4B&|pFqxtJwD zPJ2Kl71Wf;0SH-EzV6Yf^d4`-)-<2lr9Dj};AeYa;?uX>{ z$@=>y@tBlDt$SKQVKvQEXFXXKTympyXMs;_n?outtYf6$YD&_vu-NP*^;9zLrPpS~ zW7a%e0SbZFB7z)```Inb1}ZIv`l_obI8nioGD0x;s_*IK~!)*e{PWTAiyv)S2F%4msA2H@tniB8hlck|nkJ7Dou6ir2G}N;R zrWi81Th=p%iwJHKPE)m$?-jIRj%(S(g9=6y0;E!H-d zo<_bHERnCOQ|wQ5w9M~(Jp_|=#>`zLjB3a@hw23CXy5$MwvSoB7BL|G5IJXfoz)0+~p*PF}xR=tyjBuUD$fe8C*>xqL+ z1WU%`&4UZU%xOsY|C@ehReUer0brRhPk4fUT zX|Nl^{WrXDcqSV$s~spBzL28J+n*vN)~e%CvoJ#SnZKec|%Zu~Qirfz$isbTD;1_qk>is{${-UX6mjxwUL$DtmrD%`YJpi#z zU{b)i=O-I?2RDX#0*KnI`bBxrs_)-lid@#b{`m>uL0MAtz@-jQF2z{Yh&<*FU?~-A z2es%;Unu5w3fBInIC;k;Wipf~1EoBwz$4***>8{6d&+GD{ zH;Fewc~C;4cCGZ)31)4iWD$uZA|e;l&R5==>ilj(el`oLuFE*Vt?oKN0TlkexZQM7 z&bNa`avOmPZ0B<858roHHmC2ni)N{IkOK_)=e4JP#ric@V$Q-Cz(ZbDBvkJ?0ixco z!`Y6}kq%5-|2+P$fpw6fY=8Xx>6Yq+GmVa7buX;WZi!#}n)&5E>3FUg-fm%&@I@i3 zxYA3)gLC&&9-G$heto(9JFR){VdJC(n4p|fX6I^`) zIC~VXIy-PdfewmL0qeaOI{$nO{>tgk^XZ?Dz;FKrl)D-Y{QLFxpMU3{Kl%9V?{DE> zpYY{M9{Bf*`2WopOX+}j(^sP#H)i-KL|7n36ENAZCle&svcCbB$X3mEfB~mj*KoZV z9{99B*VjMD-&Y?nos45LpohS}8{PyrL-S9Zv81a3E5PoOk3kAB+WU00V@#11=St|l zpaAX)_s7I9AS%FV1XO{|%W2@Fiij9IMlaK=d}sUnr~Ogw4)K8*Sf#dHdw>1PY^bvW>_Q7r-x_0Qk6^$f;*-n z3RqOz!$@Ca#bH0rm#J8KL{5%!+Z)ZIRRoJNj(DCv^=@ha-;&LAxi&~0*XnW*bn=+! z8c}oEUG+j#diQz{*iM!2gIWPjjcvUGMZp8lo5}c%di=vF-S=08Cr$bP%S#yh2x6&L zm{a)`@j$>4B{3KVooD7f^gK8qA@7yPUoe-pDzf$7ASVoYM0ai<6%<3|= zT1=~%k*|z8LDRr#)@NN~!-=GpVH9{tp2lWU01X78R*iRXK}fa5Wc$8!Ps!>gYQp<1 zP#YJBE$$54Msa-kNhP83nI?81|K;Y~cem*;%w(hRzHcvHF3fRtS|%Rt1CJM`6vdQ8 z5gQ91p?mm2*i&LJ2b>7`4mt!RB;u51UPH^g`uZN7a#oBZ19UKF-%i$DkWxf{uX%BA z@LyU0viZtDkTejmz88Nt%Ek5fkLv{)5x^aY5%U90T$B*kJsccz0Sh#eajX^pSW<7Q z!Df$B)^QetAIXH1&{LQVgiWUm)Rkv;UI;F;xqD13fp1b%1C9|K#y;!d}xn-%{zu+GWm|0l3+O_RT;b1277 zzgeT^LgHaW1fyo@bfsew52N=5TKt6s^g^K0E>6Q>cCGcUjws(ONG0m$qZ}L1mF4Vu z`^IQE143r`Dt92D?@KS!WaY_PHiQMe(yvJS+7TO!{2LIUauJq|?UAE}YG@W|Gs?H& zM*^yA^4Bk?i{}r0ELj;CEW4m&2mVS`n~|*%dd?1yDSs z15!K&*!hk#GNzA zot!WqjF7)@6&l!##s}^iOYEY1)-<>;Eu?IAS6KDI;rGx#iY_A~<2id~C6kSg=a{bT z-C~b@1Wsy>Ql#_Seg#iYPX`(iQ)r_1q7;~n@u9;JG#VDRz;8kZMi zS8}AhhWmt{335ElE(r`;@Blvzz_4CR`;tOBMW2GtngTK*B>w`Av1l5J&(%r=Z|>$4 zg7wkpmNUMJHp8HY^K?R)FC~jS_C}fY%_r+(wBo^V5?J|n(AfQPOm|6#OU;_c!o1dp z3-S%Cz`JPA$JM`Dko~!vn;SWTzOTmtvUo4t-Pv`V4Lb0O{orlbk%BCtWbI7Des}1T zm)XRtrHy8-qNV!Da(@goQLp;0pjJLwzv1O!>GR?xQT?I~A) z;Qe#{H{Wx+iX)&DqgMdsrFz^-Z<4U+u>rb%y=p@(4>BZ|%{qLanSVfO zcpkNA1u_~gW#*&SW9g6SRO<-Sel6Sls0R?k4ib!t*j@J;K|~FcHaUOhUv-wFd41T1 zh5%IVA!JN$cF~sm7X8fEC`~>DTZY$2=Xd;LAhIMVl$&*XwaiNaO20~5TdrS~&HMVA zeVL~6Apcf-U{p}&CsOVscC-E|Kamril$VYtX>N|();~c-ElhCV#2sFwoGzECE+EcI zC-#epmj$9!pF$-2IEGa>cKzm%v^`4Vu;fuxM>tIHYo{?@4ptYQ>3CQ9bJ^fNb@k=e z6P#*P<)R-&EJVEK+vi)&-p!u5)A^ic(K#$v8rGCH=bD1%X$c4u?@s{Bq{-J>E&Gm;425RzJz^2| z-i?H+RE{$1Dk(uSJos`L@5NYDpPnQ%Xjo4)ohNrw!=f~r^d=^F zh6wn7+#BgJuK;U%wkM|Tci~95Vnz@%>XvkjL-zqWl%AdoAA9YE>P-I0{boSvA9ZRN z6?_AeiekOG&wt}AKMZaNUHK_SGMuDmoU|Kth|1WWKK=N3eKfxpo1L9qwb)E*R!aVO zQ&Z4@fq#RLgZ&XUrI45CrIYz&Y$lDR7mR5gfini+Wi?ajS9UARx%=zGkDiSJ$q}Zy z1_FHk$>h9)|4%08690eC!7TGXTN)C_pw&v7M3}03fn^kDerl z?TU8bk`I@>DxREO@B~VC21<>|K!2r`j>I_&xV{A0;i;gGh)z|pXEWR+KA=^4@dFzy zdOb&i4E}};ElqlMqw*q*3J9h&QdI%Rv(4;;DE-;fN#}`a?;Rz_^D+V&X#y%E0q=Q$ z7|Ik5@?QaSG!o_0d+7Cd6N`C^?6F)>anc%d&&^h83!^Ix{{z35&stEbY%wB<(&>G) zZETkY4`=pI&M1-lk6E-!+~DTe(2ocHVR_TSvzue31^@`k#L&Z4N%8UFg_l3TvMw0{ zDjG6~gLB-LPz=8sq{+T_Dl-X8?*t3M>Q&jb#=pHk4F8|M=HQ^i*^7Q?p2{mG_bdk%}xx++>*~}MT zoP0ZJ1Hh=x_xzdndtPwRaT$j(6M^U!#oUPVyFiCeI2)(`4mb7Gu>pltN7xg$_me0f zv;kagIcr@xh|Rc95Ees!06fK5-ecwB*mkqu57yVR$l_R-zNJJBbSSs*Tkkv_V|;9) zn`+km*mj~xtPU5Z;qiza@jH>I+oJcMM9Zkft3=B%PKe)^FSwMPVIpD@xMXg~Gi}65 zeU0rVqAp>~a$1QS#Ol`UUcrE=TZ~LK!=YvE|vudZ+J@X3>=d z+^=0{*XZA!5MQ3DiCa7|S;BmquKOTllU6cZ*+~F1bDt>S7PPjStQ&zjn3?l#eb=WH ze0wd*Uj-ic-8{_w!55-O7zji2(!C?hu%uxsJZLGbP1c%39;tUqq3&z~R zAu|M-l|!8!ia}p=gndX*A7es`yni$o>p-n%Q=4CeN(T`!+fN{^K`aM7BPqA7ho7Y> zxc7CdoP?snA5|SW%fB^#`*mwP!gqK;QNEFLxu!tzHke)( zDgogX5W5v3z~N>mc#ST;Ih|)ivp}sAg+S61bbug89@$6QxUXY!WhM8NfBCadutCEc z8XDWWz~NM}!ZL^Sb$3=x=}+L4Oysi2`vO{;H4r@-v#|0rGIN9`lro7|kzyiNz!CHv zJlBc+NC$ADe%&rb* zXZ3{4shENW?_WL=IO`p4WezK>O7>#iX1yu1b?UNBoEd2%{+`&z{}*%b85PyrZF?F~ zK}3+CAfS@7WXVd-IY=x)Vksb4NCpuB$tX#3EOL-6*+5285kztjD3W9((+mBd_q^xy z?H>1b_vmr!i{Q{=vup2XuV<|}f3yBwW7rW#;KicL_$429{=qA9nYMgFKtoESJCfac z2h|RcpmAx=M zMQgCA0&i>DR}L-l=AxUFp@5RLaUNx>mXFrhmR9)y%40@#*zJ*MAhQ$nbLHt8?}d4J zd6A1gnfh2H&nqvS+*$Rpp)gJOrpdTbt$}SN=WeZ{*EJI0C@Mb&j-vI_Kv^z|SpM%P zD*MM`b)UJ|=|@|;PJ!BIQ2B3UD5Z1w&ksN>7a%(t^u6YWJ2Abz5aObl_c)9_g{|7) zV~bxc0Kx{r7mwz+k-pFQb{~r1hPk8R9H~d$5tVqPYCn4B2R|JhnzFF!*<)MOwpn1u zT@lOk;AzbEF0@Z>JU2D;F;}ceowb!$oeEu)$=!o0`DFOoDj#YSWu_2)w7tAo6yDiK zFJu;5R=vO6h)4X@Ss+PN$S$X!!_k|(AtB-B!#nPWd-(t^6Mpmr^Ts~4$_kU7(lC|R zz6&$Po|w|%ayl4Cu)b}$DGp&kJv}|W7Hv2gX)oNU3M8ea)^r*_c**}yNyLiPxBW~5 zRM_hk_SP&($;cdc7kFXJ3(Pq8!^6}&W@NDor#vHV@QX4kDoi{$(WC{!fMbNC1D zeCZAMllJf^)=+w&10-C@x0tD61NcwOf z>i#P}P?GgO@PV1BU6L@_`gd{H@=OO2hYq_GM^blp*Ynx-rqLY3-XQYB>{T|!9z!PE zL}8OdxE|JLAMJ}&BQ*;<$+nkApKR{PES;!!Tq)H(?#%=z=7qH*31nkKW~O4)ubox#&u4aH2JB~dvb)0T>h8n^1qTL? z=M_3dhO%U75B^@!#mCpZv%AMc#PoRj4D0Ue*RS6=zvNjeaoSY7C}Q38&D-zVx01(n zbGmYqU+7tl6AO*jUZF;m={DV_&vV%RAR&&FoOm4Yrx$$c6XNuV4>}#!FGTR0K5blT z8jx&}=wt$?;s&0Uv<50HFPjA(rlA+xs)owAy{ww-yQd`WSp|7&Qzp^(35KCZR|zjp+CF;*;#T)ej1if;$iAm6=Ky00tZ+W)FhD?+mD z?K_zeiG@LCqHdYvIfXVO)c~sN%n7in98qc@n-dx5Hk`w$9ICez= z%SwNBT$ijR{Tkl1&KYCu`HATGJd)Ski?J3S!CQ|cv$r;@jd&@56IOG(>F_u{6}czY2i6uunh8Vt@JeNOSD6L!vP8*+d%qWQ)cnpt zjOaRhW=x9}kw^#grN$ix;?(P8tS#@fQp5vn1donvW0d=v1c)=%Wn?rpBlz~+CMIsv zue3To8&7=t&PL?O*0WY8_AF%p=0sp6(qqnVNvS7rZ>JWs-ksFk_RnU&?{B}}82ob7 zqAslA6;4Ce!?84ed#&~X#7wMb-j9j6YGxbg)}Yqb&5Rg#H{v(?9wBceU8fwZEfN3H z(Ovc=wsOpV1Df`Ct_4Up*mK^|D7qsRqrA|^HN89w4dJEl)fEptI{G8YKtI!fmm01i zYng?SuJb(Z#KT+)Qy*$pK}x6Xod~8SM=LvzOpHrE0127q zD?}iBRFh!1PJhFuK&m7|-dzcL=2=yB?-Q^KWfYsFQHqMw&l4EB5{rID^>^RZ>5Sh@ z{)n2%>Hq0Jr1B(!F7OU2y*Xrvgt4sl`SHGC3CwT)Yz^P1qf zd^roWV`DqhKD_7FGiTb@0gZpc>x2IC+)dqJN%Bzj6o`rAou$@|+bYc4la1d**ZWDg$OiFXG`< zJMH2gPkPD!-)f;?wlg`+ZZmG?xN_u<)*1KQx#erlAH;>y}T>12XzY1|Pgi^=Ff1y07zJAEj zEb4>^&)-+joo6LMFQ!v7ke#a0fd^eZH;sY{8@YWpwR3gIWx*&O{F%%U0L*z=jo_P* ziWSTj?PS+~l#n61IRq+{lb1ThA7Np$)Besj<-Le#S5%4H>S|A`hDEv~!_+n7boC%qny?&Z#Tf^GSo^9L%=l zb=h=)cWGgE$*n4#%aT zLm*J2XnJ?kg?&xZr91QuD_=y`>ot_#pe3AB!B0b6^%6gZfAp^_LC+XeAc7=_{dEB#cT~{uUDp3DLdx#v#FNIt*R|Z;UQi7aHT1P z>hsDPQ*R!>?QqkRD)e_E6UX(muia~+DR1$da)#n4jtIWF+82Gfx0`lhQ`lIrP9ak+B?tiNG`sy2aO2tBp zSqC&FUailQfm-+GGOOfRd;a*uZB%1p+a|UpnuCJ`jOA_vGs0+X7+>g@TZ=7CwEVr2 zV5c@Y{|DB#Ez^VcjkW17c>cXZ>+(mZsZlx zd~{!Nc6n~||1Yez?e}Cjo6FPoM<;YlVgp^&3VJgNgO(4u$@h958MTE%-pCwShH2@V z|HFI8C;y>rdensnyENlgT4+f3mrPEe;ys*pTfAy9x36kg^0&l0Z|n}5d;$AFL!DC0 zJrC&cutv_C8xwA`Jw2L2D<+oEmy&B8S%ovK_xlEg%_yeIYus;X{-~jzsojy{jROiibf&*DsH%NS4amDwDCn>+%|_$R5m4~@wn0B3lX||1C4wWmn?mLag?#15 z8t*jLTR-un8Woa64~rY|7_~D=VB#SqCcke`ENQ1kC1k(T|Kxl2{ZN@b!nqhKuFbo~ za@=+YgBBb{s%0n$G4OB_r>9cF93>F%cl=Q}k^bzR)&zx9#NYnueWY(9Xed^jv5SX$ zU14KgiCv&o@?oUlBM?T z-&tz=yH32xQHVc!C5p5?BA@4e+smzCx6k&HP);9>3PDs$ID4L2{?OaQeW!X{I^v_X zgV5M|X9k>(Qenkfp8BlY^6viXmXJFmd|zp}XAmtX=0QXwQaiqfK%wk$wpU~-aArQr zbM)+H8*a#y{s6Xkc6d`DB3r%}U($JT4acw1V^#I*o4_WOvCRK&piXmgrK(6q>4 zp6K_7QWOv*dWr{GM-9L;nx~=g`(9KlgLT!Ceffg}SsRmS%`W}2r%~P2ia~gZqQ3?U zI_fdxbom6O6*>l;v5;9>s(Ydiw=t{^KrmSh6&oiEUhzbANAc$wHAY)z-LB6Qb`A;( zxjD!W4G}^zf0=8P6PrxoXcqn_Lry@4!^rSN{{A)66n(H>_fLHz#vUAsICUr%{%RM- ze+Lznqt5q_wevMY=&1hyH{Cb8f8b-GE%6oZ4E4Kd#!ATWt*s4$D_4}0#y$-W-h&NRY?==-(Ty8hd=vS{ z`ae9GiCdBi?|Yq@$G`lLYxn4IKiooPdg@_}Iyyap7^oFrPifJA+* zTieFPy$oP38K})0XpyaS?Ck7!?_z^198sDlk!^UStYO_F=A{_~BB}1~^8sXh{dVH_ z07vqe>bKcwbw`etspnb5vE!y~U5)e!qv;6DW)Vs=FHgiR#2zY^sD+P@vx(@ggA}EI zaiGwkMEM|A{11KVuaowaY=V>J>pxAb^IExjTM*2Hq02qT}q6ZdY_6pnDil@p3BRPL6! z{AOQW2&RB(DbTEo>Jsbx<-9;L6US>6-;f-rcfqEr(siVE9}vkm1?)9*)zQk!dgt+o zRjb$c38=5!6b1~;dT_-_Dh}{r^Yt^e1I?9s)8)RtJDc#S*TV42mpZjdFsfdn)RUBK zAe3p|C!nhJSeB|MWirST-?dK=inaLm{w>{)UW+b(9piCv=7AA?9e;P#R>VV+>mLVp^Fb?9bIClt= z>p6s#mA8j)&y-(Y)sZj(&EF}{1Rhb3)0@YNxU-MpVK+YeV(#>zewn&Jl-tP2D4XjR z`qiOPHFguxbWm7+rs1TSK*!cTwkf+gRA3IcW@BQbnBz!NG6k=m8$|=!fC*m~|p_ zBxQVv%6l#?2b%v8SgQ#zP}xdP7$093Hla0RmTzaG7%VnsTfVID3W7?)^D>y&N)ya_ zzhcy_i~(PRq6B|gu8pbJa(scIU=eNdLd;AC>UmF1rB(0Ij&=vk(PPVO(q7=9 zs0Ir4-f|#}GQx@TkJX6@mWE3Faz;*8ZYxIN#qP@71^a-ocY zelV(NRd=+49d~p7BU(AA2j!jO@d7LjFU4qCm#Qr}3$@YAW;h_xa=Lav!BKcx!dD}= z3U#+3+=KJneBpasN0OjVDn1U)di@IJ~)b1`2oGY@|&E)zpZTFpQ`FJ&TW*V$nAShB&) zj2n`LTorWyk>%fz1rUl_*KI~qlW#v$C=)EoY=I>};*U%iyimoM)}#~^5MUxG*Rz*| z$ug0hmKIE!B^`yCPs($WNEeE$_bJ?tzJxz$OBSp*Z?r#>2o=IPrUT~{>Ubgk#qnFV zvj^zz<`Ze=k@_FCCowqPJdTfJ(VrgeggqFo)&mn>Fh@$%TG2HIP@ufk`vwVJeC}iRjGuQs56Uy3kO{x_MXOPZ}zqw-^@Jmu?X$d>s z(B?-O?_>;PC=i5C&BXNPBaeE+rh+%fIGp!)-h7pd=7_CS*DICNR3N+d;r_(j+=$mURtF#HwEz5KT!yIU!=Tx4qC` zRr~abf=*t#ru63erOTIz+#6vqI_Hghg__H0qulzW@Lu=Wm&h?JD>bdKpjHV2tn)PY zq1z3isuDBDHfG?`T<1ht7Ntt<#DZj5hfQC-P?^$-pJS-v?PCUj$2<@NpSLY0>vpeP zTmNyyz-aN}#~zv(Hy$b6GuCtMIh>;itz1nTi2XVHvM&d*Vzl{H{r;b4&SrbVo1?FB zf1Wq;J6(|HqbeJ%Jn#^N<6k|!|+)Zted63(tv z=W;jp8+-gZ2U!Leu24o5xGlU-1Dl0agE$Mpje9RW^ApL(vmGE3=-0t{s_<_KA{w#R z35Ud?pm|>qk^uefjk#~6eoRvrNT!Q@p;YpGhF zcxWWFm#vYT;oA=|`7XR!%AtTu9$8jt5<-nJ&g`M=s0q6j_7#2ZKT;#TkR7HBMtZwi zXNA0jiImjB>k0VtJetSl>hbaLq~c2GMvuEroFZY4;24J>le)Va&>!Jq%y?oi>>-{P z-{1XVxxS5C3|iC{>#sR$fNvYpdme3hcx-Jy*Cy4`&>X@jjW8&7^BJ;e0ffv+a?tFr zUvn!-HIt=R^fTf*VL^~T;wjwTTC9McYIhWqd{EGVgD2NexJ+o$i2ZZdU-L}0h5f0Y zy1sXfA8s!re)(RpoIZVe#d3NxIW6r`tDg-9q{qbS$RmXZ52`CdIizyHw!3HcUE1r6 ztaU-)6>QP--(w=nziH7uN8MI#6j#H#aZ7VS{hGc&3`D)7t5pq~7H>N#>ZdUE@8!sd zi0qF)pWO=t#cTeIK1_hEEWp(|P@|V>Bk?jKT-Br@dP9a0dM77kj^@SV7-;e1g4-Fm zm+4KSND+(r^SsWPDoI8T0%a{0o$)bx9f`G0?4&s7FCc1PB;Y~|(_i`pl9iOwl5ru~ zTprRa4!#F1guHqe3iCs?eX{Va(=H4y;e*Sg%|Ay)zYUj}wJvlMN=bNjkoP+So9yXO zP>hKW+by&wB-=|^$WvwQ00idNRz%F*nU9K_!c_p1z+ zv@}aYs_mwJ-Y~N4o1iXw_Uj9^d%kkK;2{{>0!HtGiwpwuP&Cd##1acKGPzde89$T% zUC(4Vx8DDxrn^RtCb90WF4kW58wu*uQ8IQuG7Q33IHBR4Qnf4{FmODc2VPsiB|;HG zG{Zv1ZfG?i+4F;O=Wu^nXjwTyAdSc2TE4L3fTEy!(Q9&Nut+f&`jO`aMjdfB#$w_X zhir8NlzXsi*BX5~qd8Wlb~m8q$!6$B6wNkVk@UP$GR6Vd0zCrIqkkLThW`QQV%5*fHocuJt={wVT734*hqOt zz4icigUxrI+#>tdsnMz2iOr18<${j;*kKi)u%8b;fZk2oDOh`3dT_ z?Y*QLsvqt+3@QEPz-23D;Tyb=v?Dp{dx}Z^xryX4yFUBk-2{PN+r1U*lk2|WPrR~f zOKgAG(IIJ6{5bspei{B6X&2C1-}szfL$no8jDJz+c=Jcrg+1P8+b8LY4(JqgyFwAt z#nzW%t&j9e-R43D0$O6r`u=?)2FsL+jdC$$Bq^K0lL6a^^5}o%EKdTy4znD858a{% zNZTfq$)hl3SdCjPyrz8cqB#_z1AQmd=^U0^W~LXv;z81~xkufze=*Jc?f*-D@}@N8 zCs(CsIqaXn&H7X}rsp!>+&~V1IrY=0TcSTHWq4Pk5vyXJYIb}9WE`o(Hng-*^|lpZ z(_4g%WQz;>s)d7w!%ZUU3&Jb~XIWtVQT4Wstc zkyKvF5KN`LsC$zf#+kiHTwL5`i~59^hL$Ub_=sPa+DvtojQ@yPE;7$4>xh`=Lsq}4 zH2ByDTC=y;Id^pzxF3B`x1jgn&)#<26?a`-9-iw$q~q25wQCDO9>?nHTg+(P%&c<% zS3qxOZ|rVZ*bPfJW3LD2;zFcyb*arXJ+5oI*Hx`|6{iD+qmGQe#R_?Xz771$R62| z9UdM=lF}pF1Ebh8FDhBVm3TB^g+5AaoE4e$J}2F^)tv7)rRa(R$XGW0B7n9 z1>e(&dg_)V2V!)$QO}rq47K@U6dUXeJJpTaXFGOpdB{*EY%dL~c*(0i zTNQ;-wU~B6ynw^6P?)-jjDz|7EWPdd@YB^l417R)FqXtf3;qiWuXr8efcocZ`b_g16_1WU(JgIyJf-QwDCBS-Dr^4Bp#p^*Ya3R}GsDydD_JOd?@ZS!=nG=>b2Y<3XX3}E}AYY^*T ztzR*_yXCKYsumXg*KKy&`JIcPex7<{fq z0-jNP9=`{I4fXjq;uI{}wewT*d|EFAK%sQmdOKus>+@NhyUtZ5qDQOeb1I%_v(~#z z#?MV(C|w5{{_bfiLHo^snu>U$-$IVq5vq}jICk8GV5C+K*RCOl%Q^ZUkoe69bZ1}Z zbGjO?6AC2e591-7{m`Mv(&j+aVEgQ31lfR;5ar?cd3RH{TEsO*7#6AeP$cE@He?{g z+|iC_icQSb%!%hnS`v8HH~$fnIa2Exs`H_9b{X9cco3Dyjg!o3Sdx7Y(_Os^?uCyd zG?(Y=()3?0FpqMetTuZWSn>-GqvmgP9v}3`0c?62VyjUM>j9EvW;{mv(Ep;PwEmqRoX&_H`7s*#*9V6@x1d#V1vD2BM zC2Hot$^VK8uNR%5qZmfZQ*licGbn@4sa}2e-Qka}J$G?mRBmbv}{%jk(O; z+Co!w&YTbznqf0o@eI*tokG%sc^Z|nay3C^ z3xY3=|0?`s3HxDa=0C)rz4iRt8)GV}-&rvav!`1?56uF&PX8;*{@4A2TV+V%#4KLy z+MC5FHwer*_=}Uz^%jpQ4QOWNlVT6slhP}^BO2J5ndJ@!s^0J4yXeJu=sig}cXwW! z_%kn8uu562fpN#krayIepnoZOA@p?_$otS zXj^GLQe0-cl4$a@2tQXx-s0Bdb$0LEDE0z9g(wPvB*FacQx(=jEzPgeN{XJ1#hd4w zJy-&=IywK-Pw#y1Xo)IO8b$yrxz25C9mZ!6rq~=zMMrt`>v!^I2Qo zw~$4zUn0(F1i4}xB%D4TdS6Ogo1v_=oeD47Syc zAVS4N>b@LZjUiDgDyo7G8_VnTvfRkeT{*w-KHx8Y=Wa`gn}5yDK2H6WwU|xJ<-inT zqjCN-HoD;~*c_(V`uJiY2wEa?O@HBguD&E4!GxtopM0mMrEPz~#*z0_>1wvOlWiv9 zSKlZmLwUD>OqJLLBArT;MuT_Ev4f+kk*Ql^XtS;YOOEZeL(VA^cx;ssKHka+c>DX+ zt5@%pQN#8X1*90naH&lrUID-7LKCf0&})E>bo}u062mWOyzm90Hv^zILM}iR9_%fH zKl4Y#2sZ8*DtSddr`g=@Zqw{LJoA$pB(6DXb1op z&q+m@iIWHqhHWb65s{xe-V3*ecT!23dB`)d8p{nF&Dp#)tVT_q53T;KsZ(&QVrVx^ zZ+rcl(sd!dY@`~gcVHb(-9!B4@ZjGtUj7Y z4vj;FEZN?G1}!Ya?`4L`D zj5&PY;(ipbJM}zUi~X);+sOIAtR*b!>7!$hViHm|0n|^%{YU^B=qttEDp%Y;_+@x& zrI`D16$$U0|G>HV---yQx}}~>YFojjo{r+D^BBlv5P5-#88XdOEP3HrU+d&$(#;0( zB!A*h;Dhp*OKu*HDjAl!c;=XA4jHt4u+2o=)oxL*1LUkjFX&$GB(&bJr4M!lz|rq~g+vu+Ee{Ajr&54E?&+&8Jj z%!nzk^hRFMXV;(2bpB9GPL4V2l}b*Hn7KO*^2@%Xqo(%ut}a9nck3Dx@-?tIdh#Ds zSpOT$?|EYcvwGLh5|N%*2MXRvSC%)bt22u_Zf@n0DXvkrDQe!n!mnl7A)tHGhkZ0c zhU!}8o=;|Gse-ENv%BYif=GJpWR~aAMYcYQr@?Pw^!83$$*Y*_WNzCBQnGJCc4O}U zcKDU_c$5n*zxHJ~>4MtNC^o$o^>@A@8mTPTMHa|73=3X>ipWFpiDr(eoC`BX*Z$rM zgUfx+?T37!@xv88cIVXSDKg5gs`NsVCAr`Ssf`RRX0422$vxA72M-@!AFs&K%3-Y4 zEXYgk%1Ww_4NUDrsBT&wtj}attM3nAy(Ps&CoSI&`WfsD&Hi(Z8q3?>D9?2jKDfAF zn*W)(FjU%`hXw>}uemPHEdM?_Y&MZnf+#PIioXAb5wzUjAXr6I8(#}|r*Wk%Gv(Bs z?y1;u=yQBkxjf0~v?EJTjctNFQ}h*Ff#KM=t@ zKnVjeCTo?gPE2V`SZtO#3Cd$zy|VF=T+rCN8IO|1N!*@(bDa(wOydry*=IGR{5u3lUT~@HMmkC|c(MCgJ^Mf^}sb?Qr6awN)Gw zy*sh=^Eqn`S!&*U6yFO-+dGEKI4iKy%b^g{aMHf?7NQII_wecumWgbTUM)};YSS)^Z=8{C~u;v zH&B{B93>T4a-aW}k96U94WU9-ku9`-h!u;^F_z&#>Rt8%J^ z*^9P37VFuOL_;4x#`;e|_U-qc!H=gDv`s#6;g6Ee@6xxyZ>E$a5J)He%b<Ycg1i4(jdI zIk+IV+0`%64wu)=)4^MDtV+D>Q|)P~X(EW)OL*b#)nEG3?}v;Z<+Gk#Ws-lQtlQRS zIudS6>_r#W)_dSpAFo=K=lKdeH*Jq+x>h#CQ0H!>55ij2eX^4_W&Mjr`+g4IK)X*n zn)hL-Mak8s5FE>c zoNyXEimrak^q4-%35e$J4^a3a$7h7TSLk#F$5p6%&rYUYsq&HT^HoS8Jp5J~=@1jk z@0wxx6;12k>U#Z6WN4Bm&&v=B5qUjoX01F+h{N#iwG*|)?>`qMD=i)1!i7rD>xw~3 zMaP;4OyWverpL0&_DJ32HW@sp^`+NO~DiC z(*`I7%$AZ8UV`AP(`>I8bo9WLs-)p-+wYyNUgs8J;x01sQaG#_EZ0d*(F;DRx(wckS8T`-pHDx^4YtU+wFRwrdwsSERHC|Fj3g-eW>&*RZiJ zO+&Jpw@l z2?-}J-`yP+8T7_hv=Ub|M`1`f8U_QO5I=!+vaR}u0J4Sk9Ef68``P~878249_t;qB zn7Nqs=4}4zd5#HPTwHMGF=!RrFuLa%dAcRn%|FxX!%tlO{s(;$+kM>7c-(d#{^rkX zhhskP}|F;2#{J)}&{BQf8)6M=l&#S-R`1>F3 zF#QCbv6GXesV3^_Q&#UjNfnhYu@ZUZmP93-YbrPIfCA)a(@L;`+ zU_~cFM1KIr*^pbt^gJVI9y94Vl*z89)-(R4&Jzz0vciN6%V0O=?JY*ifsAE~yZxtc zHoA(4`sd)Y!Hx5Xy8aY%x{9r8o@@$h4ELV{X;199TP=KNZ;x%M{|N{gTjn^%-^UVz z5tRSWTQuG+VE_9T_j9%u2|8pia1f~+#>mx zL?z6{oq)h|tH}@7IoKXy7Bne8{%olG`hv68J=Ii)N#Wbywqf3 z`{#~@FF~$y#LM&T+r+VW6l?JT2OnR^-*Mu<@IC5fD62KGv166%=?XH(O^ttk{7X&T zuf2a4jlaiy>cpq;pRd25qbXrvAnhT9eiZKmANV6!n0os;cG9J1|L-S0BtQ*Dv(QdtIlm#JbDSd3nH%DJe-`y zOkc;xkAJp?YbL7z0`HoHmfQ`Hp`uoLc{?ImqM>T9s}ns-;)p%xGi8bUySr+i8ynG}*Jd>XQ_gCvTs96tu&Nf3PwH;~g$o(i zW_4b$C{sD1%5K{Cp}5MB=ka01i{+uq9?~SR(;q6eB7_d|$t(TlA3PO=fZ7k2TZ4^T z&F~0L7Fr=1j;R8)LaZ|)?t6V>V~MzsIobM_=7NGVK&y*Vi8dn{jk>^zq}zAafe4b^SfwJpo;X&N$t) z)YL)SwaKp+_8L@@M2p5{OPL_(R1ALa%j)VV6i=Zh>;@ludcXd41~)h_FOTuj{RFuL zDlv~5#}%U-Tk-(`hXrDlAY3x`k$n9M$R&1lc3vJT3oO|2!6OT3=LFH1v|an?K7pIt z;aTrjmrG0`hS@Zms1YB(B&*;@UT|vl&y2G6_9*s7^jDPP{)KFeB-g5Mc# zyK{f{7QcUuPW!)2OdR`YH*G)D))*Zf!J<%hyFvd9*_Ab8bm;$5aBbg1W zN-B@R`D6m1k}P#S8v`_TrpdZ z3EuGoAXlY!zMiHNJVBs;o!t`?65CelE;x4{m)H`*7ze+=&lnjQ!9KT|vr=h`V3No* zbkIplOM^P+*YdK`zC^TdCtto?rslHUiN-Wye{)`A@{3O(35&UjN$QIZM4~69sNtou zqi!z^trYG@aQkPe-X5YGdWE7C^g@|8IEPO~M_%z7Yh*cF-=OHR>m=k+hU_o4=wcre z&)kH25+$FVcp{DwEkXif%Q-zR(kM1L`4)4pXt#8hdL*No_|x&;-f)`>L;5+g5tTVq zl$2z(J>%nITwEB*kQb4BEXswx)c}8|q)eb55QEJWNvB6IO@GwiAszd=sOZ%9c2~yk+t57EL9ThFC}0- zjq1YSSefBYSjCk-7-DV8JhMaR@+<$xhna3QhO$CYr=5@EVQPVM9n2azv?nX}%VVNH zzLc|458O=oaH+E1DlZEv#qpu}e!((??2f=;2FzKd!(tRl2}zee&;+q{vcnRFhKAV= z91vT$`QT3SoxY0-Z(BbYf5ozGvhco76nHLO#blJ6VbRktkHs=3h$I@+xmDUtH(~tm zXHkaR`VCoIxpQV-ENeu3e3k+lRaj(Z6_gW&nQ-0_t>oxe6!><_-oz^#9IJ5-=SY_} zB_uzzC&)(YD_V$mG#^N02fz2DE;Op0QozP9jn&2#O6RBE;i>XGK7v&cJ)9YuR=z*^ z)h}?utF?J#xYX*Jp}~Bt8<%r`uHt-Sj#h3~f?+)4UWHsZJ)2&ss-8yNM$({)j`)Qq z78WvZ;X#7`W3zDc3#aq8wCg*-clLL`L1^dj5&NlbRFtZ(Jqp5&`0C&NCiN8{Y~(8L z^Y*s3`sWmtk{B6~BNNAp%>o}PYo)?t$a=VZ^n%>$WRUk+GnVKG!j{y&FMf*%> z$Toid>?LzgaV$(e`aOfhOj~3ct7H|WUgtQSNRmAEb#JdX^3|rYrub)Cj_z2{>OYRs z>HPHRK7Qye`g-H}+xP9FABq!R2_G*3PGq$7QiMw3!y<7(11idkhRK(%(W}0s9nFZ+ zl3nJzq}5(vSglUV5@mUOa~7+|VOXWP*^x^5(S8P3M5mv=gV;@7iFE%yOK-g<1yg~< zxYDT(_O6kk+Lf6&v}@|I??FPnz6>f^^Z4R7>nv*n^?g!*Xf4e8GnL-m{l_%+9uFd&s=FC`3uAIk~yhLMJFvc2bJteK&5YIyGIRK@yDOH#rzbW6;k z0?80b;nT)V-Dz=B?|Y-D6C7(WU)3G!c6-Jd_#;$ME=UR62`d9+Ex+4K|wp009?U<5Et-*&;hMI$uU_gPl9sDL*?5^PBaM?9`aVaV`4#tvokYg?)xw5IyqL(Xh8*L zSp9;{_E+XKnsUOKXw(}F_iv42O@%9jbJKDa316Xhp|03H)Jl`a@7O>;(MV{E=IA10 z){>eh61=+1&nOkcpK!Bp2d3_YS+9pT#%H|FlUwu{jH(sqz zr*TItFB5TkUwrEmn)4Oc(YW`$!4qF#P_1@QO#xmJBg}gPDzfXZ7gi^~+Su6ixp*Ax*dfKvlwm3VqZbfa=QBiYHBCn24&)+W>^HEl2n`vCO6GSCsGsI9+!RiaMdm% zDQO(4_Uva{3tIgOy*17t|BYKmFcGC)eBG-5wDCvp(E-DDFFMO;t#m%g^T=wrJpbM* zoQGaz^;5lBYBW*T`vg@i-WL?+=d&HkXJ?lBHACI&lyn>Eo_N>zm1Wu7XeAa4RW^_F zx+&Tkz=++ubJ2-h*9F;!_}i2f6%~C6s5>vTq~h3#O5yty3->3dP26TVFRuA~2f5kA z`(&Wo@P1~rUWR4LZ1sIM!E3cSI;Y1UR(!?tBz zq4?v-+CCMIDHiOxl=3O)3`Nf5!NF>U#uFNqX-58;u4|Nu1nKZJJ@EL6#Z~u784^!o z%x6dvb)Pz1MSd^HpG@ZQGrhTDmHxtnxd$!1DXku8!#-Bz+o@P#GrA)#h=F=roj3We zbWpy`JbnK&X4ob8DH9`Pt$z2U$;`jO>W-$#5Y(x*GfVQ>j(z){9-2Wpfj57;&a{yu3k)%+>rB79yXPB)kez{in}RAjJMAbwi_xyLZY)T z-%(VIG&tpd#n~!UJ<6ntXN%?Y*dE#V;QiE6sd>6nq*~Wf`E!zMok5j7TdfppYoZ8+ zb-6=ehWwMN(d~!jNXqlvCUPJltp=4qy$ZqMPAH%=9ekI?PpnH_FJ^h-er)XSl~PFH zY#RGNDC%ABUxXOPD0ZG)BZn{V2}|wfzhq@$t%V#BHTFtN`e}PxKq*E3aJ?#~rZC%8 zV5Xh$r_XXB`GgsKaGx!`CQQuJV|n}}^={zxXYUINnQZfeMKrd~bJI3VH+U?=u9t`C zIW(?H)*qOQgcHa#f!ZSAdVYvF88Tzetc^KhOnf;VGx<(Fn!Tg?+#1I|L(dyRnuyue zZes%8qV@e3+1?p?EY+tgE~ z&Q~@p$ms4HR-p)gP$b~*g@4vuofMg8R>-7FW9(~d3+TLGWYT#36zxQtR^zF}h+hw1 zaOxO(y^5#DU+h(BT%QqjJ4iRy@Hn!S2~J{G3VQEmS$$qX`=h}DQ@+5nLE|r)6jmU= zL+E}Oc73!xB9)_mL`=j?L__)7Pew6DQ~~&G>l4V4pY!q;%8;W?wcCE^B&pNyw(^`$ zDv62u3n$H_gIjt5*LZ#Im6dZl6D4m(IwQ}`EqlZ6PEAb>#;=zzr>k8cgivoWPxB%7 zJ7pRyN`xvxpY-)=YilFN?&xitrwVcprrwpb*!0J2%P0I+JKYmN6bBiPh73NWT@ilhEh`Bj)2$^A5irA!62jQ9G=Lss6YTz2K* z{5(Yad4j#~uzI(ZI`5%-8++-IU$o`V>bLvPLvKd4EHrSdSqaif@3N?+N}BL9GAg}mSgUhcnj>7; z*?Ec@jpQpRd0ki275#+jQ7~1UTN$j~1|Oe25Eh<)s%l6yZ4{8{g&dvjBCUETe7(00 z*Ppjhmk4XRUW=I&P>c-obo8*=1%-_HSyO4?R*0}%ttlwBqX0fh+hhZ=@mM-*PN*lNS}`r^vsXTkwzcGF7=X& zh~-;!x$ZpVoYC)X!pBYzm20E?&>hO}P1yGIAh)S){vd>DsCF(8O+21E)H+aZO7Ce2X?Bd^@3_s@^-4rlxDq%8aS`l?Glu+D&&SzCnj-X;@T zblaYo1ezNm^qXAtT$B>h1b^BQncf+JC(mQ&Wu|OvGjX2 zHVA8#DrbYYlOwyMR&s^(fwk)h)UZs!6Et@MgqfI}9)6+yoq*HoYQv(P=d?QUAScY^ zwIC;7!Yq}5f2}TZAa8zZY8_e_qT&hH<3hM_JSI`q`3TSBbL zru1@d*ge0gUw}Y*GbK^PI~m<&+{3T7e5D(4V@yOL8EzG%(6fhf&;P#%u48&t2QS-e>?OG#UoYyHE*L`yD$>di`uc}3rGeQR-N(PkDf_J zqijx<(q+tUOVv8IHH_C%mo;`bD>n|b1Op892WBE<`ap6=#rXmg810WGKcO_N9-lrT zSWaB%v6sIQ3M2j|o1+<icn*!i=1^*lymzVogn@;rNQzjd zb5q%&e3^z6sELq}kT`zZjBT5?%kStoP2T+?uU~rfc4;n3nQ*1?&fcjtap*Pj{$@~E z>iEJiPe{|J#`?J{5ql%N#xV(V(ZLOeQt)A!NH|eoGaI#-hv~w07`4xA_nTHflg07+ zdhBNj+jQ=Fp1#sjB-%|m?cYn9Gwujv2 z0)dN4T8{%g4g-sh16!vK7?t1Ik*?du_wKCxD9a}?oeR>#{oes3n*B^XV9(WxQGoeM z5#=Wju(vn(bffFhat5Cs6*QWf!<$q-!WcD`Z;s&B{B2%01Gr)EiDggF6aEE3?jeN2 zL*9^!ogVvpr+?foFg!yXptA(hJzo3+sM-Zj`+coSiHL~Q1hE0y+MnOPikDxx&uQ}g z4mGs_K;r;lR-iAP@@7S?&wkR{hf{yS2I` zCN^YnG{>SJ=a$3SL3{Z!HLu-wx|mNNt-x#nGrn*=rH^sx>d08X%X7ELXnstUe9=9q zUG*zm7XWW@*IZ*CH2Iz;TMj;>hmQuYhQZ++>q3&xfY$gqcz$MDlDK}c`Iu3o$mMYB zpN1oK`@-A1k=ZQtRs{Wi%8w@o7vwpUnscST_gmjx+7kryu%oG4x6^D3oPj z;Y&3}e%})hI?odwU0wPSd;m=pm~|JH(>+YgYJp?ZapCPqpTRFdHILU*yS8!hu>*Ij zqqA$90RPShZA5ZR%zY}c&gkb42nq(qhqF6G`om97<|=4CP8J`q+00dA3x==5g=i(V zxrsozjPf~zX|U3V<|ZHE4HWF~uoDC$Ab`Ca*PQ?gB;1?gTM`EQfU$rlAel0YW6)5= zqt6h449R0_3qIj#h@>(9WU`%cGznHv;{Q7Jq6#+N55qubMSZ0GD!TY&V5^tucblh} zZ?A_H4L5&2tmk^cGhoL2@>VR}!4J+Q;JowL{uMouQ|w87*EVO5dS_XE_V`I=q_PkB zlK03gs@xC~lI$`5fFnRVYsJka_;jx$()5-9N!UK{nk0hn31yl@!)yK);Z!y;$r8g zqocL;b8D*Zy2@e?;dNqSVqa4XBfwS9671z|T<2er&}2sR^R$|)4|#rks609!DC!uM z2$yk1(4e+NgNk0X3CRKk#YLtef(N(`A!CJV`5NrivC#BioqL6n`v7G1UM6M*{J`${1NA9UhX=ydaBRs+BLP@(!pRbE+T>Io<-cft~q6QEp!kkM@hL#6Pd>iC$&( z>W%`3+KcQo*8)_FtN3yOJ_Im#q_!f<4}g3AG_4-4T@k(c7ai49XkR-3E!4FXS6G$f z1l{cf1g36}-e~xH=n~>!ZBm?rzdRac9)jZa!+T~MpVp1ivL(9 z(^vEDpT@%gisELV90_~Lc;h=}ad%b1oUL9UHCU0IUNQBP_?=g5lFx)jvrF_{MR^zm zL_=0qvQkn~Lcd5Bw#5uROE2Gg7g%(woI+7i(YPaGse!8x1)Z*TZn>+Ae3LC>9>A<>9E4B*hq zgJI-l@q0n{nS8zugo6|@IWHNnLjt_1schWNPW&mA_t6ZekkC`{D@&PlAn0?j25Id+ zJ>L5sCEPf*9?NVHhL-A0;j(&~QStg3(Q!IM3@E6YqBZtlZ)o(_wEH^gW|3At8B2dO z|M1?MUF{n$R44WT*2lQTkdQOmOtk2KZ^u{CpXk)12>SNi~PK_4Zt{@WLyW z;OsaglT3B?rQ)p;5F^Twl9_!Es&*2`67*(3GGP8q2F+gc-HAXmEDGN&klgv|PXxF- zL75y!clS8}0UKt5h@(7x6DDcEtdLY&-u;P4RPs9j{m5rfkdjKi{{oas0X*)8QAttj zJXPrm1rXYd*iN%^L6hb45D-J-1~SEg>*mtDq6PvK(&&&Hwkw%g>OX+^ffGYQ9$Swy zg#D+Y*Z?&5k;7`tJUIV!@cGiPTpVND;y07Q>T9=d(>(fnXG~7_n>*xdc&fyK@BZ24-PaBXcpMY&Qzqv_6FD-YN^z$3_OV2iov62U* zA3lEMwV4oQ8ZaMp%`a9`xs!IM!KBH^!qDGBq2XELiKPto+B#vW4DnMD6|xw2)NrYJ z`XLk!a9b~gO1#X2=*r67I3}&wv7FtPd;JoMlO?^t?RzQPpby>1QHGmjh7$yf0xp;fsn@R%lkD+_Ar9*iNa;5P=sPmO_@WL=v z#iO!^+*VsWrc~->dP%%98By8KZ08Wda!s+*;t{NBpnwO%Xto>7ogY&yB_)MFJ7!}W zep1)apekMz_$W=dLH^{q?DrhQ{_*q!>4aFN{I}8W-ap61n9*ueug819@PeQlurkEC z-9S{^$P=isHWvw1k|bp!zV+*pZ}zN#v-6_uXTHm5kp{>g@V1Y;U1T|&$DA~P%an2u zV2NC6bpl+1qbl|H8i+>hk`x*Iok{Emx?-=sHq0uf6T7zFZ<{sX|LJ>Dzlqe()cEWe zj68iXg)p07JT5U1{38{Uz>CwI6;>OIN@z|xY01Zm2?4@5lqm6Bf>1u4Zlk7EttTN zyE5(m<1=BdgugtA;eyBEAts=AItB=*N(B|4q?a%@ol zdvMUNc6~Rsm1V%<<|LRJEuPOrsm6$p!;js7Ydx0|^Lng7v& zT?N(dGj)z5j|-;Q6>go5d{yKRQMG=|eK&%FLkt658u|JC3D5`G*#t@w_s8m#XTpX$XWnXU3ZiePsK+ysW&1KX zT%)!SSt4-qZ=&AW9P`zWHGFw#UZbInP9eF~TxH&Z7^BwUzFF3g22`7)vMh}(zXVwG zx%nTuT$J&~n~I+n`G^Q3VLrWu4^UVZBJWqHD;f++H{&CZ11 z=SIJTe-i|0MgMy8xieaUr<;g4dI=E@ztw)&f@PqoaLssTnNxqXaq3kx%9;G2vw{UK zoISUBD?2%TqiA(C`R)c1Q9ggkp1Ma3QWFFFpy*WO=a?O;=$NQ7KLXRf$8m)=8#e!i zUmQu(ZcQBz9Kno}9N{RF)0jx@6aMhy$uMylju7_nn zCUow&PZ(PVYogJj=!aj=KYgB{cTcJ9`Y?5R7ej2_&j3m~yuw`=Lz|((0?nB>jM&f} z}k$*r}2Er^)BOxhlQC$qSVt7|*-ZJnuiriWoKQ&Lk$*z>j5 z8YvmrDYiYB`j+S6aGOTtQKXW+{bpw*4%GVt{8jUI@`-)F+W7X(u^(!wm5M-G0EN!{ z@qRzfsa5>0yCsN9_j?vB2(ESdy-kZLt4w<|bciy^&bQWVV8H$ahSs*s^YLhYT$<93 z8vC1*2Vv5J)Vp+|?sp@tC;V^3Bh&Qe6nHQ>opb zBGoA6rn#uloZH6C1K4`&X;|s6%O`&A2`|seBItKJiJ?ME^T8ZkTqK5j+V2#1vNGlw zxX#kIuXU7WSWwLDlDcyv+_pX2XwaRIoEYpATv9khmi`FJ=!=y;Ppp+7MOb^>mpg*!Jc?CPVN~2xrwH6H-Z_49{z-@}0C6F6@7I`xZ`?RUQc~)vN zF!VRNc`+4v_Wf$3bRe1S9DJ7wd5{8UQJC$DNNfDM5(g^5bnnB29J{f0$IXzVw|d$& zE}dwRQ{-0$k4<~nj}7RmxF2ji%^u&D0hMzyE>u5Do5L>%ZX69R9%od#^>*NQ`k`L! zWt6;pTzlj+xL>*m{KsuUn#L*nlUghmOA~D9yP|~uQN+YXoZp!QRp|GlYFsrAN?)Fm?PlP;DX46nF}Vo=oW>gkTTfdPcGS}? zhx!#wb@M%L2$w@e*c`QtFA1~>cKBEroc@v^d6u|FZwNgt(qIxfO@bw{6Hlk|SC%7I zy9{CDf?kSSeNQO=H>6uXUfk;3qu zk-l5sXnYO_J7RQ=;&8q0cr+VqpHhZP)_?i+SUWN+2rtc*nhaO@yl{3|iZ$W%8*vjJ zcJ>Y8v!22m5vj5L2KkH1p3*Q(%x9=+19H-g?daQESx7PVGpMn_)T2v6kwG{7+eMQfoP=Ba{2CDve4U@C5)?WJII@Xn;^dP zNJH+`;A5F#r$iay$Bz{6KMN;#H)eAFs`+2A2y8P5Y(MYjDC>D=L}EMJgd5YfSBU4e zn>h^8YI;i0qfE5iZ@86JemIIkjiQ=Y`8UVL#^Uv^U^?032VL|t zZUD7SbnK%cB}l|9_op1=`cF2AVQcr@XZEwN&k4Xz>tToQv26NIMdXkFCP=&_ah^%~ zW3Ad^@GJ5#W^N8>aj;O`*Jop7a{;~%ck3;pnf6a0AkYasuf|P~x=zNXLjqw%x~PGN zhUWgx>Lf519=ve!2?+kn_1)w16id-=+5BJlNdv|>LQb(ARXR2%0#TwJ80doFljM@q z+9Ez~LwJ=R1?xu9^7ngHhg3*n5|D{m;&_9sfD7Ao}}%_8Jj!Fq{5n z)M_2WqFX#_^>!+RZBA`lvSieV!^++s)QxA6IVbXaH&*S|8=}t09nH2jQ_ah6yFO7* zj|jr3Ga^1+BKV|nK63;E4O7!oW2J8%kRNPpLfxhn7sB(>WUG(X#;A^OKMLzcm*}G6 zyDt;G(~P?Xnu`*pK4=*px{Vd?dpgoph-|`-y6GrtLquJZ*HT5j zvlk&~ejgyt1fND(-ZXux%s$1K*OJQR_9}@C56;dG52JMPE1gRx`99VRWO8uQTQ_fm za$L(qZ60!TF`k_b8kJD!Uj(AoyLjeH1b$K1EdGN95WIbuDBNhi5U}5Ghw@xp5k)8m z(Of;ceObrAM$&q`gq?|sfSu)Bq6pZ9Tem)+%~TV96qk+!sj0WfZ}=M(t}#lN(xoYO zXcaX#+iJRN*>9Glzd>Chc$<9Z{C(dF1m6`41cD|1`VY5ypV!6gfdBp1>#IMUiH|QH z2O9kSM}&Th4!CjWV#>iEA1*`?4C2K@z>RDF>FmEd`R_6Lzmt;}lzDMfjR#kNRK3I4 zEbTl8D}0~g99IIL78gp(MZ@`vzX?*WOZ`b3ztC;q=6|mLEvWxTi&uq59@eHhQPX&` z*0&S&e$@e?$vpa3RX~kiQ6r~tBYm}*r`vvojqdLwC!*HLvx62n%8mH#`TPCx-KLpA znk4tl;OhL|TsA0;J~K6Rd9Q85PGn+!5_XA2(sLb$`4Vp zW5TzRt`{em{ytb!6^-#y$UdfKLU}+9IEDS$T6Os6B)r(%FROuC9{7|uZI8DsGpw8S6ZkK zh9$m99s1p45QZ$Ak=3F#Y(Dl}&cWU*UupeEmL2H+qksSF_5ZCtenH7+O0{0-ok?a^ z^~-Q}a5O4}==g}y9in%U$4SsK`HIWy_O4le`NRYn#N9P#7^7V5?+te|`E+#1nVVl5 z_bsf_%aSLikj{ z<8PZ_YeAcvU@&m-?U-nRCPmg?a`&Yic`o`O=lH6XAU5v!wwCom!%(z;(#*e^iM5KzR#SBr&`MXNIzrLW7$n+O4g@UXY7Df>hV;Y z{Iig_0nuh5v0k?=bk;H_?@^!;P({J>oeoztyMpZNm;Y1XKQ5X$5P9k(}V1RWavHCods;6%U>BR_{ z{WWM|@#6)=S zAHLm9PH=C9=0%hqcZKhNJJ%}9Dj}~{mK)n^?rq}QGgkB}9&`FWXKSnzmMSTS+2^>O zWa@B1sMi+`yoWFE_eVn1j=nT^_={c)P~x`Uu!R-$xP7Xv$aFG&V}aF{WLlj0jv=D{ z%yG`RZF$|^LqnRGDTeJMiCjDQ-5sxEyz713>v5&K<5c78tdFou*-E@m)o!X#_NN$C zqx3PgO*Kpjg4?DE5uUib1ER4dy7DIp;m0%eKWAnZ1Azp$lV`VwuNQ)LoSYjalO6`F z2Prj$2mkC>tmzt#ljb>XAI%(sI>dOU2&$}BCZ6hYeGbjAdqm4)a!P#fc@-F?g6rxt z8V>4+l+!91kB7$ZE?oSlNPLTR;?4#gPskL;_XtDd> z0L4%E;(Z$EXJm!3lBdZGU(UWYrS0-rZ|-t9xAPRkUZg65gZ)m>{&0MLRqmVVbZDSw$Yg1MV&|SwhE^UbI#KtgD z`wvw5%^)Wr@(z?ovGfn_=Hd`UhF z$e2*S5=i;Y$|y3JCT4thASPD}S)vjU&(_y!K|-EBsZzf(<5d;3Z?rVj6Cu36<@BXt zrcQcPi}aVIG&I}RW?J8lEPJK6HmvECr80VHR8EN^eEvvq>LH<(QOQHYS9Z;UNDBik zI$iw62bqQUMwz&--eVu*?t#=m~FyP|%r z^}$Soz>vL20!A_e2_%R_Mx9S!td-J*~E0&kn?Vbn$&}+j6WUT<-ax1uCRn zSZ?XxnF^0rdHnu5VNW5>rz7N3Njr=p!KR_@i0b3R&+27<{oX!@62v{^)(hRTaP?w! zaVPHVwH)!N-VteBs|X39hOVwff3Bj4@$4*O;b8Gc6r3>e5vb}NC+KEJ{h%PWt9ly? z^V0Qn;?k)%Sxd6hfz5<@PdWzDj{&!L-kAuFdtSNN#&WiX#Dw%?-@=}o)%W(tF2tOB z$pi!r@pr@1#qpy1@r^g0kbpf{i>@&*VnT0bZPU1!T zk=ky<8-a~@mT!oP<3IRxSj1u&8&0ETXA{YG)a$-XOjY<>bos1>kl3Ssvs39}Vmnr! z{rD)@$^4JL=B4HJ-uDvd^6ob8mzfkAN~)jRT%$J?<+vC#Z~^9fZ!&fjKnMT^U>xD zrLg3xj+5i8ln&e^38~JniR*wBYZCFIR1V{Kc|Rx~!)2?so8Y*C8XGpqnY?BHii<;W zys3fvKFM&G@Qw*)=hk{BmmPU}jCEduH+)Q<4kQ~)b?Ot7QhQ~Qr01_gyMQqy7f;?N z*h@+)vb6j<4e>25Fr8Vru~Lr;wdCI9s<|pjTjVie+%1zAmx783)-4R9JaF#oV(6QW z^0u|JH^y-q(pVV`uh2%^)I{!nJ9+`12pnVWFM9)Qm0=GN$It}Bk%Q9do!_=z-|eiy zk+QmiQhvXct-+t$goa{1>r*nznb$#V_k6hjL?t}2~)g@Dw~(GnoyXtw78DEwEanNAKRQz z^o;LpvW<{l3`nC?&h@;M59}}+-<>*RQY}(<2H!oJ()QCZqFzU>Hr3{#eJa+ol_;Y% zD|-Zjsov+z2EdiS=PgJ|4Z2u3RISBzqg6?N8ix|x6~yu!DY%=TGK%!RcscOsCW&#+ zO1OR+Mm~?@`BYbKQbI{rngvs&EkpC_&XJ}WHf%rmYDBLBxfHs!o7@V%;WsEpqwnOq z@ufGMtOD578VT;S-GbP7q~|;b$1|LjySdM)qi}g+!@_he+L$*4dU#|lFy$1U54Xh< zC8?CX2{ww=sd`*#4)b}weW-`6h}g;!-jmp#VtV-N4HsnhAS2DyrQqT4R50rUQl`PY zT}tDkvZgv8d&8xc%=WY9BU37LiB;+<(E3}4@k5g6<+6qx;d)bG`qsh*_`IIs;0JCd zTlF1`7c<=w_T-_$dZF!-mVpi%lL|9aIWn(O@4CMjcY++ZxZM0kASI#8(N)G>vvHb# zWdiXY-%7GSjvnZ(tnp1+#L?G|)kaghCuBygwhTCy&gTj40(;B+rTR)&_&QtjCtHiU zvDx%h8>R5+ztuVfm8V8-JUTNgmG8Mw zohJTmUqt~JV|$o7H&r1%qUBhg)aloD+trCsn=8nlQC3>$Rzk{OQ>T%nhF<^pz~*l^ z;f~6p#C!-eZ<^H`=X-kRrDPOp)kE10 z{cCtFvV{pNbYj9_mbjd-eYoc`9;(7Y9X!k-iw-0vNuM=H{#*nWb~#F5|MuLjh2w6e zaV|Y|?ja*rs7m!igje_LikiBUmSrR7UXE97E>$)vc@MS@_BGNcx5dOBUdXh(TGrt8 zb$(?Wy8PBUL_KK+GS4FZY?KYfm3mWG#%5aM>2G&AJbEu$!G|q7GY;fS9xQt7rs&6%?;s zSEQhmSb}2?kh01+ZQla$!y($W0J-D8d2^f&RWD$NEv_!q;`3~*ozXbl(+V)!Yrw;e z&uuVp@Q4p(m89={T3IFf2fC|>z?)zyxxH*#DaYb4r! zo;aK`>!8Sbkh6@cNqu{-UR=6p`&nu-djIIceP{`zeK?rqdno$PdWenFdhTUsPGH|? z$*UEPIASN^wKHr7zef`DBU!4dAj*3ktlC`1g&;bT?5n)wNLO7@w&(nl|1nCcs;pG7 zJ7bp9WAynt5jxM@HGjIIP_^F8<@40Ip^uX_rsauo*hT9fRd>TJEaPPBP7z`kHwgOJ zhyU634?i0#bztLL#Te?Hem$1MLOOJcAXliP;tr95xUNFZZ>C{_g7nmP$>ps+~%@ zWZ-EDbx$|}R3QLgF9uN73mqg6bn*%+$dWm|1zpN9`1ImSEG7*ITOVM3;+%(S&kB^8 zH3{WuY;7^W%4`g)xz5=&0j?A$-yJ0tJlg%z-p3ZbY8qh8ZreJ{on94k9@PQi6$>x& zgpIxt>++2W=TG+_2Q($OZ)ybYW@^7Y2+|ykmjkd5Foi;w&Er|++4NtKUyRW}mf2VK zv_q*T?EG)VXAov7Bn-|vo`3Q~|HKB~{g>inH2klu>Z@WpX>~qx0_rWi}U!diUu}6+U zShTu&q*T2P9cy^l;w_$w6;HsYJ7Oh$HDErY-bR=rcR^Jkt;=kc=qmC4xYh5ue)pgp z=0esWFA%2~c_o`7VxDGF{`zHt*q{BCDfkooiHGs2JXJJqJf&t#vAhe_du@>o)WYuoIq?D1cm>hJw-nE1-7 zdH`ku*ePDnWeyr~#fMbL2;K-n)?&CvW^a&ec*C&qi`| z92qe9O0r(>s4i2I(uK#=p+Y4Vqz$rlU(SAuSs^k&R#rFhrwW{9NF_?)jFkAYGq@Lq~yH6hc5B@ zON{!#pui%Jv)K>AoeFh$^oz&Da#a 0; $i--) { + $file = $cacheDir . $host . wpp_dropin_path_key(array_slice($segments, 0, $i)) . '.json'; + if (is_file($file)) { + return $file; + } + } + + $file = $cacheDir . $host . '.json'; + + return is_file($file) ? $file : ''; + } +} + +if (! function_exists('wpp_dropin_stripped_query')) { + function wpp_dropin_stripped_query(string $query): string + { + if ($query === '') { + return ''; + } + $tracking = [ + 'utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', + 'gclid', 'fbclid', 'gad_source', 'gbraid', 'wbraid', 'msclkid', + 'mc_cid', 'mc_eid', '_ga', '_gl', 'usqp', 'age-verified', + ]; + parse_str($query, $params); + foreach ($tracking as $param) { + unset($params[$param]); + } + if ($params === []) { + return ''; + } + ksort($params); + return http_build_query($params); + } +} + +if (! function_exists('wpp_dropin_is_mobile')) { + // Mirrors wp_is_mobile(), which is what PageCache uses to pick the variant + // it writes. Any divergence hands phone HTML to desktops and back. + function wpp_dropin_is_mobile(string $ua, ?string $hint): bool + { + if ($hint !== null) { + return $hint === '?1'; + } + if ($ua === '') { + return false; + } + foreach (['Mobile', 'Android', 'Silk/', 'Kindle', 'BlackBerry', 'Opera Mini', 'Opera Mobi'] as $token) { + if (strpos($ua, $token) !== false) { + return true; + } + } + + return false; + } +} + +if (! function_exists('wpp_dropin_canonical')) { + function wpp_dropin_canonical(string $requestUri, bool $trailingSlash): bool + { + $path = explode('?', $requestUri, 2)[0]; + $norm = '/' . trim(str_replace('..', '', $path), '/'); + if ($norm !== '/' && $trailingSlash) { + $norm .= '/'; + } + + return $path === $norm && strpos($path, '//') === false; + } +} + +if (! function_exists('wpp_dropin_accepts_gzip')) { + function wpp_dropin_accepts_gzip(string $header): bool + { + $accepted = false; + foreach (explode(',', strtolower($header)) as $part) { + $bits = explode(';', $part); + $token = trim($bits[0]); + if ($token !== 'gzip' && $token !== '*') { + continue; + } + $q = 1.0; + foreach (array_slice($bits, 1) as $param) { + $param = str_replace(' ', '', $param); + if (strpos($param, 'q=') === 0) { + $q = (float) substr($param, 2); + } + } + if ($token === 'gzip') { + return $q > 0; + } + $accepted = $q > 0; + } + + return $accepted; + } +} + +if (! function_exists('wpp_dropin_vary')) { + function wpp_dropin_vary(bool $mobile): string + { + return 'Accept-Encoding' . ($mobile ? ', User-Agent' : ''); + } +} + +if (! function_exists('wpp_dropin_file')) { + function wpp_dropin_file(string $cacheDir, string $host, string $requestUri, bool $permalinks, bool $mobile): string + { + $parts = explode('?', $requestUri, 2); + $path = '/' . trim(str_replace('..', '', $parts[0]), '/'); + if ($path !== '/') { + $path .= '/'; + } + $query = wpp_dropin_stripped_query($parts[1] ?? ''); + + if ($permalinks) { + $dir = $cacheDir . $host . $path; + $key = $query !== '' ? md5($query) : 'index'; + } else { + $dir = $cacheDir . $host . '/'; + $key = md5($host . $path . ($query !== '' ? '?' . $query : '')); + } + + return $dir . $key . ($mobile ? '-mobile' : '') . '.html'; + } +} + +// Only cache plain GET requests with no POST payload. +if (($_SERVER['REQUEST_METHOD'] ?? 'GET') !== 'GET') { + return; +} +if (! empty($_POST)) { + return; +} + +$wpp_host = wpp_dropin_host((string) ($_SERVER['HTTP_HOST'] ?? '')); +$wpp_dir = WP_CONTENT_DIR . '/cache/wpp-cache/'; +$wpp_uri = $_SERVER['REQUEST_URI'] ?? '/'; + +$wpp_conf = wpp_dropin_conf($wpp_dir, $wpp_host, $wpp_uri); +if ($wpp_conf === '') { + return; +} + +$wpp_settings = json_decode((string) file_get_contents($wpp_conf), true); +if (! is_array($wpp_settings) || empty($wpp_settings['enabled']) || ! empty($wpp_settings['disabled'])) { + return; +} + +// Skip real (non-tracking) query strings unless explicitly allowed. +if (empty($wpp_settings['cache_query_strings']) + && wpp_dropin_stripped_query((string) parse_url($wpp_uri, PHP_URL_QUERY)) !== '' +) { + return; +} + +$wpp_url = (($_SERVER['HTTPS'] ?? '') === 'on' ? 'https' : 'http') . '://' . $wpp_host . $wpp_uri; + +// URL exclusions. +foreach ((array) ($wpp_settings['exclude'] ?? []) as $wpp_pattern) { + if ($wpp_pattern === '') { + continue; + } + if (strpos($wpp_url, $wpp_pattern) !== false || @preg_match(wpp_dropin_wildcard($wpp_pattern), $wpp_url)) { + return; + } +} + +// Never serve cache to logged-in / commenter / password-protected sessions. +foreach (array_keys($_COOKIE) as $wpp_cookie) { + if (preg_match('/^(wordpress_logged_in_|wp-postpass_|comment_author_|woocommerce_items_in_cart|woocommerce_cart_hash|wp_woocommerce_session_|edd_items_in_cart|edd_cart_token)/', (string) $wpp_cookie)) { + return; + } +} + +$wpp_ua = $_SERVER['HTTP_USER_AGENT'] ?? ''; +foreach ((array) ($wpp_settings['user_agents'] ?? []) as $wpp_bad) { + if ($wpp_bad !== '' && stripos($wpp_ua, (string) $wpp_bad) !== false) { + return; + } +} + +$wpp_mobile = ! empty($wpp_settings['mobile']) && wpp_dropin_is_mobile( + $wpp_ua, + isset($_SERVER['HTTP_SEC_CH_UA_MOBILE']) ? (string) $_SERVER['HTTP_SEC_CH_UA_MOBILE'] : null +); + +if (! empty($wpp_settings['search_bots']) + && preg_match('/bot|crawl|slurp|spider|bing|google|yandex|duckduck/i', $wpp_ua) +) { + return; +} + +// Variants of one path (/about, //about//) all normalize to the same file, so +// serving them would answer 200 where WordPress would have issued its canonical +// redirect. A config from an older release has no flag and keeps the old behavior. +if (isset($wpp_settings['trailing_slash']) + && ! wpp_dropin_canonical($wpp_uri, (bool) $wpp_settings['trailing_slash']) +) { + return; +} + +// No desktop fallback for mobile: serving one here exits before WordPress runs, +// so the mobile variant would never be generated. +$wpp_file = wpp_dropin_file($wpp_dir, $wpp_host, $wpp_uri, ! empty($wpp_settings['permalinks']), $wpp_mobile); +if (! is_file($wpp_file)) { + return; +} + +// Freshness: regenerate if older than the configured expiry. +$wpp_expire = (int) ($wpp_settings['expire'] ?? 0); +$wpp_mtime = filemtime($wpp_file); +if ($wpp_expire > 0 && (time() - $wpp_mtime) > $wpp_expire) { + return; +} + +// The body varies on Accept-Encoding, and on User-Agent when the mobile variant +// is in play. Without this a shared proxy replays one variant to every client. +header('Vary: ' . wpp_dropin_vary(! empty($wpp_settings['mobile']))); + +if (! empty($_SERVER['HTTP_IF_MODIFIED_SINCE']) && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) >= $wpp_mtime) { + header('HTTP/1.1 304 Not Modified'); + exit; +} + +header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $wpp_mtime) . ' GMT'); +header('Content-Type: text/html; charset=UTF-8'); +header('X-WPP-Cache: HIT'); + +if (wpp_dropin_accepts_gzip((string) ($_SERVER['HTTP_ACCEPT_ENCODING'] ?? '')) + && is_file($wpp_file . '.gz') + && filemtime($wpp_file . '.gz') >= $wpp_mtime +) { + header('Content-Encoding: gzip'); + readfile($wpp_file . '.gz'); + exit; +} + +readfile($wpp_file); +exit; diff --git a/assets/admin.js b/assets/admin.js deleted file mode 100644 index da7debb..0000000 --- a/assets/admin.js +++ /dev/null @@ -1,1023 +0,0 @@ -/** - * WP Performance Admin - */ -jQuery(document).ready(function ($) { - - jconfirm.defaults = { - title: WPP.lang.confirm, - theme: 'supervan', - useBootstrap: false, - draggable: false, - }; - - - function _removeUnusedFields() { - $('.wpp-dynamic-input').each(function () { - if ($(this).attr('required') && !$(this).val()) { - $(this).parent('.wpp-dynamic-input-container').remove(); - } - }); - } - - $(document).on('click', '#wpp_tabs_menu li a', function (e) { - e.preventDefault(); - var tab = $(this).data('wpp-page-id'); - $('#wpp_tab').val(tab); - $('#wpp_tabs_menu a, .wpp_page').removeClass('active'); - $('[data-wpp-page="' + tab + '"]').add(this).addClass('active'); - // Remove empty required fields on change tab - _removeUnusedFields(); - }); - - $(document).on('click', '[data-wpp-show-page]', function (e) { - e.preventDefault(); - var tab = $(this).data('wpp-show-page'); - var highlight = $(this).data('wpp-highlight'); - - $('[data-wpp-page-id="' + tab + '"]').click(); - - if (highlight) { - var container = $('[data-wpp-highlight-id="' + highlight + '"]'); - container.addClass('wpp-highlight'); - setTimeout(function () { - container.one('hover', function () { - $(this).removeClass('wpp-highlight'); - }); - }, 500); - } - }); - - $(document).on('change', '#wpp_mobile_menu select', function (e) { - e.preventDefault(); - var tab = $(this).val(); - $('#wpp_tab').val(tab); - $('#wpp_tabs_menu a, .wpp_page').removeClass('active'); - $('[data-wpp-page="' + tab + '"]').add(this).addClass('active'); - // Remove empty required fields on change tab - _removeUnusedFields(); - }); - - /** - * Select rules - */ - $(document).on('click', '.wpp-select-rules', function (e) { - e.preventDefault(); - $('.wpp-rules-textarea').select(); - }); - - - /** - * Remove excluded page - */ - $('.wpp-remove-manually-excluded').on('click', function (e) { - e.preventDefault(); - - var that = this; - var id = $(this).data('id'); - var type = $(this).data('type'); - - $.confirm({ - content: $(this).data('description'), - buttons: { - Confirm: function () { - - $.ajax({ - method: 'POST', - url: ajaxurl, - data: { - id: id, - type: type, - action: 'wpp_remove_post_options', - nonce: WPP.nonce - } - }).done(function () { - $(that).parent('.wpp-dynamic-input-container').fadeOut(); - }); - - }, - Cancel: function () { } - } - }); - - }); - - - /** - * Checkbox confirmation - */ - $('.wpp-action-confirm').on('click', function (e) { - - var that = this; - - if ($(that).is(':checked')) { - - $.confirm({ - content: $(this).data('description'), - buttons: { - Confirm: function () { - - $(that).attr('checked', true); - - }, - Cancel: function () { - $(that).attr('checked', false); - } - } - }); - - } else { - $(that).attr('checked', false); - } - - }); - - - /** - * Toggle options - */ - $('[data-wpp-toggle-id]').on('click', function (e) { - - e.preventDefault(); - - var id = $(this).data('wpp-toggle-id'); - var show = $(this).data('wpp-toggle-show'); - var hide = $(this).data('wpp-toggle-hide'); - var toggle = $('[data-wpp-toggle="' + id + '"]'); - - if (toggle.hasClass('wpp-hidden')) { - toggle.removeClass('wpp-hidden'); - $(this).text(hide); - } else { - toggle.addClass('wpp-hidden'); - $(this).text(show); - } - - }); - - /** - * Show hide containers depending on checked options - */ - $('[data-wpp-checkbox]').each(function () { - - var name = $(this).data('wpp-checkbox'); - - if ($(this).is(':checked')) { - - if (name.indexOf('|') !== -1) { - - var names = name.split('|'); - - for (var i in names) { - $('[data-wpp-show-checked="' + names[i] + '"]').show(); - } - - } else { - $('[data-wpp-show-checked="' + name + '"]').show(); - } - - } - - }); - - - /** - * Show hide containers on click - */ - $(document).on('click', '[data-wpp-checkbox]', function (e) { - - var containers = []; - - var name = $(this).data('wpp-checkbox'); - - if (name.indexOf('|') !== -1) { - - var names = name.split('|'); - - for (var n in names) { - containers.push(names[n]); - } - - } else { - containers.push(name); - } - - for (var j in containers) { - - var variations = $('[data-wpp-checkbox*="' + containers[j] + '"]'); - - if (variations.length > 1) { - - var checked = false; - - $.each(variations, function (i, v) { - - if ($(v).is(':checked')) { - checked = true; - return; - } - - }); - - if (checked) { - $('[data-wpp-show-checked="' + containers[j] + '"]').show(); - } else { - $('[data-wpp-show-checked="' + containers[j] + '"]').hide(); - } - - } else { - $('[data-wpp-show-checked="' + containers[j] + '"]').toggle(); - } - - } - - }); - - /** - * Clear cache - */ - $(document).on('click', '#wpp-clear-cache, li.wpp_clear_cache a', function (e) { - - e.preventDefault(); - - $.confirm({ - content: $(this).data('description') || $(this).attr('title'), - buttons: { - Confirm: function () { - - $('body').append('

      '); - - $.ajax({ - method: 'POST', - url: ajaxurl, - dataType: 'json', - data: { - action: 'wpp_clear_cache' - } - }).done(function () { - $('#wpp_overlay').remove(); - $('#wpp-cache-size span').html('0.00'); - }); - - }, - Cancel: function () { } - } - }); - - }); - - - /** - * Get critical css path - */ - $(document).on('click', '#wpp-get-critical-css', function (e) { - - e.preventDefault(); - - var btn = $(this); - - if (btn.attr('disabled') === 'disabled') return false; - - btn.attr('disabled', true); - - btn.after(''); - - $.ajax({ - method: 'POST', - url: ajaxurl, - dataType: 'json', - data: { - action: 'wpp_get_critical_css_path', - nonce: WPP.nonce - } - }).done(function (response) { - - if (response.status) { - $('#wpp-css-custom-path-def').val(response.data); - } else { - console.log(response.message); - btn.attr('disabled', false); - } - - $('#wpp-ajax-loader').remove(); - - }).fail(function () { - - btn.attr('disabled', false); - $('#wpp-ajax-loader').remove(); - - }); - - }); - - - /** - * Enable get critical css path btn - */ - $(document).on('keyup', '#wpp-css-custom-path-def', function (e) { - - if (!$(this).val()) { - $('#wpp-get-critical-css').removeAttr('disabled'); - } - - }); - - - - /** - * Update group of options - */ - $(document).on('click', '.wpp-update-checkboxes', function (e) { - - var that = this; - - var items = $('[data-wpp-group="' + $(this).data('wpp-group') + '"]').not(':disabled'); - - $.each(items, function (i, e) { - - var checked = $(that).is(':checked'); - var show = $(e).data('wpp-show-option'); - - $(e).prop('checked', checked); - - if (show && checked) { - - var index = $(e).data('wpp-index'); - var file = $(e).data('wpp-file'); - var name = $(e).data('wpp-name'); - var prefix = $(e).data('wpp-prefix'); - var data = $(e).data('wpp-option-data'); - - $(this).parents('tr').addClass('wpp-disabled-row'); - - // Check if option already exists - if (!$('[data-wpp-option="' + show + '"]').length) { - - // Add option - var select = '
      '; - select += ''; - select += '
      '; - - $(this).parent().siblings('.wpp-list-filename').append(select); - - } - - } else { - - $(this).parents('tr').removeClass('wpp-disabled-row'); - - $('[data-wpp-option="' + show + '"]').remove(); - - } - - var option = $(e).data('wpp-disable-option'); - - if (option) { - - var options = option.split('|'); - - for (var i in options) { - $('input[name="' + options[i] + '"]').not('[data-disabled]').attr('disabled', $(e).is(':checked')); - - if (show && checked) { - $('[data-wpp-option="' + show + '"]').removeClass('wpp-hidden'); - } else { - $('[data-wpp-option="' + show + '"]').addClass('wpp-hidden'); - } - - } - - } - - }); - }); - - - /** - * Disable option - */ - $('[data-wpp-disable-option]').on('click', function () { - - var option = $(this).data('wpp-disable-option'); - var checked = $(this).is(':checked'); - var show = $(this).data('wpp-show-option'); - - - if (show && checked) { - - var index = $(this).data('wpp-index'); - var file = $(this).data('wpp-file'); - var name = $(this).data('wpp-name'); - var prefix = $(this).data('wpp-prefix'); - var data = $(this).data('wpp-option-data'); - - - $(this).parents('tr').addClass('wpp-disabled-row'); - - // Remove if already exists - $('[data-wpp-option="' + show + '"]').remove(); - - // Add option - var select = '
      '; - select += ''; - select += '
      '; - - $(this).parent().siblings('.wpp-list-filename').append(select); - - } else { - - if (show) { - $(this).parents('tr').removeClass('wpp-disabled-row'); - } - - - $('[data-wpp-option="' + show + '"]').remove(); - - } - - if (option) { - - var options = option.split('|'); - - for (var i in options) { - - $('input[name="' + options[i] + '"]').not('[data-disabled]').attr('disabled', checked); - - if (show && checked) { - $('[data-wpp-option="' + show + '"]').removeClass('wpp-hidden'); - } else { - $('[data-wpp-option="' + show + '"]').addClass('wpp-hidden'); - } - } - - } - - }); - - /** - * Disable position options - */ - $(document).on('change', '.wpp-disable-select-position', function () { - - var position = $(this).val(); - var file = $(this).data('wpp-file'); - var prefix = $(this).data('wpp-prefix'); - var container = $(this).data('wpp-container'); - var data_options = $(this).data('wpp-options'); - - var options = (data_options) ? data_options.split('|') : false; - - switch (position) { - case 'selected': - case 'except': - - $('#' + container).html(''); - $('[data-container="#' + container + '"]').remove(); - - $('#' + container).after('
      ' + WPP.lang.add_url + ''); - - $('[data-add-input="' + prefix + '_disable_' + position + '[' + file + '][]"]').click(); - - $.each(options, function (i, name) { - - $('input[name="' + name + '[' + file + ']"]').not('[data-disabled]').attr('disabled', false); - - }); - - break; - default: - - $('#' + container).html(''); - $('[data-container="#' + container + '"]').remove(); - - if (options) { - - $.each(options, function (i, name) { - - $('input[name="' + name + '[' + file + ']"]').attr('disabled', true); - - }); - - } - - } - - }); - - /** - * Add image size - */ - $(document).on('click', '#wpp-add-image-size', function (e) { - - e.preventDefault(); - - var row = ' '; - row += ' '; - row += ' '; - row += ' '; - row += 'Save x'; - - var lastSize = $('#wpp-image-sizes-table tbody tr:last-child'); - - if (lastSize.length > 0) { - lastSize.after(row); - } else { - $('#wpp-image-sizes-table tbody').html(row); - } - - }); - - - /** - * Remove image size - */ - $(document).on('click', '.wpp-remove-user-image-size', function (e) { - - e.preventDefault(); - - var self = $(this); - var name = self.data('size-name'); - var description = self.data('description'); - - if (name) { - - $.confirm({ - content: description, - buttons: { - Confirm: function () { - - self.parents('tr').remove(); - - $.ajax({ - method: 'POST', - url: ajaxurl, - dataType: 'json', - data: { - action: 'wpp_images_action', - image_action: 'remove_size', - size: name, - nonce: WPP.nonce - } - }).done(function (response) { - - if (!response.status) { - $('#wpp-image-errors').text(response.error); - } - - }); - - }, - Cancel: function () { } - } - }); - - } else { - - self.parents('tr').remove(); - - } - - }); - - - /** - * Restore original image sizes - */ - $(document).on('click', '#wpp-restore-image-sizes', function (e) { - - e.preventDefault(); - - var description = $(this).data('description'); - - $.confirm({ - content: description, - buttons: { - Confirm: function () { - - $.ajax({ - method: 'POST', - url: ajaxurl, - dataType: 'json', - data: { - action: 'wpp_images_action', - image_action: 'restore_sizes', - nonce: WPP.nonce - }, - - }).done(function (response) { - - if (response.status) { - - // response from first request? hmm... - $.post(ajaxurl, { action: 'wpp_images_action', image_action: 'get_all_sizes', nonce: WPP.nonce }, function (data) { - - var tableBody = $('#wpp-image-sizes-table tbody'); - - tableBody.html(''); - - data.sizes.forEach(function (size) { - - var row = '' + size.name + ''; - row += '' + size.width + ' px'; - row += (size.height > 0) ? '' + size.height + ' px' : ''; - row += '' + ((size.crop > 0) ? WPP.lang.yes : '') + ''; - row += 'x'; - - tableBody.append(row); - - }); - - }); - - } else { - - $('#wpp-image-errors').text(response.error); - - } - - }); - - }, - Cancel: function () { } - } - }); - - - }); - - - /** - * Save image size - */ - $(document).on('click', '.wpp-save-image-size', function (e) { - - e.preventDefault(); - - $('#wpp-image-errors').text(''); - - var that = $(this); - var errors = false; - var inputs = $(this).parents('tr').find('input'); - - $.each(inputs, function (i, input) { - - var element = $(input); - - if (element.attr('name') == 'crop') { - return true; - } - - element.one('keyup', function () { - element.removeClass('wpp-border-error'); - }); - - if (!element.val()) { - errors = true; - element.addClass('wpp-border-error'); - } - - if (element.attr('name') == 'name') { - - if (/[^a-zA-Z0-9-_]/.test(element.val())) { - errors = true; - element.addClass('wpp-border-error'); - } - - } else { - - if (isNaN(element.val())) { - errors = true; - element.addClass('wpp-border-error'); - } - - } - - - }); - - if (!errors) { - - $.ajax({ - method: 'POST', - url: ajaxurl, - dataType: 'json', - data: { - action: 'wpp_images_action', - image_action: 'add_size', - size: inputs.serialize(), - nonce: WPP.nonce - - } - }).done(function (response) { - - if (response.status) { - - $.each(inputs, function (i, input) { - - var element = $(input); - - if (element.attr('name') == 'crop') { - - if (element.is(':checked')) { - element.replaceWith(WPP.lang.yes); - } else { - element.replaceWith(''); - } - - return true; - } - - if (element.attr('name') != 'name') { - element.replaceWith(element.val() + ' px'); - } else { - element.replaceWith(element.val()); - } - - }); - - that.remove(); - - } else { - - $('#wpp-image-errors').text(response.error); - - setTimeout(function () { - $('#wpp-image-errors').text(''); - }, 3000); - - } - - }); - - } - - }); - - - /** - * Regenerate thumbnails - */ - $(document).on('click', '#wpp-regenerate-thumbnails', function (e) { - - e.preventDefault(); - - var that = $(this); - var title = that.data('title'); - var removeFlag = true; - - var regenerateThumbnails = function (dialog) { - - return $.ajax({ - method: 'POST', - url: ajaxurl, - dataType: 'json', - async: false, - data: { - action: 'wpp_images_action', - image_action: 'regenerate_thumbnails', - remove_flag: removeFlag, - nonce: WPP.nonce - } - }).done(function (response) { - - dialog.setContent('
      ' + response.percent + '%

      '); - dialog.setContentAppend('
      ' + response.info + '
      '); - - removeFlag = false; - - if (response.process) { - regenerateThumbnails(dialog) - } - - - }).fail(function (e) { - - console.log(e.statusText, e.responseText) - - dialog.setTitle('Error'); - dialog.setContent('
      ' + WPP.lang.something_went_wrong + '
      '); - - }); - - }; - - $.confirm({ - title: title, - content: '
      ' + WPP.lang.regenerate_thumbs_info + '
      ', - buttons: { - Confirm: { - action: function () { - // hm.. - $('.jconfirm-content-pane').removeClass('no-scroll').removeAttr('style') - this.buttons.Confirm.hide(); - this.buttons.Cancel.hide(); - this.setTitle(WPP.lang.regenerate_thumbs); - this.setContent('
      0%

      '); - return regenerateThumbnails(this); - } - }, - Cancel: function () { } - } - }); - - }); - - - /** - * Perform database actions - */ - $(document).on('click', '.wpp-db-action', function (e) { - - e.preventDefault(); - - var action = $(this).data('action'); - var description = $(this).data('description'); - var count = $(this).data('count'); - - $.confirm({ - content: description, - buttons: { - Confirm: function () { - - $('body').append('
      '); - - $.ajax({ - method: 'POST', - url: ajaxurl, - dataType: 'json', - data: { - action: 'wpp_clean_database', - db_action: action, - nonce: WPP.nonce - } - }).done(function () { - - $('#wpp_overlay').remove(); - - if (action == 'all') { - $('.wpp-db-count').text('0'); - } else { - var prev = $('#wpp-all-count').text(); - $('#wpp-' + action + '-count').text('0'); - $('#wpp-all-count').text(parseInt(prev) - parseInt(count)) - } - - }); - - }, - Cancel: function () { } - } - }); - - - }); - - - /** - * Load settings - */ - $(document).on('click', '.wpp-load-settings', function (e) { - - e.preventDefault(); - - var href = $(this).attr('href'); - var description = $(this).data('description'); - - $.confirm({ - content: description, - buttons: { - Confirm: function () { - window.location.href = href; - }, - Cancel: function () { - } - } - }); - - }); - - /** - * Show hide add-on settings - */ - $(document).on('click', '.wpp-addon-settings-toggle', function (e) { - - e.preventDefault(); - - var container = $(this).data('addon-settings'); - - $('[data-addon-settings-content="' + container + '"]').slideToggle(); - - }); - - - /** - * Add input element - */ - $(document).on('click', '[data-add-input]', function (e) { - - e.preventDefault(); - - var name = $(this).data('add-input'); - var info = $(this).attr('data-info'); - var placeholder = $(this).attr('data-placeholder') || ''; - var container = $(this).data('container'); - var suggest = $(this).data('suggest'); - - var input = '
      '; - input += '   '; - input += '' + WPP.lang.remove + ''; - input += '
      '; - - $(container).append(input); - - if (suggest) { - - $(container).find('.wpp-dynamic-input:last').autocomplete({ - source: WPP.autocomplete[suggest], - minLength: 2 - }); - } - - if (info && $('[data-info-name="' + name + '"]').length == 0) { - - if (info.indexOf('|') !== -1) { - - var notes = info.split('|'); - var output = ''; - - for (var i in notes) { - output += ' ' + notes[i] + ''; - } - - $(container).after('
      ' + output + '
      '); - - } else { - $(container).after('
      ' + info + '
      '); - } - - } - - }); - - /** - * Remove input element - */ - $(document).on('click', '.wpp-remove-input', function (e) { - - e.preventDefault(); - - $(this).parent().remove(); - - if ($('[data-dynamic-container="' + $(this).data('name') + '"]').length == 0) { - $('[data-info-name="' + $(this).data('name') + '"]').remove(); - } - - }); - - - /** - * Remove dismissible notice - */ - var notice = $('.wpp-notice'); - - if (notice.length && notice.hasClass('is-dismissible')) { - - window.setTimeout(function () { - notice.fadeOut(); - }, 5000); - - } - - - /** - * Autoload log content - */ - var log_textarea = $('.wpp-log-textarea'); - - if (log_textarea.length) { - - var interval = setInterval(function () { - - $.ajax({ - method: 'POST', - url: ajaxurl, - data: { - action: 'wpp_get_log_content', - nonce: WPP.nonce - } - }).done(function (data) { - log_textarea.val(data) - }).fail(function () { - clearInterval(interval); - }) - - }, 10000); - - } - -}); \ No newline at end of file diff --git a/assets/admin/app/App.jsx b/assets/admin/app/App.jsx new file mode 100644 index 0000000..82ae770 --- /dev/null +++ b/assets/admin/app/App.jsx @@ -0,0 +1,99 @@ +import { useEffect, useState } from '@wordpress/element'; +import { __ } from '@wordpress/i18n'; +import Tabs from './components/Tabs'; +import Toaster from './components/Toaster'; +import ConfirmDialog from './components/ConfirmDialog'; +import OverviewTab from './tabs/OverviewTab'; +import CacheTab from './tabs/CacheTab'; +import CssTab from './tabs/CssTab'; +import JsTab from './tabs/JsTab'; +import HtmlTab from './tabs/HtmlTab'; +import MediaTab from './tabs/MediaTab'; +import DatabaseTab from './tabs/DatabaseTab'; +import CdnTab from './tabs/CdnTab'; +import SettingsTab from './tabs/SettingsTab'; +import AddonsTab from './tabs/AddonsTab'; +import CloudflareTab from './tabs/CloudflareTab'; +import Placeholder from './tabs/Placeholder'; + +const config = window.WPP || {}; + +const COMPONENTS = { + overview: OverviewTab, + cache: CacheTab, + css: CssTab, + javascript: JsTab, + html: HtmlTab, + media: MediaTab, + database: DatabaseTab, + cdn: CdnTab, + settings: SettingsTab, + addons: AddonsTab, + cloudflare: CloudflareTab, +}; + +const BASE_TABS = [ + { id: 'overview', label: __( 'Overview', 'wpp' ) }, + { id: 'cache', label: __( 'Cache', 'wpp' ) }, + { id: 'css', label: __( 'CSS', 'wpp' ) }, + { id: 'javascript', label: __( 'JavaScript', 'wpp' ) }, + { id: 'html', label: __( 'HTML', 'wpp' ) }, + { id: 'media', label: __( 'Media', 'wpp' ) }, + { id: 'database', label: __( 'Database', 'wpp' ) }, + { id: 'cdn', label: __( 'CDN', 'wpp' ) }, + { id: 'settings', label: __( 'Settings', 'wpp' ) }, + { id: 'addons', label: __( 'Add-ons', 'wpp' ) }, +]; + +function visibleTabs() { + const tabs = [ ...BASE_TABS ]; + if ( config.settings && config.settings.cloudflare && config.settings.cloudflare.enabled ) { + tabs.push( { id: 'cloudflare', label: __( 'Cloudflare', 'wpp' ) } ); + } + return tabs; +} + +function initialTab( tabs ) { + const requested = new URLSearchParams( window.location.search ).get( 'tab' ); + return tabs.some( ( t ) => t.id === requested ) ? requested : 'overview'; +} + +export default function App() { + const [ tabs, setTabs ] = useState( visibleTabs ); + const [ active, setActive ] = useState( () => initialTab( visibleTabs() ) ); + + // A saved add-on toggle can add or remove a tab. + useEffect( () => { + const refresh = () => setTabs( visibleTabs() ); + window.addEventListener( 'wpp:settings-saved', refresh ); + return () => window.removeEventListener( 'wpp:settings-saved', refresh ); + }, [] ); + + const change = ( id ) => { + setActive( id ); + const url = new URL( window.location.href ); + url.searchParams.set( 'tab', id ); + window.history.replaceState( {}, '', url ); + }; + + const activeLabel = tabs.find( ( t ) => t.id === active )?.label; + const Active = COMPONENTS[ active ]; + + return ( +
      +
      +

      { __( 'WP Performance', 'wpp' ) }

      + v{ config.version } +
      + + + +
      + { Active ? : } +
      + + + +
      + ); +} diff --git a/assets/admin/app/api.js b/assets/admin/app/api.js new file mode 100644 index 0000000..787b563 --- /dev/null +++ b/assets/admin/app/api.js @@ -0,0 +1,21 @@ +import apiFetch from '@wordpress/api-fetch'; + +// api-fetch resolves the REST root and injects the nonce via middleware that WP +// registers when wp-api-fetch is enqueued. Paths are relative to /wp-json/. + +export function getSettings( group ) { + return apiFetch( { path: `/wpp/v1/settings/${ group }` } ); +} + +export function updateSettings( group, data ) { + return apiFetch( { + path: `/wpp/v1/settings/${ group }`, + method: 'PUT', + data, + } ); +} + +// Generic action helper for non-settings endpoints (added in later phases). +export function action( path, options = {} ) { + return apiFetch( { path: `/wpp/v1/${ path }`, ...options } ); +} diff --git a/assets/admin/app/app.scss b/assets/admin/app/app.scss new file mode 100644 index 0000000..a715504 --- /dev/null +++ b/assets/admin/app/app.scss @@ -0,0 +1,1097 @@ +:root { + --wpp-accent: #fc4213; + --wpp-accent-hover: #e2380f; + --wpp-text: #3c434a; + --wpp-heading: #1d2327; + --wpp-muted: #757575; + --wpp-border: #e2e4e7; + --wpp-border-strong: #c9ccd1; + --wpp-bg-side: #fafbfc; + --wpp-radius: 8px; + --wpp-radius-sm: 6px; +} + +.wpp-wrap { + margin: 16px 20px 40px 2px; +} + +.wpp-app { + // Interactive controls follow the admin colour scheme so they match the rest + // of wp-admin. Declared here rather than on :root because WordPress sets + // --wp-admin-theme-color on body, and a :root alias would resolve against an + // older fallback value instead. + --wpp-control: var( --wp-admin-theme-color, #3858e9 ); + --wpp-control-hover: var( --wp-admin-theme-color-darker-10, #2145e6 ); + + max-width: 1180px; + font-size: 14px; + line-height: 1.5; + color: var( --wpp-text ); + + * { + box-sizing: border-box; + } + + /* ---------- Header ---------- */ + &__header { + display: flex; + align-items: baseline; + gap: 10px; + margin: 6px 0 18px; + + h1 { + margin: 0; + padding: 0; + font-size: 23px; + font-weight: 600; + color: var( --wpp-heading ); + } + } + + &__version { + font-size: 12px; + font-weight: 600; + color: var( --wpp-muted ); + background: #f0f0f1; + border-radius: 20px; + padding: 2px 10px; + } + + /* ---------- Tabs ---------- */ + .wpp-tabs { + display: flex; + flex-wrap: wrap; + gap: 2px; + border-bottom: 1px solid var( --wpp-border ); + margin-bottom: -1px; + + &__tab { + appearance: none; + background: transparent; + border: 0; + border-bottom: 2px solid transparent; + padding: 12px 18px; + font-size: 13px; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.02em; + color: var( --wpp-muted ); + cursor: pointer; + transition: color 0.12s ease, border-color 0.12s ease; + + &:hover { + color: var( --wpp-heading ); + } + + &.is-active { + color: var( --wpp-control ); + border-bottom-color: var( --wpp-control ); + } + + &:focus-visible { + outline: 2px solid var( --wpp-control ); + outline-offset: -2px; + } + } + } + + /* ---------- Card / layout ---------- */ + .wpp-card { + margin-top: 20px; + background: #fff; + border: 1px solid var( --wpp-border ); + border-radius: var( --wpp-radius ); + box-shadow: 0 1px 2px rgba( 0, 0, 0, 0.04 ); + overflow: hidden; + } + + .wpp-two-col { + display: flex; + align-items: stretch; + + &__content { + flex: 1 1 auto; + min-width: 0; + padding: 24px 28px; + } + + &__side { + flex: 0 0 340px; + padding: 24px 24px; + background: var( --wpp-bg-side ); + border-left: 1px solid var( --wpp-border ); + } + + &--single .wpp-two-col__content { + max-width: 760px; + } + + /* Side column is narrow: stack field label above a full-width control. */ + &__side { + .wpp-field { + flex-direction: column; + gap: 6px; + padding: 12px 0; + } + + .wpp-field__label { + flex-basis: auto; + padding-top: 0; + } + + .wpp-input, + .wpp-select { + max-width: 100%; + } + } + } + + /* ---------- Section ---------- */ + .wpp-section { + // Note: must be `& + .wpp-section`, not `& + &`. With `&` resolving to the + // compound `.wpp-app .wpp-section`, `& + &` expands to a selector that needs + // a `.wpp-app` sibling and never matches. + & + .wpp-section { + margin-top: 26px; + padding-top: 22px; + border-top: 1px solid var( --wpp-border ); + } + + &__title { + margin: 0 0 14px; + font-size: 15px; + font-weight: 600; + color: var( --wpp-heading ); + } + } + + /* ---------- Field row ---------- */ + .wpp-field { + display: flex; + gap: 20px; + padding: 14px 0; + + & + .wpp-field { + border-top: 1px solid #f1f1f2; + } + + &__label { + flex: 0 0 210px; + font-weight: 600; + color: var( --wpp-heading ); + padding-top: 2px; + } + + &__control { + flex: 1 1 auto; + min-width: 0; + + > .wpp-toggle + .wpp-toggle { + margin-top: 12px; + } + } + + &__help { + margin: 8px 0 0; + font-size: 12.5px; + color: var( --wpp-muted ); + } + } + + .wpp-stack-top { + margin-top: 14px; + } + + /* ---------- Toggle switch ---------- */ + .wpp-toggle { + display: flex; + align-items: flex-start; + gap: 11px; + cursor: pointer; + + &.is-disabled { + opacity: 0.5; + cursor: not-allowed; + } + + &__switch { + position: relative; + flex: 0 0 auto; + width: 34px; + height: 20px; + + input { + position: absolute; + inset: 0; + width: 100%; + height: 100%; + margin: 0; + opacity: 0; + cursor: pointer; + } + } + + &__track { + display: block; + width: 34px; + height: 20px; + border-radius: 20px; + background: var( --wpp-border-strong ); + transition: background 0.15s ease; + } + + &__thumb { + position: absolute; + top: 3px; + left: 3px; + width: 14px; + height: 14px; + border-radius: 50%; + background: #fff; + box-shadow: 0 1px 2px rgba( 0, 0, 0, 0.25 ); + transition: transform 0.15s ease; + } + + input:checked ~ .wpp-toggle__track { + background: var( --wpp-control ); + } + + input:checked ~ .wpp-toggle__track .wpp-toggle__thumb { + transform: translateX( 14px ); + } + + input:focus-visible ~ .wpp-toggle__track { + box-shadow: 0 0 0 2px #fff, 0 0 0 4px var( --wpp-control ); + } + + &__text { + display: flex; + flex-direction: column; + padding-top: 1px; + } + + &__label { + color: var( --wpp-text ); + } + + &__help { + margin-top: 2px; + font-size: 12.5px; + color: var( --wpp-muted ); + } + } + + /* ---------- Inputs ---------- */ + .wpp-input { + width: 100%; + max-width: 420px; + height: 36px; + padding: 0 10px; + font-size: 14px; + color: var( --wpp-text ); + background: #fff; + border: 1px solid var( --wpp-border-strong ); + border-radius: var( --wpp-radius-sm ); + box-shadow: none; + transition: border-color 0.12s ease, box-shadow 0.12s ease; + + &:focus { + border-color: var( --wpp-control ); + box-shadow: 0 0 0 1px var( --wpp-control ); + outline: none; + } + + &--number { + width: 90px; + } + } + + .wpp-textarea { + height: auto; + max-width: 100%; + padding: 10px; + font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; + font-size: 12.5px; + line-height: 1.5; + resize: vertical; + } + + .wpp-log { + width: 100%; + white-space: pre; + color: var( --wpp-heading ); + background: #fbfbfc; + + &__actions { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; + margin-top: 8px; + + .wpp-field__help { + margin: 0; + } + } + } + + .wpp-select { + max-width: 240px; + padding-right: 28px; + } + + .wpp-inline { + display: flex; + align-items: center; + gap: 10px; + } + + /* ---------- Repeatable ---------- */ + .wpp-repeatable { + &__row { + display: flex; + align-items: center; + gap: 8px; + margin-bottom: 8px; + } + + &__remove { + display: inline-flex; + align-items: center; + justify-content: center; + width: 30px; + height: 30px; + flex: 0 0 auto; + border: 1px solid var( --wpp-border ); + border-radius: var( --wpp-radius-sm ); + background: #fff; + color: var( --wpp-muted ); + cursor: pointer; + + &:hover { + color: #b32d0f; + border-color: #f0b8ab; + background: #fdf2ef; + } + } + + &__add { + margin-top: 2px; + } + } + + /* ---------- Buttons ---------- */ + .wpp-btn { + display: inline-flex; + align-items: center; + gap: 6px; + height: 36px; + padding: 0 16px; + font-size: 13px; + font-weight: 600; + border-radius: var( --wpp-radius-sm ); + border: 1px solid transparent; + cursor: pointer; + transition: background 0.12s ease, border-color 0.12s ease, opacity 0.12s ease; + + &--primary { + background: var( --wpp-control ); + color: #fff; + + &:hover:not( :disabled ) { + background: var( --wpp-control-hover ); + } + + &:disabled { + opacity: 0.5; + cursor: default; + } + } + + &--ghost { + background: #fff; + border-color: var( --wpp-border-strong ); + color: var( --wpp-text ); + + &:hover { + border-color: var( --wpp-control ); + color: var( --wpp-control ); + } + } + + &--danger { + background: #b32d0f; + color: #fff; + + &:hover:not( :disabled ) { + background: #8f2409; + } + } + + &--sm { + height: 30px; + padding: 0 12px; + font-size: 12px; + } + + &:disabled { + opacity: 0.5; + cursor: default; + } + } + + /* ---------- Settings history / restore points ---------- */ + .wpp-history { + margin: 0; + padding: 0; + list-style: none; + + &__item { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; + padding: 12px 0; + border-bottom: 1px solid var( --wpp-border ); + + &:first-child { + padding-top: 0; + } + + &:last-child { + border-bottom: 0; + } + } + + &__meta { + display: flex; + flex-direction: column; + gap: 2px; + min-width: 0; + + strong { + font-size: 13px; + color: var( --wpp-heading ); + } + + span { + font-size: 12px; + color: var( --wpp-muted ); + } + } + } + + /* ---------- Save bar ---------- */ + .wpp-savebar { + margin-top: 26px; + padding-top: 20px; + border-top: 1px solid var( --wpp-border ); + } + + /* ---------- Placeholder ---------- */ + .wpp-placeholder { + padding: 60px 28px; + text-align: center; + color: var( --wpp-muted ); + } + + /* ---------- Cache statistics ---------- */ + .wpp-stats { + margin: 0 0 14px; + padding: 0; + list-style: none; + + li { + display: flex; + align-items: center; + justify-content: space-between; + padding: 7px 0; + border-bottom: 1px solid var( --wpp-border ); + font-size: 13px; + } + + strong { + color: var( --wpp-heading ); + } + + &__total { + border-bottom: 0 !important; + font-weight: 600; + } + } + + /* ---------- Overview / dashboard ---------- */ + .wpp-overview { + padding: 24px 28px; + + &__cards { + display: grid; + grid-auto-flow: column; + grid-auto-columns: minmax( 0, 1fr ); + gap: 16px; + margin-bottom: 26px; + } + } + + .wpp-stat-card { + display: flex; + flex-direction: column; + gap: 6px; + padding: 18px 20px; + border: 1px solid var( --wpp-border ); + border-radius: var( --wpp-radius-sm ); + background: #fff; + + &__label { + font-size: 12px; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.03em; + color: var( --wpp-muted ); + } + + &__value { + font-size: 24px; + font-weight: 600; + color: var( --wpp-heading ); + } + + &--action { + align-items: center; + justify-content: center; + background: var( --wpp-bg-side ); + } + } + + .wpp-presets { + display: grid; + grid-template-columns: repeat( 3, 1fr ); + gap: 16px; + margin-top: 14px; + } + + .wpp-preset { + display: flex; + flex-direction: column; + gap: 8px; + padding: 18px; + border: 1px solid var( --wpp-border ); + border-radius: var( --wpp-radius-sm ); + background: #fff; + + &__head { + display: flex; + align-items: center; + gap: 8px; + + strong { + font-size: 15px; + color: var( --wpp-heading ); + } + } + + &__badge { + font-size: 10px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.04em; + color: var( --wpp-accent ); + background: rgba( 252, 66, 19, 0.1 ); + border-radius: 20px; + padding: 2px 8px; + } + + &__desc { + flex: 1; + margin: 0; + font-size: 12.5px; + color: var( --wpp-muted ); + line-height: 1.5; + } + + .wpp-btn { + align-self: flex-start; + margin-top: 4px; + } + } + + .wpp-feature-grid { + display: grid; + grid-template-columns: repeat( 3, 1fr ); + gap: 10px 16px; + margin: 0; + padding: 0; + list-style: none; + } + + .wpp-feature { + display: flex; + align-items: center; + gap: 10px; + font-size: 13px; + + &__icon { + display: inline-flex; + align-items: center; + justify-content: center; + width: 24px; + height: 24px; + border-radius: 50%; + flex-shrink: 0; + } + + &.is-on { + color: var( --wpp-heading ); + font-weight: 600; + + .wpp-feature__icon { + background: rgba( 26, 127, 71, 0.12 ); + color: #1a7f47; + } + } + + &.is-off { + color: var( --wpp-muted ); + + .wpp-feature__icon { + background: #f0f0f1; + color: var( --wpp-muted ); + } + } + } + + .wpp-health { + margin: 0; + padding: 0; + list-style: none; + + &__item { + display: flex; + align-items: flex-start; + gap: 12px; + padding: 12px 0; + border-bottom: 1px solid var( --wpp-border ); + + &:last-child { + border-bottom: 0; + } + + &.is-good .wpp-health__icon { + color: #1a7f47; + } + + &.is-warn .wpp-health__icon { + color: #b26a00; + } + + &.is-bad .wpp-health__icon { + color: #b32d0f; + } + } + + &__icon { + display: inline-flex; + margin-top: 1px; + flex-shrink: 0; + } + + &__text { + display: flex; + flex-direction: column; + gap: 2px; + + strong { + color: var( --wpp-heading ); + font-size: 13px; + } + + span { + color: var( --wpp-muted ); + font-size: 12.5px; + } + } + } + + /* ---------- Database cards ---------- */ + .wpp-db-grid { + display: grid; + grid-template-columns: repeat( 2, 1fr ); + gap: 16px; + } + + .wpp-db-card { + border: 1px solid var( --wpp-border ); + border-radius: var( --wpp-radius-sm ); + padding: 16px 18px; + background: #fff; + + &__head { + display: flex; + align-items: center; + justify-content: space-between; + } + + &__count { + font-size: 24px; + font-weight: 700; + color: var( --wpp-heading ); + line-height: 1; + } + + &__title { + margin: 12px 0 4px; + font-size: 14px; + color: var( --wpp-heading ); + } + + &__desc { + margin: 0 0 12px; + font-size: 12.5px; + color: var( --wpp-muted ); + } + } + + .wpp-db-footer { + display: flex; + align-items: center; + justify-content: space-between; + gap: 16px; + margin-top: 20px; + padding-top: 16px; + border-top: 1px solid var( --wpp-border ); + + .wpp-field__help { + margin: 0; + } + } + + /* ---------- File list table (CSS/JS) ---------- */ + .wpp-fl { + width: 100%; + border-collapse: collapse; + font-size: 13px; + + th { + padding: 8px; + text-align: center; + font-size: 11px; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.02em; + color: var( --wpp-muted ); + border-bottom: 1px solid var( --wpp-border ); + } + + th:first-child { + text-align: left; + } + + td { + padding: 8px; + border-bottom: 1px solid #f1f1f2; + vertical-align: middle; + } + + &__file { + font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; + font-size: 12px; + color: var( --wpp-text ); + word-break: break-all; + } + + &__check { + width: 74px; + text-align: center; + } + + &__check .wpp-toggle { + justify-content: center; + } + + &__check--na { + color: #c9ccd1; + } + + &__group td { + background: var( --wpp-bg-side ); + font-size: 11px; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.03em; + color: var( --wpp-heading ); + } + + &__bulk td { + background: #fff7f4; + font-weight: 600; + } + + &__sub td { + background: var( --wpp-bg-side ); + } + + &__position { + display: flex; + flex-direction: column; + gap: 10px; + padding: 4px 0; + } + } + + .wpp-fl__actions { + margin-top: 16px; + } + + /* ---------- Image sizes ---------- */ + .wpp-sizes { + &__table { + width: 100%; + border-collapse: collapse; + font-size: 13px; + margin-bottom: 12px; + } + + &__table th { + padding: 6px; + text-align: left; + font-size: 11px; + text-transform: uppercase; + color: var( --wpp-muted ); + border-bottom: 1px solid var( --wpp-border ); + } + + &__table td { + padding: 6px; + border-bottom: 1px solid #f1f1f2; + } + + &__remove { + border: 0; + background: transparent; + cursor: pointer; + color: var( --wpp-muted ); + font-size: 18px; + line-height: 1; + + &:hover { + color: #b32d0f; + } + } + + &__form { + display: flex; + flex-wrap: wrap; + gap: 8px; + align-items: center; + + .wpp-input { + width: auto; + flex: 1 1 110px; + } + } + + &__crop { + display: inline-flex; + align-items: center; + gap: 6px; + font-size: 13px; + } + + &__actions, + &__regen { + margin-top: 12px; + display: flex; + gap: 8px; + } + } + + /* ---------- Add-ons ---------- */ + .wpp-addons { + display: grid; + grid-template-columns: repeat( 3, 1fr ); + gap: 16px; + } + + .wpp-addon { + border: 1px solid var( --wpp-border ); + border-radius: var( --wpp-radius-sm ); + padding: 18px; + + &__head { + display: flex; + align-items: center; + justify-content: space-between; + } + + &__head h3 { + margin: 0; + font-size: 15px; + color: var( --wpp-heading ); + } + + &__desc { + margin: 10px 0 14px; + font-size: 12.5px; + color: var( --wpp-muted ); + } + + &__field { + margin-top: 10px; + } + + &__field label { + display: block; + margin-bottom: 4px; + font-size: 12px; + color: var( --wpp-muted ); + } + } +} + +@media ( max-width: 960px ) { + .wpp-app .wpp-addons { + grid-template-columns: 1fr; + } +} + +@media ( max-width: 782px ) { + .wpp-app .wpp-db-grid { + grid-template-columns: 1fr; + } +} + +/* ---------- Toaster (outside flow) ---------- */ +.wpp-modal { + position: fixed; + inset: 0; + z-index: 100001; + display: flex; + align-items: center; + justify-content: center; + padding: 24px; + background: rgba( 0, 0, 0, 0.45 ); + animation: wpp-modal-fade 0.12s ease; + + &__box { + width: 100%; + max-width: 460px; + padding: 24px 26px 20px; + background: #fff; + border-radius: var( --wpp-radius ); + box-shadow: 0 12px 40px rgba( 0, 0, 0, 0.25 ); + animation: wpp-modal-in 0.14s ease; + } + + &__title { + margin: 0 0 8px; + padding: 0; + font-size: 17px; + font-weight: 600; + color: var( --wpp-heading ); + } + + &__body { + margin: 0; + font-size: 14px; + line-height: 1.55; + color: var( --wpp-text ); + } + + &__actions { + display: flex; + justify-content: flex-end; + gap: 10px; + margin-top: 22px; + } +} + +@keyframes wpp-modal-fade { + from { opacity: 0; } + to { opacity: 1; } +} + +@keyframes wpp-modal-in { + from { opacity: 0; transform: translateY( 8px ) scale( 0.98 ); } + to { opacity: 1; transform: none; } +} + +.wpp-toaster { + position: fixed; + right: 24px; + bottom: 24px; + z-index: 100000; + display: flex; + flex-direction: column; + gap: 10px; +} + +.wpp-toast { + min-width: 240px; + max-width: 360px; + padding: 12px 16px; + font-size: 13.5px; + color: #fff; + border-radius: var( --wpp-radius-sm ); + box-shadow: 0 6px 20px rgba( 0, 0, 0, 0.18 ); + animation: wpp-toast-in 0.18s ease; + + &--success { + background: #1a7f47; + } + + &--error { + background: #b32d0f; + } +} + +@keyframes wpp-toast-in { + from { + opacity: 0; + transform: translateY( 8px ); + } + to { + opacity: 1; + transform: translateY( 0 ); + } +} + +/* ---------- Responsive ---------- */ +@media ( max-width: 960px ) { + .wpp-app .wpp-two-col { + flex-direction: column; + + &__side { + flex-basis: auto; + border-left: 0; + border-top: 1px solid var( --wpp-border ); + } + } + + .wpp-app .wpp-field { + flex-direction: column; + gap: 8px; + + &__label { + flex-basis: auto; + } + } + + .wpp-app .wpp-overview__cards { + grid-auto-flow: row; + grid-auto-columns: auto; + grid-template-columns: repeat( 2, 1fr ); + } + + .wpp-app .wpp-feature-grid, + .wpp-app .wpp-presets { + grid-template-columns: repeat( 2, 1fr ); + } +} + +@media ( max-width: 600px ) { + .wpp-app .wpp-overview__cards, + .wpp-app .wpp-feature-grid, + .wpp-app .wpp-presets { + grid-template-columns: 1fr; + } +} diff --git a/assets/admin/app/components/ConfirmDialog.jsx b/assets/admin/app/components/ConfirmDialog.jsx new file mode 100644 index 0000000..2d28dbc --- /dev/null +++ b/assets/admin/app/components/ConfirmDialog.jsx @@ -0,0 +1,117 @@ +import { useEffect, useRef, useState } from '@wordpress/element'; +import { __ } from '@wordpress/i18n'; +import { subscribe } from '../lib/confirm'; + +export default function ConfirmDialog() { + const [ request, setRequest ] = useState( null ); + const dialogRef = useRef( null ); + const confirmRef = useRef( null ); + const openerRef = useRef( null ); + + useEffect( () => subscribe( ( entry ) => { + openerRef.current = document.activeElement; + setRequest( entry ); + } ), [] ); + + const close = ( answer ) => { + if ( request ) { + request.resolve( answer ); + } + setRequest( null ); + + // Send focus back where it came from, or the trigger silently loses it. + if ( openerRef.current && typeof openerRef.current.focus === 'function' ) { + openerRef.current.focus(); + } + openerRef.current = null; + }; + + useEffect( () => { + if ( ! request ) { + return; + } + + confirmRef.current?.focus(); + + const onKeyDown = ( event ) => { + if ( event.key === 'Escape' ) { + event.preventDefault(); + close( false ); + return; + } + + if ( event.key !== 'Tab' ) { + return; + } + + // Keep focus inside the dialog while it is open. + const focusable = dialogRef.current?.querySelectorAll( 'button, [href], input, select, textarea' ); + if ( ! focusable || focusable.length === 0 ) { + return; + } + const first = focusable[ 0 ]; + const last = focusable[ focusable.length - 1 ]; + + if ( event.shiftKey && document.activeElement === first ) { + event.preventDefault(); + last.focus(); + } else if ( ! event.shiftKey && document.activeElement === last ) { + event.preventDefault(); + first.focus(); + } + }; + + document.addEventListener( 'keydown', onKeyDown ); + return () => document.removeEventListener( 'keydown', onKeyDown ); + }, [ request ] ); + + if ( ! request ) { + return null; + } + + const title = request.title || __( 'Are you sure?', 'wpp' ); + + return ( +
      { + if ( e.target === e.currentTarget ) { + close( false ); + } + } } + > +
      +

      + { title } +

      +

      + { request.message } +

      +
      + + +
      +
      +
      + ); +} diff --git a/assets/admin/app/components/Field.jsx b/assets/admin/app/components/Field.jsx new file mode 100644 index 0000000..c115033 --- /dev/null +++ b/assets/admin/app/components/Field.jsx @@ -0,0 +1,11 @@ +export default function Field( { label, children, help } ) { + return ( +
      + { label &&
      { label }
      } +
      + { children } + { help &&

      { help }

      } +
      +
      + ); +} diff --git a/assets/admin/app/components/FileListTable.jsx b/assets/admin/app/components/FileListTable.jsx new file mode 100644 index 0000000..b531613 --- /dev/null +++ b/assets/admin/app/components/FileListTable.jsx @@ -0,0 +1,147 @@ +import { Fragment } from '@wordpress/element'; +import { __ } from '@wordpress/i18n'; +import Toggle from './fields/Toggle'; +import SelectField from './fields/SelectField'; +import RepeatableInput from './fields/RepeatableInput'; + +const GROUPS = [ + [ 'theme', __( 'Theme', 'wpp' ) ], + [ 'plugin', __( 'Plugins', 'wpp' ) ], + [ 'external', __( 'External', 'wpp' ) ], +]; + +const POSITIONS = [ + { value: 'everywhere', label: __( 'Everywhere', 'wpp' ) }, + { value: 'selected', label: __( 'Only on selected URLs', 'wpp' ) }, + { value: 'except', label: __( 'Everywhere except selected URLs', 'wpp' ) }, +]; + +function shortLabel( url ) { + try { + return new URL( url ).pathname; + } catch ( e ) { + return url; + } +} + +export default function FileListTable( { files, draft, setIn } ) { + const present = GROUPS.filter( ( [ g ] ) => ( files[ g ] || [] ).length > 0 ); + const localFiles = [ 'theme', 'plugin' ].flatMap( ( g ) => files[ g ] || [] ); + const everyFile = GROUPS.flatMap( ( [ g ] ) => files[ g ] || [] ); + + if ( present.length === 0 ) { + return ( +

      + { __( + 'No files collected yet. Enable caching or an optimization, visit your site, then choose "Update files list".', + 'wpp' + ) } +

      + ); + } + + const map = ( col ) => draft[ col ] || {}; + + const setExclusive = ( url, col, value ) => { + if ( value && col === 'combine' ) { + setIn( 'inline', url, false ); + } + if ( value && col === 'inline' ) { + setIn( 'combine', url, false ); + } + setIn( col, url, value ); + }; + + const targetsFor = ( col ) => ( col === 'disable' ? everyFile : localFiles ); + const allOn = ( col ) => { + const t = targetsFor( col ); + return t.length > 0 && t.every( ( u ) => !! map( col )[ u ] ); + }; + const bulk = ( col, value ) => targetsFor( col ).forEach( ( u ) => setExclusive( u, col, value ) ); + + const checkCell = ( url, col, enabled ) => + enabled ? ( + + setExclusive( url, col, v ) } /> + + ) : ( + - + ); + + return ( + + + + + + + + + + + + + + { [ 'minify', 'inline', 'combine', 'disable' ].map( ( col ) => ( + + ) ) } + + + { present.map( ( [ g, groupLabel ] ) => ( + + + + + { ( files[ g ] || [] ).map( ( url ) => { + const local = g !== 'external'; + const disabled = !! map( 'disable' )[ url ]; + const position = map( 'disable_position' )[ url ] || 'everywhere'; + return ( + + + + { checkCell( url, 'minify', local ) } + { checkCell( url, 'inline', local ) } + { checkCell( url, 'combine', local ) } + { checkCell( url, 'disable', true ) } + + { disabled && ( + + + + ) } + + ); + } ) } + + ) ) } + +
      { __( 'File', 'wpp' ) }{ __( 'Minify', 'wpp' ) }{ __( 'Inline', 'wpp' ) }{ __( 'Combine', 'wpp' ) }{ __( 'Disable', 'wpp' ) }
      { __( 'Apply to all', 'wpp' ) } + bulk( col, v ) } /> +
      { groupLabel }
      + { shortLabel( url ) } +
      +
      + setIn( 'disable_position', url, v ) } + /> + { position === 'selected' && ( + setIn( 'disable_selected', url, v ) } + addLabel={ __( 'Add URL', 'wpp' ) } + /> + ) } + { position === 'except' && ( + setIn( 'disable_except', url, v ) } + addLabel={ __( 'Add URL', 'wpp' ) } + /> + ) } +
      +
      + ); +} diff --git a/assets/admin/app/components/ImageSizes.jsx b/assets/admin/app/components/ImageSizes.jsx new file mode 100644 index 0000000..0e4d0db --- /dev/null +++ b/assets/admin/app/components/ImageSizes.jsx @@ -0,0 +1,199 @@ +import { useEffect, useState } from '@wordpress/element'; +import { __ } from '@wordpress/i18n'; +import { confirm } from '../lib/confirm'; +import { action } from '../api'; +import { toast } from '../lib/toast'; + +const EMPTY = { name: '', width: '', height: '', crop: false }; + +export default function ImageSizes() { + const [ sizes, setSizes ] = useState( [] ); + const [ adding, setAdding ] = useState( false ); + const [ form, setForm ] = useState( EMPTY ); + const [ regen, setRegen ] = useState( null ); + + useEffect( () => { + action( 'images/sizes' ).then( setSizes ).catch( () => {} ); + }, [] ); + + const add = async () => { + if ( ! form.name || ! form.width || ! form.height ) { + return; + } + try { + const next = await action( 'images/sizes', { + method: 'POST', + data: { + name: form.name, + width: Number( form.width ), + height: Number( form.height ), + crop: form.crop, + }, + } ); + setSizes( next ); + setForm( EMPTY ); + setAdding( false ); + toast( __( 'Image size added.', 'wpp' ), 'success' ); + } catch ( e ) { + toast( e.message || __( 'Could not add size.', 'wpp' ), 'error' ); + } + }; + + const remove = async ( name ) => { + // eslint-disable-next-line no-alert + const ok = await confirm( { + title: __( 'Remove image size', 'wpp' ), + message: __( 'New uploads will no longer be generated at this size.', 'wpp' ), + confirm: __( 'Remove', 'wpp' ), + destructive: true, + } ); + if ( ! ok ) { + return; + } + try { + setSizes( await action( 'images/sizes/remove', { method: 'POST', data: { name } } ) ); + } catch ( e ) { + toast( e.message || __( 'Could not remove size.', 'wpp' ), 'error' ); + } + }; + + const restore = async () => { + // eslint-disable-next-line no-alert + const ok = await confirm( { + title: __( 'Restore defaults', 'wpp' ), + message: __( 'This restores the WordPress default image sizes and discards your changes here.', 'wpp' ), + confirm: __( 'Restore', 'wpp' ), + } ); + if ( ! ok ) { + return; + } + setSizes( await action( 'images/sizes/restore', { method: 'POST' } ) ); + toast( __( 'Defaults restored.', 'wpp' ), 'success' ); + }; + + const regenerate = async () => { + // eslint-disable-next-line no-alert + const ok = await confirm( { + title: __( 'Regenerate thumbnails', 'wpp' ), + message: __( 'Every image is processed again. This may take a while on large media libraries.', 'wpp' ), + confirm: __( 'Regenerate', 'wpp' ), + } ); + if ( ! ok ) { + return; + } + let offset = 0; + setRegen( { processed: 0, total: 0 } ); + try { + for ( ;; ) { + const r = await action( 'images/regenerate', { + method: 'POST', + data: { offset, limit: 5 }, + } ); + setRegen( { processed: r.processed, total: r.total } ); + offset = r.processed; + if ( r.done ) { + break; + } + } + toast( __( 'Thumbnails regenerated.', 'wpp' ), 'success' ); + } catch ( e ) { + toast( e.message || __( 'Regeneration failed.', 'wpp' ), 'error' ); + } finally { + setTimeout( () => setRegen( null ), 1500 ); + } + }; + + const pct = regen && regen.total ? Math.round( ( regen.processed / regen.total ) * 100 ) : 0; + + return ( +
      + + + + + + + + + + + { sizes.map( ( s ) => ( + + + + + + + + ) ) } + +
      { __( 'Name', 'wpp' ) }{ __( 'W', 'wpp' ) }{ __( 'H', 'wpp' ) }{ __( 'Crop', 'wpp' ) } +
      { s.name }{ s.width }{ s.height }{ s.crop ? __( 'Yes', 'wpp' ) : '-' } + +
      + + { adding ? ( +
      + setForm( { ...form, name: e.target.value } ) } + /> + setForm( { ...form, width: e.target.value } ) } + /> + setForm( { ...form, height: e.target.value } ) } + /> + + + +
      + ) : ( +
      + + +
      + ) } + +
      + +
      +
      + ); +} diff --git a/assets/admin/app/components/SaveButton.jsx b/assets/admin/app/components/SaveButton.jsx new file mode 100644 index 0000000..f85c9b8 --- /dev/null +++ b/assets/admin/app/components/SaveButton.jsx @@ -0,0 +1,16 @@ +import { __ } from '@wordpress/i18n'; + +export default function SaveButton( { onSave, isDirty, saving } ) { + return ( +
      + +
      + ); +} diff --git a/assets/admin/app/components/Section.jsx b/assets/admin/app/components/Section.jsx new file mode 100644 index 0000000..b050dd9 --- /dev/null +++ b/assets/admin/app/components/Section.jsx @@ -0,0 +1,8 @@ +export default function Section( { title, children } ) { + return ( +
      + { title &&

      { title }

      } +
      { children }
      +
      + ); +} diff --git a/assets/admin/app/components/Tabs.jsx b/assets/admin/app/components/Tabs.jsx new file mode 100644 index 0000000..86b08e6 --- /dev/null +++ b/assets/admin/app/components/Tabs.jsx @@ -0,0 +1,18 @@ +export default function Tabs( { tabs, active, onChange } ) { + return ( + + ); +} diff --git a/assets/admin/app/components/Toaster.jsx b/assets/admin/app/components/Toaster.jsx new file mode 100644 index 0000000..43082f2 --- /dev/null +++ b/assets/admin/app/components/Toaster.jsx @@ -0,0 +1,28 @@ +import { useEffect, useState } from '@wordpress/element'; +import { subscribe } from '../lib/toast'; + +export default function Toaster() { + const [ items, setItems ] = useState( [] ); + + useEffect( + () => + subscribe( ( t ) => { + setItems( ( cur ) => [ ...cur, t ] ); + setTimeout( + () => setItems( ( cur ) => cur.filter( ( x ) => x.id !== t.id ) ), + 4000 + ); + } ), + [] + ); + + return ( +
      + { items.map( ( t ) => ( +
      + { t.message } +
      + ) ) } +
      + ); +} diff --git a/assets/admin/app/components/TwoColumn.jsx b/assets/admin/app/components/TwoColumn.jsx new file mode 100644 index 0000000..a893c79 --- /dev/null +++ b/assets/admin/app/components/TwoColumn.jsx @@ -0,0 +1,8 @@ +export default function TwoColumn( { children, side } ) { + return ( +
      +
      { children }
      + { side && } +
      + ); +} diff --git a/assets/admin/app/components/fields/NumberField.jsx b/assets/admin/app/components/fields/NumberField.jsx new file mode 100644 index 0000000..09eff42 --- /dev/null +++ b/assets/admin/app/components/fields/NumberField.jsx @@ -0,0 +1,17 @@ +export default function NumberField( { value, onChange, min = 1, max, step = 1, disabled = false } ) { + return ( + { + const v = e.target.value; + onChange( v === '' ? '' : Number( v ) ); + } } + /> + ); +} diff --git a/assets/admin/app/components/fields/RepeatableInput.jsx b/assets/admin/app/components/fields/RepeatableInput.jsx new file mode 100644 index 0000000..c67d0ae --- /dev/null +++ b/assets/admin/app/components/fields/RepeatableInput.jsx @@ -0,0 +1,49 @@ +import { __ } from '@wordpress/i18n'; +import { Plus, X } from 'lucide-react'; + +/** + * Edits an array of strings as a list of text inputs with add/remove. + */ +export default function RepeatableInput( { + value = [], + onChange, + placeholder = '', + addLabel = __( 'Add', 'wpp' ), +} ) { + const rows = Array.isArray( value ) ? value : []; + + const update = ( idx, val ) => { + const next = rows.slice(); + next[ idx ] = val; + onChange( next ); + }; + const remove = ( idx ) => onChange( rows.filter( ( _, i ) => i !== idx ) ); + const add = () => onChange( [ ...rows, '' ] ); + + return ( +
      + { rows.map( ( row, idx ) => ( +
      + update( idx, e.target.value ) } + /> + +
      + ) ) } + +
      + ); +} diff --git a/assets/admin/app/components/fields/SelectField.jsx b/assets/admin/app/components/fields/SelectField.jsx new file mode 100644 index 0000000..3a7256c --- /dev/null +++ b/assets/admin/app/components/fields/SelectField.jsx @@ -0,0 +1,16 @@ +export default function SelectField( { value, onChange, options, disabled = false } ) { + return ( + + ); +} diff --git a/assets/admin/app/components/fields/TextField.jsx b/assets/admin/app/components/fields/TextField.jsx new file mode 100644 index 0000000..861d521 --- /dev/null +++ b/assets/admin/app/components/fields/TextField.jsx @@ -0,0 +1,32 @@ +export default function TextField( { + value, + onChange, + placeholder = '', + type = 'text', + disabled = false, + multiline = false, + rows = 6, +} ) { + if ( multiline ) { + return ( + -
      - - -
      - - - id="wpp-get-critical-css" data-wpp-toggle="css-path"> - - -
      - - - - - -
      - -

      - -
      - -
      - - - -
      - - -
      -   - -
      - - -
      - - - - - - - - -
      - -
      - -
      - - - - - - - - -

      - - - -
      - -
      - - - -


      - - - - - - -
      - - - -
      - -
      - -

      - -
      - - - - - - - - - - - - - - - -
      DNS PrefetchPreconnect
      - - form="wpp-settings" /> - - - form="wpp-settings" /> -
      -
      - - - -
      - - - -
      - -

      - -
      - -
      - - - -
      - - - - -
      - -   - - - -
      - - - - - -
      -   - -
      - - -
      - - -
      - */ ?> - - - - -
      -
      - - - - - - - - -
      - - - - - - \ No newline at end of file diff --git a/includes/admin/database.php b/includes/admin/database.php deleted file mode 100644 index 692e77a..0000000 --- a/includes/admin/database.php +++ /dev/null @@ -1,225 +0,0 @@ - - - - -
      - -
      - - - - - - - - - - - - - - - - - - - - - - - - - -
      - - - - - - () - - - -
      - - - -
      - - - - - - () - - - -
      - - - -
      - - - - - - () - - - -
      - - - -
      - - - - - () - - - -
      - - - -
      - - - - - - () - - - -
      - - - -
      - - - - - - () - - - -
      - - - -
      - -

      - - - -
      - - - - - () - - - -
      - -
      - -

      - -
      - -
        -
      • - - -


        - : - - -
      • -
      - - -
      - -
      \ No newline at end of file diff --git a/includes/admin/html.php b/includes/admin/html.php deleted file mode 100644 index 6669226..0000000 --- a/includes/admin/html.php +++ /dev/null @@ -1,169 +0,0 @@ - - -
      - -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      - - - -

      - - - -
      - - -

      - -
      - -

      - - -
      - - -

      - -
      - - -

      - -
      - -
      - - - -

      - -
      - -
      - - - - -
      - -

      - -
      - - - -
      - - - - -
      - -   - - - -
      - - - - - -
      -   - -
      - - -
      - - -
      - - - - -
      -
      - - - - - - - - -
      - - - - -
      - -
      \ No newline at end of file diff --git a/includes/admin/includes/.htaccess b/includes/admin/includes/.htaccess deleted file mode 100644 index 14249c5..0000000 --- a/includes/admin/includes/.htaccess +++ /dev/null @@ -1 +0,0 @@ -Deny from all \ No newline at end of file diff --git a/includes/admin/includes/external_files.php b/includes/admin/includes/external_files.php deleted file mode 100644 index 7285b69..0000000 --- a/includes/admin/includes/external_files.php +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - - - - - - - - - -
      - - - -
      - - - - $urls ): ?> - - - - - -
      - -   - - - - - -
      - - - - - - - - $urls ): ?> - - - - - -
      - -   - - - - - -
      - - - - - - -
      - - - - - - - - - - - - - - - -
      - - - - - - - - form="wpp-settings" /> - - - - - - - - - - \ No newline at end of file diff --git a/includes/admin/includes/index.php b/includes/admin/includes/index.php deleted file mode 100644 index e71af0e..0000000 --- a/includes/admin/includes/index.php +++ /dev/null @@ -1 +0,0 @@ - - - - - - - - - - - - - - - -
      - - - -
      - - - - $urls ): ?> - - - - - -
      - -   - - - -
      - - - - - - - - $urls ): ?> - - - - - -
      - -   - - - -
      - - - - - -
      - - - - - - - - - - - - - - - -
      - - - - - - - - - data-wpp-group="-minify" - name="_minify[]" - form="wpp-settings" /> - - - - - - - - - - - - form="wpp-settings" /> - - - - - - - - - - - - form="wpp-settings" /> - - - - - - - - - - - form="wpp-settings" /> - - - - - - - - - \ No newline at end of file diff --git a/includes/admin/index.php b/includes/admin/index.php deleted file mode 100644 index e71af0e..0000000 --- a/includes/admin/index.php +++ /dev/null @@ -1 +0,0 @@ - - -
      - -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 'js', - 'list' => $theme_files, - 'minified' => $minified, - 'combined' => $combined, - 'inlined' => $inlined, - 'disabled' => $disabled, - 'disabled_positions' => $disabled_positions, - ] ); - - ?> - - - - - - - - - - 'js', - 'list' => $plugin_files, - 'minified' => $minified, - 'combined' => $combined, - 'inlined' => $inlined, - 'disabled' => $disabled, - 'disabled_positions' => $disabled_positions, - ] ); - - ?> - - - - - - - - - - - 'js', - 'list' => $external_list, - 'disabled' => $disabled, - 'disabled_positions' => $disabled_positions, - ] ); - - ?> - - - - - -

      - -
      - - - -

      - - - - - - - - - -

      - -
      - - - - - - -
      - -
      - -

      - -
      - - - - - -

      - - - -

      - -
      - -
      - -

      - -
      - -
      - - - -
      - - -
      -   - -
      - - -
      - - - - - - - - -
      - -
      - -
      - - - -
      - - - -

      - -
      - -

      - -
      - - - - - - - - - - - - - - - -
      DNS PrefetchPreconnect
      - - form="wpp-settings" /> - - - form="wpp-settings" /> -
      -
      - - - -
      - - - -
      - -

      - -
      - -
      - - - -
      - - - - -
      - -   - - - -
      - - - - - -
      -   - -
      - - -
      - - -
      - */ ?> - - - - -
      -
      - - - - - - - - -
      - - - - - -
      - -
      \ No newline at end of file diff --git a/includes/admin/media.php b/includes/admin/media.php deleted file mode 100644 index 5d4d79e..0000000 --- a/includes/admin/media.php +++ /dev/null @@ -1,409 +0,0 @@ - - -
      - -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

      - - -

      - - -
      - -
      - -

      - -
      - - - -

      - - - -
      - - -
      -   - -
      - - -
      - - - -
      - - - -

      - - - -
      - - -
      -   - -
      - - - - -
      - - : #my-container-id -
      -
      - - - -
      - - -
      - - - -

      - - - -
      - - - - -
      - -   - - - -
      - - - - - -
      - -   - - - -
      - - -
      - - -
      - - - - -
      -
      - - - - - - - - -

      - - -

      - - -
      - - - -

      - - - -
      - - - - -
      - -   - - - -
      - - - - - -
      - -   - - - -
      - - -
      - - -
      - - - - -
      -
      - - - - - - - - -
      - -
      - - -

      - -
      - -
      - - - -

      - -

      - -
      - - - -

      - -
      - - -

      - -

      - -
      - - - -

      - -
      - -
      - -

      - -

      - -
      - - - - - - - - - - - $data ): ?> - - - - - - - - - -
      - - - - - - - - - px - - - - - px - - - - - - - - - x - -
      - -
      - - - -
      - -
      - - -
      - - -
      - -
      - - -
      - -
      \ No newline at end of file diff --git a/includes/admin/metabox.php b/includes/admin/metabox.php deleted file mode 100644 index 9a3487b..0000000 --- a/includes/admin/metabox.php +++ /dev/null @@ -1,332 +0,0 @@ - - - -
      - -
      - -
      - - -
      - - - -
      - - -
      - - - -
      - -
      - - - -
      - - -
      - - - -
      - - -
      - - - -
      diff --git a/includes/admin/settings.php b/includes/admin/settings.php deleted file mode 100644 index 0f60638..0000000 --- a/includes/admin/settings.php +++ /dev/null @@ -1,135 +0,0 @@ - - -
      - -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      -

      -
      - -
      - - - -
      -

      -
      - - - -
      - -
      -

      -
      - -

      - -
      - - -
      - -

      - - - - - - - -

      - -
      - -
      - -

      - -
      - - - -
        - $settings ): - - if( $i >= 5 ) { - unlink( $settings ); - continue; - } - - $timestamp = filemtime( $settings ); - ?> -
      • - - - - - - -
      • - -
      - - -
      - - - - -
      - -
      \ No newline at end of file diff --git a/includes/advanced-cache.php b/includes/advanced-cache.php deleted file mode 100644 index 2588d2d..0000000 --- a/includes/advanced-cache.php +++ /dev/null @@ -1,221 +0,0 @@ - -* @package WPP -*/ - - -if ( ! empty( $_POST ) ) { - return false; -} - -// Get settings -$settings = _wpp_get_site_settings(); - -// Check if cache option is ON and cache is not disabled -if ( empty( $settings) || ! $settings[ 'cache' ] || $settings[ 'disable' ] ) - return false; - -// Get cache file and check if is readble -$cache_file = _wpp_get_cache_file( $settings ); - -if ( ! file_exists( $cache_file ) ) - return false; - -// Check excluded URLs -if ( ! empty( $settings[ 'exclude' ] ) ) { - - $current_url = _wpp_get_current_url(); - - $wildcards = [ - '{any}' => '[^/]+', - '{numbers}' => '[0-9]+', - '{letters}' => '[A-Za-z]+', - '{all}' => '.*' - ]; - - foreach( $settings[ 'exclude' ] as $excluded_url ) { - - $excluded_url = preg_quote( $excluded_url ); - - $excluded_url = str_replace( - array_keys( $wildcards ), - array_values( $wildcards ), - stripslashes( $excluded_url ) - ); - - // Try simple match first - if ( $excluded_url === $current_url ) { - return false; - } - - if ( preg_match( '#^' . $excluded_url . '$#', $current_url ) ) { - return false; - } - - } - -} - -// Check WP cookies -if ( ! empty( $_COOKIE ) ) { - - $cookies = '/^(wordpress_logged_in_|wp-postpass_|wptouch_switch_toggle|comment_author_|comment_author_email_)/'; - - foreach ( $_COOKIE as $cookie => $value ) { - if ( preg_match( $cookies, $cookie ) ) { - return false; - } - } - -} - -// Check if cache file has expired -if ( time() - intval( $settings[ 'expire' ] ) < filemtime( $cache_file ) ) { - - header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s', filemtime( $cache_file ) ) . ' GMT' ); - - // Getting If-Modified-Since headers - if ( function_exists( 'apache_request_headers' ) ) { - $apache_headers = apache_request_headers(); - $modified_since = isset( $apache_headers[ 'If-Modified-Since' ] ) ? $apache_headers[ 'If-Modified-Since' ] : ''; - $accept_encoding = isset( $headers[ 'Accept-Encoding' ] ) ? $headers[ 'Accept-Encoding' ] : ''; - } else { - $modified_since = isset( $_SERVER[ 'HTTP_IF_MODIFIED_SINCE' ] ) ? $_SERVER[ 'HTTP_IF_MODIFIED_SINCE' ] : '' ; - $accept_encoding = isset( $_SERVER[ 'HTTP_ACCEPT_ENCODING' ] ) ? $_SERVER[ 'HTTP_ACCEPT_ENCODING' ] : ''; - } - - // Check headers - if ( - ! empty( $modified_since ) - && ( strtotime( $modified_since ) === filemtime( $cache_file ) ) - ) { - // Client's cache is up to date - header( $_SERVER[ 'SERVER_PROTOCOL' ] . ' 304 Not Modified', true, 304 ); - exit; - } - - // Check if gzip is enabled - if ( - false !== strpos( $accept_encoding, 'gzip' ) - && function_exists( 'readgzfile' ) - && file_exists( $cache_file . '_gz' ) - ) { - readgzfile( $cache_file . '_gz' ); - } else { - include $cache_file; - } - - exit; - -} - - -/** - * Get cache file path - * - * @return string - */ -function _wpp_get_cache_file( $settings ) { - - $file = WP_CONTENT_DIR . '/cache/wpp-cache/' . $_SERVER[ 'HTTP_HOST' ] ; - - // Check if site is using permalinks - if ( $settings[ 'permalinks' ] ) { - - if ( ! empty( $_GET ) ) { - $uri = parse_url( $_SERVER[ 'REQUEST_URI' ] ); - $file .= $uri[ 'path' ] . md5( $uri[ 'query' ] ) . '.html'; - } else { - $file .= $_SERVER[ 'REQUEST_URI' ] . 'index.html'; - } - - } else { - $file .= '/' . md5( _wpp_get_current_url() ) . '.html'; - } - - // Is mobile device and mobile cache is ON - if ( $settings[ 'mobile_cache' ] && _wpp_is_mobile() ) { - $file .= '_mobile'; - } - - // Is AMP? Why not save this as mobile? - $amp_tag = defined( 'WPP_AMP_TAG' ) ? WPP_AMP_TAG : 'amp'; - - if ( - isset( $_GET[ $amp_tag ] ) - || preg_match( "/$amp_tag\/?$/", _wpp_get_current_url() ) - ) { - $file .= '_amp'; - } - - return $file; -} - - -/** - * Get site settings - * - * @return array - */ -function _wpp_get_site_settings() { - - $settings_file = sprintf( - '%s/%s.settings.json', - WP_CONTENT_DIR . '/cache/wpp-cache', - $_SERVER[ 'HTTP_HOST' ] - ); - - if ( file_exists( $settings_file ) ) { - return json_decode( - file_get_contents( $settings_file ), - true - ); - } - - return []; - -} - - -/** - * Check if is mobile device - * - * @return bool - */ -function _wpp_is_mobile() { - - if ( empty( $_SERVER[ 'HTTP_USER_AGENT' ] ) ) { - return false; - } - - if ( strpos( $_SERVER[ 'HTTP_USER_AGENT' ], 'Mobile' ) !== false - || strpos( $_SERVER[ 'HTTP_USER_AGENT' ], 'Android' ) !== false - || strpos( $_SERVER[ 'HTTP_USER_AGENT' ], 'Silk/' ) !== false - || strpos( $_SERVER[ 'HTTP_USER_AGENT' ], 'Kindle' ) !== false - || strpos( $_SERVER[ 'HTTP_USER_AGENT' ], 'BlackBerry' ) !== false - || strpos( $_SERVER[ 'HTTP_USER_AGENT' ], 'Opera Mini' ) !== false - || strpos( $_SERVER[ 'HTTP_USER_AGENT' ], 'Opera Mobi' ) !== false - ) { - return true; - } - - return false; -} - - -/** - * Get current URL - * - * @return string - */ -function _wpp_get_current_url() { - - // Get URL protocol - $protocol = ( ! isset( $_SERVER[ 'HTTPS' ] ) || $_SERVER[ 'HTTPS' ] !== 'on' ) ? 'http' : 'https'; - - return $protocol . '://' . $_SERVER[ 'HTTP_HOST' ] . $_SERVER[ 'REQUEST_URI' ]; - -} \ No newline at end of file diff --git a/includes/classes/.htaccess b/includes/classes/.htaccess deleted file mode 100644 index 14249c5..0000000 --- a/includes/classes/.htaccess +++ /dev/null @@ -1 +0,0 @@ -Deny from all \ No newline at end of file diff --git a/includes/classes/api.php b/includes/classes/api.php deleted file mode 100644 index 862cfcb..0000000 --- a/includes/classes/api.php +++ /dev/null @@ -1,223 +0,0 @@ -timeout ); - - $url = $this->getUrl( $url ); - $method = strtoupper( $method ); - - // Get headers - $headers = wp_parse_args( - $this->headers, - [ - 'Content-Type' => 'application/json' - ] - ); - - // Check for additional headers - if ( isset( $options[ 'headers' ] ) && is_array( $options[ 'headers' ] ) ) { - - $headers = array_merge( $headers, $options[ 'headers' ] ); - - // Remove headers from options - unset( $options[ 'headers' ] ); - - } - - - // Set args - $args = [ - 'timeout' => $this->timeout, - 'method' => $method, - 'sslverify' => $this->sslverify, - 'body' => $options, - 'headers' => $headers - ]; - - - if ( $cache ) { - // Generate unique cache key for every request - $key = md5( $url . $method . serialize( $options) ); - - if ( $data = $this->getCache( $key ) ) { - return $data; - } - - } - - // Make request - $request = wp_remote_request( $url, $args ); - - $response = [ - 'code' => wp_remote_retrieve_response_code( $request ), - 'message' => wp_remote_retrieve_response_message( $request ), - 'body' => wp_remote_retrieve_body( $request ), - 'cache_key' => '' - ]; - - - // Check for error - if ( is_wp_error( $request ) || ! $this->checkStatusCode( $response ) ) { - - wpp_log( sprintf( 'API request error: %s %s %s', strtoupper( $method ), $url, $response[ 'message' ] ) ); - - return new WP_Error( $response[ 'code' ], $response[ 'message' ], $response ); - - } - - // Cache result ? - if ( $cache ) { - $this->setCache( $key, $response, $cache ); - $response['cache_key'] = $key; - } - - return $response; - - } - - - /** - * Make API request with method - * - * @param string $method - * @param array $args - * @return WP_Error|array - * @since 1.0.8 - */ - public function __call( $method, $args ) { - - $method = strtoupper( $method ); - - if ( in_array( $method, $this->methods ) ) { - - $url = isset( $args[0] ) ? $args[0] : '/'; - $options = isset( $args[1] ) ? $args[1] : []; - $cache = isset( $args[2] ) ? $args[2] : 0; - - return $this->request( $url, $method, $options, $cache ); - - } - - // Log error - wpp_log( sprintf( __( 'Call to undefined method %s', 'wpp' ), $method ) ); - - } - - - /** - * Set response cache - * - * Uses transients to store request response - * - * @param string $key - * @param mixed $data - * @param int $cache numbers of seconds - * @return boolean - * @since 1.0.8 - */ - public function setCache( $key, $data, $cache = 300 ) { - return set_transient( wpp_get_prefix( $key ), $data, $cache ); - } - - /** - * Get cached data - * - * @param string $key - * @return array|boolean - * @since 1.0.8 - */ - public function getCache( $key ) { - - $data = get_transient( wpp_get_prefix( $key ) ); - - if ( $data !== false ) { - return $data; - } - - return false; - - } - - /** - * Clear cache - * - * If cache key is not provided, all cache will be deleted - * - * @param string $key - * @return boolean - * @since 1.0.8 - */ - public function clearCache( $key = null ) { - - if ( is_null( $key ) ) { - - return $GLOBALS[ 'wpdb' ]->query( - 'DELETE FROM ' . $GLOBALS[ 'wpdb' ]->prefix . 'options WHERE option_name LIKE ("%transient_' . esc_sql( wpp_get_prefix() ) . '%")' - ); - - } - - return delete_transient( wpp_get_prefix( $key ) ); - } - - - /** - * Get API url - * - * @param string $url - * @return string - * @since 1.0.8 - */ - public function getUrl( $url = '' ) { - - // Check if its custom API url - if ( strstr( $url, 'http://' ) || strstr( $url, 'https://' ) ) { - return $url; - } - - $namespace = ! is_null( $this->namespace ) ? trailingslashit( $this->namespace ) : ''; - return trailingslashit( $this->api_url ) . $namespace . ltrim( $url, '/' ); - } - - - /** - * Check API response status code - * - * @param array $response - * @return boolean - * @since 1.0.8 - */ - public function checkStatusCode( $response ) { - return ( $response['code'] >= 200 && $response['code'] < 300 ) ? true : false; - } - - -} \ No newline at end of file diff --git a/includes/classes/cache.php b/includes/classes/cache.php deleted file mode 100644 index 31d1cff..0000000 --- a/includes/classes/cache.php +++ /dev/null @@ -1,228 +0,0 @@ - -* @package WPP -*/ - -use RecursiveIteratorIterator; -use RecursiveDirectoryIterator; -use DirectoryIterator; - - -class Cache -{ - - /** - * Save cache - * - * @param string $html - * @param bool $amp - * @since 1.0.0 - * @return void - */ - public static function save( $html, $amp = false ) { - - $file = Cache::getFileName(); - - if ( ! file_exists( $file ) ) { - - $cache_dir = dirname( $file ); - - if ( ! is_dir( $cache_dir ) ) - mkdir( $cache_dir, 0755, true ); - - } - - // Check mobile cache - if ( Option::boolval( 'mobile_cache' ) && wp_is_mobile() ) - $file .= '_mobile'; - - // Allow others to use this - $content = apply_filters( 'wpp_save_cache', $html ); - - /** - * Before saving cache hook - * @since 1.0.0 - */ - do_action( 'wpp_before_cache_save', $file, $content ); - - File::save( ( $amp ) ? $file . '_amp' : $file , $content ); - - if ( function_exists( 'gzencode' ) ) { - - $content = gzencode( $content, apply_filters( 'wpp_gzencode_compression_level', 3 ) ); - - File::save( ( $amp ) ? $file . '_amp_gz' : $file . '_gz' , $content ); - - } - - /** - * After saving cache hook - * @since 1.0.0 - */ - do_action( 'wpp_after_cache_save', $file, $content ); - - wpp_log( sprintf( 'Cache saved for URL %s', Url::current() ) ); - - } - - - /** - * Clar cache - * - * @since 1.0.0 - * @param boolean $preload - * @return void - */ - public static function clear( $preload = true ) { - - /** - * Hook fired right before deleting the cache files - * @since 1.0.0 - */ - do_action( 'wpp-before-cache-delete' ); - - $cache_dir = WPP_CACHE_DIR; - - // Do not delte extensions - $keep_extensions = [ 'log', 'json' ]; - - // Keep assets? - if ( Option::boolval( 'clear_assets' ) ) - array_push( $keep_extensions, 'css', 'js' ); - - if ( is_multisite() ) { - - $uri = parse_url( get_bloginfo( 'url' ) ); - - $cache_dir = WPP_CACHE_DIR . $uri[ 'host' ] . $uri[ 'path' ]; - - // Delete minified CSS and JS files in root cache directory - $root_files = new DirectoryIterator( WPP_CACHE_DIR ); - - foreach ( $root_files as $file ) { - - if ( $file->isFile() ) { - - if ( - ! in_array( $file->getExtension(), $keep_extensions ) - && $file->getFilename() != 'index.php' - ) - unlink( $file->getPathname() ); - - } - - } - - } - - if ( ! is_dir( $cache_dir ) ) - return; - - $files = new RecursiveIteratorIterator( - new RecursiveDirectoryIterator( $cache_dir, RecursiveDirectoryIterator::SKIP_DOTS ), - RecursiveIteratorIterator::CHILD_FIRST - ); - - foreach ( $files as $file ) { - - if ( $file->isDir() ) { - - rmdir( $file->getRealPath() ); - - } else { - - if ( - ! in_array( $file->getExtension(), $keep_extensions ) - && $file->getFilename() != 'index.php' - ) - unlink( $file->getPathname() ); - - } - - } - - wpp_log( 'Cache deleted' ); - - /** - * Hook fired right after deleting the cache files - * @since 1.0.0 - */ - do_action( 'wpp-after-cache-delete' ); - - if ( $preload ) wpp_preload_homepage(); - - } - - - /** - * Delete everything in WPP cache directory and after that delete directory itself - * - * @return void - * @since 1.1.1 - */ - public static function clearEverything() { - - $files = new RecursiveIteratorIterator( - new RecursiveDirectoryIterator( WPP_CACHE_DIR, RecursiveDirectoryIterator::SKIP_DOTS ), - RecursiveIteratorIterator::CHILD_FIRST - ); - - foreach ( $files as $file ) { - - if ( $file->isDir() ) { - rmdir( $file->getRealPath() ); - } else { - unlink( $file->getRealPath() ); - } - - } - - // Remove wpp cache dir - rmdir( WPP_CACHE_DIR ); - - } - - - /** - * Check if cache file exists - * - * @param string $url - * @return boolean - * @since 1.0.0 - */ - public static function exists( $url ) { - return file_exists( Cache::getFileName( $url ) ); - } - - - /** - * Get cache file name - * - * @param string|null $url - * @return string - * @since 1.0.0 - */ - static function getFileName( $url = null ) { - - if ( get_option( 'permalink_structure', true ) ) { - - if ( ! empty( $_GET ) ) { - $uri = parse_url( Input::server( 'REQUEST_URI' ) ); - return WPP_CACHE_DIR . Input::server( 'HTTP_HOST' ) . $uri[ 'path' ] . md5( $uri[ 'query' ] ) . '.html'; - } - - return WPP_CACHE_DIR . trailingslashit( Input::server( 'HTTP_HOST' ) . Input::server( 'REQUEST_URI' ) ) . 'index.html'; - - } else { - - $name = is_null( $url ) ? Url::current() : $url; - return WPP_CACHE_DIR . trailingslashit( Input::server( 'HTTP_HOST' ) ) . md5( $name ) . '.html'; - - } - - } - -} \ No newline at end of file diff --git a/includes/classes/cli.php b/includes/classes/cli.php deleted file mode 100644 index 92182d8..0000000 --- a/includes/classes/cli.php +++ /dev/null @@ -1,136 +0,0 @@ - -* @package WPP -*/ - -use WP_CLI; -use WP_CLI_Command; - -class CLI extends WP_CLI_Command -{ - - /** - * Clear cache - * - * @since 1.0.0 - * @return void - */ - public function flush() { - - WP_CLI::line( esc_html__( 'Flushing the cache...', 'wpp' ) ); - Cache::clear( false ); - WP_CLI::line( esc_html__( 'Cache flushed.', 'wpp' ) ); - - } - - /** - * Temporarily disable plugin - * - * @since 1.0.0 - * @return void - */ - public function disable() { - - WP_CLI::line( esc_html__( sprintf( 'Disabling %s...', WPP_PLUGIN_NAME ), 'wpp' ) ); - Option::update( 'wpp_disable', true ); - File::saveSiteSettings( [ 'disable' => true ] ); - WP_CLI::line( esc_html__( sprintf( '%s disabled', WPP_PLUGIN_NAME ), 'wpp' ) ); - - } - - /** - * Enable plugin - * - * @since 1.0.0 - * @return void - */ - public function enable() { - - WP_CLI::line( esc_html__( sprintf( 'Enabling %s...', WPP_PLUGIN_NAME ), 'wpp' ) ); - Option::update( 'wpp_disable', false ); - File::saveSiteSettings( [ 'disable' => false ] ); - WP_CLI::line( esc_html__( sprintf( '%s enabled', WPP_PLUGIN_NAME ), 'wpp' ) ); - - } - - /** - * Cleanup database - * - * @since 1.0.5 - * @return void - */ - public function cleanup( $args ) { - - if ( isset( $args[ 0 ] ) ) { - - switch( $args[ 0 ] ) { - - case 'transients': - - WP_CLI::line( esc_html__( 'Running tranisent cleanup', 'wpp' ) ); - DB::clearTransients(); - WP_CLI::line( esc_html__( 'Transient cleanup complete', 'wpp' ) ); - - break; - - case 'revisions': - - WP_CLI::line( esc_html__( 'Running revisions cleanup', 'wpp' ) ); - DB::clearRevisions(); - WP_CLI::line( esc_html__( 'Revisions cleanup complete', 'wpp' ) ); - - break; - - case 'drafts': - - WP_CLI::line( esc_html__( 'Running drafts cleanup', 'wpp' ) ); - DB::clearDrafts(); - WP_CLI::line( esc_html__( 'Drafts cleanup complete', 'wpp' ) ); - - break; - - case 'trash': - - WP_CLI::line( esc_html__( 'Running trash cleanup', 'wpp' ) ); - DB::clearTrash(); - WP_CLI::line( esc_html__( 'Trash cleanup complete', 'wpp' ) ); - - break; - - case 'spam': - - WP_CLI::line( esc_html__( 'Running spam cleanup', 'wpp' ) ); - DB::clearSpam(); - WP_CLI::line( esc_html__( 'Spam cleanup complete', 'wpp' ) ); - - break; - - case 'cron': - - WP_CLI::line( esc_html__( 'Running cron tasks cleanup', 'wpp' ) ); - DB::clearCronTasks(); - WP_CLI::line( esc_html__( 'Cron tasks cleanup complete', 'wpp' ) ); - - break; - - } - - } else { - - /** - * Clear all - */ - WP_CLI::line( esc_html__( 'Running database cleanup', 'wpp' ) ); - DB::clear(); - WP_CLI::line( esc_html__( 'Database cleanup complete', 'wpp' ) ); - - } - - } - -} - -WP_CLI::add_command( 'wpp', 'WPP\CLI' ); \ No newline at end of file diff --git a/includes/classes/collection.php b/includes/classes/collection.php deleted file mode 100644 index cc718a5..0000000 --- a/includes/classes/collection.php +++ /dev/null @@ -1,94 +0,0 @@ - -* @package WPP -*/ - -class Collection -{ - private static $collection = []; - - /** - * Add data to collection - * - * @since 1.0.0 - * - * @param string $name - * @param string $type - * @param mixed $file - * @param boolean $unique - * - * @return void - */ - public static function add( $name, $type, $file, $unique = false ) { - - static::$collection[ $name ][ $type ][] = $file; - - if ( $unique ) { - static::$collection[ $name ][ $type ] = array_unique( static::$collection[ $name ][ $type ] ); - } - - } - - - /** - * Get collection - * - * @since 1.0.0 - * - * @param string $name - * @param string $type - * @param mixed $fallback default array - * - * @return array - */ - public static function get( $name, $type = null, $fallback = [] ) { - - if ( ! isset( static::$collection[ $name ] ) ) { - return $fallback; - } - - if ( ! is_null( $type ) ) { - - if ( isset( static::$collection[ $name ][ $type ] ) ) { - return static::$collection[ $name ][ $type ]; - } - - return []; - - } - - return static::$collection[ $name ]; - - } - - - /** - * Remove items from collection - * - * @param string $name - * @param string $type - * @return void - * @since 1.0.0 - */ - public static function remove( $name, $type = null ) { - - if ( isset( static::$collection[ $name ] ) ) { - - if ( ! is_null( $type ) ) { - - if ( isset( static::$collection[ $name ][ $type ] ) ) { - unset( static::$collection[ $name ][ $type ] ); - } - - } - - unset( static::$collection[ $name ] ); - - } - - } - -} \ No newline at end of file diff --git a/includes/classes/db.php b/includes/classes/db.php deleted file mode 100644 index 2b1d1f6..0000000 --- a/includes/classes/db.php +++ /dev/null @@ -1,278 +0,0 @@ - -* @package WPP -*/ - -class DB -{ - /** - * Get revisions count - * - * @return integer - * @since 1.0.0 - */ - public static function getRevisionsCount() { - $result = $GLOBALS['wpdb']->get_row(' - SELECT COUNT(ID) as num - FROM ' . $GLOBALS['wpdb']->posts . ' - WHERE post_type = "revision"' - ); - - return empty($result) ? 0 : $result->num; - } - - /** - * Get spam comments count - * - * @return integer - * @since 1.0.0 - */ - public static function getSpamCount() { - $result = $GLOBALS['wpdb']->get_row(' - SELECT COUNT(*) as num - FROM ' . $GLOBALS['wpdb']->comments . ' - WHERE comment_approved = "spam" - OR comment_approved = "trash"' - ); - - return empty($result) ? 0 : $result->num; - } - - /** - * Get items in trash count - * - * @return integer - * @since 1.0.0 - */ - public static function getTrashCount() { - $result = $GLOBALS['wpdb']->get_row(' - SELECT COUNT(ID) as num - FROM ' . $GLOBALS['wpdb']->posts . ' - WHERE post_status = "trash"' - ); - - return empty($result) ? 0 : $result->num; - - } - - /** - * Get transients count - * - * @return integer - * @since 1.0.0 - */ - public static function getTransientsCount() { - - list(, $seconds) = explode(' ', microtime()); - - $result = $GLOBALS['wpdb']->get_row(' - SELECT COUNT(*) as num - FROM ' . $GLOBALS['wpdb']->options . ' - WHERE option_name LIKE "%_transient_timeout_%" - AND option_value < ' . $seconds - ); - - return empty($result) ? 0 : $result->num; - - } - - /** - * Get transients count - * - * @return integer - * @since 1.0.3 - */ - public static function getCronTasksCount() { - - $count = 0; - - $tasks = get_option( 'cron' ); - - if ( is_array( $tasks ) ) { - - foreach( $tasks as $id => $task ) { - - if ( is_array( $task ) ) { - - foreach( $task as $hook => $data ) { - - // Check if hook has action - if ( ! has_action( $hook ) ) { - $count++; - } - } - - } - - } - - } - - - return $count; - - } - - /** - * Get drafts count - * - * @return integer - * @since 1.0.5 - */ - public static function getAutoDraftsCount() { - $result = $GLOBALS[ 'wpdb' ]->get_row(' - SELECT COUNT(ID) as num - FROM ' . $GLOBALS[ 'wpdb' ]->posts . ' - WHERE post_status = "auto-draft"' - ); - - return empty( $result ) ? 0 : $result->num; - } - - /** - * Run all db cleanups - * - * @return void - * @since 1.0.0 - */ - public static function clear() { - DB::clearRevisions(); - DB::clearSpam(); - DB::clearTrash(); - DB::clearTransients(); - DB::clearCronTasks(); - DB::clearAutoDrafts(); - - wpp_log( 'DB optimized' ); - } - - - /** - * Cleanup revisions - * - * @return void - * @since 1.0.0 - */ - public static function clearRevisions() { - - wpp_log( 'DB revisions deleted' ); - - return $GLOBALS['wpdb']->query( - 'DELETE FROM ' . $GLOBALS['wpdb']->posts .' WHERE post_type = "revision"' - ); - } - - - /** - * Cleanup spam - * - * @return void - * @since 1.0.0 - */ - public static function clearSpam() { - - wpp_log( 'DB spam deleted' ); - - return $GLOBALS['wpdb']->query( - 'DELETE FROM ' . $GLOBALS['wpdb']->comments .' WHERE comment_approved = "spam" OR comment_approved = "trash"' - ); - } - - - /** - * Cleanup trash - * - * @return void - * @since 1.0.0 - */ - public static function clearTrash() { - - wpp_log( 'DB trash deleted' ); - - return $GLOBALS['wpdb']->query( - 'DELETE FROM ' . $GLOBALS['wpdb']->posts . ' WHERE post_status = "trash"' - ); - } - - - /** - * Cleanup transients - * - * @return void - * @since 1.0.0 - */ - public static function clearTransients() { - - wpp_log( 'DB transients deleted' ); - - return $GLOBALS['wpdb']->query( - 'DELETE FROM ' . $GLOBALS['wpdb']->options . ' WHERE option_name LIKE "%_transient_%"' - ); - } - - - /** - * Cleanup cron tasks - * - * @return void - * @since 1.0.0 - */ - public static function clearCronTasks() { - - $tasks = get_option( 'cron' ); - - if ( is_array( $tasks ) ) { - - foreach( $tasks as $id => $task ) { - - if ( is_array( $task ) ) { - - foreach( $task as $hook => $data ) { - - // Check if hook has action - if ( ! has_action( $hook ) ) { - - // Remove action - unset( $tasks[ $id ][ $hook ] ); - - // If there is no other actions, remove hook - if ( count( $tasks[ $id ] ) == 0 ) { - unset( $tasks[ $id ] ); - } - - } - } - - } - - } - - } - - update_option( 'cron', $tasks ); - - wpp_log( 'DB cron tasks deleted' ); - - } - - /** - * Cleanup drafts - * - * @return void - * @since 1.0.5 - */ - public static function clearAutoDrafts() { - - - wpp_log( 'DB auto drafts deleted' ); - - return $GLOBALS['wpdb']->query( - 'DELETE FROM ' . $GLOBALS['wpdb']->posts .' WHERE post_status = "auto-draft"' - ); - - } - -} \ No newline at end of file diff --git a/includes/classes/file.php b/includes/classes/file.php deleted file mode 100644 index 5b5091c..0000000 --- a/includes/classes/file.php +++ /dev/null @@ -1,195 +0,0 @@ - -* @package WPP -*/ - -class File -{ - /** - * Get absolute file path from url - * - * @since 1.0.0 - * @param string $file_url - * @return string - */ - public static function path( $file_url ) { - return realpath( ABSPATH . str_replace( site_url(), '', strtok( $file_url, '?#' ) ) ); - } - - /** - * Check if file is local from given url - * - * @since 1.0.0 - * @param string $file_url - * @return boolean - */ - public static function isLocal( $file_url ) { - return is_file( static::path( $file_url ) ); - } - - /** - * Get file contents - * - * @since 1.0.0 - * @param string $file - * - * @return string - */ - public static function get( $file ) { - - if ( file_exists( $file ) ) { - return file_get_contents( $file ); - } - - return false; - - } - - - /** - * Get file contents and decode it to json. - * Providing the file extension (.json) is not mandatory - * - * @since 1.0.0 - * @param string $file - * @param boolean $assoc - * - * @return array - */ - public static function getJson( $file, $assoc = true ) { - - if( ! strstr( $file, '.json' ) ) { - $file .= '.json'; - } - - if ( $content = static::get( $file ) ) { - return json_decode( $content , $assoc ); - } - - return false; - - } - - - - /** - * Save file content as json - * Providing the file extension (.json) is not mandatory - * - * @since 1.0.0 - * @param string $file - * @param array $data - * - * @return void - */ - public static function saveJson( $file, $data ) { - - if( ! strstr( $file, '.json' ) ) { - $file .= '.json'; - } - - return File::save( $file, json_encode( $data ) ); - - } - - - - /** - * Save content to file - * - * @see php.net/manual/en/function.file-put-contents.php - * - * @since 1.0.0 - * @param string $file - * @param mixed $content - * @param int $lock - * - * @return bool - */ - public static function save( $file, $content, $lock = LOCK_EX ) { - - if ( is_null( $lock ) ) { - return file_put_contents( $file, $content ); - } - - return file_put_contents( $file, $content, $lock ); - } - - /** - * Append content to file - * - * @see php.net/manual/en/function.file-put-contents.php - * - * @since 1.0.0 - * @param string $file - * @param mixed $content - * @param int $lock - * - * @return bool - */ - public static function append( $file, $content, $lock = LOCK_EX ) { - - if ( is_null( $lock ) ) { - return file_put_contents( $file, $content, FILE_APPEND ); - } - - return file_put_contents( $file, $content, FILE_APPEND | $lock ); - } - - - /** - * Prepend content to file - * - * @see php.net/manual/en/function.file-put-contents.php - * - * @since 1.0.0 - * @param string $file - * @param mixed $content - * @param int $lock - * - * @return bool - */ - public static function prepend( $file, $content, $lock = LOCK_EX ) { - - $old_content = file_exists( $file ) ? file_get_contents( $file ) : ''; - - if ( is_null( $lock ) ) { - return file_put_contents( $file, $content . $old_content ); - } - - return file_put_contents( $file, $content . $old_content, $lock ); - - } - - - /** - * Save site settings used by advanced-cache.php file - * - * @since 1.1.4 - * @param array $settings - * @return void - */ - public static function saveSiteSettings( array $settings ) { - - $settings_file = WPP_CACHE_DIR . Input::server( 'HTTP_HOST' ) . '.settings.json'; - - $defaults = [ - 'cache' => false, - 'disable' => false, - 'mobile_cache' => false, - 'expire' => 3600, - 'exclude' => [], - 'permalinks' => false - ]; - - - $updated_settings = wp_parse_args( $settings, $defaults ); - - File::saveJson( $settings_file, $updated_settings ); - - } - -} \ No newline at end of file diff --git a/includes/classes/htmldom.php b/includes/classes/htmldom.php deleted file mode 100644 index e8b02c2..0000000 --- a/includes/classes/htmldom.php +++ /dev/null @@ -1,1588 +0,0 @@ -size is the "real" number of bytes the dom was created from. - * but for most purposes, it's a really good estimation. - * Paperg - Added the forceTagsClosed to the dom constructor. Forcing tags closed is great for malformed html, but it CAN lead to parsing errors. - * Allow the user to tell us how much they trust the html. - * Paperg add the text and plaintext to the selectors for the find syntax. plaintext implies text in the innertext of a node. text implies that the tag is a text node. - * This allows for us to find tags based on the text they contain. - * Create find_ancestor_tag to see if a tag is - at any level - inside of another specific tag. - * Paperg: added parse_charset so that we know about the character set of the source document. - * NOTE: If the user's system has a routine called get_last_retrieve_url_contents_content_type availalbe, we will assume it's returning the content-type header from the - * last transfer or curl_exec, and we will parse that and use it in preference to any other method of charset detection. - * - * Found infinite loop in the case of broken html in restore_noise. Rewrote to protect from that. - * PaperG (John Schlick) Added get_display_size for "IMG" tags. - * - * Licensed under The MIT License - * Redistributions of files must retain the above copyright notice. - * - * @author S.C. Chen - * @author John Schlick - * @author Rus Carroll - * @version 1.5 ($Rev: 210 $) - * @package PlaceLocalInclude - * @subpackage simple_html_dom - */ - -/** - * All of the Defines for the classes below. - * @author S.C. Chen - */ - - - -define('HDOM_TYPE_ELEMENT', 1); -define('HDOM_TYPE_COMMENT', 2); -define('HDOM_TYPE_TEXT', 3); -define('HDOM_TYPE_ENDTAG', 4); -define('HDOM_TYPE_ROOT', 5); -define('HDOM_TYPE_UNKNOWN', 6); -define('HDOM_QUOTE_DOUBLE', 0); -define('HDOM_QUOTE_SINGLE', 1); -define('HDOM_QUOTE_NO', 3); -define('HDOM_INFO_BEGIN', 0); -define('HDOM_INFO_END', 1); -define('HDOM_INFO_QUOTE', 2); -define('HDOM_INFO_SPACE', 3); -define('HDOM_INFO_TEXT', 4); -define('HDOM_INFO_INNER', 5); -define('HDOM_INFO_OUTER', 6); -define('HDOM_INFO_ENDSPACE', 7); -define('DEFAULT_TARGET_CHARSET', 'UTF-8'); -define('DEFAULT_BR_TEXT', "\r\n"); -define('DEFAULT_SPAN_TEXT', " "); -define('MAX_FILE_SIZE', 600000); - -function wpp_file_get_html($url, $use_include_path = false, $context = null, $offset = - 1, $maxLen = - 1, $lowercase = true, $forceTagsClosed = true, $target_charset = DEFAULT_TARGET_CHARSET, $stripRN = true, $defaultBRText = DEFAULT_BR_TEXT, $defaultSpanText = DEFAULT_SPAN_TEXT) -{ - $dom = new HtmlDOM(null, $lowercase, $forceTagsClosed, $target_charset, $stripRN, $defaultBRText, $defaultSpanText); - $contents = file_get_contents($url, $use_include_path, $context, $offset); - if (empty($contents) || strlen($contents) > MAX_FILE_SIZE) { - return false; - } - $dom->load($contents, $lowercase, $stripRN); - return $dom; -} - -function wpp_str_get_html($str, $lowercase = true, $forceTagsClosed = true, $target_charset = DEFAULT_TARGET_CHARSET, $stripRN = true, $defaultBRText = DEFAULT_BR_TEXT, $defaultSpanText = DEFAULT_SPAN_TEXT) -{ - $dom = new HtmlDOM(null, $lowercase, $forceTagsClosed, $target_charset, $stripRN, $defaultBRText, $defaultSpanText); - if (empty($str) || strlen($str) > MAX_FILE_SIZE) { - $dom->clear(); - return false; - } - $dom->load($str, $lowercase, $stripRN); - return $dom; -} - -function dump_html_tree($node, $show_attr = true, $deep = 0) -{ - $node->dump($node); -} - -class simple_html_dom_node -{ - public $nodetype = HDOM_TYPE_TEXT; - - public $tag = 'text'; - - public $attr = array(); - public $children = array(); - public $nodes = array(); - public $parent = null; - - public $_ = array(); - public $tag_start = 0; - - private $dom = null; - function __construct($dom) - { - $this->dom = $dom; - $dom->nodes[] = $this; - } - function __destruct() - { - $this->clear(); - } - function __toString() - { - return $this->outertext(); - } - - function clear() - { - $this->dom = null; - $this->nodes = null; - $this->parent = null; - $this->children = null; - } - - function dump($show_attr = true, $deep = 0) - { - $lead = str_repeat(' ', $deep); - echo $lead . $this->tag; - if ($show_attr && count($this->attr) > 0) { - echo '('; - foreach($this->attr as $k => $v) echo "[$k]=>\"" . $this->$k . '", '; - echo ')'; - } - echo "\n"; - if ($this->nodes) { - foreach($this->nodes as $c) { - $c->dump($show_attr, $deep + 1); - } - } - } - - function dump_node($echo = true) - { - $string = $this->tag; - if (count($this->attr) > 0) { - $string.= '('; - foreach($this->attr as $k => $v) { - $string.= "[$k]=>\"" . $this->$k . '", '; - } - $string.= ')'; - } - if (count($this->_) > 0) { - $string.= ' $_ ('; - foreach($this->_ as $k => $v) { - if (is_array($v)) { - $string.= "[$k]=>("; - foreach($v as $k2 => $v2) { - $string.= "[$k2]=>\"" . $v2 . '", '; - } - $string.= ")"; - } - else { - $string.= "[$k]=>\"" . $v . '", '; - } - } - $string.= ")"; - } - if (isset($this->text)) { - $string.= " text: (" . $this->text . ")"; - } - $string.= " HDOM_INNER_INFO: '"; - if (isset($node->_[HDOM_INFO_INNER])) { - $string.= $node->_[HDOM_INFO_INNER] . "'"; - } - else { - $string.= ' NULL '; - } - $string.= " children: " . count($this->children); - $string.= " nodes: " . count($this->nodes); - $string.= " tag_start: " . $this->tag_start; - $string.= "\n"; - if ($echo) { - echo $string; - return; - } - else { - return $string; - } - } - - function parent($parent = null) - { - if ($parent !== null) { - $this->parent = $parent; - $this->parent->nodes[] = $this; - $this->parent->children[] = $this; - } - return $this->parent; - } - - function has_child() - { - return !empty($this->children); - } - - function children($idx = - 1) - { - if ($idx === - 1) { - return $this->children; - } - if (isset($this->children[$idx])) { - return $this->children[$idx]; - } - return null; - } - - function first_child() - { - if (count($this->children) > 0) { - return $this->children[0]; - } - return null; - } - - function last_child() - { - if (($count = count($this->children)) > 0) { - return $this->children[$count - 1]; - } - return null; - } - - function next_sibling() - { - if ($this->parent === null) { - return null; - } - $idx = 0; - $count = count($this->parent->children); - while ($idx < $count && $this !== $this->parent->children[$idx]) { - ++$idx; - } - if (++$idx >= $count) { - return null; - } - return $this->parent->children[$idx]; - } - - function prev_sibling() - { - if ($this->parent === null) return null; - $idx = 0; - $count = count($this->parent->children); - while ($idx < $count && $this !== $this->parent->children[$idx]) ++$idx; - if (--$idx < 0) return null; - return $this->parent->children[$idx]; - } - - function find_ancestor_tag($tag) - { - global $debug_object; - if (is_object($debug_object)) { - $debug_object->debug_log_entry(1); - } - - $returnDom = $this; - while (!is_null($returnDom)) { - if (is_object($debug_object)) { - $debug_object->debug_log(2, "Current tag is: " . $returnDom->tag); - } - if ($returnDom->tag == $tag) { - break; - } - $returnDom = $returnDom->parent; - } - return $returnDom; - } - - function innertext() - { - if (isset($this->_[HDOM_INFO_INNER])) return $this->_[HDOM_INFO_INNER]; - if (isset($this->_[HDOM_INFO_TEXT])) return $this->dom->restore_noise($this->_[HDOM_INFO_TEXT]); - $ret = ''; - foreach($this->nodes as $n) $ret.= $n->outertext(); - return $ret; - } - - function outertext() - { - global $debug_object; - if (is_object($debug_object)) { - $text = ''; - if ($this->tag == 'text') { - if (!empty($this->text)) { - $text = " with text: " . $this->text; - } - } - $debug_object->debug_log(1, 'Innertext of tag: ' . $this->tag . $text); - } - if ($this->tag === 'root') return $this->innertext(); - - if ($this->dom && $this->dom->callback !== null) { - call_user_func_array($this->dom->callback, array( - $this - )); - } - if (isset($this->_[HDOM_INFO_OUTER])) return $this->_[HDOM_INFO_OUTER]; - if (isset($this->_[HDOM_INFO_TEXT])) return $this->dom->restore_noise($this->_[HDOM_INFO_TEXT]); - - if ($this->dom && $this->dom->nodes[$this->_[HDOM_INFO_BEGIN]]) { - $ret = $this->dom->nodes[$this->_[HDOM_INFO_BEGIN]]->makeup(); - } - else { - $ret = ""; - } - - if (isset($this->_[HDOM_INFO_INNER])) { - if ($this->tag != "br") { - $ret.= $this->_[HDOM_INFO_INNER]; - } - } - else { - if ($this->nodes) { - foreach($this->nodes as $n) { - $ret.= $this->convert_text($n->outertext()); - } - } - } - - if (isset($this->_[HDOM_INFO_END]) && $this->_[HDOM_INFO_END] != 0) $ret.= 'tag . '>'; - return $ret; - } - - function text() - { - if (isset($this->_[HDOM_INFO_INNER])) return $this->_[HDOM_INFO_INNER]; - switch ($this->nodetype) { - case HDOM_TYPE_TEXT: - return $this->dom->restore_noise($this->_[HDOM_INFO_TEXT]); - case HDOM_TYPE_COMMENT: - return ''; - case HDOM_TYPE_UNKNOWN: - return ''; - } - if (strcasecmp($this->tag, 'script') === 0) return ''; - if (strcasecmp($this->tag, 'style') === 0) return ''; - $ret = ''; - - if (!is_null($this->nodes)) { - foreach($this->nodes as $n) { - $ret.= $this->convert_text($n->text()); - } - if ($this->tag == "span") { - $ret.= $this->dom->default_span_text; - } - } - return $ret; - } - function xmltext() - { - $ret = $this->innertext(); - $ret = str_ireplace('', '', $ret); - return $ret; - } - - function makeup() - { - if (isset($this->_[HDOM_INFO_TEXT])) return $this->dom->restore_noise($this->_[HDOM_INFO_TEXT]); - $ret = '<' . $this->tag; - $i = - 1; - foreach($this->attr as $key => $val) { - ++$i; - if ($val === null || $val === false) continue; - $ret.= $this->_[HDOM_INFO_SPACE][$i][0]; - if ($val === true) $ret.= $key; - else { - switch ($this->_[HDOM_INFO_QUOTE][$i]) { - case HDOM_QUOTE_DOUBLE: - $quote = '"'; - break; - - case HDOM_QUOTE_SINGLE: - $quote = '\''; - break; - - default: - $quote = ''; - } - $ret.= $key . $this->_[HDOM_INFO_SPACE][$i][1] . '=' . $this->_[HDOM_INFO_SPACE][$i][2] . $quote . $val . $quote; - } - } - $ret = $this->dom->restore_noise($ret); - return $ret . $this->_[HDOM_INFO_ENDSPACE] . '>'; - } - - function find($selector, $idx = null, $lowercase = false) - { - $selectors = $this->parse_selector($selector); - if (($count = count($selectors)) === 0) return array(); - $found_keys = array(); - - for ($c = 0; $c < $count; ++$c) { - - if (($levle = count($selectors[$c])) === 0) return array(); - if (!isset($this->_[HDOM_INFO_BEGIN])) return array(); - $head = array( - $this->_[HDOM_INFO_BEGIN] => 1 - ); - - for ($l = 0; $l < $levle; ++$l) { - $ret = array(); - foreach($head as $k => $v) { - $n = ($k === - 1) ? $this->dom->root : $this->dom->nodes[$k]; - $n->seek($selectors[$c][$l], $ret, $lowercase); - } - $head = $ret; - } - foreach($head as $k => $v) { - if (!isset($found_keys[$k])) { - $found_keys[$k] = 1; - } - } - } - - ksort($found_keys); - $found = array(); - foreach($found_keys as $k => $v) $found[] = $this->dom->nodes[$k]; - - if (is_null($idx)) return $found; - else if ($idx < 0) $idx = count($found) + $idx; - return (isset($found[$idx])) ? $found[$idx] : null; - } - - protected function seek($selector, &$ret, $lowercase = false) - { - global $debug_object; - if (is_object($debug_object)) { - $debug_object->debug_log_entry(1); - } - list($tag, $key, $val, $exp, $no_key) = $selector; - - if ($tag && $key && is_numeric($key)) { - $count = 0; - foreach($this->children as $c) { - if ($tag === '*' || $tag === $c->tag) { - if (++$count == $key) { - $ret[$c->_[HDOM_INFO_BEGIN]] = 1; - return; - } - } - } - return; - } - $end = (!empty($this->_[HDOM_INFO_END])) ? $this->_[HDOM_INFO_END] : 0; - if ($end == 0) { - $parent = $this->parent; - while (!isset($parent->_[HDOM_INFO_END]) && $parent !== null) { - $end-= 1; - $parent = $parent->parent; - } - $end+= $parent->_[HDOM_INFO_END]; - } - for ($i = $this->_[HDOM_INFO_BEGIN] + 1; $i < $end; ++$i) { - $node = $this->dom->nodes[$i]; - $pass = true; - if ($tag === '*' && !$key) { - if (in_array($node, $this->children, true)) $ret[$i] = 1; - continue; - } - - if ($tag && $tag != $node->tag && $tag !== '*') { - $pass = false; - } - - if ($pass && $key) { - if ($no_key) { - if (isset($node->attr[$key])) $pass = false; - } - else { - if (($key != "plaintext") && !isset($node->attr[$key])) $pass = false; - } - } - - if ($pass && $key && $val && $val !== '*') { - - if ($key == "plaintext") { - $nodeKeyValue = $node->text(); - } - else { - $nodeKeyValue = $node->attr[$key]; - } - if (is_object($debug_object)) { - $debug_object->debug_log(2, "testing node: " . $node->tag . " for attribute: " . $key . $exp . $val . " where nodes value is: " . $nodeKeyValue); - } - - if ($lowercase) { - $check = $this->match($exp, strtolower($val) , strtolower($nodeKeyValue)); - } - else { - $check = $this->match($exp, $val, $nodeKeyValue); - } - if (is_object($debug_object)) { - $debug_object->debug_log(2, "after match: " . ($check ? "true" : "false")); - } - - if (!$check && strcasecmp($key, 'class') === 0) { - foreach(explode(' ', $node->attr[$key]) as $k) { - if (!empty($k)) { - if ($lowercase) { - $check = $this->match($exp, strtolower($val) , strtolower($k)); - } - else { - $check = $this->match($exp, $val, $k); - } - if ($check) break; - } - } - } - if (!$check) $pass = false; - } - if ($pass) $ret[$i] = 1; - unset($node); - } - - if (is_object($debug_object)) { - $debug_object->debug_log(1, "EXIT - ret: ", $ret); - } - } - protected function match($exp, $pattern, $value) - { - global $debug_object; - if (is_object($debug_object)) { - $debug_object->debug_log_entry(1); - } - switch ($exp) { - case '=': - return ($value === $pattern); - case '!=': - return ($value !== $pattern); - case '^=': - return preg_match("/^" . preg_quote($pattern, '/') . "/", $value); - case '$=': - return preg_match("/" . preg_quote($pattern, '/') . "$/", $value); - case '*=': - if ($pattern[0] == '/') { - return preg_match($pattern, $value); - } - return preg_match("/" . $pattern . "/i", $value); - } - return false; - } - protected function parse_selector($selector_string) - { - global $debug_object; - if (is_object($debug_object)) { - $debug_object->debug_log_entry(1); - } - - #$pattern = "/([\w-:\*]*)(?:\#([\w-]+)|\.([\w-]+))?(?:\[@?(!?[\w-:]+)(?:([!*^$]?=)[\"']?(.*?)[\"']?)?\])?([\/, ]+)/is"; - $pattern = "/([\w\-:\*]*)(?:\#([\w\-]+)|\.([\w\-]+))?(?:\[@?(!?[\w\-:]+)(?:([!*^$]?=)[\"']?(.*?)[\"']?)?\])?([\/, ]+)/is"; - preg_match_all($pattern, trim($selector_string) . ' ', $matches, PREG_SET_ORDER); - if (is_object($debug_object)) { - $debug_object->debug_log(2, "Matches Array: ", $matches); - } - $selectors = array(); - $result = array(); - - foreach($matches as $m) { - $m[0] = trim($m[0]); - if ($m[0] === '' || $m[0] === '/' || $m[0] === '//') continue; - if ($m[1] === 'tbody') continue; - list($tag, $key, $val, $exp, $no_key) = array( - $m[1], - null, - null, - '=', - false - ); - if (!empty($m[2])) { - $key = 'id'; - $val = $m[2]; - } - if (!empty($m[3])) { - $key = 'class'; - $val = $m[3]; - } - if (!empty($m[4])) { - $key = $m[4]; - } - if (!empty($m[5])) { - $exp = $m[5]; - } - if (!empty($m[6])) { - $val = $m[6]; - } - - if ($this->dom->lowercase) { - $tag = strtolower($tag); - $key = strtolower($key); - } - - if (isset($key[0]) && $key[0] === '!') { - $key = substr($key, 1); - $no_key = true; - } - $result[] = array( - $tag, - $key, - $val, - $exp, - $no_key - ); - if (trim($m[7]) === ',') { - $selectors[] = $result; - $result = array(); - } - } - if (count($result) > 0) $selectors[] = $result; - return $selectors; - } - function __get($name) - { - if (isset($this->attr[$name])) { - return $this->convert_text($this->attr[$name]); - } - switch ($name) { - case 'outertext': - return $this->outertext(); - case 'innertext': - return $this->innertext(); - case 'plaintext': - return $this->text(); - case 'xmltext': - return $this->xmltext(); - default: - return array_key_exists($name, $this->attr); - } - } - function __set($name, $value) - { - global $debug_object; - if (is_object($debug_object)) { - $debug_object->debug_log_entry(1); - } - switch ($name) { - case 'outertext': - return $this->_[HDOM_INFO_OUTER] = $value; - case 'innertext': - if (isset($this->_[HDOM_INFO_TEXT])) return $this->_[HDOM_INFO_TEXT] = $value; - return $this->_[HDOM_INFO_INNER] = $value; - } - if (!isset($this->attr[$name])) { - $this->_[HDOM_INFO_SPACE][] = array( - ' ', - '', - '' - ); - $this->_[HDOM_INFO_QUOTE][] = HDOM_QUOTE_DOUBLE; - } - $this->attr[$name] = $value; - } - function __isset($name) - { - switch ($name) { - case 'outertext': - return true; - case 'innertext': - return true; - case 'plaintext': - return true; - } - - return (array_key_exists($name, $this->attr)) ? true : isset($this->attr[$name]); - } - function __unset($name) - { - if (isset($this->attr[$name])) unset($this->attr[$name]); - } - - function convert_text($text) - { - global $debug_object; - if (is_object($debug_object)) { - $debug_object->debug_log_entry(1); - } - $converted_text = $text; - $sourceCharset = ""; - $targetCharset = ""; - if ($this->dom) { - $sourceCharset = strtoupper($this->dom->_charset); - $targetCharset = strtoupper($this->dom->_target_charset); - } - if (is_object($debug_object)) { - $debug_object->debug_log(3, "source charset: " . $sourceCharset . " target charaset: " . $targetCharset); - } - if (!empty($sourceCharset) && !empty($targetCharset) && (strcasecmp($sourceCharset, $targetCharset) != 0)) { - if ((strcasecmp($targetCharset, 'UTF-8') == 0) && ($this->is_utf8($text))) { - $converted_text = $text; - } - else { - $converted_text = iconv($sourceCharset, $targetCharset, $text); - } - } - - if ($targetCharset == 'UTF-8') { - if (substr($converted_text, 0, 3) == "\xef\xbb\xbf") { - $converted_text = substr($converted_text, 3); - } - if (substr($converted_text, -3) == "\xef\xbb\xbf") { - $converted_text = substr($converted_text, 0, -3); - } - } - return $converted_text; - } - - static function is_utf8($str) - { - $c = 0; - $b = 0; - $bits = 0; - $len = strlen($str); - for ($i = 0; $i < $len; $i++) { - $c = ord($str[$i]); - if ($c > 128) { - if (($c >= 254)) return false; - elseif ($c >= 252) $bits = 6; - elseif ($c >= 248) $bits = 5; - elseif ($c >= 240) $bits = 4; - elseif ($c >= 224) $bits = 3; - elseif ($c >= 192) $bits = 2; - else return false; - if (($i + $bits) > $len) return false; - while ($bits > 1) { - $i++; - $b = ord($str[$i]); - if ($b < 128 || $b > 191) return false; - $bits--; - } - } - } - return true; - } - - function get_display_size() - { - global $debug_object; - $width = - 1; - $height = - 1; - if ($this->tag !== 'img') { - return false; - } - - if (isset($this->attr['width'])) { - $width = $this->attr['width']; - } - if (isset($this->attr['height'])) { - $height = $this->attr['height']; - } - - if (isset($this->attr['style'])) { - - $attributes = array(); - preg_match_all("/([\w\-]+)\s*:\s*([^;]+)\s*;?/", $this->attr['style'], $matches, PREG_SET_ORDER); - foreach($matches as $match) { - $attributes[$match[1]] = $match[2]; - } - - if (isset($attributes['width']) && $width == - 1) { - - if (strtolower(substr($attributes['width'], -2)) == 'px') { - $proposed_width = substr($attributes['width'], 0, -2); - if (filter_var($proposed_width, FILTER_VALIDATE_INT)) { - $width = $proposed_width; - } - } - } - - if (isset($attributes['height']) && $height == - 1) { - if (strtolower(substr($attributes['height'], -2)) == 'px') { - $proposed_height = substr($attributes['height'], 0, -2); - if (filter_var($proposed_height, FILTER_VALIDATE_INT)) { - $height = $proposed_height; - } - } - } - } - - $result = array( - 'height' => $height, - 'width' => $width - ); - return $result; - } - - function getAllAttributes() - { - return $this->attr; - } - function getAttribute($name) - { - return $this->__get($name); - } - function setAttribute($name, $value) - { - $this->__set($name, $value); - } - function hasAttribute($name) - { - return $this->__isset($name); - } - function removeAttribute($name) - { - $this->__set($name, null); - } - function getElementById($id) - { - return $this->find("#$id", 0); - } - function getElementsById($id, $idx = null) - { - return $this->find("#$id", $idx); - } - function getElementByTagName($name) - { - return $this->find($name, 0); - } - function getElementsByTagName($name, $idx = null) - { - return $this->find($name, $idx); - } - function parentNode() - { - return $this->parent(); - } - function childNodes($idx = - 1) - { - return $this->children($idx); - } - function firstChild() - { - return $this->first_child(); - } - function lastChild() - { - return $this->last_child(); - } - function nextSibling() - { - return $this->next_sibling(); - } - function previousSibling() - { - return $this->prev_sibling(); - } - function hasChildNodes() - { - return $this->has_child(); - } - function nodeName() - { - return $this->tag; - } - function appendChild($node) - { - $node->parent($this); - return $node; - } -} - -class HtmlDOM -{ - public $root = null; - public $nodes = array(); - public $callback = null; - public $lowercase = false; - - public $original_size; - - public $size; - - protected $pos; - protected $doc; - protected $char; - protected $cursor; - protected $parent; - protected $noise = array(); - protected $token_blank = " \t\r\n"; - protected $token_equal = ' =/>'; - protected $token_slash = " />\r\n\t"; - protected $token_attr = ' >'; - public $_charset = ''; - - public $_target_charset = ''; - - protected $default_br_text = ""; - public $default_span_text = ""; - - protected $self_closing_tags = array( - 'img' => 1, - 'br' => 1, - 'input' => 1, - 'meta' => 1, - 'link' => 1, - 'hr' => 1, - 'base' => 1, - 'embed' => 1, - 'spacer' => 1 - ); - protected $block_tags = array( - 'root' => 1, - 'body' => 1, - 'form' => 1, - 'div' => 1, - 'span' => 1, - 'table' => 1 - ); - - protected $optional_closing_tags = array( - 'tr' => array( - 'tr' => 1, - 'td' => 1, - 'th' => 1 - ) , - 'th' => array( - 'th' => 1 - ) , - 'td' => array( - 'td' => 1 - ) , - 'li' => array( - 'li' => 1 - ) , - 'dt' => array( - 'dt' => 1, - 'dd' => 1 - ) , - 'dd' => array( - 'dd' => 1, - 'dt' => 1 - ) , - 'dl' => array( - 'dd' => 1, - 'dt' => 1 - ) , - 'p' => array( - 'p' => 1 - ) , - 'nobr' => array( - 'nobr' => 1 - ) , - 'b' => array( - 'b' => 1 - ) , - 'option' => array( - 'option' => 1 - ) , - ); - function __construct($str = null, $lowercase = true, $forceTagsClosed = true, $target_charset = DEFAULT_TARGET_CHARSET, $stripRN = false, $defaultBRText = DEFAULT_BR_TEXT, $defaultSpanText = DEFAULT_SPAN_TEXT) - { - if ($str) { - $this->load($str, $lowercase, $stripRN, $defaultBRText, $defaultSpanText); - } - - if (!$forceTagsClosed) { - $this->optional_closing_array = array(); - } - $this->_target_charset = $target_charset; - } - function __destruct() - { - $this->clear(); - } - - function load($str, $lowercase = true, $stripRN = true, $defaultBRText = DEFAULT_BR_TEXT, $defaultSpanText = DEFAULT_SPAN_TEXT) - { - global $debug_object; - $this->prepare($str, $lowercase, $stripRN, $defaultBRText, $defaultSpanText); - $this->remove_noise("''is", true); - $this->remove_noise("''is"); - $this->remove_noise("'<\s*script[^>]*[^/]>(.*?)<\s*/\s*script\s*>'is"); - $this->remove_noise("'<\s*script\s*>(.*?)<\s*/\s*script\s*>'is"); - $this->remove_noise("'<\s*style[^>]*[^/]>(.*?)<\s*/\s*style\s*>'is"); - $this->remove_noise("'<\s*style\s*>(.*?)<\s*/\s*style\s*>'is"); - $this->remove_noise("'<\s*(?:code)[^>]*>(.*?)<\s*/\s*(?:code)\s*>'is"); - $this->remove_noise("'(<\?)(.*?)(\?>)'s", true); - $this->remove_noise("'(\{\w)(.*?)(\})'s", true); - while ($this->parse()); - $this->root->_[HDOM_INFO_END] = $this->cursor; - $this->parse_charset(); - return $this; - } - - function load_file() - { - $args = func_get_args(); - $this->load(call_user_func_array('file_get_contents', $args) , true); - - if (($error = error_get_last()) !== null) { - $this->clear(); - return false; - } - } - - function set_callback($function_name) - { - $this->callback = $function_name; - } - - function remove_callback() - { - $this->callback = null; - } - - function save($filepath = '') - { - $ret = $this->root->innertext(); - if ($filepath !== '') file_put_contents($filepath, $ret, LOCK_EX); - return $ret; - } - - function find($selector, $idx = null, $lowercase = false) - { - return $this->root->find($selector, $idx, $lowercase); - } - - function clear() - { - foreach($this->nodes as $n) { - $n->clear(); - $n = null; - } - - if (isset($this->children)) foreach($this->children as $n) { - $n->clear(); - $n = null; - } - if (isset($this->parent)) { - $this->parent->clear(); - unset($this->parent); - } - if (isset($this->root)) { - $this->root->clear(); - unset($this->root); - } - unset($this->doc); - unset($this->noise); - } - function dump($show_attr = true) - { - $this->root->dump($show_attr); - } - - protected function prepare($str, $lowercase = true, $stripRN = true, $defaultBRText = DEFAULT_BR_TEXT, $defaultSpanText = DEFAULT_SPAN_TEXT) - { - $this->clear(); - $this->size = strlen($str); - $this->original_size = $this->size; - if ($stripRN) { - $str = str_replace("\r", " ", $str); - $str = str_replace("\n", " ", $str); - $this->size = strlen($str); - } - $this->doc = $str; - $this->pos = 0; - $this->cursor = 1; - $this->noise = array(); - $this->nodes = array(); - $this->lowercase = $lowercase; - $this->default_br_text = $defaultBRText; - $this->default_span_text = $defaultSpanText; - $this->root = new simple_html_dom_node($this); - $this->root->tag = 'root'; - $this->root->_[HDOM_INFO_BEGIN] = - 1; - $this->root->nodetype = HDOM_TYPE_ROOT; - $this->parent = $this->root; - if ($this->size > 0) $this->char = $this->doc[0]; - } - - protected function parse() - { - if (($s = $this->copy_until_char('<')) === '') { - return $this->read_tag(); - } - - $node = new simple_html_dom_node($this); - ++$this->cursor; - $node->_[HDOM_INFO_TEXT] = $s; - $this->link_nodes($node, false); - return true; - } - - protected function parse_charset() - { - global $debug_object; - $charset = null; - if (function_exists('get_last_retrieve_url_contents_content_type')) { - $contentTypeHeader = get_last_retrieve_url_contents_content_type(); - $success = preg_match('/charset=(.+)/', $contentTypeHeader, $matches); - if ($success) { - $charset = $matches[1]; - if (is_object($debug_object)) { - $debug_object->debug_log(2, 'header content-type found charset of: ' . $charset); - } - } - } - if (empty($charset)) { - $el = $this->root->find('meta[http-equiv=Content-Type]', 0, true); - if (!empty($el)) { - $fullvalue = $el->content; - if (is_object($debug_object)) { - $debug_object->debug_log(2, 'meta content-type tag found' . $fullvalue); - } - if (!empty($fullvalue)) { - $success = preg_match('/charset=(.+)/i', $fullvalue, $matches); - if ($success) { - $charset = $matches[1]; - } - else { - if (is_object($debug_object)) { - $debug_object->debug_log(2, 'meta content-type tag couldn\'t be parsed. using iso-8859 default.'); - } - $charset = 'ISO-8859-1'; - } - } - } - } - - if (empty($charset)) { - $charset = false; - if (function_exists('mb_detect_encoding')) { - $charset = mb_detect_encoding($this->root->plaintext . "ascii", $encoding_list = array( - "UTF-8", - "CP1252" - )); - if (is_object($debug_object)) { - $debug_object->debug_log(2, 'mb_detect found: ' . $charset); - } - } - - if ($charset === false) { - if (is_object($debug_object)) { - $debug_object->debug_log(2, 'since mb_detect failed - using default of utf-8'); - } - $charset = 'UTF-8'; - } - } - - if ((strtolower($charset) == strtolower('ISO-8859-1')) || (strtolower($charset) == strtolower('Latin1')) || (strtolower($charset) == strtolower('Latin-1'))) { - if (is_object($debug_object)) { - $debug_object->debug_log(2, 'replacing ' . $charset . ' with CP1252 as its a superset'); - } - $charset = 'CP1252'; - } - if (is_object($debug_object)) { - $debug_object->debug_log(1, 'EXIT - ' . $charset); - } - return $this->_charset = $charset; - } - - protected function read_tag() - { - if ($this->char !== '<') { - $this->root->_[HDOM_INFO_END] = $this->cursor; - return false; - } - $begin_tag_pos = $this->pos; - $this->char = (++$this->pos < $this->size) ? $this->doc[$this->pos] : null; - - if ($this->char === '/') { - $this->char = (++$this->pos < $this->size) ? $this->doc[$this->pos] : null; - - $this->skip($this->token_blank); - $tag = $this->copy_until_char('>'); - - if (($pos = strpos($tag, ' ')) !== false) $tag = substr($tag, 0, $pos); - $parent_lower = strtolower($this->parent->tag); - $tag_lower = strtolower($tag); - if ($parent_lower !== $tag_lower) { - if (isset($this->optional_closing_tags[$parent_lower]) && isset($this->block_tags[$tag_lower])) { - $this->parent->_[HDOM_INFO_END] = 0; - $org_parent = $this->parent; - while (($this->parent->parent) && strtolower($this->parent->tag) !== $tag_lower) $this->parent = $this->parent->parent; - if (strtolower($this->parent->tag) !== $tag_lower) { - $this->parent = $org_parent; - if ($this->parent->parent) $this->parent = $this->parent->parent; - $this->parent->_[HDOM_INFO_END] = $this->cursor; - return $this->as_text_node($tag); - } - } - else if (($this->parent->parent) && isset($this->block_tags[$tag_lower])) { - $this->parent->_[HDOM_INFO_END] = 0; - $org_parent = $this->parent; - while (($this->parent->parent) && strtolower($this->parent->tag) !== $tag_lower) $this->parent = $this->parent->parent; - if (strtolower($this->parent->tag) !== $tag_lower) { - $this->parent = $org_parent; - $this->parent->_[HDOM_INFO_END] = $this->cursor; - return $this->as_text_node($tag); - } - } - else if (($this->parent->parent) && strtolower($this->parent->parent->tag) === $tag_lower) { - $this->parent->_[HDOM_INFO_END] = 0; - $this->parent = $this->parent->parent; - } - else return $this->as_text_node($tag); - } - $this->parent->_[HDOM_INFO_END] = $this->cursor; - if ($this->parent->parent) $this->parent = $this->parent->parent; - $this->char = (++$this->pos < $this->size) ? $this->doc[$this->pos] : null; - return true; - } - $node = new simple_html_dom_node($this); - $node->_[HDOM_INFO_BEGIN] = $this->cursor; - ++$this->cursor; - $tag = $this->copy_until($this->token_slash); - $node->tag_start = $begin_tag_pos; - - if (isset($tag[0]) && $tag[0] === '!') { - $node->_[HDOM_INFO_TEXT] = '<' . $tag . $this->copy_until_char('>'); - if (isset($tag[2]) && $tag[1] === '-' && $tag[2] === '-') { - $node->nodetype = HDOM_TYPE_COMMENT; - $node->tag = 'comment'; - } - else { - $node->nodetype = HDOM_TYPE_UNKNOWN; - $node->tag = 'unknown'; - } - if ($this->char === '>') $node->_[HDOM_INFO_TEXT].= '>'; - $this->link_nodes($node, true); - $this->char = (++$this->pos < $this->size) ? $this->doc[$this->pos] : null; - return true; - } - - if ($pos = strpos($tag, '<') !== false) { - $tag = '<' . substr($tag, 0, -1); - $node->_[HDOM_INFO_TEXT] = $tag; - $this->link_nodes($node, false); - $this->char = $this->doc[--$this->pos]; - return true; - } - if (!preg_match("/^[\w\-:]+$/", $tag)) { - $node->_[HDOM_INFO_TEXT] = '<' . $tag . $this->copy_until('<>'); - if ($this->char === '<') { - $this->link_nodes($node, false); - return true; - } - if ($this->char === '>') $node->_[HDOM_INFO_TEXT].= '>'; - $this->link_nodes($node, false); - $this->char = (++$this->pos < $this->size) ? $this->doc[$this->pos] : null; - return true; - } - - $node->nodetype = HDOM_TYPE_ELEMENT; - $tag_lower = strtolower($tag); - $node->tag = ($this->lowercase) ? $tag_lower : $tag; - - if (isset($this->optional_closing_tags[$tag_lower])) { - while (isset($this->optional_closing_tags[$tag_lower][strtolower($this->parent->tag) ])) { - $this->parent->_[HDOM_INFO_END] = 0; - $this->parent = $this->parent->parent; - } - $node->parent = $this->parent; - } - $guard = 0; - $space = array( - $this->copy_skip($this->token_blank) , - '', - '' - ); - - do { - if ($this->char !== null && $space[0] === '') { - break; - } - $name = $this->copy_until($this->token_equal); - if ($guard === $this->pos) { - $this->char = (++$this->pos < $this->size) ? $this->doc[$this->pos] : null; - continue; - } - $guard = $this->pos; - - if ($this->pos >= $this->size - 1 && $this->char !== '>') { - $node->nodetype = HDOM_TYPE_TEXT; - $node->_[HDOM_INFO_END] = 0; - $node->_[HDOM_INFO_TEXT] = '<' . $tag . $space[0] . $name; - $node->tag = 'text'; - $this->link_nodes($node, false); - return true; - } - - if ($this->doc[$this->pos - 1] == '<') { - $node->nodetype = HDOM_TYPE_TEXT; - $node->tag = 'text'; - $node->attr = array(); - $node->_[HDOM_INFO_END] = 0; - $node->_[HDOM_INFO_TEXT] = substr($this->doc, $begin_tag_pos, $this->pos - $begin_tag_pos - 1); - $this->pos-= 2; - $this->char = (++$this->pos < $this->size) ? $this->doc[$this->pos] : null; - $this->link_nodes($node, false); - return true; - } - if ($name !== '/' && $name !== '') { - $space[1] = $this->copy_skip($this->token_blank); - $name = $this->restore_noise($name); - if ($this->lowercase) $name = strtolower($name); - if ($this->char === '=') { - $this->char = (++$this->pos < $this->size) ? $this->doc[$this->pos] : null; - $this->parse_attr($node, $name, $space); - } - else { - $node->_[HDOM_INFO_QUOTE][] = HDOM_QUOTE_NO; - $node->attr[$name] = true; - if ($this->char != '>') $this->char = $this->doc[--$this->pos]; - } - $node->_[HDOM_INFO_SPACE][] = $space; - $space = array( - $this->copy_skip($this->token_blank) , - '', - '' - ); - } - else break; - } - while ($this->char !== '>' && $this->char !== '/'); - $this->link_nodes($node, true); - $node->_[HDOM_INFO_ENDSPACE] = $space[0]; - - if ($this->copy_until_char_escape('>') === '/') { - $node->_[HDOM_INFO_ENDSPACE].= '/'; - $node->_[HDOM_INFO_END] = 0; - } - else { - if (!isset($this->self_closing_tags[strtolower($node->tag) ])) $this->parent = $node; - } - $this->char = (++$this->pos < $this->size) ? $this->doc[$this->pos] : null; - - if ($node->tag == "br") { - $node->_[HDOM_INFO_INNER] = $this->default_br_text; - } - return true; - } - - protected function parse_attr($node, $name, &$space) - { - if (isset($node->attr[$name])) { - return; - } - $space[2] = $this->copy_skip($this->token_blank); - switch ($this->char) { - case '"': - $node->_[HDOM_INFO_QUOTE][] = HDOM_QUOTE_DOUBLE; - $this->char = (++$this->pos < $this->size) ? $this->doc[$this->pos] : null; - $node->attr[$name] = $this->restore_noise($this->copy_until_char_escape('"')); - $this->char = (++$this->pos < $this->size) ? $this->doc[$this->pos] : null; - break; - - case '\'': - $node->_[HDOM_INFO_QUOTE][] = HDOM_QUOTE_SINGLE; - $this->char = (++$this->pos < $this->size) ? $this->doc[$this->pos] : null; - $node->attr[$name] = $this->restore_noise($this->copy_until_char_escape('\'')); - $this->char = (++$this->pos < $this->size) ? $this->doc[$this->pos] : null; - break; - - default: - $node->_[HDOM_INFO_QUOTE][] = HDOM_QUOTE_NO; - $node->attr[$name] = $this->restore_noise($this->copy_until($this->token_attr)); - } - - $node->attr[$name] = str_replace("\r", "", $node->attr[$name]); - $node->attr[$name] = str_replace("\n", "", $node->attr[$name]); - - if ($name == "class") { - $node->attr[$name] = trim($node->attr[$name]); - } - } - - protected function link_nodes(&$node, $is_child) - { - $node->parent = $this->parent; - $this->parent->nodes[] = $node; - if ($is_child) { - $this->parent->children[] = $node; - } - } - - protected function as_text_node($tag) - { - $node = new simple_html_dom_node($this); - ++$this->cursor; - $node->_[HDOM_INFO_TEXT] = ''; - $this->link_nodes($node, false); - $this->char = (++$this->pos < $this->size) ? $this->doc[$this->pos] : null; - return true; - } - protected function skip($chars) - { - $this->pos+= strspn($this->doc, $chars, $this->pos); - $this->char = ($this->pos < $this->size) ? $this->doc[$this->pos] : null; - } - protected function copy_skip($chars) - { - $pos = $this->pos; - $len = strspn($this->doc, $chars, $pos); - $this->pos+= $len; - $this->char = ($this->pos < $this->size) ? $this->doc[$this->pos] : null; - if ($len === 0) return ''; - return substr($this->doc, $pos, $len); - } - protected function copy_until($chars) - { - $pos = $this->pos; - $len = strcspn($this->doc, $chars, $pos); - $this->pos+= $len; - $this->char = ($this->pos < $this->size) ? $this->doc[$this->pos] : null; - return substr($this->doc, $pos, $len); - } - protected function copy_until_char($char) - { - if ($this->char === null) return ''; - if (($pos = strpos($this->doc, $char, $this->pos)) === false) { - $ret = substr($this->doc, $this->pos, $this->size - $this->pos); - $this->char = null; - $this->pos = $this->size; - return $ret; - } - if ($pos === $this->pos) return ''; - $pos_old = $this->pos; - $this->char = $this->doc[$pos]; - $this->pos = $pos; - return substr($this->doc, $pos_old, $pos - $pos_old); - } - protected function copy_until_char_escape($char) - { - if ($this->char === null) return ''; - $start = $this->pos; - while (1) { - if (($pos = strpos($this->doc, $char, $start)) === false) { - $ret = substr($this->doc, $this->pos, $this->size - $this->pos); - $this->char = null; - $this->pos = $this->size; - return $ret; - } - if ($pos === $this->pos) return ''; - if ($this->doc[$pos - 1] === '\\') { - $start = $pos + 1; - continue; - } - $pos_old = $this->pos; - $this->char = $this->doc[$pos]; - $this->pos = $pos; - return substr($this->doc, $pos_old, $pos - $pos_old); - } - } - - protected function remove_noise($pattern, $remove_tag = false) - { - global $debug_object; - if (is_object($debug_object)) { - $debug_object->debug_log_entry(1); - } - $count = preg_match_all($pattern, $this->doc, $matches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE); - for ($i = $count - 1; $i > - 1; --$i) { - $key = '___noise___' . sprintf('% 5d', count($this->noise) + 1000); - if (is_object($debug_object)) { - $debug_object->debug_log(2, 'key is: ' . $key); - } - $idx = ($remove_tag) ? 0 : 1; - $this->noise[$key] = $matches[$i][$idx][0]; - $this->doc = substr_replace($this->doc, $key, $matches[$i][$idx][1], strlen($matches[$i][$idx][0])); - } - - $this->size = strlen($this->doc); - if ($this->size > 0) { - $this->char = $this->doc[0]; - } - } - - function restore_noise($text) - { - global $debug_object; - if (is_object($debug_object)) { - $debug_object->debug_log_entry(1); - } - while (($pos = strpos($text, '___noise___')) !== false) { - - if (strlen($text) > $pos + 15) { - $key = '___noise___' . $text[$pos + 11] . $text[$pos + 12] . $text[$pos + 13] . $text[$pos + 14] . $text[$pos + 15]; - if (is_object($debug_object)) { - $debug_object->debug_log(2, 'located key of: ' . $key); - } - if (isset($this->noise[$key])) { - $text = substr($text, 0, $pos) . $this->noise[$key] . substr($text, $pos + 16); - } - else { - $text = substr($text, 0, $pos) . 'UNDEFINED NOISE FOR KEY: ' . $key . substr($text, $pos + 16); - } - } - else { - $text = substr($text, 0, $pos) . 'NO NUMERIC NOISE KEY' . substr($text, $pos + 11); - } - } - return $text; - } - - function search_noise($text) - { - global $debug_object; - if (is_object($debug_object)) { - $debug_object->debug_log_entry(1); - } - foreach($this->noise as $noiseElement) { - if (strpos($noiseElement, $text) !== false) { - return $noiseElement; - } - } - } - function __toString() - { - return $this->root->innertext(); - } - function __get($name) - { - switch ($name) { - case 'outertext': - return $this->root->innertext(); - case 'innertext': - return $this->root->innertext(); - case 'plaintext': - return $this->root->text(); - case 'charset': - return $this->_charset; - case 'target_charset': - return $this->_target_charset; - } - } - - function childNodes($idx = - 1) - { - return $this->root->childNodes($idx); - } - function firstChild() - { - return $this->root->first_child(); - } - function lastChild() - { - return $this->root->last_child(); - } - function createElement($name, $value = null) - { - return @wpp_str_get_html("<$name>$value")->first_child(); - } - function createTextNode($value) - { - return @end(wpp_str_get_html($value)->nodes); - } - function getElementById($id) - { - return $this->find("#$id", 0); - } - function getElementsById($id, $idx = null) - { - return $this->find("#$id", $idx); - } - function getElementByTagName($name) - { - return $this->find($name, 0); - } - function getElementsByTagName($name, $idx = - 1) - { - return $this->find($name, $idx); - } - function loadFile() - { - $args = func_get_args(); - $this->load_file($args); - } -} diff --git a/includes/classes/image.php b/includes/classes/image.php deleted file mode 100644 index d6e2927..0000000 --- a/includes/classes/image.php +++ /dev/null @@ -1,233 +0,0 @@ - -*/ - -use WP_Query; - -class Image -{ - - /** - * Get image sizes - * - * @return array - * @since 1.0.0 - */ - public static function sizes() { - - $sizes = []; - $default = get_intermediate_image_sizes(); - - foreach ( $default as $size ) { - - if ( $width = intval( get_option( $size . '_size_w' ) ) ) { - - $sizes[ $size ] = [ - $width, - intval( get_option( $size . '_size_h' ) ), - boolval( get_option( $size . '_crop' ) ) - ]; - - } - - } - - if ( - isset( $GLOBALS[ '_wp_additional_image_sizes' ] ) - && count( $GLOBALS[ '_wp_additional_image_sizes' ] ) - ) { - - foreach ( $GLOBALS[ '_wp_additional_image_sizes' ] as $name => $size ) { - - if ( isset( $size[ 'width' ] ) ) { - $sizes[ $name ] = [ - $size[ 'width' ], - $size[ 'height' ], - $size[ 'crop' ] - ]; - } - - } - - } - - $removed_sizes = Option::get( 'image_sizes_remove', [] ); - - foreach( $removed_sizes as $name ) { - - if ( array_key_exists( $name, $sizes ) ) { - unset( $sizes[ $name ] ); - } - - } - - asort( $sizes ); - - return $sizes; - - } - - - /** - * Get all images with non regenerated thumbs - * - * @param integer $number - * @return array - * @since 1.0.0 - */ - public static function getNonRegenerated( $number = -1 ) { - - $result = new WP_Query( [ - 'post_type' => 'attachment', - 'post_mime_type' => [ 'image/jpeg', 'image/gif', 'image/png' ], - 'post_status' => 'inherit', - 'posts_per_page' => $number, - 'meta_query' => [ - [ - 'key' => 'wpp_thumb_regenerated', - 'compare' => 'NOT EXISTS' - ] - ] - ] ); - - return $result->posts; - - } - - - /** - * Get all images from media library - * - * @return array - * @since 1.0.0 - */ - public static function getAllImages() { - - $result = new WP_Query( [ - 'post_type' => 'attachment', - 'post_mime_type' => [ 'image/jpeg', 'image/gif', 'image/png' ], - 'post_status' => 'inherit', - 'posts_per_page' => -1, - ] ); - - return $result->posts; - - } - - - /** - * Get all defined image sizes - * - * @return array - * @since 1.0.0 - */ - public static function getAllDefinedSizes() { - return array_merge( static::sizes(), Option::get( 'image_sizes', [] ) ); - } - - - /** - * Return defined image sizes in json format - * - * @param boolean $encode - * @return array|json - * @since 1.0.0 - */ - public static function getAllDefinedSizesJson( $encode = true ) { - - $sizes = static::getAllDefinedSizes(); - - $response = []; - - foreach ( $sizes as $name => $size ) { - $response[] = [ - 'name' => $name, - 'width' => $size[ 0 ], - 'height' => $size[ 1 ], - 'crop' => $size[ 2 ] ? 1 : 0 - ]; - } - - if ( $encode ) { - return json_encode( $response ); - } - - return $response; - - } - - /** - * Get all variations of an image - * - * @param string $src - * @return array - */ - public static function getAllVariations( $src ) { - - // check if image exists - if( ! file_exists( $file = File::path( $src ) ) ) { - return []; - } - - $images = []; - $sizes = static::getAllDefinedSizes(); - $path = pathinfo( $file ); - $existing = glob( $path[ 'dirname' ] . DIRECTORY_SEPARATOR . $path[ 'filename' ] . '*' ); - - foreach( $sizes as $name => $data ) { - - // Woocommerce have some strange numbers for height, hm... - if ( $data[ 1 ] > ( $data[ 0 ] * 3 ) ) { - continue; - } - - $filename = sprintf( - '%s-%sx%s.%s', - $path[ 'dirname' ] . DIRECTORY_SEPARATOR . $path[ 'filename' ], - $data[ 0 ], $data[ 1 ], - $path[ 'extension' ] - ); - - // Get exact image size - if ( file_exists( $filename ) ) { - - $images[ $data[ 0 ] ] = Url::path( $filename ); - - } else { - - $found = false; - - // find image by width attribute - foreach ( $existing as $existing_image ) { - - $pattern = $path[ 'filename' ] . '-' . $data[ 0 ] . '(.*)\.' . $path[ 'extension' ]; - - if ( preg_match( "/$pattern/", $existing_image ) ) { - $images[ $data[ 0 ] ] = Url::path( $existing_image ); - $found = true; - break; - } - - } - - // Image not found - if ( ! $found ) { - // Fallback - $images[ $data[ 0 ] ] = Url::path( $src ); - - } - - } - - } - - ksort( $images ); - - return $images; - - } - -} \ No newline at end of file diff --git a/includes/classes/index.php b/includes/classes/index.php deleted file mode 100644 index e71af0e..0000000 --- a/includes/classes/index.php +++ /dev/null @@ -1 +0,0 @@ - -* @package WPP -* -* @see Filters http://php.net/manual/en/filter.filters.php -*/ - -class Input -{ - /** - * Get filtered input value - * - * @param string $name - * @param array $args - * @return mixed - * @since 1.0.0 - */ - public static function __callStatic( $name, $args ) { - return call_user_func_array( [ 'WPP\Input', 'filter' ], [ $name, $args ] ); - } - - /** - * Filter input value - * - * @param string $name - * @param array $args - * @return mixed - * @since 1.0.0 - */ - private static function filter( $name, $args ) { - - $params = array_pad( $args, 3, null ); - - if ( $name === 'request' ) { - - if ( isset( $_REQUEST[ $params[ 0 ] ] ) ) { - return filter_var( $_REQUEST[ $params[ 0 ] ], Input::getFilter( $params[ 1 ] ), $params[ 2 ] ); - } - - return $params[ 2 ]; - - } - - return filter_input( Input::getMethod( $name ), $params[ 0 ], Input::getFilter( $params[ 1 ] ), $params[ 2 ] ); - - } - - /** - * Get input method - * - * @param string $name - * @return int - * @since 1.0.0 - */ - private static function getMethod( $name ) { - - switch ( $name ) { - case 'get': - return INPUT_GET; - case 'post': - return INPUT_POST; - case 'cookie': - return INPUT_COOKIE; - case 'session': - return INPUT_SESSION; - case 'server': - return INPUT_SERVER; - case 'env': - return INPUT_ENV; - default: - return 'request'; - - - } - } - - - /** - * Get filter - * - * @see http://php.net/manual/en/function.filter-list.php - * - * @param string $name - * @return void - * @since 1.0.0 - */ - private static function getFilter( $name ) { - - if ( in_array( $name, filter_list() ) ) { - return filter_id( $name ); - } - - return FILTER_SANITIZE_STRING; - } - -} \ No newline at end of file diff --git a/includes/classes/instance.php b/includes/classes/instance.php deleted file mode 100644 index 65e910c..0000000 --- a/includes/classes/instance.php +++ /dev/null @@ -1,36 +0,0 @@ - -* @package WPP -*/ - -trait Instance -{ - - /** - * Class instance - * - * @var class - * @since 1.1.0 - */ - private static $instance; - - /** - * Get class instance - * - * @return class - * @since 1.1.0 - */ - public static function instance() { - - if ( is_null( static::$instance ) ) { - static::$instance = new static(); - } - - return static::$instance; - - } - -} \ No newline at end of file diff --git a/includes/classes/minify.php b/includes/classes/minify.php deleted file mode 100644 index 0b9ab8b..0000000 --- a/includes/classes/minify.php +++ /dev/null @@ -1,119 +0,0 @@ - -* @package WPP -*/ - -use MatthiasMullie\Minify as Minifier; - -class Minify { - - /** - * Minify code - * - * @since 1.0.0 - * - * @param string $code - * @param string $context - * - * @return string - */ - public static function code( $code, $context = null ) { - - $minifier = is_null( $context ) - ? new Minifier\JS( $code ) - : new Minifier\CSS( Minify::replacePaths( $code, $context ) ); - - return $minifier->minify(); - - } - - /** - * Get resource from url and minify the code - * Create a new file with minified code. - * Returns the name of the new file. - * - * @since 1.0.0 - * @param string $url - * - * @return string - */ - public static function resource( $url ) { - - if ( is_file( $file = File::path( $url ) ) ) { - - $extension = pathinfo( $file, PATHINFO_EXTENSION ); - $filename = md5( $file ) . '.' . $extension; - - if ( ! file_exists( $cached = WPP_CACHE_DIR . $filename ) ) { - - // Check if extension is php - if ( $extension == 'php' ) { - $code = wp_remote_retrieve_body( wp_remote_get( $file ) ); - } else { - $code = File::get( $file ); - } - - $minified = $extension == 'css' - ? Minify::code( $code, $url ) - : Minify::code( $code ); - - File::save( $cached, $minified ); - - //touch( $cached, time() - 3600 ); - - } - - return WPP_CACHE_URL . $filename; - } - - return $url; - - } - - - /** - * Replace relative paths with absolute paths - * - * @since 1.0.0 - * - * @param string $code - * @param string $context - * - * @return string - */ - public static function replacePaths( $code, $context ) { - - // Process images - preg_match_all( "/url\((\"|\')?(.*?)(\"|\')?\)/i", $code, $matches, PREG_PATTERN_ORDER ); - - foreach( $matches[2] as $i => $match) { - - $url = str_replace( basename( $context ), '', $context ) . $match; - $url = Url::path( File::path( $url ) ); - - if ( ! empty( $url ) ) { - $code = str_replace( $match, $url, $code ); - } - } - - // Process imports - preg_match_all("/@import[ ]*['\"]*(?:url\()*['\"]*([^;'\"\)]*)['\"\)]*/ui", $code, $matches ); - - foreach( $matches[1] as $i => $match) { - - $url = str_replace( basename( $context ), '', $context ) . $match; - $url = Url::path( File::path( $url ) ); - - if ( ! empty( $url ) ) { - $code = str_replace( $match, $url, $code ); - } - } - - return $code; - - } - -} \ No newline at end of file diff --git a/includes/classes/option.php b/includes/classes/option.php deleted file mode 100644 index 4b65eb4..0000000 --- a/includes/classes/option.php +++ /dev/null @@ -1,142 +0,0 @@ - -* @package WPP -*/ - -class Option -{ - - /** - * Add option - * - * @see https://developer.wordpress.org/reference/functions/add_option/ - * - * @since 1.0.0 - * - * @param string $option - * @param mixed $value - * @param string $deprecated - * @param mixed $autoload - * - * @return boolean - */ - public static function add( $option, $value = '', $deprecated = '', $autoload = 'yes' ) { - return add_option( wpp_get_prefix( $option ), $value, $deprecated, $autoload ); - } - - - /** - * Get option - * - * @see https://developer.wordpress.org/reference/functions/get_option/ - * - * @since 1.0.0 - * - * @param string $option - * @param mixed $default - * - * @return mixed - */ - public static function get( $option, $default = false ) { - - $value = get_option( wpp_get_prefix( $option ), $default ); - - return ( ! $value ) ? $default : $value; - - } - - - /** - * Get option boolean value - * - * @since 1.0.0 - * @param string $option - * @param mixed $default - * - * @return boolean - */ - public static function boolval( $option, $default = false ) { - return boolval( Option::get( $option, $default ) ); - } - - /** - * Update option - * - * @see https://developer.wordpress.org/reference/functions/update_option/ - * - * @since 1.0.0 - * - * @param string $option - * @param mixed $value - * @param mixed $autoload - * - * @return boolean - */ - public static function update( $option, $value, $autoload = true ) { - return update_option( wpp_get_prefix( $option ), $value, $autoload ); - } - - - /** - * Remove option - * - * @see https://developer.wordpress.org/reference/functions/delete_option/ - * - * @since 1.0.0 - * @param string $option - * - * @return boolean - */ - public static function remove( $option ) { - return delete_option( wpp_get_prefix( $option ) ); - } - - - /** - * Remove all options - * - * @since 1.1.6 - * @return void - */ - public static function removeAll() { - - $GLOBALS['wpdb']->query( - sprintf( - 'DELETE FROM %s WHERE option_name LIKE "%s%%"', - $GLOBALS['wpdb']->options, - wpp_get_prefix() - ) - ); - - } - - /** - * Get all options - * - * @since 1.1.6 - * @return array - */ - public static function getAll() { - - $options = []; - - $result = $GLOBALS['wpdb']->get_results( - sprintf( - 'SELECT option_name, option_value FROM %s WHERE option_name LIKE "%s%%"', - $GLOBALS['wpdb']->options, - wpp_get_prefix() - ) - ); - - foreach( $result as $option ) - $options[ $option->option_name ] = maybe_unserialize( $option->option_value ); - - return $options; - - } - - -} \ No newline at end of file diff --git a/includes/classes/parser.php b/includes/classes/parser.php deleted file mode 100644 index 2c7e0e6..0000000 --- a/includes/classes/parser.php +++ /dev/null @@ -1,1128 +0,0 @@ - -* @package WPP -*/ - -use voku\helper\HtmlMin; - -class Parser -{ - private static $instance; - private $html; - private $time; - private static $amp = null; - - private function __construct( $template ) { - - if ( ! empty( $template ) ) { - - $this->time = microtime( true ); - - // load template - $this->html = new HtmlDOM( $template, false, false ); - - if ( $this->html ) { - - $this->htmltag = $this->html->find( 'html', 0 ); - $this->body = $this->html->find( 'body', 0 ); - $this->head = $this->html->find( 'head', 0 ); - - // Do not parse amp templates - if ( ! $this->is_amp() ) - $this->parseTemplate(); - - /** - * Parsed template filter - * @since 1.1.8.3 - */ - $template = apply_filters( 'wpp_template', $this->html, $this->is_amp(), $this->time ); - - } - - } - - return $template; - - } - - /** - * Initialize - * - * @param string $template - * @return Parser - */ - public static function init( $template ) { - - if ( is_null( static::$instance ) ) { - static::$instance = new static( $template ); - } - - return static::$instance; - } - - /** - * Parse template - * - * @return string - * @since 1.0.9 - */ - private function parseTemplate() { - - // Check for head and body tag - if ( ! $this->head || ! $this->body ) { - - // // Check if is XML file - // $headers = headers_list(); - - // foreach( $headers as $header ) { - - // if ( strstr( $header, 'text/xml' ) ) { - // return $this->html; - // } - - // } - - // $this->html .= sprintf( - // '', - // WPP_PLUGIN_NAME, - // __( 'error', 'wpp' ), - // __( 'both head and body tag should be present in template file', 'wpp' ) - // ); - - // wpp_log( __( 'both head and body tag should be present in template file', 'wpp' ) ); - - return $this->html; - - } - - // CSS optimization - - /** - * Exclude URL from CSS optimization filter - * @since 1.0.3 - */ - $css_url_exclude = apply_filters( 'wpp_css_url_exclude', Option::get( 'css_url_exclude', [] ) ); - - if ( - ! wpp_is_optimization_disabled_for( 'css' ) - && ! wpp_is_url_excluded( Url::current(), $css_url_exclude ) - ) { - $this->parseCSS(); - } - - // JS optimization - - /** - * Exclude URL from JavaScript optimization filter - * @since 1.0.3 - */ - $js_url_exclude = apply_filters( 'wpp_js_url_exclude', Option::get( 'js_url_exclude', [] ) ); - - if ( - ! wpp_is_optimization_disabled_for( 'js' ) - && ! wpp_is_url_excluded( Url::current(), $js_url_exclude ) - ) { - $this->parseJS(); - } - - // Images optimization - - /** - * Exclude URL from Images optimization filter - * @since 1.0.4 - */ - $image_url_exclude = apply_filters( 'wpp_image_url_exclude', Option::get( 'image_url_exclude', [] ) ); - - if ( ! wpp_is_url_excluded( Url::current(), $image_url_exclude ) ) - $this->parseImages(); - - /** - * Exclude URL from iframe lazyload filter - * @since 1.1.6 - */ - $video_url_exclude = apply_filters( 'wpp_video_url_exclude', Option::get( 'video_url_exclude', [] ) ); - - if ( - ! wpp_is_url_excluded( Url::current(), $video_url_exclude ) - && Option::boolval( 'videos_lazy' ) - ) { - $this->parseIframes(); - } - - // Rebuild the template - $this->buildTemplate(); - - } - - - /** - * Parse CSS - * - * @return void - */ - private function parseCSS() { - - // Add skip attribute to links in noscript - foreach( $this->html->find( 'noscript link[rel=stylesheet]' ) as $link ) { - $link->{'data-skip'} = 'true'; - } - // Minify inline CSS? - if ( Option::boolval( 'css_minify_inline' ) ) { - - foreach ( $this->html->find( 'style' ) as $style ) { - $style->innertext = Minify::code( $style->innertext, Url::current() ); - } - - } - - - // Parse link stylesheets - foreach ( $this->html->find( 'link[rel=stylesheet]' ) as $link ) { - - if ( - $link->{'data-skip'} == 'true' - || strstr( $link->href, WPP_ASSET_URL ) - || strstr( $link->href, WPP_ADDONS_URL ) - || ( is_user_logged_in() && strstr( $link->href, 'wp-includes' ) ) - ) { - continue; - } - - $href = Url::getClean( $link->href ); - - if ( File::isLocal( $href ) ) { - - if ( $link->media !== 'print' ) - Collection::add( 'critical', 'css', $href ); - - // Is this a plugin file ? - if ( strstr( $link->href, plugins_url() ) ) { - Collection::add( 'plugin', 'css', $href ); - } else { - Collection::add( 'theme', 'css', $href ); - } - - // Check if resource is disabled - if ( wpp_is_resource_disabled( 'css', $href ) ) { - $link->outertext = ''; - continue; - } - - } else { - - if ( $link->href && ! strstr( $link->href, site_url() ) ) { - - Collection::add( 'external', 'css', $link->href ); - - // Check if external resource is disabled - if ( wpp_is_resource_disabled( 'css', wpp_get_file_clean_name( $link->href ) ) ) { - - $link->outertext = ''; - continue; - - } else { - - Collection::add( 'prefetch', 'css', wpp_get_file_hostname( $link->href ), true ); - - } - - - // Combine Google fonts - if ( Option::boolval( 'css_combine_fonts' ) ) { - - if ( strstr( $link->href, 'fonts.googleapis.com' ) ) { - - list( , $url ) = explode( 'family=', $link->href ); - - Collection::add( 'combine', 'google_fonts', html_entity_decode( urldecode( $url ) ), true ); - - $link->outertext = ''; - - continue; - - } - - } - - // Google fonts display - if ( Option::get( 'css_font_display' ) !== 'none' ) { - - if ( strstr( $link->href, 'fonts.googleapis.com' ) ) { - - $url = parse_url( htmlspecialchars_decode( $link->href ) ); - - parse_str( $url['query'], $parameters ); - - $parameters['display'] = Option::get( 'css_font_display' ); - - $link->href = '//fonts.googleapis.com/css?'. http_build_query( $parameters ); - - } - - } - - } - - } - - - // Inline CSS - if ( wpp_in_array( array_keys( Option::get( 'css_inline', [] ) ), $href ) ) { - - if ( File::isLocal( $href ) ) { - - $code = File::get( File::path( $href ) ); - - // Minify file - if ( wpp_in_array( array_keys( Option::get( 'css_minify', [] ) ), $href ) ) { - $code = Minify::code( $code, $href ); - } else { - $code = Minify::replacePaths( $code, $href ); - } - - $link->outertext = ''; - - continue; - - } - - } - - - // Combine CSS - if ( Option::boolval( 'css_combine' ) ) { - - if ( File::isLocal( $href ) ) { - - if ( wpp_in_array( array_keys( Option::get( 'css_combine' ) ), $href ) ) { - - if ( Option::boolval( 'css_defer' ) ) { - - // Exclude file from async loading will exclude also exclude file from combine - if ( ! wpp_in_array( Option::get( 'css_file_exclude', [] ), $href ) ) { - - Collection::add( 'combine', 'css', [ - 'href' => $href, - 'media' => !$link->media ? 'all' : $link->media - ] ); - - $link->outertext = ''; - - continue; - - } - - } else { - - Collection::add( 'combine', 'css', [ - 'href' => $href, - 'media' => !$link->media ? 'all' : $link->media - ] ); - - $link->outertext = ''; - - continue; - - } - - } - - } - - } - - // Minify CSS - if ( - Option::boolval( 'css_minify' ) - && File::isLocal( $href ) - ) { - if ( wpp_in_array( array_keys( Option::get( 'css_minify' ) ), $href ) ) { - $link->href = Minify::resource( $href ); - } - } - - // Defer CSS - if ( - Option::boolval( 'css_defer', false ) - && ! wpp_in_array( Option::get( 'css_file_exclude', [] ), $href ) - ) { - - Collection::add( 'defer', 'css', $link->outertext ); - - $link->rel = 'preload'; - $link->as = 'style'; - $link->onload = "this.rel='stylesheet'"; - - } - - // CDN - if ( - Option::boolval( 'cdn' ) - && File::isLocal( $href ) - && ! wpp_in_array( Option::get( 'cdn_exclude', [] ), $href ) - ) { - $link->href = str_replace( site_url(), Option::get( 'cdn_hostname'), $link->href ); - } - - } - - } - - /** - * Parse JavaScript - * - * @return void - */ - private function parseJS() { - - // Parse scripts - foreach ( $this->html->find( 'script' ) as $script ) { - - if ( - $script->type == 'application/ld+json' - || $script->{'data-skip'} == 'true' - || strstr( $script->src, WPP_ASSET_URL ) - || strstr( $script->src, WPP_ADDONS_URL ) - || ( is_user_logged_in() && strstr( $script->src, 'wp-includes' ) ) - ) { - continue; - } - - - $src = Url::getClean( $script->src ); - - if ( File::isLocal( $src ) ) { - - // Is this a plugin file ? - if ( strstr( $script->src, plugins_url() ) ) { - Collection::add( 'plugin', 'js', $src ); - } else { - Collection::add( 'theme', 'js', $src ); - } - - // Check if resource is disabled - if ( wpp_is_resource_disabled( 'js', $src ) ) { - $script->outertext = ''; - continue; - } - - } else { - - if ( $script->src && ! strstr( $script->src, site_url() ) ) { - - Collection::add( 'external', 'js', $script->src ); - - // Check if external resource is disabled - if ( wpp_is_resource_disabled( 'js', wpp_get_file_clean_name( $script->src ) ) ) { - - $script->outertext = ''; - continue; - - } else { - - Collection::add( 'prefetch', 'js', wpp_get_file_hostname( $script->src ), true ); - - } - - } - - } - - - // Inline JS - if ( wpp_in_array( array_keys( Option::get( 'js_inline', [] ) ), $src ) ) { - - if ( File::isLocal( $src ) ) { - - $code = File::get( File::path( $src ) ); - - // Minify file - if ( wpp_in_array( array_keys( Option::get( 'js_minify', [] ) ), $src ) ) { - $code = Minify::code( $code ); - } - - // Defer ? - $type = Option::boolval( 'js_defer' ) ? 'wppscript' : 'javascript'; - - $script->outertext = ''; - - continue; - - } - - } - - // Combine JS - if ( wpp_in_array( array_keys( Option::get( 'js_combine', [] ) ), $src ) ) { - - if ( File::isLocal( $src ) ) { - - if ( Option::boolval( 'js_defer' ) ) { - - // Exclude file from async loading will exclude also exclude file from combine - if ( ! wpp_in_array( Option::get( 'js_file_exclude', [] ), $src ) ) { - - Collection::add( 'combine', 'js', [ - 'file' => $src - ] ); - - $script->outertext = ''; - } - - } else { - - Collection::add( 'combine', 'js', [ - 'file' => $src - ] ); - - $script->outertext = ''; - - } - - - } elseif ( ! $script->src) { - - Collection::add( 'combine', 'js', [ - 'code' => $script->innertext - ] ); - - $script->outertext = ''; - - } - - continue; - - } - - - // Minify JS - if ( File::isLocal( $src ) ) { - - if ( wpp_in_array( array_keys( Option::get( 'js_minify', [] ) ), $src ) ) { - $script->src = Minify::resource( $src ); - } - - } elseif ( ! $script->src && Option::get( 'js_minify_inline', false ) ) { - - $script->innertext = Minify::code( $script->innertext ); - - } - - // CDN - if ( - Option::boolval( 'cdn' ) - && File::isLocal( $src ) - && ! wpp_in_array( Option::get( 'cdn_exclude', [] ), $src ) - ) { - - if ( $script->src ) { - $script->src = str_replace( site_url(), Option::get( 'cdn_hostname'), $script->src ); - } - - } - - // Defer JS - if ( - Option::boolval( 'js_defer' ) - && ! wpp_in_array( Option::get( 'js_file_exclude', [] ), $src ) - ) { - // set type - $script->type = 'text/wppscript'; - // change src - if ($script->src) { - $script->{'data-src'} = $script->src; - $script->removeAttribute( 'src' ); - } - - } - } - - } - - /** - * Parse images - * - * @return void - */ - private function parseImages() { - - $upload = wp_upload_dir(); - - // Check if images in specific containers are excluded - if ( ! empty( $containers = Option::get( 'images_containers_ids', [] ) ) ) { - - $containers = array_map( 'trim', $containers ); - - foreach( $containers as $container ) { - - if ( empty( $container ) ) continue; - - foreach( $this->html->find( $container . ' img' ) as $img ) { - $img->{'data-skip'} = 'true'; - } - - } - } - - $images = []; - $excluded = Option::get( 'images_exclude', [] ); - - // Get images - foreach( $this->html->find( 'img' ) as $img ) { - - // skip image if it has skip attribute or src is empty and its excluded from admin - if ( - $img->{'data-skip'} === 'true' - || ! $img->src - || wpp_in_array( $excluded, $img->src ) - ) { - continue; - } - - $images[] = $img; - - } - - // load responsive images - if ( - Option::boolval( 'images_resp' ) - && ! empty( $images ) - ) { - - foreach( $images as $img ) { - - // only images from media library - if ( strstr( $img->src, $upload[ 'baseurl' ] ) ) { - - // check image width - if ( ! file_exists( $image = File::path( $img->src ) ) ) { - wpp_log( sprintf( 'Image %s is found on site, but looks like it does not exists', $img->src ) ); - continue; - } - - $size = @getimagesize( $image ); - - // skip images smaller than 640px width - if ( isset( $size[ 0 ] ) && $size[ 0 ] < 640 ) { - continue; - } - - $variations = Image::getAllVariations( $img->src ); - - if ( ! empty( $variations ) ) { - - // Remove attributes - $img->removeAttribute( 'sizes' ); - $img->removeAttribute( 'width' ); - $img->removeAttribute( 'height' ); - $img->srcset = ''; - - foreach ( $variations as $width => $image ) { - $img->srcset .= sprintf( '%s %sw,', $image, $width ); - } - - $img->srcset = rtrim( $img->srcset, ',' ); - - } - - } - - } - - } - - // lazy load images - if ( - Option::boolval( 'images_lazy' ) - && ! empty( $images ) - ) { - - // If lazy load is disabled for mobile devices - if ( wp_is_mobile() && Option::boolval( 'disable_lazy_mobile' ) ) { - return false; - } - - foreach( $images as $img ) { - - $img->loading = 'lazy'; - $img->{'data-srcset'} = $img->srcset; - $img->{'data-src'} = $img->src; - - $img->removeAttribute( 'srcset' ); - - $img->src = WPP_ASSET_URL . 'placeholder.png'; - - } - - } - - // CDN - if ( - Option::boolval( 'cdn' ) - && Option::boolval( 'cdn_hostname') - && ! empty( $images ) - ) { - - foreach( $images as $img ) { - - if ( strstr( $img->src, $upload[ 'baseurl' ] ) || strstr( $img->src, 'data:image' ) ) { - - if ( wpp_in_array( Option::get( 'cdn_exclude', [] ), $img->src ) ) { - continue; - } - - $img->src = str_replace( site_url(), Option::get( 'cdn_hostname'), $img->src ); - - // Responsive - if ( Option::boolval( 'images_resp' ) ) { - $img->srcset = str_replace( site_url(), Option::get( 'cdn_hostname'), $img->srcset ); - } - - // Lazy - if ( Option::boolval( 'images_lazy' ) ) { - $img->{'data-src'} = str_replace( site_url(), Option::get( 'cdn_hostname'), $img->{'data-src'} ); - $img->{'data-srcset'} = str_replace( site_url(), Option::get( 'cdn_hostname'), $img->{'data-srcset'} ); - } - - } - - } - - } - - - } - - - /** - * Parse iframes - * - * @return void - */ - private function parseIframes() { - - // lazy load iframes - foreach( $this->html->find( 'iframe' ) as $iframe ) { - - // skip iframe if it has skip attribute or src is empty - if ( - $iframe->{'data-skip'} === 'true' - || ! $iframe->src - ) { - continue; - } - - $iframe->loading = 'lazy'; - $iframe->{'data-src'} = $iframe->src; - $iframe->src = 'about:blank'; - - } - - } - - /** - * Parse HTML - * - * @return string - */ - private function parseHTML() { - - if ( Option::boolval( 'html_optimization' ) ) { - - $html = new HtmlMin(); - - $html->doSortCssClassNames(false); - $html->doOptimizeAttributes(false); - $html->doSortHtmlAttributes(false); - $html->doRemoveOmittedHtmlTags(false); - $html->doRemoveDeprecatedAnchorName(false); - $html->doRemoveValueFromEmptyInput(false); - $html->doRemoveEmptyAttributes(false); - - if ( ! Option::boolval( 'html_minify_normal' ) ) { - $html->doSumUpWhitespace( false ); - } else { - $html->doRemoveWhitespaceAroundTags(); - } - - if ( Option::boolval( 'html_minify_aggressive' ) ) { - $html->doRemoveSpacesBetweenTags(); - } - - if ( ! Option::boolval( 'html_remove_comments' ) ) { - $html->doRemoveComments( false ); - } - - if ( ! Option::boolval( 'html_remove_link_type' ) ) { - $html->doRemoveDeprecatedTypeFromStylesheetLink( false ); - } - - if ( ! Option::boolval( 'html_remove_script_type' ) ) { - $html->doRemoveDeprecatedTypeFromScriptTag( false ); - } - - if ( ! Option::boolval( 'html_remove_qoutes' ) ) { - $html->doRemoveOmittedQuotes( false ); - } - - return $html->minify( $this->html->innertext ); - - } - - - return $this->html->innertext; - - } - - /** - * Rebuild the template - * - * @return void - */ - private function buildTemplate() { - - // Build lists - foreach( [ 'theme', 'plugin', 'external', 'prefetch', 'critical' ] as $list ) { - - foreach( Collection::get( $list ) as $type => $items ) { - - $option = sprintf( '%s_%s_list', $list, $type ); - - $data = Option::get( $option, [] ); - - foreach( $items as $item ) { - - if ( ! in_array( $item, $data ) ) { - $data[] = $item; - } - - } - - Option::update( $option, $data ); - - } - - } - - - if ( - Option::boolval( 'css_defer' ) - && boolval( trim( Option::get( 'css_custom_path_def' ) ) ) - ) { - // custom css path - $this->head->innertext - .= '' - . PHP_EOL; - - } - - - // Combined css files - if ( ! empty( $combined_css = Collection::get( 'combine', 'css' ) ) ) { - - // combine css links grouped by media - $linksMedia = []; - - foreach ( $combined_css as $link ) { - $linksMedia[ $link[ 'href' ] ] = $link[ 'media' ]; - } - - foreach ( array_unique( $linksMedia ) as $media ) { - - $filename = md5( $media . serialize( $linksMedia ) ) . '.css'; - - if ( ! file_exists( WPP_CACHE_DIR . $filename ) ) { - - $code = ''; - - foreach ( $combined_css as $link ) { - - if ( $link[ 'media' ] == $media ) { - - $originalCode = File::get( File::path( $link[ 'href' ] ) ); - - if ( - Option::get( 'css_minify' ) - && wpp_in_array( array_keys( Option::get( 'css_minify' ) ), $link[ 'href' ] ) - ) { - $code .= Minify::code( $originalCode, $link[ 'href' ] ); - } else { - $code .= Minify::replacePaths( $originalCode, $link[ 'href' ] ); - } - - } - } - - File::save( WPP_CACHE_DIR . $filename, $code ); - - } - - //touch( WPP_CACHE_DIR . $filename, time() - 3600 ); - - // CDN? - $url = ( Option::get( 'cdn' ) && Option::get( 'cdn_hostname' ) ) - ? str_replace( site_url(), Option::get( 'cdn_hostname' ), WPP_CACHE_URL ) - : WPP_CACHE_URL; - - if ( Option::boolval( 'css_defer' ) ) { - $stylesheet = ''; - // fallback - Collection::add( 'defer', 'css', '' ); - } else { - $stylesheet = ''; - } - - $this->head->innertext .= $stylesheet . PHP_EOL; - - } - - } - - // Combine Google fonts - if ( ! empty( $google_fonts = Collection::get( 'combine', 'google_fonts' ) ) ) { - - $href = '//fonts.googleapis.com/css?family=' . implode( '|', $google_fonts ); - - // Google fonts display - if ( Option::get( 'css_font_display' ) !== 'none' ) { - - $url = parse_url( htmlspecialchars_decode( $href ) ); - - parse_str( $url['query'], $parameters ); - - $parameters['display'] = Option::get( 'css_font_display' ); - - $href= '//fonts.googleapis.com/css?'. http_build_query( $parameters ); - - } - - if ( Option::boolval( 'css_defer' ) ) { - - $stylesheet = ''; - // fallback - Collection::add( 'defer', 'css', '' ); - - } else { - $stylesheet = ''; - } - - $this->head->innertext .= $stylesheet . PHP_EOL; - - } - - // combined js files - if ( ! empty( $combined_js = Collection::get( 'combine', 'js' ) ) ) { - - $filename = md5( serialize( $combined_js ) ) . '.js'; - - // Check if combined file exists - if ( ! file_exists( WPP_CACHE_DIR . $filename ) ) { - - $code = ''; - - foreach ( $combined_js as $scripts ) { - // proccess by type - foreach ( $scripts as $type => $script ) { - - if ( $type == 'file' ) { - - $extension = pathinfo( $script , PATHINFO_EXTENSION ); - - $originalCode = ( $extension == 'php' ) - ? wp_remote_retrieve_body( wp_remote_get( $script ) ) - : File::get( File::path( $script ) ); - - $code .= wpp_in_array( array_keys( Option::get( 'js_minify', [] ) ), $script ) - ? Minify::code( $originalCode ) - : $originalCode; - - } else { - $code .= Minify::code( $script ); - } - // ASI - $code .= ';' . PHP_EOL; - } - - } - - File::save( WPP_CACHE_DIR . $filename, $code ); - - } - - // CDN? - $url = ( Option::get( 'cdn' ) && Option::get( 'cdn_hostname' ) ) - ? str_replace( site_url(), Option::get( 'cdn_hostname' ), WPP_CACHE_URL ) - : WPP_CACHE_URL; - - // Defer js - if ( Option::boolval( 'js_defer' ) ) { - $this->body->innertext .= '' . PHP_EOL; - } else { - $this->body->innertext .= '' . PHP_EOL; - } - - } - - // Insert noscript fallback - if ( ! empty( $defered_css = Collection::get( 'defer', 'css' ) ) ) { - $this->head->innertext .= '' . PHP_EOL; - } - - // Prefetch - $prefetch = array_unique( - array_merge( - Option::get( 'js_prefetch', [] ), - Option::get( 'css_prefetch', [] ) - ) - ); - - if ( ! empty( $prefetch ) ) { - - $included = []; - - foreach( $this->html->find( 'link[rel=dns-prefetch]' ) as $link ) { - $included[] = $link->href; - } - - foreach( array_keys( $prefetch ) as $dns ) { - if ( ! wpp_in_array( $dns, $included ) ) { - $this->head->innertext = '' . PHP_EOL . $this->head->innertext; - } - } - - } - - // Preconnect - $preconnect = array_unique( - array_merge( - Option::get( 'js_preconnect', [] ), - Option::get( 'css_preconnect', [] ) - ) - ); - - if ( ! empty( $preconnect ) ) { - - $included = []; - - foreach( $this->html->find( 'link[rel=preconnect]' ) as $link ) { - $included[] = $link->href; - } - - foreach( array_keys( $preconnect ) as $dns ) { - if ( ! wpp_in_array( $dns, $included ) ) { - $this->head->innertext = '' . PHP_EOL . $this->head->innertext; - } - } - - } - - $vars = [ - 'css' => Option::boolval( 'css_defer' ), - 'js' => Option::boolval( 'js_defer' ), - 'images' => Option::boolval( 'images_lazy' ), - 'videos' => Option::boolval( 'videos_lazy' ) - ]; - - // Clear cache - if ( Option::boolval( 'cache' ) ) { - $vars[ 'expire' ] = time() + intval( Option::get( 'cache_time', 3600 ) * Option::get( 'cache_length', 24 ) ); - $vars[ 'ajax_url' ] = admin_url( 'admin-ajax.php'); - } - - // WPP JS - $this->body->innertext .= '' . PHP_EOL; - - - /** - * Exclude URL from HTML optimization filter - * @since 1.1.8 - */ - $html_url_exclude = apply_filters( 'wpp_html_url_exclude', Option::get( 'html_url_exclude', [] ) ); - - if ( ! wpp_is_url_excluded( Url::current(), $html_url_exclude ) ) { - /** - * Filter parsed content - * - * @since 1.0.8 - */ - $this->html = apply_filters( 'wpp_parsed_content', $this->parseHTML() ); - } - - - // Footprint - $this->html .= PHP_EOL . sprintf( '', __( 'Optimized by', 'wpp' ), WPP_PLUGIN_NAME, WPP_VERSION ) . PHP_EOL; - - } - - /** - * Save cache file - * - * @return void - */ - private function saveCache() { - - /** - * Filter excluded urls - * - * @since 1.0.0 - */ - $excluded = apply_filters( 'wpp_exclude_urls', Option::get( 'cache_url_exclude', [] ) ); - - // Check if page is excluded - if ( ! wpp_is_url_excluded( Url::current(), $excluded ) ) { - - if ( ! $this->is_amp() ) { - - $this->html .= sprintf( - '', - number_format( ( microtime( true ) - $this->time ), 2 ), - date( get_option( 'date_format' ) ), - date( get_option( 'time_format' ) ) - ); - - } - - Cache::save( $this->html, $this->is_amp() ); - - } - - } - - - /** - * Check if current template is an AMP template - * - * @return boolean - */ - private function is_amp() { - - if ( ! is_null( static::$amp ) ) - return static::$amp; - - static::$amp = ( - $this->htmltag - && isset( $this->htmltag->{'⚡'} ) - || isset( $this->htmltag->amp ) - ) ? true : false; - - return static::$amp; - - } - - - /** - * Return html content - * - * @return string - * @since 1.0.9 - */ - public function __toString() { - return strval( $this->html ); - } - -} \ No newline at end of file diff --git a/includes/classes/ui.php b/includes/classes/ui.php deleted file mode 100644 index b61f043..0000000 --- a/includes/classes/ui.php +++ /dev/null @@ -1,193 +0,0 @@ - -* @package WPP -*/ - -class UI -{ - - /** - * Top bar links - * - * @var array - * @since 1.1.0 - */ - private static $links = []; - - /** - * WPP pages - * - * @var array - * @since 1.1.0 - */ - private static $pages = []; - - - /** - * Add WPP page - * - * @param string $id - * @param string $name - * @param string $template - * @return void - * @since 1.1.0 - */ - public static function addPage( $id, $name, $template ) { - - static::$pages[ $id ] = [ - 'name' => $name, - 'template' => $template - ]; - - } - - - /** - * Add top-bar link - * - * @param string $id - * @param string $title - * @param string $href - * @param array $attributes - * @return void - * @since 1.1.0 - */ - public static function addLink( $id, $title, $href = null, $attributes = [] ) { - - $attributes = wp_parse_args( $attributes, [ - 'id' => $id, - 'class' => '' - ] ); - - static::$links[ $id ] = [ - 'title' => $title, - 'href' => $href, - 'attributes' => $attributes - ]; - - } - - - /** - * Remove registered page - * - * @param string $id - * @return void - * @since 1.1.0 - */ - public static function removePage( $id ) { - - if ( array_key_exists( $id, static::$pages) ) { - unset( static::$pages[ $id ] ); - } - - } - - - /** - * Remove registered top-bar link - * - * @param string $id - * @return void - * @since 1.1.0 - */ - public static function removeLink( $id ) { - - if ( array_key_exists( $id, static::$links) ) { - unset( static::$links[ $id ] ); - } - - } - - - /** - * Get registered pages - * - * @return array - * @since 1.1.0 - */ - public static function getPages() { - return static::$pages; - } - - - /** - * Get registered top-bar links - * - * @return array - * @since 1.1.0 - */ - public static function getLinks() { - return static::$links; - } - - - /** - * Register WPP pages and top-bar links - * - * @return void - * @since 1.1.0 - */ - public static function register() { - - // Register pages - foreach( static::getPages() as $id => $data ) { - - // WPP tab - add_action( 'wpp-admin-menu', function() use( $id, $data ) { - echo '

      IF)fCgL`)bUeM9OL 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 z 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 z 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

    2. ' . $data[ 'name' ] . '
    3. '; - } ); - - // WPP mobile option - add_action( 'wpp-admin-menu-mobile', function() use( $id, $data ) { - echo ''; - } ); - - // WPP tab content - add_action( 'wpp-admin-page-content', function() use( $data ) { - - if ( file_exists( $data[ 'template' ] ) ) { - include $data[ 'template' ]; - } else { - wpp_log( sprintf( 'Template %s not exists', $data[ 'template' ] ) ); - } - - } ); - - } - - - // Register top bar items - foreach( static::getLinks() as $id => $data ) { - - add_action( 'wpp-admin-bar', function( $admin_bar ) use( $id, $data ) { - - $href = is_null( $data[ 'href' ] ) - ? admin_url( 'admin.php?page=' . WPP_PLUGIN_ADMIN_URL . '&wpp-tab=' . $id ) - : $data[ 'href' ]; - - $admin_bar->add_node( [ - 'id' => $data[ 'attributes' ][ 'id' ], - 'title' => $data[ 'title' ], - 'href' => $href, - 'parent' => 'wpp', - 'meta' => [ - 'class' => $data[ 'attributes' ][ 'class' ], - 'title' => $data[ 'title' ] - ] - ] ); - - } ); - - } - - } - -} \ No newline at end of file diff --git a/includes/classes/url.php b/includes/classes/url.php deleted file mode 100644 index f88d694..0000000 --- a/includes/classes/url.php +++ /dev/null @@ -1,59 +0,0 @@ - -* @package WPP -*/ - -class Url -{ - /** - * Get absolute url file path - * - * @since 1.0.0 - * @param string $file - * - * @return string - */ - public static function path( $file ) { - return str_replace( [ realpath( ABSPATH ), DIRECTORY_SEPARATOR ], [ site_url(), '/' ], $file ); - } - - - /** - * Get current url - * - * @since 1.0.0 - * @return string - */ - public static function current() { - return ( is_ssl() ? 'https' : 'http' ) . '://' . Input::server( 'HTTP_HOST' ) . Input::server( 'REQUEST_URI' ); - } - - - /** - * Get clean file path - * - * @since 1.0.0 - * @param string $path - * - * @return string - */ - public static function getClean( $path ) - { - - if ( strpos( $path, '//' ) === 0) { - - $info = parse_url( site_url() ); - - if ( strstr( $path, $info[ 'host' ] ) ) { - $path = $info[ 'scheme' ] . ':' . $path; - } - - } - - return str_replace( [ trailingslashit( site_url() ), '../' ], '', strtok( $path, '?' ) ); - } - -} \ No newline at end of file diff --git a/includes/classes/wpp.php b/includes/classes/wpp.php deleted file mode 100644 index a9a8d1d..0000000 --- a/includes/classes/wpp.php +++ /dev/null @@ -1,146 +0,0 @@ - -* @package WPP -*/ - -final class WP_Performance -{ - /** - * @var WP_Performance class instance - * @since 1.0.0 - */ - private static $instance; - - /** - * Instantiate the plugin - * - * @since 1.0.0 - * @return void - */ - private function __construct() { - - // Autoloader - require WPP_DIR . 'vendor/autoload.php'; - - /** - * WPP init actions hook - * - * @since 1.1.5.1 - */ - do_action( 'wpp_init' ); - - } - - /** - * Throw error on object clone - * - * @since 1.0.0 - * @return void - */ - public function __clone() { - _doing_it_wrong( - __FUNCTION__, - 'Cloning instances of the class is forbidden', - '1.0.0' - ); - } - - /** - * Disable unserializing of the class - * - * @since 1.1.0 - * @return void - */ - public function __wakeup() { - _doing_it_wrong( - __FUNCTION__, - 'Unserializing instances of the class is forbidden', - '1.0.0' - ); - } - - - /** - * WP Performance initialize - * - * @return WPP - */ - public static function instance() { - - if ( is_null( static::$instance ) ) { - static::$instance = new static(); - } - - return static::$instance; - - } - - /** - * Run WP Performance - * - */ - public function run() { - - // Don't run in CLI - if ( ! defined( 'WP_CLI' ) ) { - return is_admin() - ? $this->backend() - : $this->frontend(); - } - - } - - /** - * WP Performance front-end actions - * @since 1.0.0 - */ - private function frontend() { - - // Is plugin disabled - if ( Option::boolval( 'wpp_disable' ) ) - return false; - - /** - * Frontend actions hook - * - * @since 1.0.8 - */ - do_action( 'wpp_frontend_init' ); - - } - - /** - * WP Performance back-end actions - * @since 1.0.0 - */ - private function backend() { - - // Register WP plugin hooks - register_activation_hook( - WPP_SELF, - 'wpp_activate' - ); - - register_deactivation_hook( - WPP_SELF, - 'wpp_deactivate' - ); - - register_uninstall_hook( - WPP_SELF, - 'wpp_uninstall' - ); - - /** - * Backend actions hook - * - * @since 1.1.5.1 - */ - do_action( 'wpp_backend_init' ); - - } - -} \ No newline at end of file diff --git a/includes/data/definitions/.htaccess b/includes/data/definitions/.htaccess deleted file mode 100644 index 14249c5..0000000 --- a/includes/data/definitions/.htaccess +++ /dev/null @@ -1 +0,0 @@ -Deny from all \ No newline at end of file diff --git a/includes/data/definitions/cache.apache.txt b/includes/data/definitions/cache.apache.txt deleted file mode 100644 index 1a906fa..0000000 --- a/includes/data/definitions/cache.apache.txt +++ /dev/null @@ -1,43 +0,0 @@ - -# WPP Cache load start - - -Header append Vary: Accept-Encoding - - - - AddType text/html .html_gz .html_mobile_gz .html_amp_gz .html_mobile_amp_gz - AddEncoding gzip .html_gz .html_mobile_gz .html_amp_gz .html_mobile_amp_gz - - - SetEnvIfNoCase Request_URI \.html_gz$ no-gzip - SetEnvIfNoCase Request_URI \.html_amp_gz$ no-gzip - SetEnvIfNoCase Request_URI \.html_mobile_gz$ no-gzip - SetEnvIfNoCase Request_URI \.html_mobile_amp_gz$ no-gzip - - - - - RewriteEngine On - RewriteBase {BASEDIR} - RewriteCond %{HTTP_USER_AGENT} Mobile [NC] - RewriteCond %{HTTP_USER_AGENT} Android [NC] - RewriteCond %{HTTP_USER_AGENT} Kindle [NC] - RewriteCond %{HTTP_USER_AGENT} BlackBerry [NC] - RewriteCond %{HTTP_USER_AGENT} Opera\sMini [NC] - RewriteCond %{HTTP_USER_AGENT} Opera\sMobi [NC] - RewriteRule .* - [E=WPP_MOBILE_EXT:_mobile] - RewriteCond %{REQUEST_URI} /{AMP_TAG}/$ [NC] - RewriteRule .* - [E=WPP_AMP_EXT:_amp] - RewriteCond %{HTTP:Accept-Encoding} gzip - RewriteRule .* - [E=WPP_GZIP_EXT:_gz] - RewriteCond %{REQUEST_METHOD} GET - RewriteCond %{QUERY_STRING} ="" - RewriteCond %{REQUEST_URI} !^(/wp-json/(.*))$ [NC] - RewriteCond %{HTTP:Cookie} !(wordpress_logged_in_|wp-postpass_|wptouch_switch_toggle|comment_author_|comment_author_email_) [NC] - {USER_AGENTS} - RewriteCond "%{DOCUMENT_ROOT}{BASEDIR}{CONTENT_DIR}/cache/wpp-cache/%{HTTP_HOST}%{REQUEST_URI}/index.html%{ENV:WPP_MOBILE_EXT}%{ENV:WPP_AMP_EXT}%{ENV:WPP_GZIP_EXT}" -f - RewriteRule .* "{BASEDIR}{CONTENT_DIR}/cache/wpp-cache/%{HTTP_HOST}%{REQUEST_URI}/index.html%{ENV:WPP_MOBILE_EXT}%{ENV:WPP_AMP_EXT}%{ENV:WPP_GZIP_EXT}" [L] - - -# WPP Cache load end diff --git a/includes/data/definitions/cache.nginx.txt b/includes/data/definitions/cache.nginx.txt deleted file mode 100644 index 71c70e7..0000000 --- a/includes/data/definitions/cache.nginx.txt +++ /dev/null @@ -1,57 +0,0 @@ -# WPP Cache load start - -set $wpp_cache 1; -set $wpp_mobile 1; -set $wpp_amp 1; - -if ($request_method = POST){ - set $wpp_cache 0; -} - -if ($is_args) { - set $wpp_cache 0; -} - -if (-f "$document_root/.maintenance") { - set $wpp_cache 0; -} - -if ($http_cookie ~* (wordpress_logged_in_|wp\-postpass_|wptouch_switch_toggle|comment_author_|comment_author_email_)) { - set $wpp_cache 0; -} - -if (!-f "{CACHEDIR}$http_host/$request_uri/index.html") { - set $wpp_cache 0; -} - -if (!-f "{CACHEDIR}$http_host/$request_uri/index.html_mobile") { - set $wpp_mobile 0; -} - -{USER_AGENTS} - -if ($http_user_agent ~* (Mobile|Android|Kindle|BlackBerry|Opera+Mini|Opera+Mobi)) { - set $wpp_cache "{$wpp_cache}{$wpp_mobile}"; -} - -if ($request_uri ~* /{AMP_TAG}/$) { - set $wpp_cache "{$wpp_cache}{$wpp_mobile}{$wpp_amp}"; -} - -if ($wpp_cache = 111){ - rewrite .* /{CONTENT_DIR}/cache/{CACHEDIR_BASENAME}/$http_host/$request_uri/index.html_mobile_amp last; -} - -if ($wpp_cache = 101){ - rewrite .* /{CONTENT_DIR}/cache/{CACHEDIR_BASENAME}/$http_host/$request_uri/index.html_amp last; -} - -if ($wpp_cache = 11){ - rewrite .* /{CONTENT_DIR}/cache/{CACHEDIR_BASENAME}/$http_host/$request_uri/index.html_mobile last; -} - -if ($wpp_cache = 1){ - rewrite .* /{CONTENT_DIR}/cache/{CACHEDIR_BASENAME}/$http_host/$request_uri/index.html last; -} - -# WPP Cache load end \ No newline at end of file diff --git a/includes/data/definitions/expire.apache.txt b/includes/data/definitions/expire.apache.txt deleted file mode 100644 index fe6278a..0000000 --- a/includes/data/definitions/expire.apache.txt +++ /dev/null @@ -1,74 +0,0 @@ - -# WPP Expire start - - - Header unset ETag - - -FileETag None - - - - - - SetEnvIf Origin ":" IS_CORS - Header set Access-Control-Allow-Origin "*" env=IS_CORS - - - - - Header append Vary: Accept-Encoding - - - - - - - Header set Access-Control-Allow-Origin "*" - - - - - ExpiresActive on - ExpiresDefault "access plus 1 month" - ExpiresByType text/css "access plus 1 year" - ExpiresByType application/atom+xml "access plus 1 hour" - ExpiresByType application/rdf+xml "access plus 1 hour" - ExpiresByType application/rss+xml "access plus 1 hour" - ExpiresByType application/json "access plus 0 seconds" - ExpiresByType application/ld+json "access plus 0 seconds" - ExpiresByType application/schema+json "access plus 0 seconds" - ExpiresByType application/vnd.geo+json "access plus 0 seconds" - ExpiresByType application/xml "access plus 0 seconds" - ExpiresByType text/xml "access plus 0 seconds" - ExpiresByType image/vnd.microsoft.icon "access plus 1 week" - ExpiresByType image/x-icon "access plus 1 week" - ExpiresByType text/html "access plus 0 seconds" - ExpiresByType application/javascript "access plus 1 year" - ExpiresByType application/x-javascript "access plus 1 year" - ExpiresByType text/javascript "access plus 1 year" - ExpiresByType application/manifest+json "access plus 1 week" - ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds" - ExpiresByType text/cache-manifest "access plus 0 seconds" - ExpiresByType audio/ogg "access plus 1 month" - ExpiresByType image/bmp "access plus 1 month" - ExpiresByType image/gif "access plus 1 month" - ExpiresByType image/jpeg "access plus 1 month" - ExpiresByType image/png "access plus 1 month" - ExpiresByType image/svg+xml "access plus 1 month" - ExpiresByType image/webp "access plus 1 month" - ExpiresByType video/mp4 "access plus 1 month" - ExpiresByType video/ogg "access plus 1 month" - ExpiresByType video/webm "access plus 1 month" - ExpiresByType application/vnd.ms-fontobject "access plus 1 month" - ExpiresByType font/eot "access plus 1 month" - ExpiresByType font/opentype "access plus 1 month" - ExpiresByType application/x-font-ttf "access plus 1 month" - ExpiresByType application/font-woff "access plus 1 month" - ExpiresByType application/x-font-woff "access plus 1 month" - ExpiresByType font/woff "access plus 1 month" - ExpiresByType application/font-woff2 "access plus 1 month" - ExpiresByType text/x-cross-domain-policy "access plus 1 week" - - -# WPP Expire end diff --git a/includes/data/definitions/expire.nginx.txt b/includes/data/definitions/expire.nginx.txt deleted file mode 100644 index f1c3c05..0000000 --- a/includes/data/definitions/expire.nginx.txt +++ /dev/null @@ -1,7 +0,0 @@ -# WPP Expire start - -location ~* \.(css|js|ico|gif|jpeg|jpg|webp|png|svg|eot|otf|woff|woff2|ttf|ogg|pdf)$ { - expires 30d; -} - -# WPP Expire end diff --git a/includes/data/definitions/gzip.apache.txt b/includes/data/definitions/gzip.apache.txt deleted file mode 100644 index 7923edc..0000000 --- a/includes/data/definitions/gzip.apache.txt +++ /dev/null @@ -1,54 +0,0 @@ - -# WPP GZIP start - - - - SetOutputFilter DEFLATE - - - - SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding - RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding - SetEnvIfNoCase Request_URI \ - \.(?:gif|jpe?g|png|rar|zip|exe|flv|mov|wma|mp3|avi|swf|mp?g|mp4|webm|webp|pdf)$ no-gzip dont-vary - - - - - AddOutputFilterByType DEFLATE text/plain - AddOutputFilterByType DEFLATE text/html - AddOutputFilterByType DEFLATE text/xml - AddOutputFilterByType DEFLATE text/css - - AddOutputFilterByType DEFLATE application/xml - AddOutputFilterByType DEFLATE application/xhtml+xml - AddOutputFilterByType DEFLATE application/rss+xml - AddOutputFilterByType DEFLATE application/javascript - AddOutputFilterByType DEFLATE application/x-javascript - AddOutputFilterByType DEFLATE application/json - AddOutputFilterByType DEFLATE application/ld+json - AddOutputFilterByType DEFLATE application/manifest+json - AddOutputFilterByType DEFLATE application/schema+json - AddOutputFilterByType DEFLATE application/rss+xml - AddOutputFilterByType DEFLATE application/rdf+xml - AddOutputFilterByType DEFLATE application/x-font-ttf - AddOutputFilterByType DEFLATE x-web-app-manifest+json - - AddOutputFilterByType DEFLATE font/collection - AddOutputFilterByType DEFLATE font/eot - AddOutputFilterByType DEFLATE font/opentype - AddOutputFilterByType DEFLATE font/otf - AddOutputFilterByType DEFLATE font/ttf - - AddOutputFilterByType DEFLATE image/bmp - AddOutputFilterByType DEFLATE image/svg+xml - AddOutputFilterByType DEFLATE image/vnd.microsoft.icon - AddOutputFilterByType DEFLATE image/x-icon - - - - AddEncoding gzip svgz - - - -# WPP GZIP end diff --git a/includes/data/definitions/gzip.nginx.txt b/includes/data/definitions/gzip.nginx.txt deleted file mode 100644 index f91cf3b..0000000 --- a/includes/data/definitions/gzip.nginx.txt +++ /dev/null @@ -1,11 +0,0 @@ -# WPP GZIP start - -gzip on; -gzip_vary on; -gzip_proxied any; -gzip_comp_level 6; -gzip_buffers 16 8k; -gzip_http_version 1.1; -gzip_types image/svg+xml text/plain text/html text/xml text/css text/javascript application/xml application/xhtml+xml application/rss+xml application/javascript application/x-javascript application/x-font-ttf application/vnd.ms-fontobject font/opentype font/ttf font/eot font/otf; - -# WPP GZIP end diff --git a/includes/data/definitions/index.php b/includes/data/definitions/index.php deleted file mode 100644 index e71af0e..0000000 --- a/includes/data/definitions/index.php +++ /dev/null @@ -1 +0,0 @@ - -* @package WPP -*/ - -use WPP\Option; - -/** - * WPP Init actions - */ -add_action( 'wpp_init', function(){ - - // Load language - load_plugin_textdomain( - 'wpp', - false, - plugin_basename( WPP_DIR ) . '/languages' - ); - - // Schedule cron tasks - - // Register schedules - add_filter( - 'cron_schedules', - 'wpp_get_cron_schedules' - ); - - // Sitemaps cache preload - if ( Option::get( 'sitemaps_list' ) ) { - - add_action( - 'wpp_prepare_preload', - 'wpp_cron_prepare_preload' - ); - - add_action( - 'wpp_preload_cache', - 'wpp_cron_preload_cache' - ); - - // Prepare preload - if ( ! wp_next_scheduled( 'wpp_prepare_preload' ) ) { - wp_schedule_event( - time(), - 'wpp_every_5_minutes', - 'wpp_prepare_preload' - ); - } - - // Preload cache - if ( ! wp_next_scheduled( 'wpp_preload_cache' ) ) { - wp_schedule_event( - time(), - 'wpp_every_minute', - 'wpp_preload_cache' - ); - } - - } - - // Database cleanup - if ( $frequency = Option::get( 'db_cleanup_frequency' ) ) { - - add_action( - 'wpp_db_cleanup', - 'wpp_cron_db_cleanup' - ); - - if ( ! wp_next_scheduled( 'wpp_db_cleanup' ) ) { - wp_schedule_event( - time(), - $frequency, - 'wpp_db_cleanup' - ); - } - - } - - -} ); \ No newline at end of file diff --git a/includes/functions/admin.php b/includes/functions/admin.php deleted file mode 100644 index 745ca51..0000000 --- a/includes/functions/admin.php +++ /dev/null @@ -1,380 +0,0 @@ - -* @package WPP -*/ - -use WPP\Input; -use WPP\Option; - -/** -* Print admin notice -* -* @since 1.0.0 -* @param string $msg -* @param string $type -* @param boolean $preformatted -* -* @return void -*/ -function wpp_notify( $msg, $type = 'success', $preformatted = true ) { - - add_action( 'admin_notices', function() use ( $msg, $type, $preformatted ){ - - if ( $preformatted ) { - echo '

      ' . __( ucfirst( $type ), 'wpp' ) . ': ' . __( $msg, 'wpp' ) . '

      '; - } else { - echo '

      ' . $msg . '

      '; - } - - } ); - -} - - -/** -* Check option against the value, print selected if true -* -* @since 1.0.0 -* @param mixed $name -* @param mixed $value -* @param mixed $default -* @return void -*/ -function wpp_selected( $name, $value, $default = false ) { - - if ( Option::get( $name, $default ) == $value ) { - echo ' selected'; - } - -} - - -/** - * Check option, print checked if true - * - * @since 1.0.0 - * @param string $name - * @param boolean $default - * @return void - */ -function wpp_checked( $name, $default = false ) { - - if ( Option::boolval( $name, $default ) ) { - echo ' checked'; - } - -} - - -/** - * Is tab active - * - * @since 1.0.0 - * @param string $tab - * @param boolean $default - * @param string $output - * @return string - */ -function wpp_active( $tab, $default = false, $output = 'active' ) { - - if( Input::request( 'wpp-tab' ) == $tab ) { - - echo $output; - - } else { - - if ( Input::get( 'load' ) ) { - if ( $tab == 'settings' ) echo $output; - } else if ( Input::get( 'clear' ) ) { - if ( $tab == Input::get( 'clear' ) ) echo $output; - } else { - if ( $default && ! Input::request( 'wpp-tab' ) ) echo $output; - } - - } - -} - -/** - * Add menu item and register menu page - * - * @return void - * @since 1.0.0 - */ -function wpp_add_menu_item() { - - add_menu_page( WPP_PLUGIN_NAME, WPP_PLUGIN_NAME, 'manage_options', WPP_PLUGIN_ADMIN_URL, function() { - include WPP_ADMIN_DIR . 'admin.php'; - }, 'dashicons-performance' ); - -} - - -/** - * Add wpp admin menu - * - * @since 1.0.0 - * @return void - */ -function wpp_add_top_menu_item() { - - // Insert scripts - if ( ! is_admin() ) { - - add_action( 'wp_enqueue_scripts', function() { - - wp_enqueue_style( 'wpp-overlay', WPP_ASSET_URL . 'overlay.css' ); - wp_enqueue_script( 'wpp-cache-js', WPP_ASSET_URL . 'cache.js', [ 'jquery' ], null, true ); - wp_localize_script( 'wpp-cache-js', 'WPP', [ - 'path' => WPP_ASSET_URL, - 'ajax_url' => admin_url( 'admin-ajax.php' ) - ] ); - - }); - - } - - // Add top bar link - add_action( 'admin_bar_menu', function( $admin_bar ) { - - $admin_bar->add_node( [ - 'id' => 'wpp', - 'title' => '' . WPP_PLUGIN_NAME . '', - 'href' => admin_url( 'admin.php?page=' . WPP_PLUGIN_ADMIN_URL ), - 'meta' => [ - 'class' => 'wpp_toolbar_link', - 'title' => WPP_PLUGIN_NAME - ] - ] ); - - $admin_bar->add_node( [ - 'id' => 'wpp_clear_cache', - 'title' => __( 'Clear cache', 'wpp' ), - 'href' => '#', - 'parent' => 'wpp', - 'meta' => [ - 'class' => 'wpp_clear_cache', - 'title' => __( 'Clear cache', 'wpp' ) - ] - ] ); - - $admin_bar->add_node( [ - 'id' => 'wpp_cache_topbar_link', - 'title' => __( 'Cache', 'wpp' ), - 'href' => admin_url( 'admin.php?page=' . WPP_PLUGIN_ADMIN_URL ), - 'parent' => 'wpp', - 'meta' => [ - 'title' => __( 'Settings', 'wpp' ) - ] - ] ); - - $admin_bar->add_node( [ - 'id' => 'wpp_css_topbar_link', - 'title' => 'CSS', - 'href' => admin_url( 'admin.php?page=' . WPP_PLUGIN_ADMIN_URL . '&wpp-tab=css' ), - 'parent' => 'wpp', - 'meta' => [ - 'title' => 'CSS' - ] - ] ); - - $admin_bar->add_node( [ - 'id' => 'wpp_js_topbar_link', - 'title' => 'JavaScript', - 'href' => admin_url( 'admin.php?page=' . WPP_PLUGIN_ADMIN_URL . '&wpp-tab=javascript' ), - 'parent' => 'wpp', - 'meta' => [ - 'title' => 'JavaScript' - ] - ] ); - - $admin_bar->add_node( [ - 'id' => 'wpp_media_topbar_link', - 'title' => __( 'Media', 'wpp' ), - 'href' => admin_url( 'admin.php?page=' . WPP_PLUGIN_ADMIN_URL . '&wpp-tab=media' ), - 'parent' => 'wpp', - 'meta' => [ - 'title' => __( 'Media', 'wpp' ) - ] - ] ); - - $admin_bar->add_node( [ - 'id' => 'wpp_database_topbar_link', - 'title' => __( 'Database', 'wpp' ), - 'href' => admin_url( 'admin.php?page=' . WPP_PLUGIN_ADMIN_URL . '&wpp-tab=database' ), - 'parent' => 'wpp', - 'meta' => [ - 'title' => __( 'Database', 'wpp' ) - ] - ] ); - - $admin_bar->add_node( [ - 'id' => 'wpp_db_topbar_link', - 'title' => 'CDN', - 'href' => admin_url( 'admin.php?page=' . WPP_PLUGIN_ADMIN_URL . '&wpp-tab=cdn' ), - 'parent' => 'wpp', - 'meta' => [ - 'title' => 'CDN' - ] - ] ); - - $admin_bar->add_node( [ - 'id' => 'wpp_settings_topbar_link', - 'title' => __( 'Settings', 'wpp' ), - 'href' => admin_url( 'admin.php?page=' . WPP_PLUGIN_ADMIN_URL . '&wpp-tab=settings' ), - 'parent' => 'wpp', - 'meta' => [ - 'title' => __( 'Settings', 'wpp' ) - ] - ] ); - - $admin_bar->add_node( [ - 'id' => 'wpp_addons_topbar_link', - 'title' => __( 'Add-ons', 'wpp' ), - 'href' => admin_url( 'admin.php?page=' . WPP_PLUGIN_ADMIN_URL . '&wpp-tab=addons' ), - 'parent' => 'wpp', - 'meta' => [ - 'title' => __( 'Add-ons', 'wpp' ) - ] - ] ); - - /** - * Add WPP top bar items - * @since 1.1.0 - */ - do_action( 'wpp-admin-bar', $admin_bar ); - - - }, 99 ); - -} - - -/** - * Add disable/enable link in plugins list - * - * @param array $links - * @return void - * @since 1.0.0 - */ -function wpp_add_disable_link( $links ) { - - if ( Option::boolval( 'wpp_disable' ) ) { - $action = 'enable'; - $status = __( 'Enable', 'wpp' ); - } else { - $action = 'disable'; - $status = __( 'Temporarily disable', 'wpp' ); - } - - array_push( $links, '' . $status . '' ); - - return $links; - -} - - -/** - * Add WPP metabox - * - * @return void - * @since 1.0.3 - */ -function wpp_add_metabox() { - - add_meta_box( - 'wpp_page_cache_metabox', - sprintf( '%s %s', WPP_PLUGIN_NAME, __( 'Settings', 'wpp' ) ), - 'wpp_display_cache_metabox', - null, - 'side', - 'high' - ); - -} - -/** - * Display metabox - * - * @param WP_Post $post - * @return void - * @since 1.0.3 - */ -function wpp_display_cache_metabox( $post ) { - include WPP_ADMIN_DIR . 'metabox.php'; -} - - - -/** - * Determine if exclude options needs to be shown - * - * @param string $type - * @return boolean - * @since 1.0.3 - */ -function wpp_maybe_show_exclude_option( $type ) { - - if ( ! in_array( $type, [ 'js', 'css' ] ) ) { - return false; - } - - if ( - Option::get( $type . '_minify' ) - || Option::get( $type . '_combine' ) - || Option::get( $type . '_inline' ) - || Option::get( $type . '_disable' ) - || Option::get( $type . '_disable_position' ) - || Option::get( $type . '_minify_inline' ) - || Option::get( $type . '_defer' ) - ) { - return true; - } - - return false; - -} - - -/** - * Check if current page is plugin admin page - * - * @return boolean - * @since 1.0.3 - */ -function wpp_is_plugin_page() { - - if ( Input::get( 'page' ) == WPP_PLUGIN_ADMIN_URL ) { - return true; - } - - return false; - -} - - -/** - * Load admin template - * - * @param string $template - * @param array $vars - * @return string - * @since 1.0.6 - */ -function wpp_load_template( $template, $vars = [] ) { - - if ( file_exists( $file = WPP_ADMIN_DIR . $template . '.php' ) ) { - - ob_start(); - extract( $vars ); - include $file; - $content = ob_get_clean(); - - echo $content; - - } - -} \ No newline at end of file diff --git a/includes/functions/backend.php b/includes/functions/backend.php deleted file mode 100644 index 6cb4da1..0000000 --- a/includes/functions/backend.php +++ /dev/null @@ -1,298 +0,0 @@ - -* @package WPP -*/ - -use WPP\Cache; -use WPP\File; -use WPP\Input; -use WPP\Option; - -add_action( 'wpp_backend_init', function(){ - - // Clear cache from frontend ajax action - add_action( - 'wp_ajax_nopriv_wpp_clear_cache', - [ 'WPP\Cache', 'clear' ] - ); - - // Clear the cache after switching theme - add_action( - 'after_switch_theme', - function(){ - wpp_delete_list_options(); - Cache::clear(); - } - ); - - // Init admin - add_action( 'init', function() { - - // Check user - if ( ! current_user_can( 'manage_options' ) ) - return false; - - // Check if cache dir exists - if ( ! is_dir( WPP_CACHE_DIR ) ) { - if( ! mkdir( WPP_CACHE_DIR, 0755, true ) ) { - wpp_notify( sprintf( '%s: missing writing permissions for directory wp-content/cache', WPP_PLUGIN_NAME ), 'error', false ); - } else { - touch( WPP_CACHE_DIR . 'index.php' ); - } - } - - // Check if advanced-cache.php exists - if ( ! file_exists( trailingslashit( WP_CONTENT_DIR ) . 'advanced-cache.php' ) ) { - - wpp_notify( - sprintf( - __( 'File advanced-cache.php is missing. If you updated your installation of %s recently, try to deactivate and then activate the plugin again.', 'wpp' ), - WPP_PLUGIN_NAME - ), - 'error', - false - ); - - } - - // Get initial CSS and JS files by loading the front page - if ( ! Option::get( 'local_css' ) ) { - wpp_preload_homepage(); - } - - // Clear files list - if ( - Input::get( 'clear' ) - && wp_verify_nonce( Input::get( 'nonce' ), 'clear-list' ) - ) { - wpp_delete_files_list( Input::get( 'clear' ) ); - } - - // Enable disable plugin - if ( - Input::get( 'wpp-action' ) - && wp_verify_nonce( Input::get( 'wpp-nonce' ), 'temp-disable' ) - ) { - $status = ( Input::get( 'wpp-action' ) == 'disable' ) ? true : false; - Option::update( 'wpp_disable', $status ); - File::saveSiteSettings( [ 'disable' => $status ] ); - } - - // Save settings - if ( - Input::post( 'wpp-save-settings' ) - && wp_verify_nonce( Input::post( 'wpp-nonce' ), 'save-settings' ) - ) { - wpp_save_settings(); - } - - // Clear log file - if ( - Input::post( 'wpp-clear-log' ) - && wp_verify_nonce( Input::post( 'wpp-nonce' ), 'save-settings' ) - ) { - wpp_clear_log(); - } - - // Export settings - if ( - Input::get( 'wpp-export-settings' ) - && wp_verify_nonce( Input::get( 'wpp-nonce' ), 'export-settings' ) - ) { - wpp_export_settings_file(); - } - - // Import settings - if ( isset( $_FILES[ 'wpp_import_settings' ] ) ) { - wpp_import_settings( $_FILES ); - } - - - // Clear cache after post is added or updated - if ( Option::boolval( 'update_clear' ) ) { - add_action( - 'save_post', - [ 'WPP\Cache', 'clear' ], - 999 - ); - } - - // Clear cache after post is deleted - if ( Option::boolval( 'delete_clear' ) ) { - add_action( - 'delete_post', - [ 'WPP\Cache', 'clear' ], - 999 - ); - } - - // Save post options - add_action( - 'save_post', - 'wpp_save_post_options' - ); - - // Plugin compatibility check - add_action( - 'admin_init', - 'wpp_compatibility_check' - ); - - // Add top bar menu - add_action( - 'admin_init', - 'wpp_add_top_menu_item' - ); - - // Enqueue back-end scripts and styles - add_action( - 'admin_init', - 'wpp_enqueue_backend_assets' - ); - - // Initialize UI elements registered by add-ons - add_action( - 'admin_init', - [ 'WPP\UI', 'register' ] - ); - - // WPP admin page - add_action( - 'admin_menu', - 'wpp_add_menu_item' - ); - - // Filter image sizes - add_filter( - 'intermediate_image_sizes_advanced', - 'wpp_get_defined_image_sizes' - ); - - // Add page meta box - add_action( - 'add_meta_boxes', - 'wpp_add_metabox' - ); - - - } ); - - // Admin actions - add_action( 'admin_init', function() { - - // Clear cache ajax action - add_action( - 'wp_ajax_wpp_clear_cache', - [ 'WPP\Cache', 'clear' ] - ); - - // Clear database ajax actions - add_action( - 'wp_ajax_wpp_clean_database', - 'wpp_ajax_database_actions' - ); - - // Images ajax actions - add_action( - 'wp_ajax_wpp_images_action', - 'wpp_ajax_image_actions' - ); - - // Deactivate incompatible plugin - add_action( - 'admin_post_deactivate_plugin', - 'wpp_deactivate_incompatible_plugin' - ); - - // Get critical CSS ajax action - add_action( - 'wp_ajax_wpp_get_critical_css_path', - 'wpp_get_critical_css_path' - ); - - // Get log content - add_action( - 'wp_ajax_wpp_get_log_content', - 'wpp_ajax_get_log_content' - ); - - // Remove excluded page - add_action( - 'wp_ajax_wpp_remove_post_options', - 'wpp_ajax_remove_post_options' - ); - - // Add disable enable link - add_filter( - 'plugin_action_links_' . plugin_basename( WPP_SELF ), - 'wpp_add_disable_link' - ); - - add_filter( - 'plugin_row_meta', - 'wpp_add_plugin_extra_links', - 10, - 2 - ); - - // Check if plugin is disabled - if ( Option::boolval( 'wpp_disable' ) ) { - wpp_notify( - sprintf( '%s %s - %s', WPP_PLUGIN_NAME, __( 'is temporarily disabled', 'wpp' ), - '' . __( 'Enable', 'wpp' ) . ''), - 'warning', - false - ); - } - - // Check the size of log file - if ( - Option::boolval( 'enable_log' ) - && wpp_is_log_file_too_large() - ) { - wpp_notify( - sprintf( __( '%s: Log file is getting large, either clear the log or disable troubleshooting logging', 'wpp' ), WPP_PLUGIN_NAME ), - 'warning', - false - ); - } - - // Check if htaccess is writable and server is apache - if ( - wpp_get_server_software( 'apache' ) - && ! wpp_is_htaccess_writable() - ) { - wpp_notify( - sprintf( __( '%s: missing writing permissions for file .htaccess', 'wpp' ), WPP_PLUGIN_NAME ), - 'error', - false - ); - } - - // Check if Cloudflare api key and email are set - if ( - Option::boolval( 'cf_enabled' ) - && ! Option::boolval( 'cf_api_key' ) - && ! Option::boolval( 'cf_email' ) - ) { - wpp_notify( - sprintf( __( '%s: enter Cloudflare credentials', 'wpp' ), WPP_PLUGIN_NAME ), - 'warning', - false - ); - } - - // load settings file - if ( - Input::get( 'load' ) - && wp_verify_nonce( Input::get( 'nonce' ), 'load-config' ) - ) { - wpp_load_settings( Input::get( 'load' ) ); - } - - } ); - -} ); \ No newline at end of file diff --git a/includes/functions/cron.php b/includes/functions/cron.php deleted file mode 100644 index 0e6f1c4..0000000 --- a/includes/functions/cron.php +++ /dev/null @@ -1,252 +0,0 @@ - -* @package WPP -*/ - -use WPP\DB; -use WPP\File; -use WPP\Cache; -use WPP\Option; - -/** - * Get cron schedule intervals - * - * @param array $schedules - * @return array - * @since 1.0.0 - */ -function wpp_get_cron_schedules( $schedules = [] ) { - - - $schedules[ 'wpp_daily' ] = [ - 'interval' => strtotime( '+ 1 day') - time(), - 'display' => __( 'Daily', 'wpp' ) - ]; - - $schedules[ 'wpp_weekly' ] = [ - 'interval' => strtotime( '+ 1 week') - time(), - 'display' => __( 'Weekly', 'wpp' ) - ]; - - $schedules[ 'wpp_monthly' ] = [ - 'interval' => strtotime( '+ 1 month') - time(), - 'display' => __( 'Monthly', 'wpp' ) - ]; - - $schedules[ 'wpp_every_minute' ] = [ - 'interval' => 60, - 'display' => __( 'Every minute', 'wpp' ) - ]; - - $schedules[ 'wpp_every_5_minutes' ] = [ - 'interval' => 60 * 5, - 'display' => __( 'Every 5 minutes', 'wpp' ) - ]; - - return $schedules; - -} - -/** - * Preload cache - * - * @return void - * @since 1.0.0 - */ -function wpp_cron_preload_cache() { - - // Bail if preload file not exists - if ( ! file_exists( $file = WPP_CACHE_DIR . 'preload.json' ) ) { - return false; - } - - $data = File::getJson( $file ); - - if ( empty( $data ) ) { - wpp_log( 'Cache preloading stop - nothing to preload' ); - exit; - } - - wpp_log( 'Cache preloading start' ); - - $max_url = defined( 'WPP_PRELOAD_URL_NUMBER' ) ? WPP_PRELOAD_URL_NUMBER : 5; - - $i = 1; - - foreach( $data as $j => $url ) { - - // Check if cache file already exists - if ( Cache::exists( $url ) ) { - unset( $data[ $j ] ); - continue; - } - - $url = esc_url( $url ); - - $request = wp_remote_get( $url, [ - 'timeout' => 3 - ] ); - - if ( is_wp_error( $request ) ) { - wpp_log( sprintf( 'Error while trying to preload cache for page %s %s', $url, $request->get_error_message() ) ); - } - - unset( $data[ $j ] ); - - if ( $i == $max_url ) break; - - $i++; - - } - - File::saveJson( $file, $data ); - -} - - - -/** - * Prepare cache preload - * - * @return void - * @since 1.0.0 - */ -function wpp_cron_prepare_preload() { - - // Bail if preload file already exists - if ( file_exists( WPP_CACHE_DIR . 'preload.json' ) ) { - return false; - } - - $urls = []; - $sitemaps = Option::get( 'sitemaps_list', [] ); - - foreach( $sitemaps as $url ) { - - $url = esc_url( $url ); - - // Validate sitemap url - if ( ! filter_var( $url, FILTER_VALIDATE_URL ) ) { - - wpp_log( sprintf( 'Invalid sitemap url: %s', $url ) ); - - continue; - } - - - // Get the sitemap - $request = wp_remote_get( $url ); - - if ( is_wp_error( $request ) ) { - - wpp_log( sprintf( 'Error fetching sitemap url: %s %s', $url, $request->get_error_message() ) ); - - return false; - } - - $data = wp_remote_retrieve_body( $request ); - - if ( empty( $data ) ) { - - wpp_log( sprintf( 'Sitemap %s is empty', $url ) ); - - return false; - } - - // Load XML - libxml_use_internal_errors( true ); - - $xml = simplexml_load_string( $data ); - - if ( false === $xml ) { - - libxml_clear_errors(); - - wpp_log( sprintf( 'Invalid XML in sitemap %s', $url ) ); - - return false; - } - - - // Get urls - $num = count( $xml->url ); - - if ( $num > 0 ) { - for ( $i = 0; $i < $num; $i++ ) { - $urls[] = strval( $xml->url[ $i ]->loc ); - } - } - - } - - // Save file - if ( ! empty( $urls ) ) { - - File::saveJson( WPP_CACHE_DIR . 'preload.json', $urls ); - - wpp_log( sprintf( 'Collected %s URLs from %s sitemap(s) for cache preloading', count( $urls ), count( $sitemaps ) ) ); - - } else { - - wpp_log( 'URLs for cache preloading not found' ); - - } - - -} - - - -/** - * Clear DB and update next schedule info - * - * @return void - * @since 1.0.0 - */ -function wpp_cron_db_cleanup() { - - wpp_log( 'Automatic database cleanup started' ); - - // Clear trash - if ( Option::boolval( 'db_cleanup_trash' ) ) { - DB::clearTrash(); - } - - // Clear spam - if ( Option::boolval( 'db_cleanup_spam' ) ) { - DB::clearSpam(); - } - - // Clear revisions - if ( Option::boolval( 'db_cleanup_revisions' ) ) { - DB::clearRevisions(); - } - - // Clear revisions - if ( Option::boolval( 'db_cleanup_transients' ) ) { - DB::clearTransients(); - } - - // Clear cron tasks - if ( Option::boolval( 'db_cleanup_cron' ) ) { - DB::clearCronTasks(); - } - - // Clear auto drafts - if ( Option::boolval( 'db_cleanup_autodrafts' ) ) { - DB::clearAutoDrafts(); - } - - $schedules = wpp_get_cron_schedules(); - $frequency = Option::get( 'db_cleanup_frequency' ); - - if ( array_key_exists( $frequency, $schedules ) ) { - Option::update( 'db_cleanup_next', ( time() + $schedules[ $frequency ][ 'interval' ] ) ); - } else { - Option::remove( 'db_cleanup_next' ); - } - -} \ No newline at end of file diff --git a/includes/functions/db.php b/includes/functions/db.php deleted file mode 100644 index 2e1487b..0000000 --- a/includes/functions/db.php +++ /dev/null @@ -1,88 +0,0 @@ - -* @package WPP -*/ - - -use WPP\DB; -use WPP\Input; - - -/** - * Register database ajax actions - * - * @return json - * @since 1.0.0 - */ -function wpp_ajax_database_actions() { - - check_ajax_referer( 'wpp-ajax', 'nonce' ); - - switch( Input::post( 'db_action' ) ) { - - case 'revisions': - - DB::clearRevisions(); - wp_send_json( [ 'status' => 1 ] ); - - break; - - case 'spam': - - DB::clearSpam(); - wp_send_json(['status' => 1]); - - break; - - case 'trash': - - DB::clearTrash(); - wp_send_json(['status' => 1]); - - break; - - case 'transients': - - DB::clearTransients(); - wp_send_json(['status' => 1]); - - break; - - case 'cron': - - DB::clearCronTasks(); - wp_send_json(['status' => 1]); - - break; - - case 'drafts': - - DB::clearAutoDrafts(); - wp_send_json(['status' => 1]); - - break; - - case 'all': - - DB::clearRevisions(); - DB::clearSpam(); - DB::clearTrash(); - DB::clearTransients(); - DB::clearCronTasks(); - DB::clearAutoDrafts(); - - wp_send_json(['status' => 1]); - - break; - - } - - wp_send_json( [ - 'status' => 0, - 'note' => __( 'You are doing it wrong', 'wpp' ) - ] ); - -} \ No newline at end of file diff --git a/includes/functions/ecommerce.php b/includes/functions/ecommerce.php deleted file mode 100644 index 8681c20..0000000 --- a/includes/functions/ecommerce.php +++ /dev/null @@ -1,66 +0,0 @@ - -* @package WPP -*/ - -use WPP\Url; - -/** - * Exclude WooCommerce pages - * - * @param array $exclude - * @return array - * @since 1.0.0 - */ -function wpp_exclude_woocommerce_pages( $exclude ) { - - // Check if woocommerce class exists - if ( class_exists( 'WooCommerce' ) ) { - if ( - is_checkout() - || is_account_page() - || is_cart() - ) { - array_push( $exclude, Url::current() ); - } - } - - return $exclude; - -} - -// Exclude WooCommerce pages -add_filter( 'wpp_exclude_urls', 'wpp_exclude_woocommerce_pages' ); - -/** - * Exclude EDD pages checkout, account and cart - * - * @param array $exclude - * @return array - * @since 1.0.0 - */ -function wpp_exclude_edd_pages( $exclude ) { - - if ( class_exists( 'Easy_Digital_Downloads' )) { - - if ( - edd_is_checkout() - || edd_is_success_page() - || edd_is_failed_transaction_page() - || edd_is_purchase_history_page() - || edd_is_test_mode() - ) { - array_push( $exclude, Url::current() ); - } - - } - - return $exclude; - -} - -// Exclude EDD pages -add_filter( 'wpp_exclude_urls', 'wpp_exclude_edd_pages' ); \ No newline at end of file diff --git a/includes/functions/exclude.php b/includes/functions/exclude.php deleted file mode 100644 index 07ba66b..0000000 --- a/includes/functions/exclude.php +++ /dev/null @@ -1,49 +0,0 @@ - -* @package WPP -*/ - -use WPP\Option; - -/** - * Exclude manually added pages from - * Cache - * CSS optimization - * JavaScript optimization - * Image optimization - * Iframe lazyload - * - * @param array $exclude - * @return array - * @since 1.0.3 - */ -add_action( 'init', function() { - - $hooks = [ - 'wpp_css_url_exclude' => 'css_post_exclude', - 'wpp_js_url_exclude' => 'js_post_exclude', - 'wpp_exclude_urls' => 'cache_post_exclude', - 'wpp_image_url_exclude' => 'image_url_exclude', - 'wpp_video_url_exclude' => 'video_url_exclude', - ]; - - foreach( $hooks as $filter => $option ) { - - add_filter( $filter, function( $exclude ) use( $option ) { - - $pages = Option::get( $option, [] ); - - foreach ( $pages as $id ) { - $exclude[] = get_permalink( $id ); - } - - return $exclude; - - } ); - - } - -} ); \ No newline at end of file diff --git a/includes/functions/files.php b/includes/functions/files.php deleted file mode 100644 index 26d7726..0000000 --- a/includes/functions/files.php +++ /dev/null @@ -1,389 +0,0 @@ - -* @package WPP -*/ - -use WPP\File; -use WPP\Option; - -/** - * Get clean file name - * - * @since 1.0.0 - * @return string - */ -function wpp_get_file_clean_name( $file ) { - return sanitize_title( urldecode( $file ) ); -} - - -/** - * Get cache size for given file type extension - * - * @since 1.0.0 - * @param string $type - * @return int - */ -function wpp_cache_files_size( $type ) { - - $size = 0; - - $cache_dir = WPP_CACHE_DIR; - - if ( is_multisite() ) { - $uri = parse_url( get_bloginfo( 'url' ) ); - $cache_dir = WPP_CACHE_DIR . $uri[ 'host' ] . $uri[ 'path' ]; - } - - if ( ! is_dir( $cache_dir ) ) - return $size; - - $files = new \RecursiveIteratorIterator( - new \RecursiveDirectoryIterator( $cache_dir, \RecursiveDirectoryIterator::SKIP_DOTS ), - \RecursiveIteratorIterator::CHILD_FIRST - ); - - foreach ( $files as $file ) { - - if ( $file->isFile() ) { - - if ( $file->getExtension() == $type ) { - $size += $file->getSize(); - } - - } - } - - return $size; - -} - - -/** - * Get human readable file size - * - * @since 1.0.0 - * @param integer $bytes - * @param integer $decimals - * @return string - */ -function wpp_filesize( $bytes, $decimals = 2 ) { - - $size = array( 'B', 'KB', 'MB', 'GB', 'TB' ); - $factor = floor( ( strlen( $bytes ) - 1 ) / 3 ); - - return sprintf( "%.{$decimals}f", $bytes / pow( 1024, $factor ) ) . @$size[ $factor ]; -} - - -/** - * Guess if file is minified - * - * This function will try to guess if file is already minified by checking the file name - * Most of the time minified files have .min.* extension, so we check for that in file name - * Also the function will return true for every file located in wp-includes directory - * - * @since 1.0.0 - * @param string $file - * @return boolean - */ -function wpp_is_minified( $file ) { - - if ( strstr( $file, '.min.' ) || strstr( $file, 'wp-includes/' ) ) { - return true; - } - - return false; - -} - - -/** - * Check if htaccess file is writable - * - * @return boolean - * @since 1.0.0 - */ -function wpp_is_htaccess_writable() { - return is_writable( trailingslashit( ABSPATH ) . '.htaccess' ); -} - - -/** - * Add remove definitions from htaccess file - * - * @since 1.0.0 - * @param string $action - * @param string $file - * @return void - */ -function wpp_update_htaccess( $action, $file ) { - - $htaccess = trailingslashit( ABSPATH ) . '.htaccess'; - $definitionsFile = WPP_DATA_DIR . 'definitions/' . $file . '.apache.txt'; - $customDefinitionsFile = WPP_DATA_DIR . 'definitions/' . 'custom.' . $file . '.apache.txt'; - - // Use custom definitions if exists - if ( file_exists( $customDefinitionsFile ) ) { - $definitionsFile = $customDefinitionsFile; - } - - if ( ! file_exists( $definitionsFile ) ) { - - wpp_log( sprintf( '%s not exists', $definitionsFile ) ); - - return false; - } - - $htaccess_content = File::get( $htaccess ); - $definitions_content = File::get( $definitionsFile ); - - switch ( $action ) { - - case 1: - case 'add': - - if ( ! file_exists( $htaccess ) ) { - - touch( $htaccess ); - - } else { - - if ( ! wpp_is_htaccess_writable() ) { - - wpp_log( '.htaccess file not writable' ); - - return false; - } - - } - - - switch( $file ) { - - case 'cache': - - $definitions_content = str_replace( '{BASEDIR}', wpp_get_basedir(), $definitions_content ); - $definitions_content = str_replace( '{CONTENT_DIR}', basename( WP_CONTENT_DIR ), $definitions_content ); - - // Get excluded user agents - $agents = Option::get( 'user_agents_exclude', [] ); - - // Check if exclude search engines option is on - if ( Option::boolval( 'search_bots_exclude' ) ) { - $agents = array_merge( $agents, wpp_get_search_engines() ); - } - - - if ( ! empty( $agents ) ) { - - $agents = array_map( function( $agent ) { - - $agent = trim( $agent ); - - // If user agent is empty we should return something to prevent 500 error - if ( empty( $agent ) ) { - return 'WPP'; - } - - return preg_quote( $agent ); - - }, $agents ); - - $condition = 'RewriteCond %{HTTP_USER_AGENT} !(' . implode( '|', $agents ) . ') [NC]'; - - } else { - $condition = ''; - } - - $definitions_content = str_replace( '{USER_AGENTS}', $condition, $definitions_content ); - $definitions_content = str_replace( '{AMP_TAG}', wpp_get_constant( 'WPP_AMP_TAG', 'amp' ), $definitions_content ); - - if ( ! preg_match( '/# WPP Cache load start(.*?)# WPP Cache load end/s', $htaccess_content ) ) { - File::prepend( $htaccess, $definitions_content ); - } - - break; - - case 'gzip': - - if ( ! preg_match( '/# WPP GZIP start(.*?)# WPP GZIP end/s', $htaccess_content ) ) { - File::append( $htaccess, $definitions_content ); - } - - break; - - case 'expire': - - if ( ! preg_match( '/# WPP Expire start(.*?)# WPP Expire end/s', $htaccess_content ) ) { - File::append( $htaccess, $definitions_content ); - } - - break; - } - - - - break; - - case 0: - case 'remove': - - if ( file_exists( $htaccess ) ) { - - switch( $file ) { - - case 'cache': - - if ( preg_match( '/# WPP Cache load start(.*?)# WPP Cache load end/s', $htaccess_content, $match ) ) { - $content = str_replace( PHP_EOL . $match[ 0 ] . PHP_EOL, '', $htaccess_content ); - File::save( $htaccess, $content ); - } - - break; - - case 'gzip': - - if ( preg_match( '/# WPP GZIP start(.*?)# WPP GZIP end/s', $htaccess_content, $match ) ) { - $content = str_replace( PHP_EOL . $match[ 0 ] . PHP_EOL, '', $htaccess_content ); - File::save( $htaccess, $content ); - } - - break; - - case 'expire': - - if ( preg_match( '/# WPP Expire start(.*?)# WPP Expire end/s', $htaccess_content, $match ) ) { - $content = str_replace( PHP_EOL . $match[ 0 ] . PHP_EOL, '', $htaccess_content ); - File::save( $htaccess, $content ); - } - - break; - } - - } - - break; - } - -} - - -/** - * Get site base directory - * - * @return string - * @since 1.0.0 - */ -function wpp_get_basedir() { - - $root_dir = basename( WPP\Input::server( 'DOCUMENT_ROOT' ) ); - $base_dir = basename( ABSPATH ); - - if ( $root_dir != $base_dir ) { - return sprintf( '/%s/', $base_dir ); - } - - return '/'; - -} - - -/** - * Get site log file path - * - * @return void - * @since 1.0.0 - */ -function wpp_get_log_file() { - - if ( is_multisite() ) - return WPP_CACHE_DIR . get_current_blog_id() . '_wpp.log'; - - return WPP_CACHE_DIR . 'wpp.log'; -} - -/** - * Write log - * - * @param string $action - * @return void - * @since 1.0.0 - */ -function wpp_log( $action ) { - - if ( ! Option::boolval( 'enable_log' ) ) return; - - File::append( wpp_get_log_file(), sprintf( - '[%s] %s', - date( 'Y-m-d H:i:s' ), - $action . PHP_EOL - ) ); - -} - - - -/** - * Clear the log file - * - * @return void - * @since 1.0.0 - */ -function wpp_clear_log() { - - if ( file_exists( $file = wpp_get_log_file() ) ) { - unlink( $file ); - } - - wpp_notify( 'Log file cleared' ); - -} - - -/** - * Get log content via ajax - * - * @return void - * @since 1.0.0 - */ -function wpp_ajax_get_log_content() { - - check_ajax_referer( 'wpp-ajax', 'nonce' ); - - if ( file_exists( $file = wpp_get_log_file() ) ) { - echo File::get( $file ); - } - - exit; - -} - - - -/** - * Check if log file is too large - * - * @return void - * @since 1.0.0 - */ -function wpp_is_log_file_too_large() { - - /** - * Set log size filter - * @since 1.0.0 - */ - $log_size = apply_filters( 'wpp-log-size-kb', 20 ); - - if ( file_exists( $log_file = wpp_get_log_file() ) ) { - if ( filesize( $log_file ) > ( intval( $log_size ) * 1024 ) ) { - return true; - } - } - - return false; - -} \ No newline at end of file diff --git a/includes/functions/frontend.php b/includes/functions/frontend.php deleted file mode 100644 index 48da6d8..0000000 --- a/includes/functions/frontend.php +++ /dev/null @@ -1,92 +0,0 @@ - - * @package WPP - */ - -use WPP\Url; -use WPP\Cache; -use WPP\Option; - -add_action( 'wpp_frontend_init', function() { - - add_action( 'init', function() { - // Check if user is logged in - if ( is_user_logged_in() && current_user_can( 'manage_options' ) ) - wpp_add_top_menu_item(); - }); - - // Disable emoji - if ( Option::boolval( 'disable_emoji' ) ) - add_action( 'init', 'wpp_disable_emoji' ); - - // Disable embeds - if ( Option::boolval( 'disable_embeds' ) ) - add_action( 'init', 'wpp_disable_embeds', 99999 ); - - // Hook up - add_action( 'wp', function() { - // Do not parse template if it's an ajax request - if ( ! wpp_is_ajax() ) - is_404() || ob_start( [ 'WPP\Parser', 'init' ] ); - } ); - - // Referesh page cache on POST request - if ( ! empty( $_POST ) ) { - - if ( file_exists( $page = Cache::getFileName() ) ) { - - unlink( $page ); - - foreach( [ '_gz', '_amp' ] as $extension ) { - if ( file_exists( $page . $extension ) ) - unlink( $page . $extension ); - } - - } - - } - -} ); - - -// Save cache file -add_filter( 'wpp_template', function( $template, $is_amp, $time ) { - - // Should we cache this page ? - if ( - Option::boolval( 'cache' ) - && empty( $_POST ) - && ! is_user_logged_in() - ) { - - /** - * Filter excluded urls - * - * @since 1.0.0 - */ - $excluded = apply_filters( 'wpp_exclude_urls', Option::get( 'cache_url_exclude', [] ) ); - - // Check if page is excluded - if ( ! wpp_is_url_excluded( Url::current(), $excluded ) ) { - - if ( ! $is_amp ) { - - $template .= sprintf( - '', - number_format( ( microtime( true ) - $time ), 2 ), - date( get_option( 'date_format' ) ), - date( get_option( 'time_format' ) ) - ); - - } - - Cache::save( $template, $is_amp ); - - } - - } - -}, 10, 3); \ No newline at end of file diff --git a/includes/functions/image.php b/includes/functions/image.php deleted file mode 100644 index 02f3eb0..0000000 --- a/includes/functions/image.php +++ /dev/null @@ -1,211 +0,0 @@ - -* @package WPP -*/ - -use WPP\Input; -use WPP\Image; -use WPP\Option; - - -/** - * Get defined image sizes - * - * @param array $sizes - * @return void - * @since 1.0.0 - */ -function wpp_get_defined_image_sizes( $sizes ) { - - $sizes = []; - - $custom_sizes = Image::getAllDefinedSizes(); - - foreach( $custom_sizes as $name => $size ) { - - $sizes[ $name ] = [ - 'width' => $size[ 0 ], - 'height' => $size[ 1 ], - 'crop' => isset( $size[ 2 ] ) ? $size[ 2 ] : '' - ]; - - } - - return $sizes; - -} - - -/** - * Register image ajax actions - * - * @return void - * @since 1.0.3 - */ -function wpp_ajax_image_actions() { - - check_ajax_referer( 'wpp-ajax', 'nonce' ); - - switch ( Input::post( 'image_action' ) ) { - - case 'add_size': - - // get all sizes - $all_sizes = Image::getAllDefinedSizes(); - - parse_str( Input::post( 'size' ), $size ); - - // check size name - if ( array_key_exists( $size[ 'name' ], $all_sizes ) ) { - - wpp_log( sprintf( 'Image size %s already in use', $size[ 'name' ] ) ); - - wp_send_json( [ - 'status' => 0, - 'error' => __( 'Size name already in use', 'wpp' ) - ] ); - - } - - $sizes = Option::get( 'image_sizes', [] ); - - $sizes = array_merge( $sizes, [ - $size[ 'name' ] => [ - intval( $size[ 'width' ] ), - intval( $size[ 'height' ] ), - isset( $size[ 'crop' ] ) ? 1 : '' - ] - ]); - - if ( Option::update( 'image_sizes', $sizes ) ) { - - wpp_log( sprintf( 'Image size %s added', $size[ 'name' ] ) ); - - wp_send_json( [ 'status' => 1 ] ); - } - - break; - - case 'remove_size': - - $name = Input::post( 'size' ); - - // Image sizes defined from WPP - $wpp_sizes = Option::get( 'image_sizes', [] ); - - if ( array_key_exists( $name, $wpp_sizes ) ) { - - unset( $wpp_sizes[ $name ] ); - - if ( Option::update( 'image_sizes', $wpp_sizes ) ) { - - wpp_log( sprintf( 'Image size %s removed', $name ) ); - - wp_send_json( [ 'status' => 1 ] ); - } - - } - - // The rest of image sizes - if ( array_key_exists( $name, Image::sizes() ) ) { - - $removed_sizes = Option::get( 'image_sizes_remove', [] ); - - if ( ! in_array( $name, $removed_sizes ) ) { - - array_push( $removed_sizes, $name ); - - if ( Option::update( 'image_sizes_remove', $removed_sizes ) ) { - - wpp_log( sprintf( 'Image size %s removed', $name ) ); - - wp_send_json( [ 'status' => 1 ] ); - } - - } - - } - - break; - - case 'restore_sizes': - - Option::update( 'image_sizes', [] ); - Option::update( 'image_sizes_remove', [] ); - - wpp_log( 'Image sizes restored' ); - - wp_send_json( [ 'status' => 1 ] ); - - - break; - - case 'get_all_sizes': - - wp_send_json( [ 'sizes' => Image::getAllDefinedSizesJson( false ) ] ); - - break; - - case 'regenerate_thumbnails': - - if ( Input::post( 'remove_flag' ) === 'true' ) { - delete_post_meta_by_key( 'wpp_thumb_regenerated' ); - wpp_log( 'Thumb regeneration start' ); - } - - if ( $image = Image::getNonRegenerated( 1 ) ) { - - if ( $file = get_attached_file( $image[ 0 ]->ID ) ) { - - $info = pathinfo( $file ); - - // Delete old thumbs - foreach( glob( $info[ 'dirname' ] . DIRECTORY_SEPARATOR . $info[ 'filename' ] . '-*.' . $info[ 'extension' ] ) as $thumb ) { - unlink( $thumb ); - } - - $meta = wp_generate_attachment_metadata( $image[ 0 ]->ID, $file ); - - wp_update_attachment_metadata( $image[ 0 ]->ID, $meta ); - - add_post_meta( $image[ 0 ]->ID, 'wpp_thumb_regenerated', true ); - - } - - $total = count( Image::getAllImages() ); - $pending = count( Image::getNonRegenerated() ); - $percent = ( $total - $pending != 0 ) ? ( ( $total - $pending ) / $total ) * 100 : 0; - - $filename = str_replace( wp_normalize_path( ABSPATH ), '', wp_normalize_path( $file ) ); - - wpp_log( sprintf( 'Thumbs regenerated for %s', $filename ) ); - - wp_send_json( [ - 'process' => true, - 'pending' => $pending, - 'total' => $total, - 'info' => sprintf( _n( '%s image left', '%s images left', $pending, 'wpp' ), $pending ), - 'percent' => number_format( $percent, 2 ) - ] ); - - } else { - - wpp_log( 'Thumb regeneration end' ); - - wp_send_json( [ - 'process' => false, - 'pending' => 0, - 'total' => 0, - 'info' => __( 'Done', 'wpp' ), - 'percent' => 100 - ] ); - - } - - break; - - } -} diff --git a/includes/functions/index.html b/includes/functions/index.html deleted file mode 100644 index e69de29..0000000 diff --git a/includes/functions/miscellaneous.php b/includes/functions/miscellaneous.php deleted file mode 100644 index ba573ae..0000000 --- a/includes/functions/miscellaneous.php +++ /dev/null @@ -1,544 +0,0 @@ - -* @package WPP -*/ - -use WPP\Url; -use WPP\File; -use WPP\Cache; -use WPP\Input; -use WPP\Option; - -/** - * Check if array key exists - * - * @since 1.0.0 - * @param string $key - * @param array $array - * @param mixed $array_key - * - * @return bool - */ -function wpp_key_exists( $key, $array, $array_key = null ) { - - if ( ! $key ) return false; - - if ( ! is_null( $array_key ) ) { - - if ( isset( $array[ $array_key ] ) ) { - return in_array( $key, array( $array[ $array_key ] ) ); - } - - return false; - - } - if ( is_array( $array ) ) { - return array_key_exists( $key, $array ); - } - - return false; -} - -/** -* Check if key or array of keys exists in array or string -* -* @since 1.0.0 -* @param mixed $needle -* @param mixed $haystack -* -* @return bool -*/ -function wpp_in_array( $needle, $haystack ) { - - if ( is_array( $needle ) ) { - - foreach( $needle as $_needle ) { - - if ( empty( $_needle ) ) continue; - - if ( is_array( $haystack ) ) { - - foreach( $haystack as $_haystack ) { - if ( stristr( $_haystack, $_needle ) ) { - return true; - } - } - - } - - if ( stristr( $haystack, $_needle ) ) { - return true; - } - - } - - return false; - } - - if ( is_array( $haystack ) ) { - - foreach ( $haystack as $_haystack ) { - if ( stristr( $_haystack, $needle ) ) { - return true; - } - } - - return false; - } - - if ( empty( $needle ) ) return false; - - return stristr( $haystack, $needle ); - -} - - -/** - * Preload home page - * - * @return void - * @since 1.0.0 - */ -function wpp_preload_homepage() { - - $request = wp_remote_get( site_url(), [ - 'timeout' => 5 - ] ); - - if ( is_wp_error( $request ) ) { - wpp_log( sprintf( 'Error while trying to preload cache for home page %s', $request->get_error_message() ) ); - } - -} - - -/** - * Cleanup site header - * - * @since 1.0.0 - * @return void - */ -function wpp_cleanup_header() { - - remove_action( 'wp_head', 'wp_generator' ); - remove_action( 'wp_head', 'wlwmanifest_link' ); - remove_action( 'wp_head', 'rsd_link' ); - remove_action( 'wp_head', 'wp_shortlink_wp_head' ); - remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10 ); - - add_filter( 'the_generator', '__return_false' ); - -} - - -/** - * Disable Emoji - * - * @since 1.1.6 - * @return void - */ -function wpp_disable_emoji() { - remove_action( 'wp_head', 'print_emoji_detection_script', 7 ); - remove_action( 'admin_print_scripts', 'print_emoji_detection_script' ); - remove_action( 'wp_print_styles', 'print_emoji_styles' ); - remove_action( 'admin_print_styles', 'print_emoji_styles' ); - remove_filter( 'the_content_feed', 'wp_staticize_emoji' ); - remove_filter( 'comment_text_rss', 'wp_staticize_emoji' ); - remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' ); - add_filter( 'tiny_mce_plugins', 'wpp_disable_emojis_tinymce' ); - add_filter( 'wp_resource_hints', 'wpp_disable_emojis_remove_dns_prefetch', 10, 2 ); -} - -/** - * Remove the tinymce emoji plugin - * - * @since 1.1.6 - * @param array $plugins - * @return array - */ -function wpp_disable_emojis_tinymce( $plugins ) { - - if ( is_array( $plugins ) ) - return array_diff( $plugins, [ 'wpemoji' ] ); - - return []; -} - -/** -* Remove emoji CDN hostname from DNS prefetching hints - -* @since 1.1.6 -* @param array $urls -* @param string $relation -* @return array -*/ -function wpp_disable_emojis_remove_dns_prefetch( $urls, $relation ) { - - if ( 'dns-prefetch' == $relation ) { - $url = apply_filters( 'emoji_svg_url', 'https://s.w.org/images/core/emoji/2/svg/' ); - $urls = array_diff( $urls, [ $url ] ); - } - - return $urls; -} - - -/** - * Disable WP embeds - * - * @since 1.1.6 - * @return void - */ -function wpp_disable_embeds() { - - remove_action( 'rest_api_init', 'wp_oembed_register_route' ); - remove_action( 'wp_head', 'wp_oembed_add_discovery_links' ); - remove_action( 'wp_head', 'wp_oembed_add_host_js' ); - - remove_filter( 'oembed_dataparse', 'wp_filter_oembed_result', 10 ); - remove_filter( 'pre_oembed_result', 'wp_filter_pre_oembed_result', 10 ); - - add_filter( 'embed_oembed_discover', '__return_false' ); - add_filter( 'tiny_mce_plugins', 'wpp_disable_embeds_tinymce_plugin' ); - add_filter( 'rewrite_rules_array', 'wpp_disable_embeds_rewrites' ); - -} - -/** - * Remove the tinymce embed plugin - * - * @since 1.1.6 - * @param array $plugins - * @return array - */ -function wpp_disable_embeds_tinymce_plugin( $plugins ) { - return array_diff( $plugins, [ 'wpembed' ] ); -} - -/** - * Disable embed rewrite rules - * - * @since 1.1.6 - * @param array $rules - * @return array - */ -function wpp_disable_embeds_rewrites( $rules ) { - - foreach ( $rules as $rule => $rewrite ) { - if (false !== strpos( $rewrite, 'embed=true' ) ) - unset( $rules[ $rule ] ); - } - - return $rules; -} - - -/** - * Enqueue back-end scripts and styles - * - * @return void - * @since 1.0.0 - */ -function wpp_enqueue_backend_assets() { - - // Enqueue scripts and styles - wp_enqueue_script( 'wpp-confirms', WPP_ASSET_URL . 'confirm.js', [ 'jquery' ], WPP_VERSION ); - wp_enqueue_script( 'wpp-settings', WPP_ASSET_URL . 'admin.js', [ 'jquery', 'jquery-ui-autocomplete' ], WPP_VERSION ); - - wp_localize_script( 'wpp-settings', 'WPP', [ - 'path' => WPP_ASSET_URL, - 'site_url' => trailingslashit( site_url() ), - 'admin_url' => trailingslashit( admin_url() ), - 'nonce' => wp_create_nonce( 'wpp-ajax' ), - 'lang' => [ - 'confirm' => __( 'Are you sure?', 'wpp' ), - 'remove' => __( 'Remove', 'wpp' ), - 'yes' => __( 'Yes', 'wpp' ), - 'add_url' => __( 'Add URL', 'wpp' ), - 'disable_everywhere' => __( 'Disable everywhere', 'wpp' ), - 'disable_selected_url' => __( 'Disable only on selected URL', 'wpp' ), - 'disable_everywhere_except' => __( 'Disable everywhere except on selected URL', 'wpp' ), - 'something_went_wrong' => __( 'Something went wrong', 'wpp' ), - 'regenerate_thumbs' => __( 'Regenerating thumbs', 'wpp' ), - 'regenerate_thumbs_info' => __( 'Regenerate thumbnails may take a long time. Do not close your browser.', 'wpp' ), - ], - 'autocomplete' => [ - 'css' => array_merge( - Option::get( 'theme_css_list', [] ), - Option::get( 'plugin_css_list', [] ) - ), - 'js' => array_merge( - Option::get( 'theme_js_list', [] ), - Option::get( 'plugin_js_list', [] ) - ) - ] - ] ); - - wp_enqueue_style( 'wpp-admin-css', WPP_ASSET_URL . 'style.css', [], WPP_VERSION ); - wp_enqueue_style( 'wpp-overlay', WPP_ASSET_URL . 'overlay.css', [], WPP_VERSION ); - wp_enqueue_style( 'wpp-confirm', WPP_ASSET_URL . 'confirm.css', [], WPP_VERSION ); - -} - - -/** - * Check if css/js optimization is disabled for logged in users - * - * @param string $type - * @return boolean - * @since 1.0.0 - */ -function wpp_is_optimization_disabled_for( $type ) { - - if ( ! in_array( $type, [ 'js', 'css' ] ) ) { - return false; - } - - if ( Option::boolval( $type . '_disable_loggedin' ) ) { - if ( is_user_logged_in() ) return true; - } - - return false; - -} - - -/** - * Check if resource is disabled for current url - * - * @since 1.0.0 - * @return bool - */ -function wpp_is_resource_disabled( $type, $resource ) { - - if ( ! in_array( $type, [ 'js', 'css' ] ) ) { - return false; - } - - $disabled_positions = Option::get( $type . '_disable_position', [] ); - - // File is disabled everywhere - if ( wpp_key_exists( 'everywhere', $disabled_positions, $resource ) ) { - return true; - } - - - // File is disabled only for selected urls - if ( wpp_key_exists( 'selected', $disabled_positions, $resource ) ) { - - foreach( Option::get( $type . '_disable_selected', [] ) as $file => $urls ) { - - if ( $file == $resource ) { - - foreach( $urls as $url ) { - - $url = trailingslashit( wpp_url_replace_wildcards( $url ) ); - - // Try simple match first - if ( $url == Url::current() ) { - return true; - } - - /* - if ( stristr( Url::current(), $url ) ) { - return true; - } - */ - - preg_match( '#^' . $url . '$#', Url::current(), $match ); - - if ( isset( $match[0] ) ) { - return true; - } - - } - - } - - } - - return false; - - } - - // File is disabled everywhere except for current URL - if ( wpp_key_exists( 'except', $disabled_positions, $resource ) ) { - - $found = false; - - foreach( Option::get( $type . '_disable_except', [] ) as $file => $urls ) { - - if ( $file == $resource ) { - - $found = true; - - foreach( $urls as $url ) { - - $url = trailingslashit( wpp_url_replace_wildcards( $url ) ); - - // Try simple match first - if ( $url == Url::current() ) { - return false; - } - - /* - if ( stristr( Url::current(), $url ) ) { - return false; - } - */ - - preg_match( '#^' . $url . '$#', trailingslashit( Url::current() ), $match ); - - if ( isset( $match[0] ) ) { - return false; - } - - } - - } - - } - - // If file is found on page - if ( $found ) { - return true; - } - - } - - return false; - -} - - -/** - * Get critical CSS path from wpp server - * - * @since 1.0.0 - * @return array - */ -function wpp_get_critical_css_path() { - - /** - * Check nonce - * @since 1.0.6 - */ - check_ajax_referer( 'wpp-ajax', 'nonce' ); - - // Disable plugin - Option::update( 'wpp_disable', true ); - File::saveSiteSettings( [ 'disable' => true ] ); - - // Clear the cache - Cache::clear( false ); - - $response = wp_remote_post( - 'https://www.wp-performance.com/api', [ - 'timeout' => 90, - 'body' => [ - 'url' => site_url() - ] - ] - ); - - if ( is_wp_error( $response ) ) { - - $json = [ - 'status' => 0, - 'message' => $response->get_error_message() - ]; - - wpp_log( sprintf( 'Generating critical CSS error %s', $response->get_error_message() ) ); - - } else { - - $json = [ - 'status' => 1, - 'data' => wp_remote_retrieve_body( $response ) - ]; - - wpp_log( 'Critical CSS generated' ); - - } - - // Re-enable the plugin - Option::update( 'wpp_disable', false ); - File::saveSiteSettings( [ 'disable' => false ] ); - - wp_send_json( $json ); - -} - - -/** - * Get search engines list - * - * @return array - * @since 1.1.0 - */ -function wpp_get_search_engines() { - - return [ - 'Googlebot', - 'Bingbot', - 'Slurp', - 'DuckDuckBot', - 'Baiduspider', - 'YandexBot', - 'Sogou', - 'Exabot', - 'facebookexternalhit', - 'facebot', - 'ia_archiver' - ]; - -} - -/** - * Get constant value if constant is defined, otherwise return fallback - * - * @param string $constant - * @param mixed $fallback - * @return mixed - * @since 1.1.4 - */ -function wpp_get_constant( $constant, $fallback = false ) { - - return defined( $constant ) - ? constant( $constant ) - : $fallback; - -} - -/** - * Check if it's an ajax request - * @since 1.1.6 - * - * @return bool - */ -function wpp_is_ajax() { - - if( - Input::server( 'HTTP_X_REQUESTED_WITH' ) - && strtolower( Input::server( 'HTTP_X_REQUESTED_WITH' ) ) == 'xmlhttprequest' - || ( function_exists( 'wp_doing_ajax' ) && wp_doing_ajax() ) - ) { - return true; - } - - return false; - -} - -function wpp_add_plugin_extra_links( $links, $file ) { - - if ( strpos( $file, basename( WPP_SELF ) ) ) { - $links[] = 'Buy me a coffee ☕'; - } - - return $links; -} - \ No newline at end of file diff --git a/includes/functions/plugin.php b/includes/functions/plugin.php deleted file mode 100644 index 99eb1d2..0000000 --- a/includes/functions/plugin.php +++ /dev/null @@ -1,329 +0,0 @@ - -* @package WPP -*/ - -use WPP\Cache; -use WPP\Input; -use WPP\Option; - -/** - * WPP activate - * - * @return void - * @since 1.0.0 - */ -function wpp_activate() { - - // Define WP_CACHE - wpp_define_wp_cache(); - - // Copy advanced-cache.php file - if ( ! copy( - WPP_DIR . 'includes/advanced-cache.php', - trailingslashit( WP_CONTENT_DIR ) . 'advanced-cache.php' - ) ) { - wpp_log( sprintf( 'Error: cannot copy advanced-cache.php to %s directory. Check writing permissions', WP_CONTENT_DIR ) ); - } - - if ( 'apache' !== wpp_get_server_software() ) return; - - $backup = trailingslashit( ABSPATH ) . '.htaccess_wpp_backup'; - $htaccess = trailingslashit( ABSPATH ) . '.htaccess'; - - // Backup htaccess file - if ( file_exists( $htaccess ) ) { - - if( ! file_exists( $backup ) ) { - // Create htaccess backup - if ( copy( $htaccess, $backup ) ) - wpp_log( '.htaccess backup created' ); - - } - - } else { - // Create htaccess file if it doesn't exist - if ( ! touch( $htaccess ) ) - wpp_log( 'Error while trying to create .htaccess file. You will need to create it manually' ); - - } - -} - - -/** - * WPP deactivate - * - * @return void - * @since 1.0.0 - */ -function wpp_deactivate() { - - $backup = trailingslashit( ABSPATH ) . '.htaccess_wpp_backup'; - $htaccess = trailingslashit( ABSPATH ) . '.htaccess'; - - // Don't remove advanced-cache.php on multisite - if ( ! is_multisite() ) { - - // Delete advanced-cache.php file - if ( file_exists( $advanced_cache = trailingslashit( WP_CONTENT_DIR ) . 'advanced-cache.php' ) ) - unlink( $advanced_cache ); - - // Remove WP_CACHE constant - wpp_define_wp_cache( false ); - - } - - // Restore htaccess backup - if ( file_exists( $backup ) ) { - - if ( file_exists( $htaccess ) ) { - copy( $backup, $htaccess ); - wpp_log( '.htaccess backup restored' ); - } - - unlink( $backup ); - - } else { - - // .htaccess may not be present when WP performance is activated and thats why there is no htaccess backup - // lets do additional check if htaccess file exists so we can clean it up - if ( file_exists( $htaccess ) ) { - - // Browser cache - wpp_update_htaccess( 'remove', 'expire' ); - // Gzip compression - wpp_update_htaccess( 'remove', 'gzip' ); - // Htaccess load cache - wpp_update_htaccess( 'remove', 'cache' ); - - } - - } - - // Clear cron tasks - wp_clear_scheduled_hook( 'wpp_prepare_preload' ); - wp_clear_scheduled_hook( 'wpp_preload_cache' ); - wp_clear_scheduled_hook( 'wpp_db_cleanup' ); - - // Clear the cache - Cache::clear( false ); - -} - - -/** - * WPP uninstall - * - * @return void - * @since 1.0.0 - */ -function wpp_uninstall() { - - // Delete advanced-cache.php file - if ( file_exists( $advanced_cache = trailingslashit( WP_CONTENT_DIR ) . 'advanced-cache.php' ) ) { - unlink( $advanced_cache ); - // Remove WP_CACHE constant - wpp_define_wp_cache( false ); - } - - // Remove all options from database - Option::removeAll(); - - // Clear everything from the cache directory - Cache::clearEverything(); - -} - - -/** - * Compatibility check - * - * @since 1.0.0 - * @return void - */ -function wpp_compatibility_check() { - - // Cache plugins - $incompatiblePlugins = [ - 'w3-total-cache/w3-total-cache.php', - 'wp-super-cache/wp-cache.php', - 'wp-fastest-cache/wpFastestCache.php', - 'wp-rocket/wp-rocket.php', - 'litespeed-cache/litespeed-cache.php', - 'comet-cache/comet-cache.php', - 'breeze/breeze.php', - 'super-static-cache/super-static-cache.php', - 'simple-cache/simple-cache.php', - 'gator-cache/gator-cache.php', - 'hyper-cache/plugin.php', - 'hyper-cache-extended/plugin.php', - 'cache-enabler/cache-enabler.php', - 'cachify/cachify.php', - 'wp-speed-of-light/wp-speed-of-light.php', - 'wp-ffpc/wp-ffpc.php', - 'swift-performance-lite/performance.php', - 'swift-performance/performance.php', - 'hummingbird-performance/wp-hummingbird.php', - ]; - - // Minify plugins - if ( - Option::boolval( 'css_minify' ) - || Option::boolval( 'js_minify' ) - || Option::boolval( 'css_combine' ) - || Option::boolval( 'js_combine' ) - || apply_filters( 'wpp_minify_html', true ) - ) { - - $incompatiblePlugins = array_merge( $incompatiblePlugins, [ - 'autoptimize/autoptimize.php', - 'bwp-minify/bwp-minify.php', - 'wp-minify-fix/wp-minify.php', - 'minqueue/plugin.php', - 'optimize-javascript/pfeiffers-merge-scripts.php', - 'minify-html-markup/minify-html.php', - 'scripts-to-footerphp/scripts-to-footer.php', - 'footer-javascript/footer-javascript.php', - 'combine-js/combine-js.php', - 'js-css-script-optimizer/js-css-script-optimizer.php', - 'scripts-gzip/scripts_gzip.php', - 'dependency-minification/dependency-minification.php', - 'css-optimizer/bpminifycss.php', - 'merge-minify-refresh/merge-minify-refresh.php', - 'async-js-and-css/asyncJSandCSS.php', - 'wp-js/wp-js.php', - 'fast-velocity-minify/fvm.php', - 'wp-asset-clean-up/wpacu.php' - ] ); - - } - - $plugins = apply_filters( 'wpp_incompatible_plugins', $incompatiblePlugins ); - - $incompatible = []; - - // Check active plugins - foreach ( get_option( 'active_plugins' ) as $plugin ) { - if ( in_array( $plugin, $plugins ) ) { - $incompatible[] = $plugin; - wpp_log( sprintf( 'Incompatible plugin %s', $plugin ) ); - } - } - - // Print notices - if ( ! empty( $incompatible ) ) { - - $notice = '
      ' . __( 'The following plugins are not compatible with', 'wpp' ) . ' ' . WPP_PLUGIN_NAME . '
      '; - - foreach ( $incompatible as $plugin ) { - - $data = get_plugin_data( WP_PLUGIN_DIR . '/' . $plugin ); - - $notice .= '
      ' . $data[ 'Name' ]; - $notice .= '' . __( 'Deactivate', 'wpp' ) . ''; - $notice .= '
      '; - } - - wpp_notify( $notice, 'error', false ); - - } - -} - - -/** - * Deactivate incompatible plugin - * - * @return void - * @since 1.0.0 - */ -function wpp_deactivate_incompatible_plugin() { - - if ( wp_verify_nonce( Input::get( '_wpnonce' ), 'deactivate' ) ) { - - deactivate_plugins( Input::get( 'plugin' ) ); - wpp_log( sprintf( 'Incompatible plugin %s deactivated', Input::get( 'plugin' ) ) ); - - $redirect_url = wp_get_referer(); - $url_query = parse_url( $redirect_url, PHP_URL_QUERY ); - - parse_str( $url_query, $args ); - - if ( isset( $args[ 'page' ] ) ) { - /** - * Check if plugin name is in referrer URL so we don't redirect to the non-existent admin page after we deactivate the plugin. - * This is not 100% accurate, but it will handle well most cases - */ - if ( stristr( Input::get( 'plugin' ), $args[ 'page' ] ) ) { - $redirect_url = admin_url(); - } - - } - - wp_safe_redirect( $redirect_url ); - - } - -} - - -/** - * Define WP_CACHE constant - * - * @param boolean $cache - * @return void - * @since 1.1.4 - */ -function wpp_define_wp_cache( $cache = true ) { - - $wp_config = trailingslashit( ABSPATH ) . 'wp-config.php'; - - if ( file_exists( $wp_config ) && is_readable( $wp_config ) ) { - - $found = false; - $code = file( $wp_config ); - - foreach( $code as $i => $line ) { - - if ( strstr( $line, 'WP_CACHE' ) ) { - - $found = true; - - $expression = ( $cache ) - ? 'define( "WP_CACHE", true ); // WP Performance' . PHP_EOL - : ''; - - // Defined on the same line as opening PHP tag? - if ( strstr( $line, ' -* @package WPP -*/ - -use WPP\File; -use WPP\Input; -use WPP\Option; - - -/** - * Get the server software - * - * @param mixed $test - * @return string(apache|nginx|unknown)|boolean - * @since 1.0.2 - */ -function wpp_get_server_software( $test = null ) { - - // Apache - if ( preg_match( '#(apache|litespeed|shellrent)#i', Input::server( 'SERVER_SOFTWARE' ) ) ) { - - if ( ! is_null( $test ) ) { - return ( $test === 'apache' ); - } - - return 'apache'; - } - - // Nginx - if ( preg_match( '#(nginx|flywheel)#i', Input::server( 'SERVER_SOFTWARE' ) ) ) { - - if ( ! is_null( $test ) ) { - return ( $test === 'nginx' ); - } - - return 'nginx'; - - } - - return ( ! is_null( $test ) ) - ? false - : 'unknown'; -} - -/** - * Get Nginx rewrite rules - * - * @return string - * @since 1.0.2 - */ -function wpp_get_nginx_rewrite_rules() { - - $output = ''; - - // Browser cache - if ( Option::boolval( 'browser_cache' ) ) { - $output .= File::get( WPP_DATA_DIR . 'definitions/expire.nginx.txt' ); - } - - // Gzip - if ( Option::boolval( 'gzip_compression' ) ) { - $output .= File::get( WPP_DATA_DIR . 'definitions/gzip.nginx.txt' ); - } - - // Cache - if ( - Option::boolval( 'cache' ) - && get_option( 'permalink_structure' ) - && ! is_multisite() - ) { - - $definitions = File::get( WPP_DATA_DIR . 'definitions/cache.nginx.txt' ); - $definitions = str_replace( '{CACHEDIR}', WPP_CACHE_DIR, $definitions ); - $definitions = str_replace( '{CACHEDIR_BASENAME}', basename( WPP_CACHE_DIR ), $definitions ); - $definitions = str_replace( '{CONTENT_DIR}', basename( WP_CONTENT_DIR ), $definitions ); - $definitions = str_replace( '{AMP_TAG}', wpp_get_constant( 'WPP_AMP_TAG', 'amp' ), $definitions ); - - // Get excluded user agents - $agents = Option::get( 'user_agents_exclude', [] ); - - // Check if exclude search engines option is on - if ( Option::boolval( 'search_bots_exclude' ) ) { - $agents = array_merge( $agents, wpp_get_search_engines() ); - } - - // Add curent URL to exclude list if user agent is excluded - if ( ! empty( $agents ) ) { - - $agents = array_map( function( $agent ) { - - $agent = trim( $agent ); - - if ( empty( $agent ) ) { - return 'WPP'; - } - - return preg_quote( $agent ); - - }, $agents ); - - $condition = 'if ($http_user_agent ~* (' . implode( '|', $agents ) . ')) { - set $wpp_cache 0; - }'; - - } else { - $condition = ''; - } - - $definitions = str_replace( '{USER_AGENTS}', $condition, $definitions ); - - $output .= $definitions; - - } - - return $output; - -} - - -/** - * Check if current site is a multisite installation on specific server - * - * @param string $server apache|nginx - * @return bool - * @since 1.1.4 - */ -function wpp_is_multisite_on( $server ) { - - $servers = [ - 'apache', - 'nginx' - ]; - - if ( ! in_array( $server, $servers ) ) - return false; - - return wpp_get_server_software( $server ) && is_multisite(); - -} diff --git a/includes/functions/settings.php b/includes/functions/settings.php deleted file mode 100644 index 436fad6..0000000 --- a/includes/functions/settings.php +++ /dev/null @@ -1,545 +0,0 @@ - -* @package WPP -*/ - -use WPP\Cache; -use WPP\File; -use WPP\Input; -use WPP\Option; - -/** - * Export settings file for download - * - * @return void - * @since 1.0.0 - */ -function wpp_export_settings_file() { - - header( 'Content-disposition: attachment; filename=' . site_url() . '.json' ); - header( 'Content-type: application/json' ); - - $options = wpp_get_options(); - - $data = []; - - foreach ( $options as $option_name => $option_value ) { - $name = str_replace( wpp_get_prefix(), '', $option_name ); - $data[ $name ] = Option::get( $name ); - } - - wpp_log( 'Settings exported' ); - - exit( json_encode( $data ) ); - -} - - -/** - * Import settings - * - * @param array $file - * @return void - * @since 1.0.0 - */ -function wpp_import_settings( $file ) { - - if ( - $file[ 'wpp_import_settings' ][ 'error' ] == 0 - && file_exists( $file[ 'wpp_import_settings' ][ 'tmp_name' ] ) - ) { - - if ( $file[ 'wpp_import_settings' ][ 'type' ] !== 'application/json' ) { - - wpp_notify( 'Invalid settings file', 'warning' ); - - } else { - - $data = json_decode( file_get_contents( $file[ 'wpp_import_settings' ][ 'tmp_name' ] ), true ); - - if ( ! empty( $data ) ) { - - $options = wpp_get_options(); - $list_options = wpp_get_list_options(); - - foreach( $data as $option => $value ) { - - if ( array_key_exists( wpp_get_prefix( $option ), $options ) ) { - - if ( ! in_array( $option, $list_options ) ) { - Option::update( $option, $value ); - } - } - - } - - wpp_log( 'Settings imported' ); - - Cache::clear(); - - } - - } - - } - -} - - - -/** - * Save plugin settings - * - * @param boolean $notify - * @return void - * @since 1.0.0 - */ -function wpp_save_settings( $notify = true ) { - - // Cache - Option::update( 'cache', Input::post( 'cache', 'boolean' ) ); - Option::update( 'cache_time', Input::post( 'cache_time', 'number_int' ) ); - Option::update( 'cache_length', Input::post( 'cache_length', 'number_int' ) ); - Option::update( 'update_clear', Input::post( 'update_clear', 'boolean' ) ); - Option::update( 'save_clear', Input::post( 'save_clear', 'boolean' ) ); - Option::update( 'delete_clear', Input::post( 'delete_clear', 'boolean' ) ); - Option::update( 'mobile_cache', Input::post( 'mobile_cache', 'boolean' ) ); - Option::update( 'clear_assets', Input::post( 'clear_assets', 'boolean' ) ); - Option::update( 'cache_url_exclude', Input::post( 'cache_url_exclude', 'string', FILTER_REQUIRE_ARRAY ) ); - Option::update( 'browser_cache', Input::post( 'browser_cache', 'boolean' ) ); - Option::update( 'gzip_compression', Input::post( 'gzip_compression', 'boolean' ) ); - Option::update( 'sitemaps_list', Input::post( 'sitemaps_list', 'string', FILTER_REQUIRE_ARRAY ) ); - Option::update( 'user_agents_exclude', Input::post( 'user_agents_exclude', 'string', FILTER_REQUIRE_ARRAY ) ); - Option::update( 'search_bots_exclude', Input::post( 'search_bots_exclude', 'boolean' ) ); - - // HTML - Option::update( 'html_optimization', Input::post( 'html_optimization', 'boolean' ) ); - Option::update( 'html_minify_normal', Input::post( 'html_minify_normal', 'boolean' ) ); - Option::update( 'html_minify_aggressive', Input::post( 'html_minify_aggressive', 'boolean' ) ); - Option::update( 'html_remove_comments', Input::post( 'html_remove_comments', 'boolean' ) ); - Option::update( 'html_remove_link_type', Input::post( 'html_remove_link_type', 'boolean' ) ); - Option::update( 'html_remove_script_type', Input::post( 'html_remove_script_type', 'boolean' ) ); - Option::update( 'html_remove_qoutes', Input::post( 'html_remove_qoutes', 'boolean' ) ); - Option::update( 'html_url_exclude', Input::post( 'html_url_exclude', 'string', FILTER_REQUIRE_ARRAY ) ); - - // CSS - Option::update( 'css_minify', Input::post( 'css_minify', 'string', FILTER_REQUIRE_ARRAY ) ); - Option::update( 'css_minify_inline', Input::post( 'css_minify_inline', 'boolean' ) ); - Option::update( 'css_combine', Input::post( 'css_combine', 'string', FILTER_REQUIRE_ARRAY ) ); - Option::update( 'css_inline', Input::post( 'css_inline', 'string', FILTER_REQUIRE_ARRAY ) ); - Option::update( 'css_disable', Input::post( 'css_disable', 'string', FILTER_REQUIRE_ARRAY ) ); - Option::update( 'css_disable_position', Input::post( 'css_disable_position', 'string', FILTER_REQUIRE_ARRAY ) ); - Option::update( 'css_disable_selected', Input::post( 'css_disable_selected', 'string', FILTER_REQUIRE_ARRAY ) ); - Option::update( 'css_disable_except', Input::post( 'css_disable_except', 'string', FILTER_REQUIRE_ARRAY ) ); - Option::update( 'css_defer', Input::post( 'css_defer', 'boolean' ) ); - Option::update( 'css_prefetch', Input::post( 'css_prefetch', 'string', FILTER_REQUIRE_ARRAY ) ); - Option::update( 'css_preconnect', Input::post( 'css_preconnect', 'string', FILTER_REQUIRE_ARRAY ) ); - Option::update( 'css_combine_fonts', Input::post( 'css_combine_fonts', 'boolean' ) ); - Option::update( 'css_font_display', Input::post( 'css_font_display' ) ); - Option::update( 'css_url_exclude', Input::post( 'css_url_exclude', 'string', FILTER_REQUIRE_ARRAY ) ); - Option::update( 'css_file_exclude', Input::post( 'css_file_exclude', 'string', FILTER_REQUIRE_ARRAY ) ); - Option::update( 'css_custom_path_def', stripslashes( Input::post( 'css_custom_path_def' ) ) ); - Option::update( 'css_disable_loggedin', Input::post( 'css_disable_loggedin', 'boolean' ) ); - - // JavaScript - Option::update( 'js_minify', Input::post( 'js_minify', 'string', FILTER_REQUIRE_ARRAY ) ); - Option::update( 'js_minify_inline', Input::post( 'js_minify_inline', 'boolean' ) ); - Option::update( 'js_combine', Input::post( 'js_combine', 'string', FILTER_REQUIRE_ARRAY ) ); - Option::update( 'js_inline', Input::post( 'js_inline', 'string', FILTER_REQUIRE_ARRAY ) ); - Option::update( 'js_defer', Input::post( 'js_defer', 'boolean' ) ); - Option::update( 'js_prefetch', Input::post( 'js_prefetch', 'string', FILTER_REQUIRE_ARRAY ) ); - Option::update( 'js_preconnect', Input::post( 'js_preconnect', 'string', FILTER_REQUIRE_ARRAY ) ); - Option::update( 'js_url_exclude', Input::post( 'js_url_exclude', 'string', FILTER_REQUIRE_ARRAY ) ); - Option::update( 'js_disable', Input::post( 'js_disable', 'string', FILTER_REQUIRE_ARRAY ) ); - Option::update( 'js_disable_position', Input::post( 'js_disable_position', 'string', FILTER_REQUIRE_ARRAY ) ); - Option::update( 'js_disable_selected', Input::post( 'js_disable_selected', 'string', FILTER_REQUIRE_ARRAY ) ); - Option::update( 'js_disable_except', Input::post( 'js_disable_except', 'string', FILTER_REQUIRE_ARRAY ) ); - Option::update( 'js_file_exclude', Input::post( 'js_file_exclude', 'string', FILTER_REQUIRE_ARRAY ) ); - Option::update( 'js_disable_loggedin', Input::post( 'js_disable_loggedin', 'boolean' ) ); - - // Images - Option::update( 'images_resp', Input::post( 'images_resp', 'boolean' ) ); - Option::update( 'images_force', Input::post( 'images_force', 'boolean' ) ); - Option::update( 'images_lazy', Input::post( 'images_lazy', 'boolean' ) ); - Option::update( 'disable_lazy_mobile', Input::post( 'disable_lazy_mobile', 'boolean' ) ); - Option::update( 'images_containers_ids', Input::post( 'images_containers_ids', 'string', FILTER_REQUIRE_ARRAY ) ); - Option::update( 'images_exclude', Input::post( 'images_exclude', 'string', FILTER_REQUIRE_ARRAY ) ); - Option::update( 'image_url_exclude', Input::post( 'image_url_exclude', 'string', FILTER_REQUIRE_ARRAY ) ); - - // Videos - Option::update( 'videos_lazy', Input::post( 'videos_lazy', 'boolean' ) ); - Option::update( 'video_url_exclude', Input::post( 'video_url_exclude', 'string', FILTER_REQUIRE_ARRAY ) ); - - // Media - Option::update( 'disable_emoji', Input::post( 'disable_emoji', 'boolean' ) ); - Option::update( 'disable_embeds', Input::post( 'disable_embeds', 'boolean' ) ); - - // Settings - Option::update( 'enable_log', Input::post( 'enable_log', 'boolean' ) ); - - // CDN - Option::update( 'cdn', Input::post( 'cdn', 'boolean' ) ); - Option::update( 'cdn_hostname', Input::post( 'cdn_hostname', 'url' ) ); - Option::update( 'cdn_exclude', Input::post( 'cdn_exclude', 'string', FILTER_REQUIRE_ARRAY ) ); - - // Database - Option::update( 'db_cleanup_transients', Input::post( 'db_cleanup_transients', 'boolean' ) ); - Option::update( 'db_cleanup_revisions', Input::post( 'db_cleanup_revisions', 'boolean' ) ); - Option::update( 'db_cleanup_spam', Input::post( 'db_cleanup_spam', 'boolean' ) ); - Option::update( 'db_cleanup_trash', Input::post( 'db_cleanup_trash', 'boolean' ) ); - Option::update( 'db_cleanup_cron', Input::post( 'db_cleanup_cron', 'boolean' ) ); - Option::update( 'db_cleanup_autodrafts', Input::post( 'db_cleanup_autodrafts', 'boolean' ) ); - - // Cleanup schedule - $frequency = Input::post( 'automatic_cleanup_frequency' ); - - if ( Option::get( 'db_cleanup_frequency' ) != $frequency ) { - - Option::update( 'db_cleanup_frequency', $frequency ); - - $schedules = wpp_get_cron_schedules(); - - if ( array_key_exists( $frequency, $schedules ) ) { - Option::update( 'db_cleanup_next', ( time() + $schedules[ $frequency ][ 'interval' ] ) ); - } else { - Option::remove( 'db_cleanup_next' ); - } - - } - - // Update htaccess - if ( wpp_get_server_software( 'apache' ) ) { - - // Browser cache - wpp_update_htaccess( - is_multisite() - ? true - : Input::post( 'browser_cache', 'boolean' ), 'expire' - ); - - // Gzip compression - wpp_update_htaccess( - is_multisite() - ? true - : Input::post( 'gzip_compression', 'boolean' ), 'gzip' - ); - - // Htaccess load cache - if ( ! is_multisite() ) { - wpp_update_htaccess( Input::post( 'cache', 'boolean' ), 'cache' ); - } - - } - - - // Save configuration settings - $settings = array_diff_key( $_POST, [ - 'wpp-tab' => true, - 'wpp-nonce' => true, - '_wp_http_referer' => true, - 'wpp-save-settings' => true - ] ); - - $timestamp = time(); - - File::save( WPP_CACHE_DIR . $timestamp . '.' . md5( site_url() ) . '.settings.json', json_encode( $settings ) ); - - Option::update( 'current_settings', $timestamp ); - - // Site settings - $exclude_urls = Input::post( 'cache_url_exclude', 'string', FILTER_REQUIRE_ARRAY ); - - if ( Input::post( 'search_bots_exclude' ) ) { - $exclude_urls = array_merge( $exclude_urls, wpp_get_search_engines() ); - } - - $settings = [ - 'cache' => boolval( Input::post( 'cache' ) ), - 'disable' => Option::boolval( 'wpp_disable' ), - 'mobile_cache' => boolval( Input::post( 'mobile_cache' ) ), - 'expire' => time() + intval( Input::post( 'cache_time', 'number_int' ) * Input::post( 'cache_length', 'number_int' ) ), - 'exclude' => apply_filters( 'wpp_exclude_urls', $exclude_urls ), - 'permalinks' => boolval( get_option( 'permalink_structure' ) ) - ]; - - File::saveSiteSettings( $settings ); - - - /** - * Save settings hook - * @since 1.1.0 - */ - do_action( 'wpp-save-settings' ); - - // Clear cache - if ( Input::post( 'save_clear', 'boolean' ) ) { - Cache::clear(); - } - - if ( $notify ) wpp_notify( 'Settings saved' ); - -} - - -/** - * Load saved settings from file - * - * @param string $filename - * @param boolean $notify - * @return void - * @since 1.0.0 - */ -function wpp_load_settings( $filename, $notify = true ) { - - if ( file_exists( $file = WPP_CACHE_DIR . basename( $filename ) . '.' . md5( site_url() ) . '.settings.json' ) ) { - - $options = Option::getAll(); - $settings = File::getJson( $file ); - - foreach( $options as $option => $value ) { - - $action = ! empty( $value ) - ? 'add' - : 'remove'; - - $option = str_replace( wpp_get_prefix(), '', $option ); - - $value = isset( $settings[ $option ] ) - ? $settings[ $option ] - : null; - - switch ( $option ) { - - case 'automatic_cleanup_frequency': - - Option::update( 'db_cleanup_frequency', $value ); - - break; - - case 'browser_cache': - - if ( wpp_get_server_software( 'apache' ) ) - wpp_update_htaccess( $action, 'expire' ); - - break; - - case 'gzip_compression': - - if ( wpp_get_server_software( 'apache' ) ) - wpp_update_htaccess( $action, 'gzip' ); - - break; - } - - Option::update( $option, $value ); - - } - - Option::update( 'current_settings', $filename ); - - if ( $notify ) wpp_notify( 'Settings file loaded' ); - - } - -} - - -/** - * Save page metabox options - * - * @param integer $post_id - * @return void - * @since 1.0.3 - */ -function wpp_save_post_options( $post_id ) { - - $option_names = [ - 'cache_post_exclude', - 'html_post_exclude', - 'css_post_exclude', - 'js_post_exclude', - 'image_post_exclude', - 'video_post_exclude' - ]; - - foreach( $option_names as $option ) { - - $options = Option::get( $option, [] ); - - if ( Input::post( $option ) ) { - - if ( ! in_array( $post_id, $options ) ) { - $options[] = $post_id; - } - - } else { - $options = array_diff( $options, [ $post_id ] ); - } - - Option::update( $option, $options ); - - } - -} - -/** - * Remove post options added trough metabox - * - * @return void - * @since 1.0.3 - */ -function wpp_ajax_remove_post_options() { - - check_ajax_referer( 'wpp-ajax', 'nonce' ); - - $options = [ - 'js' => 'js_post_exclude', - 'css' => 'css_post_exclude', - 'html' => 'html_post_exclude', - 'cache' => 'cache_post_exclude', - 'image' => 'image_post_exclude', - 'video' => 'video_post_exclude' - ]; - - if ( array_key_exists( Input::post( 'type' ), $options ) ) { - - $option = $options[ Input::post( 'type' ) ]; - $option_data = Option::get( $option, [] ); - $option_data = array_diff( $option_data, [ Input::post( 'id' ) ] ); - - Option::update( $option, $option_data ); - - } - - exit; - -} - -/** - * Get options prefix - * - * @string $name - * @since 1.0.0 - * @return string - */ -function wpp_get_prefix( $name = '' ) { - return sprintf( '%s_%s', 'wpp', $name ); -} - - -/** - * Delete list options - * Used after clearing the cache - * - * @return void - * @since 1.0.0 - */ -function wpp_delete_list_options() { - - $options = wpp_get_list_options(); - - foreach ( $options as $option ) { - Option::remove( $option ); - } - - wpp_log( 'List options deleted' ); - -} - - -/** - * Get list options - * - * @return array - * @since 1.0.0 - */ -function wpp_get_list_options() { - - $defaults = [ - 'plugin_css_list', - 'theme_css_list', - 'plugin_js_list', - 'theme_js_list', - 'external_css_list', - 'external_js_list', - 'prefetch_css_list', - 'prefetch_js_list', - 'css_custom_path_def' - ]; - - /** - * Filter options list which will be deleted after clearing the cache - * @since 1.0.0 - */ - $options = apply_filters( 'wpp-delete-list-options', $defaults ); - - return $options; - -} - - -/** - * Get options - * - * @return array - * @since 1.0.0 - */ -function wpp_get_options() { - - $options = []; - - // Get all options - $result = $GLOBALS[ 'wpdb' ]->get_results( sprintf( - 'SELECT option_name, option_value FROM %s WHERE option_name LIKE "%s%%"', - $GLOBALS['wpdb']->options, - wpp_get_prefix() - ) ); - - foreach( $result as $row ) { - $options[ $row->option_name ] = $row->option_value; - } - - return $options; - -} - - -/** - * Clear files list and cache - * - * @param string $list - * @param boolean $notify - * @return void - * @since 1.0.2 - */ -function wpp_delete_files_list( $type, $notify = true ) { - - $type = str_replace( 'javascript', 'js', $type ); - - if ( ! in_array( $type, [ 'js', 'css' ] ) ) { - return false; - } - - $list_names = [ - sprintf( 'theme_%s_list', $type ), - sprintf( 'plugin_%s_list', $type ), - sprintf( 'external_%s_list', $type ), - sprintf( 'prefetch_%s_list', $type ) - ]; - - foreach ( wpp_get_list_options() as $option ) { - if ( in_array( $option, $list_names ) ) { - Option::remove( $option ); - } - } - - wpp_log( sprintf( '%s list files cleared', $type ) ); - - Cache::clear(); - - if ( $notify ) wpp_notify( 'Files list cleared' ); - -} diff --git a/includes/functions/url.php b/includes/functions/url.php deleted file mode 100644 index 205e8e4..0000000 --- a/includes/functions/url.php +++ /dev/null @@ -1,100 +0,0 @@ - -* @package WPP -*/ - - -/** - * Check if site is on localhost or .dev domain - * - * @return boolean - * @since 1.0.0 - */ -function wpp_is_localhost() { - - $host = parse_url( site_url(), PHP_URL_HOST ); - - if ( 'localhost' === $host || pathinfo( $host, PATHINFO_EXTENSION ) === 'dev' ) { - return true; - } - - return false; - -} - -/** - * Get file hostname - * - * @since 1.0.0 - * @return string - */ -function wpp_get_file_hostname( $file ) { - - if ( $host = parse_url( $file, PHP_URL_HOST ) ) { - return $host; - } - - return $file; - -} - - - -/** - * Replace wildcards with regex pattern - * - * @since 1.0.0 - * @return string - */ -function wpp_url_replace_wildcards( $pattern ) { - - $pattern = preg_quote( $pattern ); - - $wildcards = [ - '{any}' => '[^/]+', - '{numbers}' => '[0-9]+', - '{letters}' => '[A-Za-z]+', - '{all}' => '.*' - ]; - - return str_replace( array_keys( $wildcards ), array_values( $wildcards ), stripslashes( $pattern ) ); - -} - - -/** - * Check if url is found in excluded urls list - * - * @param string $url - * @param array $excluded_urls - * @return boolean - * @since 1.0.9 - */ -function wpp_is_url_excluded( $url, $excluded_urls ) { - - foreach( $excluded_urls as $excluded_url ) { - - $excluded_url = trailingslashit( wpp_url_replace_wildcards( $excluded_url ) ); - - // Try simple match first - if ( $excluded_url == $url ) { - return true; - } - - // if ( stristr( $url, $excluded_url ) ) { - // return true; - // } - - preg_match( '#^' . $excluded_url . '$#', trailingslashit( $url ), $match ); - - if ( isset( $match[0] ) ) { - return true; - } - - } - - return false; -} \ No newline at end of file diff --git a/includes/index.php b/includes/index.php deleted file mode 100644 index e71af0e..0000000 --- a/includes/index.php +++ /dev/null @@ -1 +0,0 @@ - -* @package WPP -*/ - -foreach( [ WPP_FUNCTIONS_DIR . '*.php', WPP_ADDONS_DIR . '*/init.php' ] as $dir ) { - - foreach( glob( $dir ) as $file ) { - include_once $file; - } - -} diff --git a/languages/wpp-hr-wpp-admin.json b/languages/wpp-hr-wpp-admin.json new file mode 100644 index 0000000..c84db6f --- /dev/null +++ b/languages/wpp-hr-wpp-admin.json @@ -0,0 +1,926 @@ +{ + "translation-revision-date": "2026-08-18 12:27+0000", + "generator": "wp-performance/merge-script-translations", + "domain": "messages", + "locale_data": { + "messages": { + "": { + "domain": "messages", + "lang": "hr", + "plural-forms": "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" + }, + "%d day ago": [ + "" + ], + "%d hour ago": [ + "" + ], + "%d minute ago": [ + "" + ], + "%s settings": [ + "" + ], + "A post or page is deleted": [ + "Stranica ili post je izbrisan" + ], + "A post or page is published or updated": [ + "" + ], + "API key": [ + "API ključ" + ], + "About": [ + "" + ], + "Above-the-fold CSS, inlined and applied before the async stylesheet loads.": [ + "" + ], + "Account email": [ + "E-pošta računa" + ], + "Active": [ + "" + ], + "Active optimizations": [ + "" + ], + "Add": [ + "" + ], + "Add Sitemap": [ + "Dodaj XML mapu stranice" + ], + "Add URL": [ + "Dodaj URL" + ], + "Add User Agent": [ + "Dodaj korisničkog agenta" + ], + "Add container": [ + "" + ], + "Add file": [ + "Dodaj datoteku" + ], + "Add image": [ + "" + ], + "Add missing width/height to prevent layout shift (CLS)": [ + "" + ], + "Add origin": [ + "" + ], + "Add selector": [ + "" + ], + "Add size": [ + "Dodaj veličinu" + ], + "Add these rules to your nginx server block, then reload nginx.": [ + "" + ], + "Add-ons": [ + "Dodaci" + ], + "Adds deferred CSS/JS, hosted fonts and modern image formats. Recommended for most sites.": [ + "" + ], + "Aggressive": [ + "" + ], + "Apply": [ + "" + ], + "Apply a curated configuration in one click, then fine-tune any tab.": [ + "" + ], + "Apply this preset? It will overwrite the related settings.": [ + "" + ], + "Apply to all": [ + "" + ], + "Applying…": [ + "" + ], + "Asynchronous CSS": [ + "" + ], + "Asynchronous JavaScript": [ + "" + ], + "Asynchronous JavaScript loading": [ + "" + ], + "Auto Drafts": [ + "Skice" + ], + "Auto-saved draft posts.": [ + "" + ], + "Automatic database cleanup": [ + "Automatsko čišćenje baze podataka" + ], + "Automatically purge Varnish whenever the cache is cleared.": [ + "" + ], + "Back up your database before running any cleanup. These actions cannot be undone.": [ + "" + ], + "Back up your database first. Run this cleanup now?": [ + "" + ], + "Balanced": [ + "" + ], + "Basic (no query string)": [ + "" + ], + "Biggest TBT/INP win: scripts run on first scroll, click, or key press. Exclude anything that must run immediately.": [ + "" + ], + "Brotli": [ + "Brotli" + ], + "Brotli compression": [ + "" + ], + "Browser cache TTL": [ + "" + ], + "Browser cache and gzip rules are written to .htaccess automatically.": [ + "" + ], + "Browser caching": [ + "Predmemorija preglednika" + ], + "CDN": [ + "" + ], + "CDN hostname": [ + "Naziv CDN poslužitelja" + ], + "CSS": [ + "" + ], + "CSS files": [ + "CSS datoteke" + ], + "CSS id or class, e.g. #hero or .no-lazy": [ + "" + ], + "CSS settings": [ + "CSS postavke" + ], + "Cache": [ + "Predmemorija" + ], + "Cache URLs with query strings": [ + "" + ], + "Cache cleared.": [ + "" + ], + "Cache level": [ + "Level predmemorija" + ], + "Cache preloading": [ + "Predučitavanje predmemorije" + ], + "Cache size": [ + "" + ], + "Cache statistics": [ + "Statistika predmemorije" + ], + "Cache status": [ + "" + ], + "Cached pages": [ + "" + ], + "Cancel": [ + "" + ], + "Cleaning…": [ + "" + ], + "Cleanup complete.": [ + "" + ], + "Cleanup failed.": [ + "" + ], + "Clear cache": [ + "Očisti predmemeoriju" + ], + "Clear cache after": [ + "Očisti predmemoriju nakon" + ], + "Clear cache options": [ + "" + ], + "Clear cache when": [ + "Očisti predmemoriju kada" + ], + "Clear log": [ + "" + ], + "Clearing…": [ + "" + ], + "Cloudflare": [ + "Cloudflare" + ], + "Cloudflare error.": [ + "" + ], + "Combine": [ + "Kombinirati" + ], + "Combine Google Fonts into one request": [ + "" + ], + "Compresses resources before sending them to the browser.": [ + "" + ], + "Configure Cloudflare": [ + "" + ], + "Content refreshes automatically every 10 seconds.": [ + "" + ], + "Conversion failed.": [ + "" + ], + "Convert all images to WebP/AVIF? This can take a while.": [ + "" + ], + "Convert existing images": [ + "" + ], + "Converting": [ + "" + ], + "Could not add size.": [ + "" + ], + "Could not apply the preset.": [ + "" + ], + "Could not clear the cache.": [ + "" + ], + "Could not clear the log.": [ + "" + ], + "Could not remove size.": [ + "" + ], + "Could not restore settings.": [ + "" + ], + "Could not save settings.": [ + "" + ], + "Could not update the file list.": [ + "" + ], + "Credentials": [ + "" + ], + "Critical CSS": [ + "" + ], + "Crop": [ + "Izreži" + ], + "Custom URLs to purge": [ + "" + ], + "Custom host": [ + "Prilagođeni URL host" + ], + "DNS prefetch": [ + "" + ], + "Daily": [ + "Dnevno" + ], + "Database": [ + "Baza podataka" + ], + "Days": [ + "" + ], + "Default": [ + "" + ], + "Defaults restored.": [ + "" + ], + "Defer JavaScript to remove render-blocking": [ + "" + ], + "Defer offscreen images with native loading=\"lazy\".": [ + "" + ], + "Delay JavaScript until user interaction": [ + "" + ], + "Delay until interaction": [ + "" + ], + "Delete": [ + "Izbriši" + ], + "Delete all": [ + "Izbrisati sve" + ], + "Development mode": [ + "Uključi development mode" + ], + "Disable": [ + "Onesposobiti" + ], + "Disable CSS optimization for logged-in users": [ + "Onemogućite CSS optimizaciju za prijavljene korisnike" + ], + "Disable JavaScript optimization for logged-in users": [ + "Onemogućite JavaScript optimizaciju za prijavljene korisnike" + ], + "Disable WordPress emoji": [ + "" + ], + "Disable lazy load on mobile devices": [ + "Onemogući lazy load na mobilnim uređajima" + ], + "Disable oEmbed discovery": [ + "" + ], + "Disabled": [ + "" + ], + "Download settings file": [ + "" + ], + "Dynamic page prefetch": [ + "" + ], + "Embeds": [ + "Embeds" + ], + "Emoji": [ + "" + ], + "Emoji & Embeds": [ + "" + ], + "Enable CDN": [ + "Omogući CDN" + ], + "Enable HTML optimization": [ + "" + ], + "Enable automatic cleanup": [ + "Omogući automatsko čišćenje" + ], + "Enable cache": [ + "Omogući predmemoriju" + ], + "Enable persistent object cache": [ + "" + ], + "Enable troubleshooting log": [ + "" + ], + "Enter the path to an XML sitemap used to preload the cache.": [ + "" + ], + "Every optimization on, including delayed JavaScript and unused-CSS removal. Test your site after applying.": [ + "" + ], + "Everywhere": [ + "" + ], + "Everywhere except selected URLs": [ + "" + ], + "Exclude URL(s)": [ + "Izuzmi URL" + ], + "Exclude URL(s) from CSS optimization": [ + "Izuzimanje URL-ova iz CSS optimizacije" + ], + "Exclude URL(s) from HTML optimization": [ + "" + ], + "Exclude URL(s) from JavaScript optimization": [ + "Izuzimanje URL-ova iz JavaScript optimizacije" + ], + "Exclude URL(s) from cache": [ + "Izuzimanje URL-ova iz predmemorije" + ], + "Exclude User Agent(s) from cache": [ + "Izuzmite korisničke agente iz predmemorije" + ], + "Exclude by name": [ + "" + ], + "Exclude containers": [ + "" + ], + "Exclude file(s) from CDN": [ + "Izuzmi datoteke iz CDN-a" + ], + "Exclude from async": [ + "" + ], + "Exclude from defer": [ + "" + ], + "Exclude from delay": [ + "" + ], + "Exclude search engines": [ + "Izuzmi tražilice" + ], + "Expired and stale transients.": [ + "" + ], + "Export failed.": [ + "" + ], + "Export settings": [ + "Izvezi postavke" + ], + "Export your configuration to move it between sites, or import a saved configuration file.": [ + "" + ], + "External": [ + "" + ], + "File": [ + "Datoteka" + ], + "File list updated.": [ + "" + ], + "Font display": [ + "" + ], + "Force srcset on images": [ + "" + ], + "Google Fonts": [ + "" + ], + "Google, Bing and other crawlers bypass the cache.": [ + "" + ], + "Gzip compression": [ + "" + ], + "H": [ + "" + ], + "HTML": [ + "" + ], + "HTML files": [ + "HTML datoteke" + ], + "HTML optimization": [ + "" + ], + "Health checks": [ + "" + ], + "Heuristic: keeps rules whose classes/ids appear on the page. The full CSS still loads async as a fallback.": [ + "" + ], + "Host Google Fonts locally and preload them": [ + "" + ], + "Hours": [ + "" + ], + "Image dimensions": [ + "" + ], + "Image size added.": [ + "" + ], + "Image sizes": [ + "Veličine slika" + ], + "Images": [ + "Slike" + ], + "Images converted.": [ + "" + ], + "Import / Export": [ + "" + ], + "Import failed - invalid file.": [ + "" + ], + "Import settings": [ + "Uvezi postavke" + ], + "Inline": [ + "Umetni" + ], + "Inline only used CSS; load the rest async": [ + "" + ], + "Integrate your Cloudflare account to purge cache and manage zone settings.": [ + "" + ], + "JavaScript": [ + "" + ], + "JavaScript files": [ + "JavaScript datoteke" + ], + "JavaScript settings": [ + "JavaScript postavke" + ], + "Keep generated CSS/JS files when clearing the cache": [ + "" + ], + "Lazy load": [ + "Lazy load" + ], + "Lazy load images": [ + "Lazy load slika" + ], + "Lazy load videos & iframes": [ + "" + ], + "Leverage browser caching": [ + "Iskoristite predmemoriju preglednika" + ], + "Load CSS without render-blocking": [ + "" + ], + "Log cleared.": [ + "" + ], + "Log file": [ + "" + ], + "Logged-in users": [ + "" + ], + "Logging": [ + "" + ], + "Media": [ + "Media" + ], + "Minify": [ + "Umanji" + ], + "Minify inline CSS": [ + "Smanji umetnuti CSS" + ], + "Minify inline JavaScript": [ + "Smanjite umetnuti JavaScript" + ], + "Minutes": [ + "" + ], + "Mobile cache": [ + "" + ], + "Monthly": [ + "Mjesečno" + ], + "Name": [ + "Naziv" + ], + "Next run": [ + "Sljedeće čišćenje" + ], + "Next-gen images": [ + "" + ], + "Nginx rules": [ + "" + ], + "No files collected yet. Enable caching or an optimization, visit your site, then choose \"Update files list\".": [ + "" + ], + "No supported object cache backend was detected. Install and enable the Redis PHP extension to use a persistent object cache.": [ + "" + ], + "Normal": [ + "" + ], + "Not scheduled": [ + "Nije zakazano" + ], + "Not set": [ + "Nije postavljeno" + ], + "Number of above-the-fold images to preload (fetchpriority=high) and skip from lazy load. 0 = off.": [ + "" + ], + "Object cache": [ + "" + ], + "Off (recommended): tracking params (utm, gclid, fbclid…) are ignored so only clean URLs are cached.": [ + "" + ], + "Only on selected URLs": [ + "" + ], + "Origins to resolve early, e.g. https://fonts.gstatic.com": [ + "" + ], + "Orphaned cron events.": [ + "" + ], + "Overview": [ + "" + ], + "Page cache, GZIP, browser caching and lazy loading. Works with virtually any theme.": [ + "" + ], + "Plugins": [ + "Dodatci" + ], + "Preconnect": [ + "" + ], + "Prefetch": [ + "" + ], + "Prefetch a page as soon as a visitor hovers over its link.": [ + "" + ], + "Preload LCP images": [ + "" + ], + "Preset applied. Reloading…": [ + "" + ], + "Purge cache": [ + "" + ], + "Purge custom URLs": [ + "" + ], + "Purge everything": [ + "Očisti sve" + ], + "Purging…": [ + "" + ], + "Query strings": [ + "" + ], + "Quick setup": [ + "" + ], + "Recommended": [ + "" + ], + "Records cache and optimization activity to help diagnose issues.": [ + "" + ], + "Redis object cache": [ + "" + ], + "Reduces server response time by serving static HTML files to visitors.": [ + "" + ], + "Regenerate all thumbnails? This may take a while.": [ + "" + ], + "Regenerate thumbnails": [ + "Regenerirajte umanjene slike" + ], + "Regenerating": [ + "" + ], + "Regeneration failed.": [ + "" + ], + "Remove": [ + "Makni" + ], + "Remove HTML comments (conditional comments preserved)": [ + "" + ], + "Remove comments": [ + "" + ], + "Remove quotes": [ + "" + ], + "Remove quotes from attributes where possible": [ + "" + ], + "Remove this image size?": [ + "" + ], + "Remove type attribute": [ + "" + ], + "Remove type=\"text/css\" from link tags": [ + "" + ], + "Remove type=\"text/javascript\" from script tags": [ + "" + ], + "Remove unused CSS": [ + "" + ], + "Resource hints": [ + "" + ], + "Respect existing headers": [ + "" + ], + "Responsive images": [ + "Responzivne slike" + ], + "Restore": [ + "" + ], + "Restore default image sizes?": [ + "" + ], + "Restore defaults": [ + "" + ], + "Restore points": [ + "" + ], + "Restore this saved configuration? Your current settings will be replaced.": [ + "" + ], + "Restoring…": [ + "" + ], + "Revisions": [ + "Revizije" + ], + "Rewrites static asset URLs (CSS, JavaScript, images) to your CDN hostname.": [ + "" + ], + "Rocket Loader": [ + "Rocket Loader" + ], + "Safe": [ + "" + ], + "Save changes": [ + "Spremi izmjene" + ], + "Saving…": [ + "" + ], + "Schedule": [ + "Raspored" + ], + "Scheduled tasks": [ + "Zakazani zadaci" + ], + "Selectors to always keep, e.g. classes toggled by JavaScript.": [ + "" + ], + "Separate cache for mobile devices": [ + "Odvojite predmemoriju za mobilne uređaje" + ], + "Serve WebP/AVIF images": [ + "" + ], + "Serve WebP/AVIF via when a converted file exists. New uploads convert automatically.": [ + "" + ], + "Server": [ + "Poslužitelj" + ], + "Sets HTTP expiry headers so returning visitors load resources from their browser.": [ + "" + ], + "Settings": [ + "Postavke" + ], + "Settings imported. Reloading…": [ + "" + ], + "Settings restored. Reloading…": [ + "" + ], + "Settings saved.": [ + "" + ], + "Simplified (ignore query string)": [ + "" + ], + "Spam": [ + "Spam" + ], + "Spam and trashed comments.": [ + "" + ], + "Stored post revisions.": [ + "" + ], + "Stores WordPress query and option lookups in Redis to cut database load. Installs an object-cache.php drop-in.": [ + "" + ], + "Temporarily bypass the Cloudflare cache (auto-off after 3h)": [ + "" + ], + "The last five saved configurations appear here so you can roll back a change.": [ + "" + ], + "The log is empty.": [ + "" + ], + "Theme": [ + "Tema" + ], + "Thumbnails regenerated.": [ + "" + ], + "Total": [ + "" + ], + "Transients": [ + "Privremene postavke" + ], + "Trash": [ + "Smeće" + ], + "Trashed posts and pages.": [ + "" + ], + "Troubleshooting": [ + "" + ], + "Update files list": [ + "Ažuriraj popis datoteka" + ], + "Updating…": [ + "" + ], + "Use {numbers}, {letters} or {any} to match dynamic parts of a URL.": [ + "" + ], + "Use {numbers}, {letters}, {any} or {all} to match dynamic parts of a URL.": [ + "" + ], + "Used-CSS safelist": [ + "" + ], + "Varnish": [ + "Varnish" + ], + "Videos": [ + "Video" + ], + "W": [ + "" + ], + "WP Performance": [ + "WP Performance" + ], + "WP Performance settings are saved": [ + "" + ], + "Weekly": [ + "Tjedno" + ], + "Yes": [ + "Da" + ], + "Zone ID": [ + "ID Zone" + ], + "Zone settings": [ + "" + ], + "complete.": [ + "" + ], + "is being rebuilt in the next step.": [ + "" + ], + "just now": [ + "" + ], + "name": [ + "" + ] + } + } +} diff --git a/languages/wpp-hr.mo b/languages/wpp-hr.mo index b46fa6683c49327b1f3d08d017f5145c883c1a6d..8eefe7694d769aa0ca0bc0e1d81f9a543191f475 100644 GIT binary patch literal 5999 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 literal 24783 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

      Cf+Z{n!(qDsD3C%W*ZF z5e%ubQ*&RUW@;HrWyU&rG%ZzSc0+kaYpGYs6C!SEuHUL0GT$moW^a9%*~ysqq!ft~ zQsnBy*WGE(Y{_Ew^wlF4k zNgJm`cSTC!bD-`PpIl)@mFx|6S`Z7zO6Yes@iZ3LZ8&5>N(c6-+%m=_UQ$YqML=^R z9Bdib?op)>9s9`LrMXhPE0!ZuOb{w{(-#ssfqk7~Z+w=AI-c*#w3to^PerX12Tvys z@$Zy|R%8AASIO~}lUxy1Hq!Nkr&?C4c@grEr{s#ycVLH+4jdFWd)cb_4~FpQcu(F@ z$x=63C@nIu$yZu-HcfhEuH2=V`vPJK{(iKH!&j#MwdJG@1Gpq(sX1e~xb%1)+oKei z)KIC3`?T%rYb}m+z5aEhjxv^Z$P(i`Q>ZG3%x|GrK{=Z((8zHs|JcQ)g|wXW6GK{5 zZyYR}SALRJxf8j`&S^l4Vuu@~y0s~)zEC1;lAz#l1GekmBe3K+zAQkmqh-)>!vXo= zxH5Q5I$ubBiMIKgouSGvwZoAlVc3tdjZ5u+kF!4`+waYcD1qrU6DPKY9y(tb;nhAOEhE#nii@Ud;HaJZ3NbVQ;S0qMsG%DDEacLcq$xcMoi9EtEG!Bv!p ze}qBE=8n>uL?vMorUHw0z)_7q}Q+Q-j%hPk322Z1QP2K)QA~5W;U(Z z8)a@~oT))p8+$lygeRm?>zc3p3I>Y8x#uHqtio7#N)nC0wm^^n=Z1-XwOu=of|`xk zuqmTncY5-duU;LeocD?4g$ebh=QLg&tX!{zSp5pzmx4u%w7^QQC)Z;nIw-CmkF`^H&PJ1atvT!bBsxmRKb}RjvXVX9Lao0 z-%7`GN~escO#^q?=s~-d$rS!|;l}V5Gvce>%e6cl$@@UK((E`e+N9uptk@3 diff --git a/languages/wpp-hr.po b/languages/wpp-hr.po index e7ae669..4ab901d 100644 --- a/languages/wpp-hr.po +++ b/languages/wpp-hr.po @@ -1,7 +1,8 @@ msgid "" msgstr "" "Project-Id-Version: WP Performance\n" -"POT-Creation-Date: 2019-08-30 14:57+0200\n" +"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/WP-Performance\n" +"POT-Creation-Date: 2026-05-25T19:59:27+00:00\n" "PO-Revision-Date: 2019-08-30 15:10+0200\n" "Last-Translator: \n" "Language-Team: \n" @@ -9,1383 +10,2211 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Poedit 2.0.3\n" "X-Poedit-Basepath: ..\n" "X-Poedit-Flags-xgettext: --add-comments=translators:\n" "X-Poedit-WPHeader: wp-performance.php\n" "X-Poedit-SourceCharset: UTF-8\n" -"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;" -"esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;" -"_nx_noop:3c,1,2;__ngettext_noop:1,2;wpp_notify\n" +"X-Poedit-KeywordsList: " +"__;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;_nx_noop:3c,1,2;__ngettext_noop:1,2;wpp_notify\n" "X-Poedit-SearchPath-0: .\n" "X-Poedit-SearchPathExcluded-0: *.js\n" -#: includes/addons/cloudflare/cloudflare.php:55 -#, fuzzy -#| msgid "Cloudflare credentials" -msgid "Cloudflare - purge everything" -msgstr "Cloudflare podaci" +#. Plugin Name of the plugin +#: wp-performance.php src/Admin/AdminMenu.php:23 src/Admin/AdminMenu.php:24 +#: src/Admin/Metabox.php:28 assets/admin/app/App.jsx:77 +msgid "WP Performance" +msgstr "WP Performance" + +#. Description of the plugin +#: wp-performance.php +msgid "WP Performance Optimizer - cache & performance plugin." +msgstr "" -#: includes/addons/cloudflare/cloudflare.php:56 -msgid "Cloudflare - purge custom URL(s)" +#. Author of the plugin +#: wp-performance.php +msgid "Ante Laca" msgstr "" -#: includes/addons/cloudflare/cloudflare.php:97 -msgid "Cloudflare API credentials not set" -msgstr "Cloudflare API podaci nisu postavljeni" +#: src/Addons/Cloudflare/CloudflareController.php:87 +msgid "Cloudflare is not configured." +msgstr "" -#: includes/addons/cloudflare/cloudflare.php:116 -msgid " Cloudflare cannot get zone details. Check your Cloudflare credentials" +#: src/Admin/CompatibilityNotice.php:51 +msgid "WP Performance detected another caching/optimization plugin:" msgstr "" -"Cloudflare ne može dobiti detalje zone. Provjerite Cloudflare podatke računa" -#: includes/addons/cloudflare/cloudflare.php:123 -#, php-format +#: src/Admin/CompatibilityNotice.php:53 msgid "" -" Cloudflare zone %s is not activated. Please go to your Cloudflare dashboard " -"and activate it." +"Running more than one can cause conflicts; consider deactivating the others." +msgstr "" + +#: src/Admin/Metabox.php:36 +msgid "Exclude from cache" +msgstr "Izuzmi stranicu iz predmemorije" + +#: src/Admin/Metabox.php:37 +msgid "Exclude from CSS optimization" +msgstr "Izuzmi stranicu iz CSS optimizacije" + +#: src/Admin/Metabox.php:38 +msgid "Exclude from JavaScript optimization" +msgstr "" + +#: src/Admin/Metabox.php:39 +msgid "Exclude from HTML optimization" +msgstr "" + +#: src/Admin/Metabox.php:40 +msgid "Exclude from image optimization" +msgstr "" + +#: src/Admin/Metabox.php:41 +msgid "Exclude from video lazy load" +msgstr "" + +#: src/Cron/CronHooks.php:45 +msgid "Once weekly" +msgstr "" + +#: src/Cron/CronHooks.php:46 +msgid "Once monthly" +msgstr "" + +#: src/Rest/Admin/OverviewController.php:91 +#: src/Rest/Admin/OverviewController.php:120 +#: src/Rest/Admin/OverviewController.php:122 +#: src/Rest/Admin/OverviewController.php:124 +msgid "Page cache" +msgstr "" + +#: src/Rest/Admin/OverviewController.php:92 +#: assets/admin/app/tabs/CacheTab.jsx:207 +msgid "Browser caching" +msgstr "Predmemorija preglednika" + +#: src/Rest/Admin/OverviewController.php:93 +msgid "GZIP compression" +msgstr "" + +#: src/Rest/Admin/OverviewController.php:94 +msgid "CSS optimization" +msgstr "" + +#: src/Rest/Admin/OverviewController.php:95 +msgid "JavaScript optimization" +msgstr "" + +#: src/Rest/Admin/OverviewController.php:96 +msgid "HTML minification" +msgstr "" + +#: src/Rest/Admin/OverviewController.php:97 +msgid "Lazy loading" +msgstr "" + +#: src/Rest/Admin/OverviewController.php:98 +msgid "WebP/AVIF images" +msgstr "" + +#: src/Rest/Admin/OverviewController.php:99 +msgid "Database cleanup" +msgstr "" + +#: src/Rest/Admin/OverviewController.php:100 assets/admin/app/App.jsx:42 +#: assets/admin/app/tabs/SettingsTab.jsx:21 +msgid "CDN" +msgstr "" + +#: src/Rest/Admin/OverviewController.php:101 +#: src/Rest/Admin/OverviewController.php:129 +#: src/Rest/Admin/OverviewController.php:131 +#: src/Rest/Admin/OverviewController.php:133 +#: src/Rest/Admin/OverviewController.php:135 +#: assets/admin/app/tabs/SettingsTab.jsx:205 +msgid "Object cache" +msgstr "" + +#: src/Rest/Admin/OverviewController.php:120 +msgid "Page caching is turned off." +msgstr "" + +#: src/Rest/Admin/OverviewController.php:122 +msgid "Page caching is active and serving cached pages." +msgstr "" + +#: src/Rest/Admin/OverviewController.php:124 +msgid "The advanced-cache.php drop-in or WP_CACHE constant is missing." +msgstr "" + +#: src/Rest/Admin/OverviewController.php:129 +msgid "A persistent object cache is active." +msgstr "" + +#: src/Rest/Admin/OverviewController.php:131 +msgid "Another object cache drop-in is installed." +msgstr "" + +#: src/Rest/Admin/OverviewController.php:133 +msgid "Redis is available but the object cache is not enabled." +msgstr "" + +#: src/Rest/Admin/OverviewController.php:135 +msgid "No object cache backend detected (Redis recommended)." +msgstr "" + +#: src/Rest/Admin/OverviewController.php:140 +#: src/Rest/Admin/OverviewController.php:141 +msgid "Compression" +msgstr "" + +#: src/Rest/Admin/OverviewController.php:140 +msgid "GZIP compression is available." +msgstr "" + +#: src/Rest/Admin/OverviewController.php:141 +msgid "The zlib extension is missing, so GZIP is unavailable." +msgstr "" + +#: src/Rest/Admin/OverviewController.php:150 +#: src/Rest/Admin/OverviewController.php:151 +msgid "PHP OPcache" +msgstr "" + +#: src/Rest/Admin/OverviewController.php:150 +msgid "OPcache is enabled." +msgstr "" + +#: src/Rest/Admin/OverviewController.php:151 +msgid "OPcache is not enabled. Enabling it speeds up PHP execution." +msgstr "" + +#. translators: %s: PHP version. +#: src/Rest/Admin/OverviewController.php:155 +#: src/Rest/Admin/OverviewController.php:156 +msgid "PHP version" msgstr "" -"Cloudflare zona %s nije aktivirana. Idite u svoju Cloudflare nadzornu ploču " -"i aktivirajte je." -#: includes/addons/cloudflare/cloudflare.php:127 +#. translators: %s: PHP version. +#: src/Rest/Admin/OverviewController.php:155 #, php-format -msgid "" -" Cloudflare zone %s status is pending and these settings won't have any " -"effect on your website." +msgid "Running PHP %s." msgstr "" -"Cloudflare zona %s je na čekanju i ove postavke neće imati nikakvog utjecaja " -"na vašu web-lokaciju." -#: includes/addons/cloudflare/cloudflare.php:142 -msgid " Cloudflare development mode not set" -msgstr "Cloudflare razvojni mod nije postavljen" +#. translators: 1: current PHP version, 2: recommended version. +#: src/Rest/Admin/OverviewController.php:156 +#, php-format +msgid "PHP %1$s is below the recommended %2$s." +msgstr "" -#: includes/addons/cloudflare/cloudflare.php:151 -msgid " Cloudflare cache level not set" -msgstr "Cloudflare level predmemorije nije postavljen" +#: src/Rest/Admin/OverviewController.php:162 +#: src/Rest/Admin/OverviewController.php:163 +msgid "Cache directory" +msgstr "" -#: includes/addons/cloudflare/cloudflare.php:161 -msgid " Cloudflare browser cache expiration not set" -msgstr "Cloudflare istek predmemorije preglednika nije postavljen" +#: src/Rest/Admin/OverviewController.php:162 +msgid "The cache directory is writable." +msgstr "" -#: includes/addons/cloudflare/cloudflare.php:175 -msgid " Cloudflare minify not set" -msgstr "Cloudflare minifikacija nije postavljena" +#: src/Rest/Admin/OverviewController.php:163 +msgid "The cache directory is not writable." +msgstr "" -#: includes/addons/cloudflare/cloudflare.php:187 -msgid " Cloudflare Rocket loader mode not set" -msgstr " Cloudflare Rocket loader mod nije postavljen" +#: src/Rest/Admin/OverviewController.php:167 +#: src/Rest/Admin/OverviewController.php:168 +msgid "Image conversion" +msgstr "" -#: includes/addons/cloudflare/cloudflare.php:197 -msgid " Cloudflare Brotli mode not set" -msgstr " Cloudflare Brotli mod nije postavljen" +#: src/Rest/Admin/OverviewController.php:167 +msgid "GD can generate WebP images." +msgstr "" -#: includes/addons/cloudflare/cloudflare.php:209 -msgid "Cloudflare settings saved" -msgstr "Cloudflare postavke spremljene" +#: src/Rest/Admin/OverviewController.php:168 +msgid "GD cannot generate WebP images on this server." +msgstr "" -#: includes/addons/cloudflare/cloudflare.php:231 -msgid "Something went wrong. Cannot purge Cloudflare cache" +#: src/Rest/Admin/OverviewController.php:175 +#: src/Rest/Admin/OverviewController.php:176 +#: src/Rest/Admin/OverviewController.php:178 +#: src/Rest/Admin/OverviewController.php:180 +msgid "Server rules" msgstr "" -#: includes/addons/cloudflare/cloudflare.php:261 -msgid "Something went wrong. Cannot purge Cloudflare custom URL(s) cache" +#: src/Rest/Admin/OverviewController.php:175 +msgid "Apache detected; .htaccess is writable." msgstr "" -#: includes/addons/cloudflare/views/addon.php:20 -msgid "Integrate your Cloudflare account with this add-on." -msgstr "S ovim dodatkom integrirajte svoj račun za Cloudflare." +#: src/Rest/Admin/OverviewController.php:176 +msgid "Apache detected but .htaccess is not writable." +msgstr "" -#: includes/addons/cloudflare/views/addon.php:27 -#: includes/addons/cloudflare/views/admin.php:82 -#: includes/addons/cloudflare/views/admin.php:175 -#: includes/addons/cloudflare/views/admin.php:187 -#: includes/addons/prefetch/views/addon.php:18 -#: includes/addons/varnish/views/addon.php:49 includes/functions/admin.php:267 -#: includes/functions/backend.php:238 -msgid "Enable" -msgstr "Omogući" +#: src/Rest/Admin/OverviewController.php:178 +msgid "Nginx detected; add the generated rules from Settings." +msgstr "" -#: includes/addons/cloudflare/views/admin.php:15 -msgid "Caching" -msgstr "Predmemorija" +#: src/Rest/Admin/OverviewController.php:180 +msgid "Server type could not be determined." +msgstr "" -#: includes/addons/cloudflare/views/admin.php:21 -msgid "Purge Cache" -msgstr "Očisti predmemoriju" +#: src/Rest/Admin/SettingsController.php:64 +#: src/Rest/Admin/SettingsController.php:73 +msgid "Unknown settings group." +msgstr "" -#: includes/addons/cloudflare/views/admin.php:23 -msgid "Clear all Cloudflare cache" -msgstr "Očisti Cloudflare predmemoriju" +#: assets/admin/app/App.jsx:35 +msgid "Overview" +msgstr "" -#: includes/addons/cloudflare/views/admin.php:23 -msgid "Purge everything" -msgstr "Očisti sve" +#: assets/admin/app/App.jsx:36 assets/admin/app/tabs/SettingsTab.jsx:15 +msgid "Cache" +msgstr "Predmemorija" -#: includes/addons/cloudflare/views/admin.php:24 -msgid "Clear custom URL(s) from Cloudflare cache" +#: assets/admin/app/App.jsx:37 assets/admin/app/tabs/SettingsTab.jsx:16 +msgid "CSS" msgstr "" -#: includes/addons/cloudflare/views/admin.php:24 -#: includes/addons/cloudflare/views/admin.php:29 -msgid "Purge custom URL(s)" +#: assets/admin/app/App.jsx:38 assets/admin/app/tabs/SettingsTab.jsx:17 +msgid "JavaScript" msgstr "" -#: includes/addons/cloudflare/views/admin.php:49 includes/admin/cache.php:116 -#: includes/admin/cache.php:335 includes/admin/cache.php:355 -#: includes/admin/cache.php:414 includes/admin/cdn.php:66 -#: includes/admin/css.php:317 includes/admin/css.php:327 -#: includes/admin/includes/external_files.php:66 -#: includes/admin/includes/external_files.php:94 -#: includes/admin/includes/local_files.php:65 -#: includes/admin/includes/local_files.php:92 includes/admin/javascript.php:243 -#: includes/admin/javascript.php:253 includes/admin/media.php:66 -#: includes/admin/media.php:92 includes/admin/media.php:136 -#: includes/admin/media.php:156 includes/admin/media.php:238 -#: includes/admin/media.php:258 includes/functions/miscellaneous.php:258 +#: assets/admin/app/App.jsx:39 assets/admin/app/tabs/SettingsTab.jsx:18 +msgid "HTML" +msgstr "" + +#: assets/admin/app/App.jsx:40 assets/admin/app/tabs/SettingsTab.jsx:19 +msgid "Media" +msgstr "Media" + +#: assets/admin/app/App.jsx:41 assets/admin/app/tabs/SettingsTab.jsx:20 +msgid "Database" +msgstr "Baza podataka" + +#: assets/admin/app/App.jsx:43 assets/admin/app/tabs/SettingsTab.jsx:22 +msgid "Settings" +msgstr "Postavke" + +#: assets/admin/app/App.jsx:44 +msgid "Add-ons" +msgstr "Dodaci" + +#: assets/admin/app/App.jsx:50 assets/admin/app/tabs/AddonsTab.jsx:35 +#: assets/admin/app/tabs/SettingsTab.jsx:23 +msgid "Cloudflare" +msgstr "Cloudflare" + +#: assets/admin/app/components/fields/RepeatableInput.jsx:11 +#: assets/admin/app/components/ImageSizes.jsx:156 +#: assets/admin/app/tabs/JsTab.jsx:77 +msgid "Add" +msgstr "" + +#: assets/admin/app/components/fields/RepeatableInput.jsx:37 +#: assets/admin/app/components/ImageSizes.jsx:114 msgid "Remove" msgstr "Makni" -#: includes/addons/cloudflare/views/admin.php:58 -#: includes/addons/cloudflare/views/admin.php:67 +#: assets/admin/app/components/FileListTable.jsx:8 +msgid "Theme" +msgstr "Tema" + +#: assets/admin/app/components/FileListTable.jsx:9 +msgid "Plugins" +msgstr "Dodatci" + +#: assets/admin/app/components/FileListTable.jsx:10 +msgid "External" +msgstr "" + +#: assets/admin/app/components/FileListTable.jsx:14 +msgid "Everywhere" +msgstr "" + +#: assets/admin/app/components/FileListTable.jsx:15 +msgid "Only on selected URLs" +msgstr "" + +#: assets/admin/app/components/FileListTable.jsx:16 +msgid "Everywhere except selected URLs" +msgstr "" + +#: assets/admin/app/components/FileListTable.jsx:35 msgid "" -"Any assets in the Cloudflare cache that match the URL(s) exactly will be " -"purged from the cache." +"No files collected yet. Enable caching or an optimization, visit your site, " +"then choose \"Update files list\"." +msgstr "" + +#: assets/admin/app/components/FileListTable.jsx:75 +msgid "File" +msgstr "Datoteka" + +#: assets/admin/app/components/FileListTable.jsx:76 +#: assets/admin/app/tabs/CloudflareTab.jsx:113 +#: assets/admin/app/tabs/HtmlTab.jsx:45 +msgid "Minify" +msgstr "Umanji" + +#: assets/admin/app/components/FileListTable.jsx:77 +msgid "Inline" +msgstr "Umetni" + +#: assets/admin/app/components/FileListTable.jsx:78 +msgid "Combine" +msgstr "Kombinirati" + +#: assets/admin/app/components/FileListTable.jsx:79 +msgid "Disable" +msgstr "Onesposobiti" + +#: assets/admin/app/components/FileListTable.jsx:84 +msgid "Apply to all" msgstr "" -#: includes/addons/cloudflare/views/admin.php:70 includes/admin/cache.php:380 -#: includes/admin/css.php:351 includes/admin/includes/external_files.php:113 -#: includes/admin/includes/external_files.php:124 -#: includes/admin/includes/local_files.php:109 -#: includes/admin/includes/local_files.php:120 -#: includes/admin/javascript.php:277 includes/admin/media.php:180 -#: includes/admin/media.php:282 includes/functions/miscellaneous.php:260 +#: assets/admin/app/components/FileListTable.jsx:125 +#: assets/admin/app/components/FileListTable.jsx:132 +#: assets/admin/app/tabs/CacheTab.jsx:89 +#: assets/admin/app/tabs/CloudflareTab.jsx:90 +#: assets/admin/app/tabs/CssTab.jsx:160 assets/admin/app/tabs/HtmlTab.jsx:26 +#: assets/admin/app/tabs/JsTab.jsx:96 assets/admin/app/tabs/MediaTab.jsx:160 +#: assets/admin/app/tabs/MediaTab.jsx:177 msgid "Add URL" msgstr "Dodaj URL" -#: includes/addons/cloudflare/views/admin.php:78 -msgid "Development mode" -msgstr "Uključi development mode" - -#: includes/addons/cloudflare/views/admin.php:85 -msgid "Temporarily activate development mode on your website." -msgstr "Privremeno uključuje development mode na stranici" +#: assets/admin/app/components/ImageSizes.jsx:35 +msgid "Image size added." +msgstr "" -#: includes/addons/cloudflare/views/admin.php:86 -msgid "This setting will automatically turn off after 3 hours." -msgstr "Ova opcija će se automatski isključiti nakon 3 sata" +#: assets/admin/app/components/ImageSizes.jsx:37 +msgid "Could not add size." +msgstr "" -#: includes/addons/cloudflare/views/admin.php:91 -msgid "Cache level" -msgstr "Level predmemorija" +#: assets/admin/app/components/ImageSizes.jsx:43 +msgid "Remove this image size?" +msgstr "" -#: includes/addons/cloudflare/views/admin.php:94 -msgid "Aggressive - Standard" -msgstr "Agresivno - Standardno" +#: assets/admin/app/components/ImageSizes.jsx:49 +msgid "Could not remove size." +msgstr "" -#: includes/addons/cloudflare/views/admin.php:95 -msgid "Simplified - Ignore query string" -msgstr "Pojednostavljeno" +#: assets/admin/app/components/ImageSizes.jsx:55 +msgid "Restore default image sizes?" +msgstr "" -#: includes/addons/cloudflare/views/admin.php:96 -msgid "Basic - No query string" -msgstr "Osnovno" +#: assets/admin/app/components/ImageSizes.jsx:59 +msgid "Defaults restored." +msgstr "" -#: includes/addons/cloudflare/views/admin.php:101 -msgid "" -"Aggressive: Delivers a different resource each time the query string changes." +#: assets/admin/app/components/ImageSizes.jsx:64 +msgid "Regenerate all thumbnails? This may take a while." msgstr "" -"Agresivno: isporučuje drugi resurs svaki put kad se niz upita promijeni." -#: includes/addons/cloudflare/views/admin.php:102 -msgid "" -"Simplified: Delivers the same resource to everyone independent of the query " -"string." -msgstr "Pojednostavljeno: donosi isti resurs svima neovisno o nizu upita." +#: assets/admin/app/components/ImageSizes.jsx:81 +msgid "Thumbnails regenerated." +msgstr "" -#: includes/addons/cloudflare/views/admin.php:103 -msgid "" -"Basic: Only delivers resources from cache when there is no query string." -msgstr "Osnovno: isporučuje samo resurse iz predmemorije kada nema niza upita." +#: assets/admin/app/components/ImageSizes.jsx:83 +msgid "Regeneration failed." +msgstr "" -#: includes/addons/cloudflare/views/admin.php:118 -msgid "Browser Cache Expiration" -msgstr "Istek predmemorije preglednika" +#: assets/admin/app/components/ImageSizes.jsx:96 +msgid "Name" +msgstr "Naziv" -#: includes/addons/cloudflare/views/admin.php:121 -msgid "Respect Existing Headers" -msgstr "Poštuj postojeća zaglavlja" +#: assets/admin/app/components/ImageSizes.jsx:97 +msgid "W" +msgstr "" -#: includes/addons/cloudflare/views/admin.php:131 -msgid "" -"Browser cache TTL (in seconds) specifies how long CloudFlare-cached " -"resources will remain on your visitors computers." +#: assets/admin/app/components/ImageSizes.jsx:98 +msgid "H" msgstr "" -"Predmemorija preglednika TTL (u sekundama) određuje koliko dugo će resursi " -"spremljeni u CloudFlareu ostati na računalima posjetitelja." -#: includes/addons/cloudflare/views/admin.php:132 -msgid "The minimum TTL available depends on the plan level of the zone." -msgstr "Minimalna dostupnost TTL-a ovisi o planu zone koji koristite." +#: assets/admin/app/components/ImageSizes.jsx:99 +#: assets/admin/app/components/ImageSizes.jsx:153 +msgid "Crop" +msgstr "Izreži" + +#: assets/admin/app/components/ImageSizes.jsx:109 +msgid "Yes" +msgstr "Da" -#: includes/addons/cloudflare/views/admin.php:140 -msgid "Content" -msgstr "Sadržaj" +#: assets/admin/app/components/ImageSizes.jsx:129 +msgid "name" +msgstr "" -#: includes/addons/cloudflare/views/admin.php:146 includes/admin/css.php:27 -#: includes/admin/includes/local_files.php:153 includes/admin/javascript.php:27 -msgid "Minify" -msgstr "Umanji" +#: assets/admin/app/components/ImageSizes.jsx:159 +msgid "Cancel" +msgstr "" -#: includes/addons/cloudflare/views/admin.php:171 -msgid "Rocket Loader" -msgstr "Rocket Loader" +#: assets/admin/app/components/ImageSizes.jsx:165 +msgid "Add size" +msgstr "Dodaj veličinu" -#: includes/addons/cloudflare/views/admin.php:178 -msgid "Rocket Loader is a asynchronous JavaScript loader." -msgstr "Rocket Loader je asinkroni JavaScript loader." +#: assets/admin/app/components/ImageSizes.jsx:168 +msgid "Restore defaults" +msgstr "" -#: includes/addons/cloudflare/views/admin.php:183 -msgid "Brotli" -msgstr "Brotli" +#: assets/admin/app/components/ImageSizes.jsx:176 +msgid "Regenerating" +msgstr "" -#: includes/addons/cloudflare/views/admin.php:190 -msgid "" -"Speed up page load times for your visitor’s HTTPS traffic by applying Brotli " -"compression." +#: assets/admin/app/components/ImageSizes.jsx:177 +msgid "Regenerate thumbnails" +msgstr "Regenerirajte umanjene slike" + +#: assets/admin/app/components/SaveButton.jsx:12 +msgid "Saving…" msgstr "" -"Ubrzajte vrijeme učitavanja stranice za HTTPS promet posjetitelja primjenom " -"Brotli kompresije." -#: includes/addons/cloudflare/views/admin.php:198 includes/admin/addons.php:17 -#: includes/admin/cache.php:259 includes/admin/cdn.php:33 -#: includes/admin/css.php:119 includes/admin/database.php:183 -#: includes/admin/javascript.php:118 includes/admin/media.php:292 -#: includes/admin/settings.php:81 +#: assets/admin/app/components/SaveButton.jsx:12 msgid "Save changes" msgstr "Spremi izmjene" -#: includes/addons/cloudflare/views/admin.php:207 -msgid "Cloudflare credentials" -msgstr "Cloudflare podaci" +#: assets/admin/app/hooks/useSettingsGroup.js:46 +msgid "Settings saved." +msgstr "" -#: includes/addons/cloudflare/views/admin.php:211 -msgid "API key" -msgstr "API ključ" +#: assets/admin/app/hooks/useSettingsGroup.js:49 +msgid "Could not save settings." +msgstr "" -#: includes/addons/cloudflare/views/admin.php:218 -msgid "Account email" -msgstr "E-pošta računa" +#: assets/admin/app/lib/format.js:6 +msgid "just now" +msgstr "" -#: includes/addons/cloudflare/views/admin.php:223 -msgid "Zone ID" -msgstr "ID Zone" +#. translators: %d: number of minutes. +#: assets/admin/app/lib/format.js:11 +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#. translators: %d: number of hours. +#: assets/admin/app/lib/format.js:16 +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#. translators: %d: number of days. +#: assets/admin/app/lib/format.js:20 +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: assets/admin/app/tabs/AddonsTab.jsx:39 +msgid "" +"Integrate your Cloudflare account to purge cache and manage zone settings." +msgstr "" -#: includes/addons/prefetch/views/addon.php:9 -#: includes/addons/prefetch/views/addon.php:18 -msgid "Dynamic page preload" -msgstr "Dinamičko pred učitavanje stranice" +#: assets/admin/app/tabs/AddonsTab.jsx:43 +msgid "Configure Cloudflare" +msgstr "" -#: includes/addons/prefetch/views/addon.php:12 -msgid "Preloads a page right before a user clicks on link" -msgstr "Dinamički pred učitava stranice prije nego ih korisnik posjeti" +#: assets/admin/app/tabs/AddonsTab.jsx:50 +#: assets/admin/app/tabs/SettingsTab.jsx:24 +msgid "Varnish" +msgstr "Varnish" -#: includes/addons/varnish/views/addon.php:20 -msgid "If Varnish runs on your server, you must activate this add-on." +#: assets/admin/app/tabs/AddonsTab.jsx:54 +msgid "Automatically purge Varnish whenever the cache is cleared." msgstr "" -"Ako je Varnish instaliran na vašem poslužitelju, morate aktivirati ovu " -"opciju." -#: includes/addons/varnish/views/addon.php:28 +#: assets/admin/app/tabs/AddonsTab.jsx:58 msgid "Custom host" msgstr "Prilagođeni URL host" -#: includes/addons/varnish/views/addon.php:41 -msgid "If you are using proxy, you may need this option" -msgstr "Ako koristite proxy, možda vam zatreba ova opcija" +#: assets/admin/app/tabs/AddonsTab.jsx:70 +msgid "Dynamic page prefetch" +msgstr "" -#: includes/admin/addons.php:27 includes/admin/admin.php:30 -#: includes/admin/admin.php:45 includes/functions/admin.php:236 -#: includes/functions/admin.php:240 -msgid "Add-ons" -msgstr "Dodaci" +#: assets/admin/app/tabs/AddonsTab.jsx:74 +msgid "Prefetch a page as soon as a visitor hovers over its link." +msgstr "" -#: includes/admin/addons.php:31 -#, php-format -msgid "Add more features to %s with add-ons." -msgstr "Dodajte više mogućnosti %s s dodacima" +#: assets/admin/app/tabs/CacheTab.jsx:19 +msgid "Minutes" +msgstr "" -#: includes/admin/admin.php:23 includes/admin/admin.php:38 -#: includes/functions/admin.php:166 -msgid "Cache" -msgstr "Predmemorija" +#: assets/admin/app/tabs/CacheTab.jsx:20 +msgid "Hours" +msgstr "" -#: includes/admin/admin.php:26 includes/admin/admin.php:41 -#: includes/functions/admin.php:196 includes/functions/admin.php:200 -msgid "Media" -msgstr "Media" +#: assets/admin/app/tabs/CacheTab.jsx:21 +msgid "Days" +msgstr "" -#: includes/admin/admin.php:27 includes/admin/admin.php:42 -#: includes/functions/admin.php:206 includes/functions/admin.php:210 -msgid "Database" -msgstr "Baza podataka" +#: assets/admin/app/tabs/CacheTab.jsx:24 assets/admin/app/tabs/HtmlTab.jsx:11 +msgid "" +"Use {numbers}, {letters}, {any} or {all} to match dynamic parts of a URL." +msgstr "" -#: includes/admin/admin.php:29 includes/admin/admin.php:44 -#: includes/admin/settings.php:12 includes/functions/admin.php:170 -#: includes/functions/admin.php:226 includes/functions/admin.php:230 -#: includes/functions/admin.php:290 -msgid "Settings" -msgstr "Postavke" +#: assets/admin/app/tabs/CacheTab.jsx:45 +#: assets/admin/app/tabs/OverviewTab.jsx:59 +msgid "Cache cleared." +msgstr "" + +#: assets/admin/app/tabs/CacheTab.jsx:47 +#: assets/admin/app/tabs/OverviewTab.jsx:61 +msgid "Could not clear the cache." +msgstr "" + +#: assets/admin/app/tabs/CacheTab.jsx:54 +msgid "HTML files" +msgstr "HTML datoteke" + +#: assets/admin/app/tabs/CacheTab.jsx:55 +msgid "CSS files" +msgstr "CSS datoteke" -#: includes/admin/cache.php:11 +#: assets/admin/app/tabs/CacheTab.jsx:56 +msgid "JavaScript files" +msgstr "JavaScript datoteke" + +#: assets/admin/app/tabs/CacheTab.jsx:61 +msgid "Cache statistics" +msgstr "Statistika predmemorije" + +#: assets/admin/app/tabs/CacheTab.jsx:70 +msgid "Total" +msgstr "" + +#: assets/admin/app/tabs/CacheTab.jsx:80 +#: assets/admin/app/tabs/OverviewTab.jsx:118 +msgid "Clearing…" +msgstr "" + +#: assets/admin/app/tabs/CacheTab.jsx:80 +#: assets/admin/app/tabs/OverviewTab.jsx:118 +msgid "Clear cache" +msgstr "Očisti predmemeoriju" + +#: assets/admin/app/tabs/CacheTab.jsx:84 +msgid "Exclude URL(s) from cache" +msgstr "Izuzimanje URL-ova iz predmemorije" + +#: assets/admin/app/tabs/CacheTab.jsx:94 +msgid "Exclude User Agent(s) from cache" +msgstr "Izuzmite korisničke agente iz predmemorije" + +#: assets/admin/app/tabs/CacheTab.jsx:98 +msgid "Add User Agent" +msgstr "Dodaj korisničkog agenta" + +#: assets/admin/app/tabs/CacheTab.jsx:104 +msgid "Exclude search engines" +msgstr "Izuzmi tražilice" + +#: assets/admin/app/tabs/CacheTab.jsx:105 +msgid "Google, Bing and other crawlers bypass the cache." +msgstr "" + +#: assets/admin/app/tabs/CacheTab.jsx:115 msgid "Enable cache" msgstr "Omogući predmemoriju" -#: includes/admin/cache.php:15 -msgid "Reduces your server response time by serving static files to users" +#: assets/admin/app/tabs/CacheTab.jsx:119 +msgid "Reduces server response time by serving static HTML files to visitors." msgstr "" -"Smanjuje vrijeme odgovora poslužitelja posluživanjem statičkih datoteka " -"korisnicima" -#: includes/admin/cache.php:30 includes/admin/cache.php:194 -#: includes/admin/cache.php:246 -msgid "" -"Your web site is running on a Nginx server and some additional steps may be " -"required in order to use this option." +#: assets/admin/app/tabs/CacheTab.jsx:128 +msgid "Mobile cache" msgstr "" -"Vaša web stranica se nalazi na Nginx poslužitelju i možda će biti potrebni " -"dodatni koraci kako bi se koristila ova opcija." -#: includes/admin/cache.php:39 +#: assets/admin/app/tabs/CacheTab.jsx:132 msgid "Separate cache for mobile devices" msgstr "Odvojite predmemoriju za mobilne uređaje" -#: includes/admin/cache.php:42 -msgid "Create a dedicated cache file for mobile devices" -msgstr "Spremite predmemoriju u zasebnu datoteku za mobilne uređaje" - -#: includes/admin/cache.php:48 +#: assets/admin/app/tabs/CacheTab.jsx:136 msgid "Clear cache after" msgstr "Očisti predmemoriju nakon" -#: includes/admin/cache.php:53 -msgid "minutes" -msgstr "minuta" +#: assets/admin/app/tabs/CacheTab.jsx:151 +msgid "Clear cache when" +msgstr "Očisti predmemoriju kada" + +#: assets/admin/app/tabs/CacheTab.jsx:155 +msgid "A post or page is published or updated" +msgstr "" + +#: assets/admin/app/tabs/CacheTab.jsx:160 +msgid "A post or page is deleted" +msgstr "Stranica ili post je izbrisan" + +#: assets/admin/app/tabs/CacheTab.jsx:165 +msgid "WP Performance settings are saved" +msgstr "" + +#: assets/admin/app/tabs/CacheTab.jsx:169 +msgid "Clear cache options" +msgstr "" + +#: assets/admin/app/tabs/CacheTab.jsx:173 +msgid "Keep generated CSS/JS files when clearing the cache" +msgstr "" + +#: assets/admin/app/tabs/CacheTab.jsx:177 +msgid "Query strings" +msgstr "" + +#: assets/admin/app/tabs/CacheTab.jsx:181 +msgid "Cache URLs with query strings" +msgstr "" + +#: assets/admin/app/tabs/CacheTab.jsx:182 +msgid "" +"Off (recommended): tracking params (utm, gclid, fbclid…) are ignored so only " +"clean URLs are cached." +msgstr "" + +#: assets/admin/app/tabs/CacheTab.jsx:190 +msgid "Cache preloading" +msgstr "Predučitavanje predmemorije" + +#: assets/admin/app/tabs/CacheTab.jsx:191 +msgid "Enter the path to an XML sitemap used to preload the cache." +msgstr "" + +#: assets/admin/app/tabs/CacheTab.jsx:200 +msgid "Add Sitemap" +msgstr "Dodaj XML mapu stranice" + +#: assets/admin/app/tabs/CacheTab.jsx:208 +msgid "Leverage browser caching" +msgstr "Iskoristite predmemoriju preglednika" + +#: assets/admin/app/tabs/CacheTab.jsx:212 +msgid "" +"Sets HTTP expiry headers so returning visitors load resources from their " +"browser." +msgstr "" + +#: assets/admin/app/tabs/CacheTab.jsx:218 +msgid "Gzip compression" +msgstr "" + +#: assets/admin/app/tabs/CacheTab.jsx:222 +msgid "Compresses resources before sending them to the browser." +msgstr "" + +#: assets/admin/app/tabs/CdnTab.jsx:18 +msgid "Exclude file(s) from CDN" +msgstr "Izuzmi datoteke iz CDN-a" + +#: assets/admin/app/tabs/CdnTab.jsx:23 assets/admin/app/tabs/CssTab.jsx:91 +#: assets/admin/app/tabs/JsTab.jsx:56 +msgid "Add file" +msgstr "Dodaj datoteku" + +#: assets/admin/app/tabs/CdnTab.jsx:26 +msgid "Use {numbers}, {letters} or {any} to match dynamic parts of a URL." +msgstr "" + +#: assets/admin/app/tabs/CdnTab.jsx:34 +msgid "Enable CDN" +msgstr "Omogući CDN" + +#: assets/admin/app/tabs/CdnTab.jsx:38 +msgid "" +"Rewrites static asset URLs (CSS, JavaScript, images) to your CDN hostname." +msgstr "" + +#: assets/admin/app/tabs/CdnTab.jsx:46 +msgid "CDN hostname" +msgstr "Naziv CDN poslužitelja" + +#: assets/admin/app/tabs/CloudflareTab.jsx:16 +#: assets/admin/app/tabs/HtmlTab.jsx:54 +#: assets/admin/app/tabs/OverviewTab.jsx:35 +msgid "Aggressive" +msgstr "" + +#: assets/admin/app/tabs/CloudflareTab.jsx:17 +msgid "Simplified (ignore query string)" +msgstr "" + +#: assets/admin/app/tabs/CloudflareTab.jsx:18 +msgid "Basic (no query string)" +msgstr "" + +#: assets/admin/app/tabs/CloudflareTab.jsx:35 +msgid "complete." +msgstr "" + +#: assets/admin/app/tabs/CloudflareTab.jsx:37 +#: assets/admin/app/tabs/CloudflareTab.jsx:40 +msgid "Cloudflare error." +msgstr "" + +#: assets/admin/app/tabs/CloudflareTab.jsx:48 +msgid "Respect existing headers" +msgstr "" + +#: assets/admin/app/tabs/CloudflareTab.jsx:52 +msgid "Credentials" +msgstr "" + +#: assets/admin/app/tabs/CloudflareTab.jsx:53 +msgid "Account email" +msgstr "E-pošta računa" + +#: assets/admin/app/tabs/CloudflareTab.jsx:56 +msgid "API key" +msgstr "API ključ" + +#: assets/admin/app/tabs/CloudflareTab.jsx:59 +msgid "Zone ID" +msgstr "ID Zone" + +#: assets/admin/app/tabs/CloudflareTab.jsx:67 +msgid "Purge cache" +msgstr "" + +#: assets/admin/app/tabs/CloudflareTab.jsx:73 +#: assets/admin/app/tabs/CloudflareTab.jsx:75 +msgid "Purge everything" +msgstr "Očisti sve" + +#: assets/admin/app/tabs/CloudflareTab.jsx:75 +msgid "Purging…" +msgstr "" + +#: assets/admin/app/tabs/CloudflareTab.jsx:81 +#: assets/admin/app/tabs/CloudflareTab.jsx:83 +msgid "Purge custom URLs" +msgstr "" + +#: assets/admin/app/tabs/CloudflareTab.jsx:86 +msgid "Custom URLs to purge" +msgstr "" + +#: assets/admin/app/tabs/CloudflareTab.jsx:95 +msgid "Zone settings" +msgstr "" + +#: assets/admin/app/tabs/CloudflareTab.jsx:96 +msgid "Development mode" +msgstr "Uključi development mode" + +#: assets/admin/app/tabs/CloudflareTab.jsx:100 +msgid "Temporarily bypass the Cloudflare cache (auto-off after 3h)" +msgstr "" + +#: assets/admin/app/tabs/CloudflareTab.jsx:103 +msgid "Cache level" +msgstr "Level predmemorija" + +#: assets/admin/app/tabs/CloudflareTab.jsx:106 +msgid "Browser cache TTL" +msgstr "" + +#: assets/admin/app/tabs/CloudflareTab.jsx:118 +msgid "Rocket Loader" +msgstr "Rocket Loader" + +#: assets/admin/app/tabs/CloudflareTab.jsx:119 +msgid "Asynchronous JavaScript loading" +msgstr "" + +#: assets/admin/app/tabs/CloudflareTab.jsx:121 +msgid "Brotli" +msgstr "Brotli" + +#: assets/admin/app/tabs/CloudflareTab.jsx:122 +msgid "Brotli compression" +msgstr "" + +#: assets/admin/app/tabs/CssTab.jsx:19 +msgid "Default" +msgstr "" + +#: assets/admin/app/tabs/CssTab.jsx:41 assets/admin/app/tabs/JsTab.jsx:30 +msgid "File list updated." +msgstr "" + +#: assets/admin/app/tabs/CssTab.jsx:43 assets/admin/app/tabs/JsTab.jsx:32 +msgid "Could not update the file list." +msgstr "" + +#: assets/admin/app/tabs/CssTab.jsx:51 +msgid "CSS settings" +msgstr "CSS postavke" + +#: assets/admin/app/tabs/CssTab.jsx:52 +msgid "Minify inline CSS" +msgstr "Smanji umetnuti CSS" + +#: assets/admin/app/tabs/CssTab.jsx:55 +msgid "Remove unused CSS" +msgstr "" + +#: assets/admin/app/tabs/CssTab.jsx:59 +msgid "Inline only used CSS; load the rest async" +msgstr "" + +#: assets/admin/app/tabs/CssTab.jsx:60 +msgid "" +"Heuristic: keeps rules whose classes/ids appear on the page. The full CSS " +"still loads async as a fallback." +msgstr "" + +#: assets/admin/app/tabs/CssTab.jsx:68 +msgid "Used-CSS safelist" +msgstr "" + +#: assets/admin/app/tabs/CssTab.jsx:69 +msgid "Selectors to always keep, e.g. classes toggled by JavaScript." +msgstr "" + +#: assets/admin/app/tabs/CssTab.jsx:74 +msgid "Add selector" +msgstr "" + +#: assets/admin/app/tabs/CssTab.jsx:78 +msgid "Asynchronous CSS" +msgstr "" + +#: assets/admin/app/tabs/CssTab.jsx:82 +msgid "Load CSS without render-blocking" +msgstr "" + +#: assets/admin/app/tabs/CssTab.jsx:87 +msgid "Exclude from async" +msgstr "" + +#: assets/admin/app/tabs/CssTab.jsx:95 +msgid "Critical CSS" +msgstr "" + +#: assets/admin/app/tabs/CssTab.jsx:96 +msgid "" +"Above-the-fold CSS, inlined and applied before the async stylesheet loads." +msgstr "" + +#: assets/admin/app/tabs/CssTab.jsx:107 +msgid "Google Fonts" +msgstr "" + +#: assets/admin/app/tabs/CssTab.jsx:111 +msgid "Combine Google Fonts into one request" +msgstr "" + +#: assets/admin/app/tabs/CssTab.jsx:116 +msgid "Host Google Fonts locally and preload them" +msgstr "" + +#: assets/admin/app/tabs/CssTab.jsx:119 +msgid "Font display" +msgstr "" + +#: assets/admin/app/tabs/CssTab.jsx:126 assets/admin/app/tabs/JsTab.jsx:82 +msgid "Logged-in users" +msgstr "" + +#: assets/admin/app/tabs/CssTab.jsx:130 +msgid "Disable CSS optimization for logged-in users" +msgstr "Onemogućite CSS optimizaciju za prijavljene korisnike" + +#: assets/admin/app/tabs/CssTab.jsx:135 +msgid "Resource hints" +msgstr "" + +#: assets/admin/app/tabs/CssTab.jsx:137 +msgid "DNS prefetch" +msgstr "" + +#: assets/admin/app/tabs/CssTab.jsx:138 +msgid "Origins to resolve early, e.g. https://fonts.gstatic.com" +msgstr "" + +#: assets/admin/app/tabs/CssTab.jsx:143 assets/admin/app/tabs/CssTab.jsx:150 +msgid "Add origin" +msgstr "" + +#: assets/admin/app/tabs/CssTab.jsx:146 +msgid "Preconnect" +msgstr "" + +#: assets/admin/app/tabs/CssTab.jsx:155 +msgid "Exclude URL(s) from CSS optimization" +msgstr "Izuzimanje URL-ova iz CSS optimizacije" + +#: assets/admin/app/tabs/CssTab.jsx:177 assets/admin/app/tabs/JsTab.jsx:113 +msgid "Updating…" +msgstr "" + +#: assets/admin/app/tabs/CssTab.jsx:177 assets/admin/app/tabs/JsTab.jsx:113 +msgid "Update files list" +msgstr "Ažuriraj popis datoteka" + +#: assets/admin/app/tabs/DatabaseTab.jsx:14 +msgid "Not scheduled" +msgstr "Nije zakazano" + +#: assets/admin/app/tabs/DatabaseTab.jsx:15 +msgid "Daily" +msgstr "Dnevno" + +#: assets/admin/app/tabs/DatabaseTab.jsx:16 +msgid "Weekly" +msgstr "Tjedno" + +#: assets/admin/app/tabs/DatabaseTab.jsx:17 +msgid "Monthly" +msgstr "Mjesečno" + +#: assets/admin/app/tabs/DatabaseTab.jsx:21 +msgid "Trash" +msgstr "Smeće" + +#: assets/admin/app/tabs/DatabaseTab.jsx:21 +msgid "Trashed posts and pages." +msgstr "" + +#: assets/admin/app/tabs/DatabaseTab.jsx:22 +msgid "Spam" +msgstr "Spam" + +#: assets/admin/app/tabs/DatabaseTab.jsx:22 +msgid "Spam and trashed comments." +msgstr "" + +#: assets/admin/app/tabs/DatabaseTab.jsx:23 +msgid "Revisions" +msgstr "Revizije" + +#: assets/admin/app/tabs/DatabaseTab.jsx:23 +msgid "Stored post revisions." +msgstr "" + +#: assets/admin/app/tabs/DatabaseTab.jsx:24 +msgid "Transients" +msgstr "Privremene postavke" + +#: assets/admin/app/tabs/DatabaseTab.jsx:24 +msgid "Expired and stale transients." +msgstr "" + +#: assets/admin/app/tabs/DatabaseTab.jsx:25 +msgid "Auto Drafts" +msgstr "Skice" + +#: assets/admin/app/tabs/DatabaseTab.jsx:25 +msgid "Auto-saved draft posts." +msgstr "" + +#: assets/admin/app/tabs/DatabaseTab.jsx:26 +msgid "Scheduled tasks" +msgstr "Zakazani zadaci" + +#: assets/admin/app/tabs/DatabaseTab.jsx:26 +msgid "Orphaned cron events." +msgstr "" + +#: assets/admin/app/tabs/DatabaseTab.jsx:51 +msgid "Back up your database first. Run this cleanup now?" +msgstr "" + +#: assets/admin/app/tabs/DatabaseTab.jsx:59 +msgid "Cleanup complete." +msgstr "" + +#: assets/admin/app/tabs/DatabaseTab.jsx:61 +msgid "Cleanup failed." +msgstr "" + +#: assets/admin/app/tabs/DatabaseTab.jsx:70 +msgid "Automatic database cleanup" +msgstr "Automatsko čišćenje baze podataka" + +#: assets/admin/app/tabs/DatabaseTab.jsx:71 +msgid "Schedule" +msgstr "Raspored" + +#: assets/admin/app/tabs/DatabaseTab.jsx:78 +msgid "Next run" +msgstr "Sljedeće čišćenje" + +#: assets/admin/app/tabs/DatabaseTab.jsx:82 +msgid "Not set" +msgstr "Nije postavljeno" + +#: assets/admin/app/tabs/DatabaseTab.jsx:103 +#: assets/admin/app/tabs/DatabaseTab.jsx:133 +msgid "Cleaning…" +msgstr "" + +#: assets/admin/app/tabs/DatabaseTab.jsx:103 +msgid "Delete" +msgstr "Izbriši" + +#: assets/admin/app/tabs/DatabaseTab.jsx:112 +msgid "Enable automatic cleanup" +msgstr "Omogući automatsko čišćenje" + +#: assets/admin/app/tabs/DatabaseTab.jsx:121 +msgid "" +"Back up your database before running any cleanup. These actions cannot be " +"undone." +msgstr "" + +#: assets/admin/app/tabs/DatabaseTab.jsx:134 +msgid "Delete all" +msgstr "Izbrisati sve" + +#: assets/admin/app/tabs/HtmlTab.jsx:21 +msgid "Exclude URL(s) from HTML optimization" +msgstr "" + +#: assets/admin/app/tabs/HtmlTab.jsx:35 +msgid "HTML optimization" +msgstr "" + +#: assets/admin/app/tabs/HtmlTab.jsx:39 +msgid "Enable HTML optimization" +msgstr "" + +#: assets/admin/app/tabs/HtmlTab.jsx:49 +msgid "Normal" +msgstr "" + +#: assets/admin/app/tabs/HtmlTab.jsx:58 +msgid "Remove comments" +msgstr "" + +#: assets/admin/app/tabs/HtmlTab.jsx:62 +msgid "Remove HTML comments (conditional comments preserved)" +msgstr "" + +#: assets/admin/app/tabs/HtmlTab.jsx:66 +msgid "Remove type attribute" +msgstr "" + +#: assets/admin/app/tabs/HtmlTab.jsx:70 +msgid "Remove type=\"text/css\" from link tags" +msgstr "" + +#: assets/admin/app/tabs/HtmlTab.jsx:75 +msgid "Remove type=\"text/javascript\" from script tags" +msgstr "" + +#: assets/admin/app/tabs/HtmlTab.jsx:79 +msgid "Remove quotes" +msgstr "" + +#: assets/admin/app/tabs/HtmlTab.jsx:83 +msgid "Remove quotes from attributes where possible" +msgstr "" + +#: assets/admin/app/tabs/JsTab.jsx:40 +msgid "JavaScript settings" +msgstr "JavaScript postavke" + +#: assets/admin/app/tabs/JsTab.jsx:41 +msgid "Minify inline JavaScript" +msgstr "Smanjite umetnuti JavaScript" + +#: assets/admin/app/tabs/JsTab.jsx:44 +msgid "Asynchronous JavaScript" +msgstr "" + +#: assets/admin/app/tabs/JsTab.jsx:48 +msgid "Defer JavaScript to remove render-blocking" +msgstr "" + +#: assets/admin/app/tabs/JsTab.jsx:52 +msgid "Exclude from defer" +msgstr "" + +#: assets/admin/app/tabs/JsTab.jsx:61 +msgid "Delay until interaction" +msgstr "" + +#: assets/admin/app/tabs/JsTab.jsx:65 +msgid "Delay JavaScript until user interaction" +msgstr "" + +#: assets/admin/app/tabs/JsTab.jsx:66 +msgid "" +"Biggest TBT/INP win: scripts run on first scroll, click, or key press. " +"Exclude anything that must run immediately." +msgstr "" + +#: assets/admin/app/tabs/JsTab.jsx:73 +msgid "Exclude from delay" +msgstr "" + +#: assets/admin/app/tabs/JsTab.jsx:86 +msgid "Disable JavaScript optimization for logged-in users" +msgstr "Onemogućite JavaScript optimizaciju za prijavljene korisnike" + +#: assets/admin/app/tabs/JsTab.jsx:91 +msgid "Exclude URL(s) from JavaScript optimization" +msgstr "Izuzimanje URL-ova iz JavaScript optimizacije" + +#: assets/admin/app/tabs/MediaTab.jsx:24 +msgid "Convert all images to WebP/AVIF? This can take a while." +msgstr "" + +#: assets/admin/app/tabs/MediaTab.jsx:38 +msgid "Images converted." +msgstr "" + +#: assets/admin/app/tabs/MediaTab.jsx:40 +msgid "Conversion failed." +msgstr "" + +#: assets/admin/app/tabs/MediaTab.jsx:48 +msgid "Emoji & Embeds" +msgstr "" + +#: assets/admin/app/tabs/MediaTab.jsx:49 +msgid "Emoji" +msgstr "" + +#: assets/admin/app/tabs/MediaTab.jsx:53 +msgid "Disable WordPress emoji" +msgstr "" + +#: assets/admin/app/tabs/MediaTab.jsx:56 +msgid "Embeds" +msgstr "Embeds" + +#: assets/admin/app/tabs/MediaTab.jsx:60 +msgid "Disable oEmbed discovery" +msgstr "" + +#: assets/admin/app/tabs/MediaTab.jsx:65 +msgid "Image sizes" +msgstr "Veličine slika" + +#: assets/admin/app/tabs/MediaTab.jsx:73 +msgid "Images" +msgstr "Slike" + +#: assets/admin/app/tabs/MediaTab.jsx:74 assets/admin/app/tabs/MediaTab.jsx:166 +msgid "Lazy load" +msgstr "Lazy load" + +#: assets/admin/app/tabs/MediaTab.jsx:78 +msgid "Lazy load images" +msgstr "Lazy load slika" + +#: assets/admin/app/tabs/MediaTab.jsx:79 +msgid "Defer offscreen images with native loading=\"lazy\"." +msgstr "" + +#: assets/admin/app/tabs/MediaTab.jsx:86 +msgid "Disable lazy load on mobile devices" +msgstr "Onemogući lazy load na mobilnim uređajima" + +#: assets/admin/app/tabs/MediaTab.jsx:91 +msgid "Responsive images" +msgstr "Responzivne slike" + +#: assets/admin/app/tabs/MediaTab.jsx:95 +msgid "Force srcset on images" +msgstr "" + +#: assets/admin/app/tabs/MediaTab.jsx:98 +msgid "Image dimensions" +msgstr "" + +#: assets/admin/app/tabs/MediaTab.jsx:102 +msgid "Add missing width/height to prevent layout shift (CLS)" +msgstr "" + +#: assets/admin/app/tabs/MediaTab.jsx:106 +msgid "Preload LCP images" +msgstr "" + +#: assets/admin/app/tabs/MediaTab.jsx:107 +msgid "" +"Number of above-the-fold images to preload (fetchpriority=high) and skip " +"from lazy load. 0 = off." +msgstr "" + +#: assets/admin/app/tabs/MediaTab.jsx:120 +msgid "Next-gen images" +msgstr "" + +#: assets/admin/app/tabs/MediaTab.jsx:121 +msgid "" +"Serve WebP/AVIF via when a converted file exists. New uploads " +"convert automatically." +msgstr "" + +#: assets/admin/app/tabs/MediaTab.jsx:126 +msgid "Serve WebP/AVIF images" +msgstr "" + +#: assets/admin/app/tabs/MediaTab.jsx:136 +msgid "Converting" +msgstr "" + +#: assets/admin/app/tabs/MediaTab.jsx:137 +msgid "Convert existing images" +msgstr "" + +#: assets/admin/app/tabs/MediaTab.jsx:141 +msgid "Exclude by name" +msgstr "" + +#: assets/admin/app/tabs/MediaTab.jsx:145 +msgid "Add image" +msgstr "" + +#: assets/admin/app/tabs/MediaTab.jsx:148 +msgid "Exclude containers" +msgstr "" + +#: assets/admin/app/tabs/MediaTab.jsx:148 +msgid "CSS id or class, e.g. #hero or .no-lazy" +msgstr "" + +#: assets/admin/app/tabs/MediaTab.jsx:152 +msgid "Add container" +msgstr "" + +#: assets/admin/app/tabs/MediaTab.jsx:155 +#: assets/admin/app/tabs/MediaTab.jsx:173 +msgid "Exclude URL(s)" +msgstr "Izuzmi URL" + +#: assets/admin/app/tabs/MediaTab.jsx:165 +msgid "Videos" +msgstr "Video" + +#: assets/admin/app/tabs/MediaTab.jsx:170 +msgid "Lazy load videos & iframes" +msgstr "" + +#: assets/admin/app/tabs/OverviewTab.jsx:18 +msgid "Safe" +msgstr "" + +#: assets/admin/app/tabs/OverviewTab.jsx:19 +msgid "" +"Page cache, GZIP, browser caching and lazy loading. Works with virtually any " +"theme." +msgstr "" + +#: assets/admin/app/tabs/OverviewTab.jsx:26 +msgid "Balanced" +msgstr "" + +#: assets/admin/app/tabs/OverviewTab.jsx:28 +msgid "" +"Adds deferred CSS/JS, hosted fonts and modern image formats. Recommended for " +"most sites." +msgstr "" + +#: assets/admin/app/tabs/OverviewTab.jsx:36 +msgid "" +"Every optimization on, including delayed JavaScript and unused-CSS removal. " +"Test your site after applying." +msgstr "" + +#: assets/admin/app/tabs/OverviewTab.jsx:68 +msgid "Apply this preset? It will overwrite the related settings." +msgstr "" + +#: assets/admin/app/tabs/OverviewTab.jsx:74 +msgid "Preset applied. Reloading…" +msgstr "" + +#: assets/admin/app/tabs/OverviewTab.jsx:77 +msgid "Could not apply the preset." +msgstr "" + +#: assets/admin/app/tabs/OverviewTab.jsx:90 +msgid "Cache status" +msgstr "" + +#: assets/admin/app/tabs/OverviewTab.jsx:94 +msgid "Active" +msgstr "" + +#: assets/admin/app/tabs/OverviewTab.jsx:95 +msgid "Disabled" +msgstr "" + +#: assets/admin/app/tabs/OverviewTab.jsx:100 +msgid "Cached pages" +msgstr "" + +#: assets/admin/app/tabs/OverviewTab.jsx:106 +msgid "Cache size" +msgstr "" + +#: assets/admin/app/tabs/OverviewTab.jsx:123 +msgid "Quick setup" +msgstr "" + +#: assets/admin/app/tabs/OverviewTab.jsx:125 +msgid "Apply a curated configuration in one click, then fine-tune any tab." +msgstr "" + +#: assets/admin/app/tabs/OverviewTab.jsx:137 +msgid "Recommended" +msgstr "" + +#: assets/admin/app/tabs/OverviewTab.jsx:149 +msgid "Applying…" +msgstr "" + +#: assets/admin/app/tabs/OverviewTab.jsx:150 +msgid "Apply" +msgstr "" + +#: assets/admin/app/tabs/OverviewTab.jsx:157 +msgid "Active optimizations" +msgstr "" + +#: assets/admin/app/tabs/OverviewTab.jsx:173 +msgid "Health checks" +msgstr "" + +#: assets/admin/app/tabs/Placeholder.jsx:8 +msgid "is being rebuilt in the next step." +msgstr "" + +#: assets/admin/app/tabs/SettingsTab.jsx:25 +msgid "Prefetch" +msgstr "" + +#: assets/admin/app/tabs/SettingsTab.jsx:60 +msgid "Log cleared." +msgstr "" + +#: assets/admin/app/tabs/SettingsTab.jsx:62 +msgid "Could not clear the log." +msgstr "" + +#: assets/admin/app/tabs/SettingsTab.jsx:67 +msgid "" +"Restore this saved configuration? Your current settings will be replaced." +msgstr "" + +#: assets/admin/app/tabs/SettingsTab.jsx:73 +msgid "Settings restored. Reloading…" +msgstr "" + +#: assets/admin/app/tabs/SettingsTab.jsx:76 +msgid "Could not restore settings." +msgstr "" + +#: assets/admin/app/tabs/SettingsTab.jsx:94 +msgid "Export failed." +msgstr "" + +#: assets/admin/app/tabs/SettingsTab.jsx:106 +msgid "Settings imported. Reloading…" +msgstr "" + +#: assets/admin/app/tabs/SettingsTab.jsx:109 +msgid "Import failed - invalid file." +msgstr "" + +#: assets/admin/app/tabs/SettingsTab.jsx:119 +msgid "Restore points" +msgstr "" + +#: assets/admin/app/tabs/SettingsTab.jsx:122 +msgid "" +"The last five saved configurations appear here so you can roll back a change." +msgstr "" + +#. translators: %s: settings group name. +#: assets/admin/app/tabs/SettingsTab.jsx:137 +msgid "%s settings" +msgstr "" + +#: assets/admin/app/tabs/SettingsTab.jsx:151 +msgid "Restoring…" +msgstr "" + +#: assets/admin/app/tabs/SettingsTab.jsx:152 +msgid "Restore" +msgstr "" -#: includes/admin/cache.php:56 -msgid "hours" -msgstr "sat" +#: assets/admin/app/tabs/SettingsTab.jsx:160 +msgid "About" +msgstr "" -#: includes/admin/cache.php:59 -msgid "days" -msgstr "dan" +#: assets/admin/app/tabs/SettingsTab.jsx:162 +msgid "" +"Export your configuration to move it between sites, or import a saved " +"configuration file." +msgstr "" -#: includes/admin/cache.php:66 -msgid "Clear cache when" -msgstr "Očisti predmemoriju kada" +#: assets/admin/app/tabs/SettingsTab.jsx:173 +msgid "Import / Export" +msgstr "" -#: includes/admin/cache.php:70 -msgid "A new post or page is published or updated" -msgstr "Nova stranica ili post je objavljen ili ažuriran" +#: assets/admin/app/tabs/SettingsTab.jsx:174 +msgid "Export settings" +msgstr "Izvezi postavke" -#: includes/admin/cache.php:75 -msgid "A post or page is deleted" -msgstr "Stranica ili post je izbrisan" +#: assets/admin/app/tabs/SettingsTab.jsx:176 +msgid "Download settings file" +msgstr "" -#: includes/admin/cache.php:80 -msgid "settings are saved" -msgstr "postavke su spremljene" +#: assets/admin/app/tabs/SettingsTab.jsx:179 +msgid "Import settings" +msgstr "Uvezi postavke" -#: includes/admin/cache.php:86 -msgid "Clear cache options" +#: assets/admin/app/tabs/SettingsTab.jsx:190 +msgid "Nginx rules" msgstr "" -#: includes/admin/cache.php:90 -msgid "Keep generated CSS/JS files" +#: assets/admin/app/tabs/SettingsTab.jsx:192 +msgid "Add these rules to your nginx server block, then reload nginx." msgstr "" -#: includes/admin/cache.php:96 -msgid "Cache preloading" -msgstr "Predučitavanje predmemorije" +#: assets/admin/app/tabs/SettingsTab.jsx:198 +msgid "Server" +msgstr "Poslužitelj" -#: includes/admin/cache.php:126 includes/admin/cache.php:136 -msgid "Enter path to XML sitemap which will be used for cache preloading" +#: assets/admin/app/tabs/SettingsTab.jsx:200 +msgid "Browser cache and gzip rules are written to .htaccess automatically." msgstr "" -"Unesite putanju do XML mape stranice koji će se koristiti za predučitavanje " -"predmemorije" - -#: includes/admin/cache.php:139 -msgid "Add Sitemap" -msgstr "Dodaj XML mapu stranice" -#: includes/admin/cache.php:147 -msgid "Browser caching" -msgstr "Predmemorija preglednika" +#: assets/admin/app/tabs/SettingsTab.jsx:207 +msgid "Redis object cache" +msgstr "" -#: includes/admin/cache.php:151 -msgid "Leverage browser caching" -msgstr "Iskoristite predmemoriju preglednika" +#: assets/admin/app/tabs/SettingsTab.jsx:211 +msgid "Enable persistent object cache" +msgstr "" -#: includes/admin/cache.php:176 +#: assets/admin/app/tabs/SettingsTab.jsx:212 msgid "" -"Setting an expiry date in the HTTP headers for static resources instructs " -"the browser to load previously downloaded resources from local disk rather " -"than over the network" +"Stores WordPress query and option lookups in Redis to cut database load. " +"Installs an object-cache.php drop-in." msgstr "" -"Postavljanje datuma isteka u HTTP zaglavljima za statičke resurse upućuje " -"preglednik na učitavanje prethodno preuzetih resursa s lokalnog diska, a ne " -"preko mreže" -#: includes/admin/cache.php:183 includes/admin/cache.php:235 +#: assets/admin/app/tabs/SettingsTab.jsx:220 msgid "" -"This option is turned ON automatically for all sites in Wordpress multisite" +"No supported object cache backend was detected. Install and enable the Redis " +"PHP extension to use a persistent object cache." msgstr "" -#: includes/admin/cache.php:204 -msgid "Enable gzip compression" -msgstr "Omogući gzip kompresiju" +#: assets/admin/app/tabs/SettingsTab.jsx:228 +msgid "Troubleshooting" +msgstr "" -#: includes/admin/cache.php:228 -msgid "" -"Compressing resources with gzip reduce the number of bytes sent over the " -"network" +#: assets/admin/app/tabs/SettingsTab.jsx:229 +msgid "Logging" msgstr "" -"Komprimiranje resursa pomoću gzip-a smanjuje broj bajtova poslanih preko " -"mreže" -#: includes/admin/cache.php:268 -msgid "Cache statistics" -msgstr "Statistika predmemorije" +#: assets/admin/app/tabs/SettingsTab.jsx:233 +msgid "Enable troubleshooting log" +msgstr "" -#: includes/admin/cache.php:269 includes/functions/admin.php:155 -#: includes/functions/admin.php:160 -msgid "Clear cache" -msgstr "Očisti predmemeoriju" +#: assets/admin/app/tabs/SettingsTab.jsx:234 +msgid "Records cache and optimization activity to help diagnose issues." +msgstr "" -#: includes/admin/cache.php:291 -msgid "HTML files" -msgstr "HTML datoteke" +#: assets/admin/app/tabs/SettingsTab.jsx:239 +msgid "Log file" +msgstr "" -#: includes/admin/cache.php:294 -msgid "CSS files" -msgstr "CSS datoteke" +#: assets/admin/app/tabs/SettingsTab.jsx:244 +msgid "The log is empty." +msgstr "" -#: includes/admin/cache.php:297 -msgid "JavaScript files" -msgstr "JavaScript datoteke" +#: assets/admin/app/tabs/SettingsTab.jsx:248 +msgid "Content refreshes automatically every 10 seconds." +msgstr "" -#: includes/admin/cache.php:302 -msgid "Total cache size" -msgstr "Ukupna veličina predmemorije" +#: assets/admin/app/tabs/SettingsTab.jsx:251 +msgid "Clear log" +msgstr "" -#: includes/admin/cache.php:313 -msgid "Exclude URL(s) from cache" -msgstr "Izuzimanje URL-ova iz predmemorije" +#, fuzzy +#~| msgid "Cloudflare credentials" +#~ msgid "Cloudflare - purge everything" +#~ msgstr "Cloudflare podaci" -#: includes/admin/cache.php:334 includes/admin/css.php:316 -#: includes/admin/javascript.php:242 includes/admin/media.php:135 -#: includes/admin/media.php:237 -#, php-format -msgid "Remove %s from excluded URL(s)?" -msgstr "Makni %s s liste izuzetih URL-ova" - -#: includes/admin/cache.php:365 includes/admin/cache.php:377 -#: includes/admin/cdn.php:75 includes/admin/cdn.php:86 -#: includes/admin/css.php:336 includes/admin/css.php:348 -#: includes/admin/javascript.php:262 includes/admin/javascript.php:274 -#: includes/admin/media.php:165 includes/admin/media.php:177 -#: includes/admin/media.php:267 includes/admin/media.php:279 -msgid "Use {numbers} to match only numbers" -msgstr "Koristite {numbers} za podudaranje samo brojeva" - -#: includes/admin/cache.php:366 includes/admin/cache.php:377 -#: includes/admin/cdn.php:76 includes/admin/cdn.php:86 -#: includes/admin/css.php:337 includes/admin/css.php:348 -#: includes/admin/javascript.php:263 includes/admin/javascript.php:274 -#: includes/admin/media.php:166 includes/admin/media.php:177 -#: includes/admin/media.php:268 includes/admin/media.php:279 -msgid "Use {letters} to match only letters" -msgstr "Koristite {letters} za podudaranje samo slova" - -#: includes/admin/cache.php:367 includes/admin/cache.php:377 -#: includes/admin/cdn.php:77 includes/admin/cdn.php:86 -#: includes/admin/css.php:338 includes/admin/css.php:348 -#: includes/admin/javascript.php:264 includes/admin/javascript.php:274 -#: includes/admin/media.php:167 includes/admin/media.php:177 -#: includes/admin/media.php:269 includes/admin/media.php:279 -msgid "Use {any} to match any string" -msgstr "Koristite {any} za podudaranje bilo kojeg niza" - -#: includes/admin/cache.php:368 includes/admin/cache.php:377 -#: includes/admin/css.php:339 includes/admin/css.php:348 -#: includes/admin/javascript.php:265 includes/admin/javascript.php:274 -#: includes/admin/media.php:168 includes/admin/media.php:177 -#: includes/admin/media.php:270 includes/admin/media.php:279 -msgid "Use {all} to match all" -msgstr "Koristite {all} za podudaranje bilo kojeg niza" - -#: includes/admin/cache.php:392 -msgid "Exclude User Agent(s) from cache" -msgstr "Izuzmite korisničke agente iz predmemorije" +#~ msgid "Cloudflare API credentials not set" +#~ msgstr "Cloudflare API podaci nisu postavljeni" -#: includes/admin/cache.php:427 -msgid "Add User Agent" -msgstr "Dodaj korisničkog agenta" +#~ msgid "" +#~ " Cloudflare cannot get zone details. Check your Cloudflare credentials" +#~ msgstr "" +#~ "Cloudflare ne može dobiti detalje zone. Provjerite Cloudflare podatke " +#~ "računa" -#: includes/admin/cache.php:437 -msgid "Exclude search engines" -msgstr "Izuzmi tražilice" +#, php-format +#~ msgid "" +#~ " Cloudflare zone %s is not activated. Please go to your Cloudflare " +#~ "dashboard and activate it." +#~ msgstr "" +#~ "Cloudflare zona %s nije aktivirana. Idite u svoju Cloudflare nadzornu " +#~ "ploču i aktivirajte je." -#: includes/admin/cdn.php:12 -msgid "Enable CDN" -msgstr "Omogući CDN" +#, php-format +#~ msgid "" +#~ " Cloudflare zone %s status is pending and these settings won't have any " +#~ "effect on your website." +#~ msgstr "" +#~ "Cloudflare zona %s je na čekanju i ove postavke neće imati nikakvog " +#~ "utjecaja na vašu web-lokaciju." -#: includes/admin/cdn.php:16 -msgid "" -"All URL(s) of static files ( CSS, JavaScript and Images ) will be rewritten " -"to the CDN hostname you provide. " -msgstr "" -"Svi URL-ovi statičkih datoteka (CSS, JavaScript i slike) bit će promijenjeni " -"u naziv CDN poslužitelja koji navedete." +#~ msgid " Cloudflare development mode not set" +#~ msgstr "Cloudflare razvojni mod nije postavljen" -#: includes/admin/cdn.php:23 -msgid "CDN hostname" -msgstr "Naziv CDN poslužitelja" +#~ msgid " Cloudflare cache level not set" +#~ msgstr "Cloudflare level predmemorije nije postavljen" -#: includes/admin/cdn.php:43 -msgid "Exclude file(s) from CDN" -msgstr "Izuzmi datoteke iz CDN-a" +#~ msgid " Cloudflare browser cache expiration not set" +#~ msgstr "Cloudflare istek predmemorije preglednika nije postavljen" -#: includes/admin/cdn.php:89 -msgid "Add file" -msgstr "Dodaj datoteku" +#~ msgid " Cloudflare minify not set" +#~ msgstr "Cloudflare minifikacija nije postavljena" -#: includes/admin/css.php:26 includes/admin/javascript.php:26 -msgid "File" -msgstr "Datoteka" +#~ msgid " Cloudflare Rocket loader mode not set" +#~ msgstr " Cloudflare Rocket loader mod nije postavljen" -#: includes/admin/css.php:28 includes/admin/includes/local_files.php:171 -#: includes/admin/javascript.php:28 -msgid "Inline" -msgstr "Umetni" +#~ msgid " Cloudflare Brotli mode not set" +#~ msgstr " Cloudflare Brotli mod nije postavljen" -#: includes/admin/css.php:29 includes/admin/includes/local_files.php:189 -#: includes/admin/javascript.php:29 -msgid "Combine" -msgstr "Kombinirati" +#~ msgid "Cloudflare settings saved" +#~ msgstr "Cloudflare postavke spremljene" -#: includes/admin/css.php:30 includes/admin/includes/external_files.php:152 -#: includes/admin/includes/local_files.php:213 includes/admin/javascript.php:30 -msgid "Disable" -msgstr "Onesposobiti" +#~ msgid "Integrate your Cloudflare account with this add-on." +#~ msgstr "S ovim dodatkom integrirajte svoj račun za Cloudflare." -#: includes/admin/css.php:37 includes/admin/javascript.php:37 -msgid "Update all files in list below" -msgstr "Ažurirajte sve datoteke na popisu u nastavku" +#~ msgid "Enable" +#~ msgstr "Omogući" -#: includes/admin/css.php:47 includes/admin/javascript.php:47 -msgid "Theme" -msgstr "Tema" +#~ msgid "Caching" +#~ msgstr "Predmemorija" -#: includes/admin/css.php:69 includes/admin/javascript.php:69 -msgid "Plugins" -msgstr "Dodatci" +#~ msgid "Purge Cache" +#~ msgstr "Očisti predmemoriju" -#: includes/admin/css.php:92 includes/admin/javascript.php:92 -msgid "External resources" -msgstr "Vanjski resursi" +#~ msgid "Clear all Cloudflare cache" +#~ msgstr "Očisti Cloudflare predmemoriju" -#: includes/admin/css.php:115 includes/admin/javascript.php:114 -msgid "" -"If some of the files are missing from this list, enable Cache preloading " -"option." -msgstr "" -"Ako neke datoteke nedostaju s ovog popisa, omogućite opciju Predučitavanje " -"predmemorije." +#~ msgid "Temporarily activate development mode on your website." +#~ msgstr "Privremeno uključuje development mode na stranici" -#: includes/admin/css.php:122 includes/admin/javascript.php:121 -#, php-format -msgid "Clear collected %s files list.%s This option will also clear the cache." -msgstr "" -"Izbriši popis prikupljanih %s datoteka.%s Ova opcija će također izbrisati i " -"predmemoriju." +#~ msgid "This setting will automatically turn off after 3 hours." +#~ msgstr "Ova opcija će se automatski isključiti nakon 3 sata" -#: includes/admin/css.php:125 includes/admin/javascript.php:124 -msgid "Update files list" -msgstr "Ažuriraj popis datoteka" +#~ msgid "Aggressive - Standard" +#~ msgstr "Agresivno - Standardno" -#: includes/admin/css.php:130 -msgid "CSS files not found" -msgstr "CSS datoteke nisu pronađene" +#~ msgid "Simplified - Ignore query string" +#~ msgstr "Pojednostavljeno" -#: includes/admin/css.php:134 includes/admin/javascript.php:133 -msgid "Reload" -msgstr "Ponovno učitati" +#~ msgid "Basic - No query string" +#~ msgstr "Osnovno" -#: includes/admin/css.php:142 -msgid "CSS settings" -msgstr "CSS postavke" +#~ msgid "" +#~ "Aggressive: Delivers a different resource each time the query string " +#~ "changes." +#~ msgstr "" +#~ "Agresivno: isporučuje drugi resurs svaki put kad se niz upita promijeni." -#: includes/admin/css.php:158 -msgid "Minify inline CSS" -msgstr "Smanji umetnuti CSS" +#~ msgid "" +#~ "Simplified: Delivers the same resource to everyone independent of the " +#~ "query string." +#~ msgstr "Pojednostavljeno: donosi isti resurs svima neovisno o nizu upita." -#: includes/admin/css.php:166 -msgid "Asynchronously load CSS" -msgstr "Asinhrono učitajte CSS" +#~ msgid "" +#~ "Basic: Only delivers resources from cache when there is no query string." +#~ msgstr "" +#~ "Osnovno: isporučuje samo resurse iz predmemorije kada nema niza upita." -#: includes/admin/css.php:176 includes/admin/css.php:178 -msgid "Show critical CSS" -msgstr "Prikaži CSS definicije" +#~ msgid "Browser Cache Expiration" +#~ msgstr "Istek predmemorije preglednika" -#: includes/admin/css.php:177 includes/admin/css.php:178 -msgid "Hide critical CSS" -msgstr "Sakri CSS definicije" +#~ msgid "Respect Existing Headers" +#~ msgstr "Poštuj postojeća zaglavlja" -#: includes/admin/css.php:188 -msgid "Eliminates render-blocking CSS" -msgstr "CSS se ne prikazuje kao blokirajući sadržaj" +#~ msgid "" +#~ "Browser cache TTL (in seconds) specifies how long CloudFlare-cached " +#~ "resources will remain on your visitors computers." +#~ msgstr "" +#~ "Predmemorija preglednika TTL (u sekundama) određuje koliko dugo će " +#~ "resursi spremljeni u CloudFlareu ostati na računalima posjetitelja." -#: includes/admin/css.php:194 -msgid "" -"Loading CSS asynchronously will produce FOUC effect (a Flash Of Unstyled " -"Content). In order to minimize the FOUC effect, use critical CSS path." -msgstr "" -"Učitavanje CSS-a asinkrono će rezultirati FOUC efektom (Flash Of Unstyled " -"Content). Kako bi se smanjio FOUC učinak, umetnite kritične CSS definicije." +#~ msgid "The minimum TTL available depends on the plan level of the zone." +#~ msgstr "Minimalna dostupnost TTL-a ovisi o planu zone koji koristite." -#: includes/admin/css.php:202 -msgid "Critical CSS path" -msgstr "Kritične CSS definicije" +#~ msgid "Content" +#~ msgstr "Sadržaj" -#: includes/admin/css.php:207 -msgid "Enter critical CSS path definitions" -msgstr "Unesi kritične CSS definicije" +#~ msgid "Rocket Loader is a asynchronous JavaScript loader." +#~ msgstr "Rocket Loader je asinkroni JavaScript loader." -#: includes/admin/css.php:212 -msgid "Generate critical CSS path" -msgstr "Generirajte kritične CSS definicije" +#~ msgid "" +#~ "Speed up page load times for your visitor’s HTTPS traffic by applying " +#~ "Brotli compression." +#~ msgstr "" +#~ "Ubrzajte vrijeme učitavanja stranice za HTTPS promet posjetitelja " +#~ "primjenom Brotli kompresije." -#: includes/admin/css.php:227 -msgid "Combine Google Fonts" -msgstr "Kombinirajte Google fontove" +#~ msgid "Cloudflare credentials" +#~ msgstr "Cloudflare podaci" -#: includes/admin/css.php:232 -msgid "Load all google fonts in one HTTP request" -msgstr "Učitajte sve Google fontove u jednom HTTP zahtjevu" +#~ msgid "Dynamic page preload" +#~ msgstr "Dinamičko pred učitavanje stranice" -#: includes/admin/css.php:241 -msgid "Disable CSS optimization for logged-in users" -msgstr "Onemogućite CSS optimizaciju za prijavljene korisnike" +#~ msgid "Preloads a page right before a user clicks on link" +#~ msgstr "Dinamički pred učitava stranice prije nego ih korisnik posjeti" -#: includes/admin/css.php:252 includes/admin/javascript.php:178 -msgid "Resource Hints" -msgstr "Postavke za vanjske resurse" +#~ msgid "If Varnish runs on your server, you must activate this add-on." +#~ msgstr "" +#~ "Ako je Varnish instaliran na vašem poslužitelju, morate aktivirati ovu " +#~ "opciju." -#: includes/admin/css.php:259 includes/admin/javascript.php:185 -msgid "Origins" -msgstr "Podrijetlo" +#~ msgid "If you are using proxy, you may need this option" +#~ msgstr "Ako koristite proxy, možda vam zatreba ova opcija" -#: includes/admin/css.php:286 includes/admin/javascript.php:212 -msgid "DNS prefetching can make external resources load faster" -msgstr "Prethodno dohvaćanje DNS-a može ubrzati učitavanje vanjskih resursa" +#, php-format +#~ msgid "Add more features to %s with add-ons." +#~ msgstr "Dodajte više mogućnosti %s s dodacima" -#: includes/admin/css.php:287 includes/admin/javascript.php:213 -msgid "Preconnect can remove additional roundtrips and reduce request latency" -msgstr "" -"Preconnect može ukloniti dodatne HTTP round-trip zahtjeve i tako smanjiti " -"latenciju HTTP zahtjeva" +#~ msgid "Reduces your server response time by serving static files to users" +#~ msgstr "" +#~ "Smanjuje vrijeme odgovora poslužitelja posluživanjem statičkih datoteka " +#~ "korisnicima" -#: includes/admin/css.php:295 -msgid "Exclude URL(s) from CSS optimization" -msgstr "Izuzimanje URL-ova iz CSS optimizacije" +#~ msgid "" +#~ "Your web site is running on a Nginx server and some additional steps may " +#~ "be required in order to use this option." +#~ msgstr "" +#~ "Vaša web stranica se nalazi na Nginx poslužitelju i možda će biti " +#~ "potrebni dodatni koraci kako bi se koristila ova opcija." -#: includes/admin/database.php:30 includes/admin/database.php:35 -msgid "Delete all pages, posts and comments from trash" -msgstr "Izbrišite sve stranice, postove i komentare iz smeća" +#~ msgid "Create a dedicated cache file for mobile devices" +#~ msgstr "Spremite predmemoriju u zasebnu datoteku za mobilne uređaje" -#: includes/admin/database.php:31 includes/admin/database.php:55 -#: includes/admin/database.php:82 includes/admin/database.php:105 -#: includes/admin/database.php:132 includes/admin/database.php:157 -msgid "Delete" -msgstr "Izbriši" +#~ msgid "minutes" +#~ msgstr "minuta" -#: includes/admin/database.php:34 -msgid "Trash" -msgstr "Smeće" +#~ msgid "hours" +#~ msgstr "sat" -#: includes/admin/database.php:41 includes/admin/database.php:65 -#: includes/admin/database.php:92 includes/admin/database.php:115 -#: includes/admin/database.php:142 includes/admin/database.php:167 -msgid "Enable automatic cleanup" -msgstr "Omogući automatsko čišćenje" +#~ msgid "days" +#~ msgstr "dan" -#: includes/admin/database.php:54 includes/admin/database.php:59 -msgid "Delete all spam comments" -msgstr "Izbrišite sve spam komentare" +#~ msgid "A new post or page is published or updated" +#~ msgstr "Nova stranica ili post je objavljen ili ažuriran" -#: includes/admin/database.php:58 -msgid "Spam" -msgstr "Spam" +#~ msgid "settings are saved" +#~ msgstr "postavke su spremljene" -#: includes/admin/database.php:81 includes/admin/database.php:86 -msgid "Delete all revisions" -msgstr "Izbrišite sve revizije" +#~ msgid "Enter path to XML sitemap which will be used for cache preloading" +#~ msgstr "" +#~ "Unesite putanju do XML mape stranice koji će se koristiti za " +#~ "predučitavanje predmemorije" -#: includes/admin/database.php:85 -msgid "Revisions" -msgstr "Revizije" +#~ msgid "" +#~ "Setting an expiry date in the HTTP headers for static resources instructs " +#~ "the browser to load previously downloaded resources from local disk " +#~ "rather than over the network" +#~ msgstr "" +#~ "Postavljanje datuma isteka u HTTP zaglavljima za statičke resurse upućuje " +#~ "preglednik na učitavanje prethodno preuzetih resursa s lokalnog diska, a " +#~ "ne preko mreže" -#: includes/admin/database.php:104 includes/admin/database.php:109 -msgid "Delete all expired transients" -msgstr "Izbrišite sve istekle privremene postavke" +#~ msgid "Enable gzip compression" +#~ msgstr "Omogući gzip kompresiju" -#: includes/admin/database.php:108 -msgid "Transients" -msgstr "Privremene postavke" +#~ msgid "" +#~ "Compressing resources with gzip reduce the number of bytes sent over the " +#~ "network" +#~ msgstr "" +#~ "Komprimiranje resursa pomoću gzip-a smanjuje broj bajtova poslanih preko " +#~ "mreže" -#: includes/admin/database.php:131 includes/admin/database.php:136 -msgid "Delete all auto drafts" -msgstr "Izbrišite sve skice" +#~ msgid "Total cache size" +#~ msgstr "Ukupna veličina predmemorije" -#: includes/admin/database.php:135 -msgid "Auto Drafts" -msgstr "Skice" +#, php-format +#~ msgid "Remove %s from excluded URL(s)?" +#~ msgstr "Makni %s s liste izuzetih URL-ova" -#: includes/admin/database.php:156 includes/admin/database.php:161 -msgid "Delete all unused scheduled tasks" -msgstr "Obrišite sve zakazane zadatke koji se ne koriste" +#~ msgid "Use {numbers} to match only numbers" +#~ msgstr "Koristite {numbers} za podudaranje samo brojeva" -#: includes/admin/database.php:160 -msgid "Scheduled tasks" -msgstr "Zakazani zadaci" +#~ msgid "Use {letters} to match only letters" +#~ msgstr "Koristite {letters} za podudaranje samo slova" -#: includes/admin/database.php:179 -msgid "" -"Backup your database before running any of these cleanup actions. Once a " -"database cleanup has been performed, there is no way to undo it." -msgstr "" -"Izradite sigurnosnu kopiju baze podataka prije pokretanja bilo koje od ovih " -"akcija čišćenja. Nakon što je već izvršeno čišćenje baze, nema načina da se " -"izmjene ponište i vrate podaci." +#~ msgid "Use {any} to match any string" +#~ msgstr "Koristite {any} za podudaranje bilo kojeg niza" -#: includes/admin/database.php:185 includes/admin/database.php:186 -msgid "Delete all" -msgstr "Izbrisati sve" +#~ msgid "Use {all} to match all" +#~ msgstr "Koristite {all} za podudaranje bilo kojeg niza" -#: includes/admin/database.php:194 -msgid "Automatic database cleanup" -msgstr "Automatsko čišćenje baze podataka" +#~ msgid "" +#~ "All URL(s) of static files ( CSS, JavaScript and Images ) will be " +#~ "rewritten to the CDN hostname you provide. " +#~ msgstr "" +#~ "Svi URL-ovi statičkih datoteka (CSS, JavaScript i slike) bit će " +#~ "promijenjeni u naziv CDN poslužitelja koji navedete." -#: includes/admin/database.php:200 -msgid "Schedule" -msgstr "Raspored" +#~ msgid "Update all files in list below" +#~ msgstr "Ažurirajte sve datoteke na popisu u nastavku" -#: includes/admin/database.php:202 -msgid "Not scheduled" -msgstr "Nije zakazano" +#~ msgid "External resources" +#~ msgstr "Vanjski resursi" -#: includes/admin/database.php:203 includes/functions/cron.php:26 -msgid "Daily" -msgstr "Dnevno" +#~ msgid "" +#~ "If some of the files are missing from this list, enable Cache preloading " +#~ "option." +#~ msgstr "" +#~ "Ako neke datoteke nedostaju s ovog popisa, omogućite opciju " +#~ "Predučitavanje predmemorije." -#: includes/admin/database.php:204 includes/functions/cron.php:31 -msgid "Weekly" -msgstr "Tjedno" +#, php-format +#~ msgid "" +#~ "Clear collected %s files list.%s This option will also clear the cache." +#~ msgstr "" +#~ "Izbriši popis prikupljanih %s datoteka.%s Ova opcija će također izbrisati " +#~ "i predmemoriju." -#: includes/admin/database.php:205 includes/functions/cron.php:36 -msgid "Monthly" -msgstr "Mjesečno" +#~ msgid "CSS files not found" +#~ msgstr "CSS datoteke nisu pronađene" -#: includes/admin/database.php:208 -msgid "Next run" -msgstr "Sljedeće čišćenje" +#~ msgid "Reload" +#~ msgstr "Ponovno učitati" -#: includes/admin/database.php:214 -msgid "Not set" -msgstr "Nije postavljeno" +#~ msgid "Asynchronously load CSS" +#~ msgstr "Asinhrono učitajte CSS" -#: includes/admin/includes/external_files.php:31 -#: includes/admin/includes/local_files.php:31 -#: includes/functions/miscellaneous.php:261 -msgid "Disable everywhere" -msgstr "Onemogućite svugdje" - -#: includes/admin/includes/external_files.php:35 -#: includes/admin/includes/local_files.php:35 -#: includes/functions/miscellaneous.php:262 -msgid "Disable only on selected URL" -msgstr "Onemogućite samo na odabranom URL-u" - -#: includes/admin/includes/external_files.php:39 -#: includes/admin/includes/local_files.php:39 -#: includes/functions/miscellaneous.php:263 -msgid "Disable everywhere except on selected URL" -msgstr "Onemogući svugdje osim na odabranom URL-u" - -#: includes/admin/javascript.php:129 -msgid "JavaScript files not found" -msgstr "JavaScript datoteke nisu pronađene" - -#: includes/admin/javascript.php:142 -msgid "JavaScript settings" -msgstr "JavaScript postavke" +#~ msgid "Show critical CSS" +#~ msgstr "Prikaži CSS definicije" -#: includes/admin/javascript.php:150 -msgid "Minify inline JavaScript" -msgstr "Smanjite umetnuti JavaScript" +#~ msgid "Hide critical CSS" +#~ msgstr "Sakri CSS definicije" -#: includes/admin/javascript.php:157 -msgid "Asynchronously load JavaScript" -msgstr "Asinhrono učitajte JavaScript" +#~ msgid "Eliminates render-blocking CSS" +#~ msgstr "CSS se ne prikazuje kao blokirajući sadržaj" -#: includes/admin/javascript.php:161 -msgid "Eliminates render-blocking JavaScript" -msgstr "JavaScript se ne prikazuje kao blokirajući sadržaj" +#~ msgid "" +#~ "Loading CSS asynchronously will produce FOUC effect (a Flash Of Unstyled " +#~ "Content). In order to minimize the FOUC effect, use critical CSS path." +#~ msgstr "" +#~ "Učitavanje CSS-a asinkrono će rezultirati FOUC efektom (Flash Of Unstyled " +#~ "Content). Kako bi se smanjio FOUC učinak, umetnite kritične CSS " +#~ "definicije." -#: includes/admin/javascript.php:167 -msgid "Disable JavaScript optimization for logged-in users" -msgstr "Onemogućite JavaScript optimizaciju za prijavljene korisnike" +#~ msgid "Critical CSS path" +#~ msgstr "Kritične CSS definicije" -#: includes/admin/javascript.php:221 -msgid "Exclude URL(s) from JavaScript optimization" -msgstr "Izuzimanje URL-ova iz JavaScript optimizacije" +#~ msgid "Enter critical CSS path definitions" +#~ msgstr "Unesi kritične CSS definicije" -#: includes/admin/media.php:12 -msgid "Images" -msgstr "Slike" +#~ msgid "Generate critical CSS path" +#~ msgstr "Generirajte kritične CSS definicije" -#: includes/admin/media.php:16 includes/admin/media.php:192 -msgid "Lazy load" -msgstr "Lazy load" +#~ msgid "Combine Google Fonts" +#~ msgstr "Kombinirajte Google fontove" -#: includes/admin/media.php:20 -msgid "Lazy load images" -msgstr "Lazy load slika" +#~ msgid "Load all google fonts in one HTTP request" +#~ msgstr "Učitajte sve Google fontove u jednom HTTP zahtjevu" -#: includes/admin/media.php:24 includes/admin/media.php:209 -msgid "Reduces the number of HTTP requests and improves loading time" -msgstr "Smanjuje broj HTTP zahtjeva i poboljšava vrijeme učitavanja stranice" +#~ msgid "Resource Hints" +#~ msgstr "Postavke za vanjske resurse" -#: includes/admin/media.php:34 -msgid "Disable lazy load on mobile devices" -msgstr "Onemogući lazy load na mobilnim uređajima" +#~ msgid "Origins" +#~ msgstr "Podrijetlo" -#: includes/admin/media.php:40 -msgid "Responsive images" -msgstr "Responzivne slike" +#~ msgid "DNS prefetching can make external resources load faster" +#~ msgstr "Prethodno dohvaćanje DNS-a može ubrzati učitavanje vanjskih resursa" -#: includes/admin/media.php:44 -msgid "Force images to use srcset attribute" -msgstr "Prisilite slike da koriste srcset atribut" +#~ msgid "" +#~ "Preconnect can remove additional roundtrips and reduce request latency" +#~ msgstr "" +#~ "Preconnect može ukloniti dodatne HTTP round-trip zahtjeve i tako smanjiti " +#~ "latenciju HTTP zahtjeva" -#: includes/admin/media.php:47 -msgid "" -"Loads the best optimized image depending on users screen size and image " -"sizes settings" -msgstr "" -"Učitava najbolju optimiziranu sliku ovisno o veličini zaslona i postavkama " -"veličine slike" +#~ msgid "Delete all pages, posts and comments from trash" +#~ msgstr "Izbrišite sve stranice, postove i komentare iz smeća" -#: includes/admin/media.php:52 -msgid "Exclude" -msgstr "Izuzmi" +#~ msgid "Delete all spam comments" +#~ msgstr "Izbrišite sve spam komentare" -#: includes/admin/media.php:55 -msgid "Exclude image by name" -msgstr "Izuzmi sliku po imenu slike" +#~ msgid "Delete all revisions" +#~ msgstr "Izbrišite sve revizije" -#: includes/admin/media.php:72 -msgid "Add Image" -msgstr "Dodaj sliku" +#~ msgid "Delete all expired transients" +#~ msgstr "Izbrišite sve istekle privremene postavke" -#: includes/admin/media.php:81 -msgid "" -"Exclude images located in specific html containers like sliders and galleries" -msgstr "" -"Izuzmite slike koje se nalaze u određenim html kontejnerima kao npr. galerije" +#~ msgid "Delete all auto drafts" +#~ msgstr "Izbrišite sve skice" -#: includes/admin/media.php:99 includes/admin/media.php:108 -msgid "Enter container id or class name" -msgstr "Unesite ID kontejnera ili naziv klase" +#~ msgid "Delete all unused scheduled tasks" +#~ msgstr "Obrišite sve zakazane zadatke koji se ne koriste" -#: includes/admin/media.php:100 includes/admin/media.php:108 -msgid "Example" -msgstr "Primjer" +#~ msgid "" +#~ "Backup your database before running any of these cleanup actions. Once a " +#~ "database cleanup has been performed, there is no way to undo it." +#~ msgstr "" +#~ "Izradite sigurnosnu kopiju baze podataka prije pokretanja bilo koje od " +#~ "ovih akcija čišćenja. Nakon što je već izvršeno čišćenje baze, nema " +#~ "načina da se izmjene ponište i vrate podaci." -#: includes/admin/media.php:108 -msgid "Add Container" -msgstr "Dodaj kontejner" +#~ msgid "Disable everywhere" +#~ msgstr "Onemogućite svugdje" -#: includes/admin/media.php:116 -msgid "Exclude URL(s) from image optimization" -msgstr "Izuzmi URL iz CSS optimizacije" +#~ msgid "Disable only on selected URL" +#~ msgstr "Onemogućite samo na odabranom URL-u" -#: includes/admin/media.php:188 -msgid "Videos" -msgstr "Video" +#~ msgid "Disable everywhere except on selected URL" +#~ msgstr "Onemogući svugdje osim na odabranom URL-u" -#: includes/admin/media.php:204 -msgid "Lazy load videos" -msgstr "Lazy load videa" +#~ msgid "JavaScript files not found" +#~ msgstr "JavaScript datoteke nisu pronađene" -#: includes/admin/media.php:218 -msgid "Exclude URL(s)" -msgstr "Izuzmi URL" +#~ msgid "Asynchronously load JavaScript" +#~ msgstr "Asinhrono učitajte JavaScript" -#: includes/admin/media.php:303 -msgid "Emoji" -msgstr "" +#~ msgid "Eliminates render-blocking JavaScript" +#~ msgstr "JavaScript se ne prikazuje kao blokirajući sadržaj" -#: includes/admin/media.php:310 -msgid "Disable Emoji" -msgstr "Onemogući Emoji" +#~ msgid "Reduces the number of HTTP requests and improves loading time" +#~ msgstr "" +#~ "Smanjuje broj HTTP zahtjeva i poboljšava vrijeme učitavanja stranice" -#: includes/admin/media.php:314 -msgid "" -"Use default emoji of visitor's browser instead of loading emoji from " -"WordPress.org" -msgstr "" -"Upotrijebite zadani emotikon preglednika posjetitelja umjesto učitavanja " -"emotikona sa WordPress.org" +#~ msgid "Force images to use srcset attribute" +#~ msgstr "Prisilite slike da koriste srcset atribut" -#: includes/admin/media.php:319 -msgid "Embeds" -msgstr "Embeds" +#~ msgid "" +#~ "Loads the best optimized image depending on users screen size and image " +#~ "sizes settings" +#~ msgstr "" +#~ "Učitava najbolju optimiziranu sliku ovisno o veličini zaslona i " +#~ "postavkama veličine slike" -#: includes/admin/media.php:326 -msgid "Disable embeds" -msgstr "Onemogući ugrađivanje (embeds)" +#~ msgid "Exclude" +#~ msgstr "Izuzmi" -#: includes/admin/media.php:330 -msgid "Prevents embedding content from your site" -msgstr "Sprječava ugrađivanje sadržaja s vaše web-lokacije" +#~ msgid "Exclude image by name" +#~ msgstr "Izuzmi sliku po imenu slike" -#: includes/admin/media.php:336 -msgid "Image sizes" -msgstr "Veličine slika" +#~ msgid "Add Image" +#~ msgstr "Dodaj sliku" -#: includes/admin/media.php:343 includes/admin/media.php:354 -msgid "Name" -msgstr "Naziv" +#~ msgid "" +#~ "Exclude images located in specific html containers like sliders and " +#~ "galleries" +#~ msgstr "" +#~ "Izuzmite slike koje se nalaze u određenim html kontejnerima kao npr. " +#~ "galerije" -#: includes/admin/media.php:344 includes/admin/media.php:360 -msgid "Width" -msgstr "Širina" +#~ msgid "Enter container id or class name" +#~ msgstr "Unesite ID kontejnera ili naziv klase" -#: includes/admin/media.php:345 includes/admin/media.php:366 -msgid "Height" -msgstr "Visina" +#~ msgid "Example" +#~ msgstr "Primjer" -#: includes/admin/media.php:346 includes/admin/media.php:372 -msgid "Crop" -msgstr "Izreži" +#~ msgid "Add Container" +#~ msgstr "Dodaj kontejner" -#: includes/admin/media.php:347 -msgid "Actions" -msgstr "Akcije" +#~ msgid "Exclude URL(s) from image optimization" +#~ msgstr "Izuzmi URL iz CSS optimizacije" -#: includes/admin/media.php:374 includes/functions/miscellaneous.php:259 -msgid "Yes" -msgstr "Da" +#~ msgid "Lazy load videos" +#~ msgstr "Lazy load videa" -#: includes/admin/media.php:379 -#, php-format -msgid "Remove image size %s" -msgstr "Ukloni veličinu slike %s" +#~ msgid "Disable Emoji" +#~ msgstr "Onemogući Emoji" -#: includes/admin/media.php:381 -msgid "Remove size" -msgstr "Makni veličinu" +#~ msgid "" +#~ "Use default emoji of visitor's browser instead of loading emoji from " +#~ "WordPress.org" +#~ msgstr "" +#~ "Upotrijebite zadani emotikon preglednika posjetitelja umjesto učitavanja " +#~ "emotikona sa WordPress.org" -#: includes/admin/media.php:391 -msgid "Add size" -msgstr "Dodaj veličinu" +#~ msgid "Disable embeds" +#~ msgstr "Onemogući ugrađivanje (embeds)" -#: includes/admin/media.php:392 -msgid "Restore default image sizes" -msgstr "Vraćanje zadanih veličina slika" +#~ msgid "Prevents embedding content from your site" +#~ msgstr "Sprječava ugrađivanje sadržaja s vaše web-lokacije" -#: includes/admin/media.php:392 -msgid "Restore image sizes" -msgstr "Vratite zadane veličine slika" +#~ msgid "Width" +#~ msgstr "Širina" -#: includes/admin/media.php:398 -msgid "Regenerate thumbnails every time you make some changes to image sizes" -msgstr "" -"Regenerirajte umanjene slike svaki put kada napravite neke promjene u " -"veličini slika" +#~ msgid "Height" +#~ msgstr "Visina" -#: includes/admin/media.php:400 -msgid "Regenerate thumbnails" -msgstr "Regenerirajte umanjene slike" +#~ msgid "Actions" +#~ msgstr "Akcije" -#: includes/admin/metabox.php:13 includes/admin/metabox.php:80 -#: includes/admin/metabox.php:131 includes/admin/metabox.php:183 -#: includes/admin/metabox.php:234 -msgid "Page URL will be added to exclude list" -msgstr "URL stranice će biti dodan na listu izuzetih URL-ova" +#, php-format +#~ msgid "Remove image size %s" +#~ msgstr "Ukloni veličinu slike %s" -#: includes/admin/metabox.php:41 includes/admin/metabox.php:68 -msgid "Exclude from cache" -msgstr "Izuzmi stranicu iz predmemorije" +#~ msgid "Remove size" +#~ msgstr "Makni veličinu" -#: includes/admin/metabox.php:46 -msgid "" -"This page is your website home page and it is affected by Exclude URL(s) " -"from cache option. Usually a home page is not excluded from cache. Please " -"check your exclude settings." -msgstr "" -"Ova stranica je početna stranica vaše web stranice i na nju utječu URL-ovi " -"dodani kao opcije izuzimanja iz predmemorije na stranici Predmemorija. " -"Obično početna stranica nije isključena iz predmemorije. Provjerite postavke " -"izuzimanja." +#~ msgid "Restore default image sizes" +#~ msgstr "Vraćanje zadanih veličina slika" -#: includes/admin/metabox.php:49 -msgid "This page is affected by URL(s) exclude options on Cache page" -msgstr "" -"Na izuzimanje ove stranice utječu URL-ovi dodani na stranici Predmemorija" +#~ msgid "Restore image sizes" +#~ msgstr "Vratite zadane veličine slika" -#: includes/admin/metabox.php:63 -msgid "" -"This page is your website home page.
      Do you want to exclude home page " -"from cache?" -msgstr "" -"Ova stranica je početna stranica vaše web stranice.
      Da li želite " -"izuzeti početnu stranicu iz predmemorije?" +#~ msgid "" +#~ "Regenerate thumbnails every time you make some changes to image sizes" +#~ msgstr "" +#~ "Regenerirajte umanjene slike svaki put kada napravite neke promjene u " +#~ "veličini slika" -#: includes/admin/metabox.php:107 includes/admin/metabox.php:121 -#: includes/admin/metabox.php:158 -msgid "Exclude from CSS optimization" -msgstr "Izuzmi stranicu iz CSS optimizacije" +#~ msgid "Page URL will be added to exclude list" +#~ msgstr "URL stranice će biti dodan na listu izuzetih URL-ova" -#: includes/admin/metabox.php:111 -msgid "This page is affected by URL(s) exclude options on CSS page" -msgstr "Na izuzimanje ove stranice utječu URL-ovi dodani na stranici CSS" +#~ msgid "" +#~ "This page is your website home page and it is affected by Exclude URL(s) " +#~ "from cache option. Usually a home page is not excluded from cache. Please " +#~ "check your exclude settings." +#~ msgstr "" +#~ "Ova stranica je početna stranica vaše web stranice i na nju utječu URL-" +#~ "ovi dodani kao opcije izuzimanja iz predmemorije na stranici " +#~ "Predmemorija. Obično početna stranica nije isključena iz predmemorije. " +#~ "Provjerite postavke izuzimanja." -#: includes/admin/metabox.php:162 -msgid "This page is affected by URL(s) exclude options on JavaScript page" -msgstr "" -"Na izuzimanje ove stranice utječu URL-ovi dodani na stranici JavaScript" +#~ msgid "This page is affected by URL(s) exclude options on Cache page" +#~ msgstr "" +#~ "Na izuzimanje ove stranice utječu URL-ovi dodani na stranici Predmemorija" -#: includes/admin/metabox.php:172 -msgid "Exclude from JS optimization" -msgstr "Izuzmi stranicu iz JS optimizacije" +#~ msgid "" +#~ "This page is your website home page.
      Do you want to exclude home " +#~ "page from cache?" +#~ msgstr "" +#~ "Ova stranica je početna stranica vaše web stranice.
      Da li želite " +#~ "izuzeti početnu stranicu iz predmemorije?" -#: includes/admin/metabox.php:209 includes/admin/metabox.php:223 -msgid "Exclude from Image optimization" -msgstr "Izuzmi stranicu iz optimizacije slika" +#~ msgid "This page is affected by URL(s) exclude options on CSS page" +#~ msgstr "Na izuzimanje ove stranice utječu URL-ovi dodani na stranici CSS" -#: includes/admin/metabox.php:213 includes/admin/metabox.php:264 -msgid "This page is affected by URL(s) exclude options on Media page" -msgstr "Na izuzimanje ove stranice utječu URL-ovi dodani na stranici Media" +#~ msgid "This page is affected by URL(s) exclude options on JavaScript page" +#~ msgstr "" +#~ "Na izuzimanje ove stranice utječu URL-ovi dodani na stranici JavaScript" -#: includes/admin/metabox.php:260 includes/admin/metabox.php:274 -msgid "Exclude from Video lazyload" -msgstr "Onemogući lazy load na ovoj stranici" +#~ msgid "Exclude from JS optimization" +#~ msgstr "Izuzmi stranicu iz JS optimizacije" -#: includes/admin/settings.php:16 -msgid "Import settings" -msgstr "Uvezi postavke" +#~ msgid "Exclude from Image optimization" +#~ msgstr "Izuzmi stranicu iz optimizacije slika" -#: includes/admin/settings.php:22 -msgid "Export settings" -msgstr "Izvezi postavke" +#~ msgid "This page is affected by URL(s) exclude options on Media page" +#~ msgstr "Na izuzimanje ove stranice utječu URL-ovi dodani na stranici Media" -#: includes/admin/settings.php:25 -msgid "Export" -msgstr "Izvezi" +#~ msgid "Exclude from Video lazyload" +#~ msgstr "Onemogući lazy load na ovoj stranici" -#: includes/admin/settings.php:34 -msgid "Server" -msgstr "Poslužitelj" +#~ msgid "Export" +#~ msgstr "Izvezi" -#: includes/admin/settings.php:39 -msgid "Nginx configuration" -msgstr "Nginx postavke" +#~ msgid "Nginx configuration" +#~ msgstr "Nginx postavke" -#: includes/admin/settings.php:43 #, php-format -msgid "" -"%s will work out of the box on Nginx servers, this rewrite rules are not " -"required. However, to optimize your website even more, you should add this " -"rules to your Nginx configuration file." -msgstr "" -"%s će raditi bez dodatnih postavki na Nginx poslužiteljima, ove definicije " -"nisu neophodne. Međutim, da biste dodatno optimizirali vašu web stranicu, " -"dodajte ove definicije u Nginx konfiguracijsku datoteku." - -#: includes/admin/settings.php:45 -msgid "Select all" -msgstr "Odabrati sve" +#~ msgid "" +#~ "%s will work out of the box on Nginx servers, this rewrite rules are not " +#~ "required. However, to optimize your website even more, you should add " +#~ "this rules to your Nginx configuration file." +#~ msgstr "" +#~ "%s će raditi bez dodatnih postavki na Nginx poslužiteljima, ove " +#~ "definicije nisu neophodne. Međutim, da biste dodatno optimizirali vašu " +#~ "web stranicu, dodajte ove definicije u Nginx konfiguracijsku datoteku." -#: includes/admin/settings.php:52 -msgid "Logs" -msgstr "Zapisi" +#~ msgid "Select all" +#~ msgstr "Odabrati sve" -#: includes/admin/settings.php:56 -msgid "Troubleshooting logging" -msgstr "Dnevnik" +#~ msgid "Logs" +#~ msgstr "Zapisi" -#: includes/admin/settings.php:60 -msgid "Enable troubleshooting logging" -msgstr "Omogući dnevnik" +#~ msgid "Troubleshooting logging" +#~ msgstr "Dnevnik" -#: includes/admin/settings.php:63 -msgid "These logs can be helpful for troubleshooting problems" -msgstr "Ovi zapisi mogu biti korisni za rješavanje problema" +#~ msgid "Enable troubleshooting logging" +#~ msgstr "Omogući dnevnik" -#: includes/admin/settings.php:69 -msgid "Log file content" -msgstr "Sadržaj datoteke dnevnika" +#~ msgid "These logs can be helpful for troubleshooting problems" +#~ msgstr "Ovi zapisi mogu biti korisni za rješavanje problema" -#: includes/admin/settings.php:72 -msgid "Content is auto refreshed every 10 seconds" -msgstr "Sadržaj se automatski osvježava svakih 10 sekundi" +#~ msgid "Log file content" +#~ msgstr "Sadržaj datoteke dnevnika" -#: includes/admin/settings.php:84 -msgid "Clear log file" -msgstr "Očisti datoteku dnevnika" +#~ msgid "Content is auto refreshed every 10 seconds" +#~ msgstr "Sadržaj se automatski osvježava svakih 10 sekundi" -#: includes/admin/settings.php:93 -msgid "Previous configuration settings" -msgstr "Prethodne postavke konfiguracije" +#~ msgid "Clear log file" +#~ msgstr "Očisti datoteku dnevnika" -#: includes/admin/settings.php:114 -msgid "Saved" -msgstr "Spremljeno" +#~ msgid "Previous configuration settings" +#~ msgstr "Prethodne postavke konfiguracije" -#: includes/admin/settings.php:117 -msgid "Load configuration settings saved on " -msgstr "Učitajte postavke konfiguracije spremljene u " +#~ msgid "Saved" +#~ msgstr "Spremljeno" -#: includes/admin/settings.php:120 -msgid "Load" -msgstr "Učitaj" +#~ msgid "Load configuration settings saved on " +#~ msgstr "Učitajte postavke konfiguracije spremljene u " -#: includes/classes/api.php:130 -#, php-format -msgid "Call to undefined method %s" -msgstr "" +#~ msgid "Load" +#~ msgstr "Učitaj" -#: includes/classes/cli.php:23 -msgid "Flushing the cache..." -msgstr "Čišćenje predmemorije..." +#~ msgid "Flushing the cache..." +#~ msgstr "Čišćenje predmemorije..." -#: includes/classes/cli.php:25 -msgid "Cache flushed." -msgstr "Predmemorija očišćena." +#~ msgid "Cache flushed." +#~ msgstr "Predmemorija očišćena." -#: includes/classes/cli.php:73 -msgid "Running tranisent cleanup" -msgstr "Pokrenuto čišćenje privremenih postavki" +#~ msgid "Running tranisent cleanup" +#~ msgstr "Pokrenuto čišćenje privremenih postavki" -#: includes/classes/cli.php:75 -msgid "Transient cleanup complete" -msgstr "Završeno čišćenje privremenih postavki" +#~ msgid "Transient cleanup complete" +#~ msgstr "Završeno čišćenje privremenih postavki" -#: includes/classes/cli.php:81 -msgid "Running revisions cleanup" -msgstr "Pokrenuto čišćenje revizija" +#~ msgid "Running revisions cleanup" +#~ msgstr "Pokrenuto čišćenje revizija" -#: includes/classes/cli.php:83 -msgid "Revisions cleanup complete" -msgstr "Završeno čišćenje revizija" +#~ msgid "Revisions cleanup complete" +#~ msgstr "Završeno čišćenje revizija" -#: includes/classes/cli.php:89 -msgid "Running drafts cleanup" -msgstr "Pokrenuto čišćenje skica" +#~ msgid "Running drafts cleanup" +#~ msgstr "Pokrenuto čišćenje skica" -#: includes/classes/cli.php:91 -msgid "Drafts cleanup complete" -msgstr "Pokrenuto čišćenje skica" +#~ msgid "Drafts cleanup complete" +#~ msgstr "Pokrenuto čišćenje skica" -#: includes/classes/cli.php:97 -msgid "Running trash cleanup" -msgstr "Pokrenuto čišćenje smeća" +#~ msgid "Running trash cleanup" +#~ msgstr "Pokrenuto čišćenje smeća" -#: includes/classes/cli.php:99 -msgid "Trash cleanup complete" -msgstr "Završeno čišćenje smeća" +#~ msgid "Trash cleanup complete" +#~ msgstr "Završeno čišćenje smeća" -#: includes/classes/cli.php:105 -msgid "Running spam cleanup" -msgstr "Pokrenuto čišćenje spam-a" +#~ msgid "Running spam cleanup" +#~ msgstr "Pokrenuto čišćenje spam-a" -#: includes/classes/cli.php:107 -msgid "Spam cleanup complete" -msgstr "Završeno čišćenje spam-a" +#~ msgid "Spam cleanup complete" +#~ msgstr "Završeno čišćenje spam-a" -#: includes/classes/cli.php:113 -msgid "Running cron tasks cleanup" -msgstr "Pokrenuto čišćenje zakazanih zadataka" +#~ msgid "Running cron tasks cleanup" +#~ msgstr "Pokrenuto čišćenje zakazanih zadataka" -#: includes/classes/cli.php:115 -msgid "Cron tasks cleanup complete" -msgstr "Završeno čišćenje zakazanih zadataka" +#~ msgid "Cron tasks cleanup complete" +#~ msgstr "Završeno čišćenje zakazanih zadataka" -#: includes/classes/cli.php:126 -msgid "Running database cleanup" -msgstr "Pokrenuto čišćenje baze" +#~ msgid "Running database cleanup" +#~ msgstr "Pokrenuto čišćenje baze" -#: includes/classes/cli.php:128 -msgid "Database cleanup complete" -msgstr "Završeno čišćenje baze" +#~ msgid "Database cleanup complete" +#~ msgstr "Završeno čišćenje baze" -#: includes/classes/parser.php:94 -msgid "error" -msgstr "greška" +#~ msgid "error" +#~ msgstr "greška" -#: includes/classes/parser.php:95 includes/classes/parser.php:98 -msgid "both head and body tag should be present in template file" -msgstr "oznaka head i body bi trebale biti prisutne u datoteci predloška" +#~ msgid "both head and body tag should be present in template file" +#~ msgstr "oznaka head i body bi trebale biti prisutne u datoteci predloška" -#: includes/classes/parser.php:932 -msgid "Optimized by" -msgstr "Optimizirano sa" +#~ msgid "Optimized by" +#~ msgstr "Optimizirano sa" -#: includes/classes/parser.php:956 #, php-format -msgid "Cache file was created in %s seconds on %s at %s" -msgstr "Datoteka predmemorije stvorena je za %s sekundi na dan %s u %s" +#~ msgid "Cache file was created in %s seconds on %s at %s" +#~ msgstr "Datoteka predmemorije stvorena je za %s sekundi na dan %s u %s" -#: includes/functions/admin.php:270 -msgid "Temporarily disable" -msgstr "Privremeno onemogući" - -#: includes/functions/backend.php:52 -#, php-format -msgid "" -"File advanced-cache.php is missing. If you updated your " -"installation of %s recently, try to deactivate and then activate the plugin " -"again." -msgstr "" +#~ msgid "Temporarily disable" +#~ msgstr "Privremeno onemogući" -#: includes/functions/backend.php:237 -msgid "is temporarily disabled" -msgstr "je privremeno onemogućen" +#~ msgid "is temporarily disabled" +#~ msgstr "je privremeno onemogućen" -#: includes/functions/backend.php:250 #, php-format -msgid "" -"%s: Log file is getting large, either clear the log or disable " -"troubleshooting logging" -msgstr "" -"%s: Datoteka dnevnika postaje sve veća, očistite zapise dnevnika ili " -"onemogućite zapisivanje u dnevnik" +#~ msgid "" +#~ "%s: Log file is getting large, either clear the log or disable " +#~ "troubleshooting logging" +#~ msgstr "" +#~ "%s: Datoteka dnevnika postaje sve veća, očistite zapise dnevnika ili " +#~ "onemogućite zapisivanje u dnevnik" -#: includes/functions/backend.php:262 #, php-format -msgid "%s: missing writing permissions for file .htaccess" -msgstr "%s: nedostaju dozvole za pisanje u datoteku .htaccess " +#~ msgid "%s: missing writing permissions for file .htaccess" +#~ msgstr "" +#~ "%s: nedostaju dozvole za pisanje u datoteku .htaccess " -#: includes/functions/backend.php:275 #, php-format -msgid "%s: enter Cloudflare credentials" -msgstr "%s: unesite Cloudflare podatke računa" +#~ msgid "%s: enter Cloudflare credentials" +#~ msgstr "%s: unesite Cloudflare podatke računa" -#: includes/functions/cron.php:41 -msgid "Every minute" -msgstr "Svake minute" +#~ msgid "Every minute" +#~ msgstr "Svake minute" -#: includes/functions/cron.php:46 -msgid "Every 5 minutes" -msgstr "Svakih 5 minuta" +#~ msgid "Every 5 minutes" +#~ msgstr "Svakih 5 minuta" -#: includes/functions/db.php:85 -msgid "You are doing it wrong" -msgstr "Vi to radite krivo" +#~ msgid "You are doing it wrong" +#~ msgstr "Vi to radite krivo" -#: includes/functions/files.php:350 -msgid "Log file cleared" -msgstr "Dnevnik je izbrisan" +#~ msgid "Log file cleared" +#~ msgstr "Dnevnik je izbrisan" -#: includes/functions/image.php:68 -msgid "Size name already in use" -msgstr "Naziv veličine već se koristi" +#~ msgid "Size name already in use" +#~ msgstr "Naziv veličine već se koristi" -#: includes/functions/image.php:190 #, php-format -msgid "%s image left" -msgid_plural "%s images left" -msgstr[0] "Ostala je %s slika" -msgstr[1] "Ostale su %s slike" -msgstr[2] "Ostalo je %s slika" - -#: includes/functions/image.php:202 -msgid "Done" -msgstr "Gotovo" - -#: includes/functions/miscellaneous.php:257 -msgid "Are you sure?" -msgstr "Da li ste sigurni?" +#~ msgid "%s image left" +#~ msgid_plural "%s images left" +#~ msgstr[0] "Ostala je %s slika" +#~ msgstr[1] "Ostale su %s slike" +#~ msgstr[2] "Ostalo je %s slika" -#: includes/functions/miscellaneous.php:264 -msgid "Something went wrong" -msgstr "Nešto je pošlo krivo" +#~ msgid "Done" +#~ msgstr "Gotovo" -#: includes/functions/miscellaneous.php:265 -msgid "Regenerating thumbs" -msgstr "Regeneriranje umanjenih slika" +#~ msgid "Are you sure?" +#~ msgstr "Da li ste sigurni?" -#: includes/functions/miscellaneous.php:266 -msgid "Regenerate thumbnails may take a long time. Do not close your browser." -msgstr "" -"Regeneriranje umanjenih slika može potrajati dugo. Ne zatvarajte preglednik." - -#: includes/functions/plugin.php:220 -msgid "The following plugins are not compatible with" -msgstr "Slijedeći dodaci nisu kompatibilni sa" +#~ msgid "Something went wrong" +#~ msgstr "Nešto je pošlo krivo" -#: includes/functions/plugin.php:227 -msgid "Deactivate" -msgstr "Deaktiviraj" +#~ msgid "Regenerating thumbs" +#~ msgstr "Regeneriranje umanjenih slika" -#: includes/functions/settings.php:57 -msgid "Invalid settings file" -msgstr "Nevažeća datoteka postavki" - -#: includes/functions/settings.php:269 -msgid "Settings saved" -msgstr "Postavke spremljene" +#~ msgid "" +#~ "Regenerate thumbnails may take a long time. Do not close your browser." +#~ msgstr "" +#~ "Regeneriranje umanjenih slika može potrajati dugo. Ne zatvarajte " +#~ "preglednik." -#: includes/functions/settings.php:330 -msgid "Settings file loaded" -msgstr "Datoteka postavki je učitana" +#~ msgid "The following plugins are not compatible with" +#~ msgstr "Slijedeći dodaci nisu kompatibilni sa" -#: includes/functions/settings.php:520 -msgid "Files list cleared" -msgstr "Lista izbrisana" +#~ msgid "Deactivate" +#~ msgstr "Deaktiviraj" -#. Plugin Name of the plugin/theme -msgid "WP Performance" -msgstr "WP Performance" +#~ msgid "Invalid settings file" +#~ msgstr "Nevažeća datoteka postavki" -#. Plugin URI of the plugin/theme -msgid "https://www.wp-performance.com" -msgstr "" +#~ msgid "Settings saved" +#~ msgstr "Postavke spremljene" -#. Description of the plugin/theme -msgid "WP Performance Optimizer" -msgstr "WP Performance Optimizer" +#~ msgid "Settings file loaded" +#~ msgstr "Datoteka postavki je učitana" -#. Author of the plugin/theme -msgid "Ante Laca" -msgstr "" +#~ msgid "Files list cleared" +#~ msgstr "Lista izbrisana" -#. Author URI of the plugin/theme -msgid "https://www.antelaca.xyz" -msgstr "" +#~ msgid "WP Performance Optimizer" +#~ msgstr "WP Performance Optimizer" #~ msgid "Cloudflare cache" #~ msgstr "Cloudflare predmemeorija" -#~ msgid "Varnish" -#~ msgstr "Varnish" - #~ msgid "If Varnish runs on your server, you need to activate this option." #~ msgstr "" #~ "Ako je Varnish instaliran na vašem poslužitelju, morate aktivirati ovu " @@ -1403,9 +2232,6 @@ msgstr "" #~ msgid "settings" #~ msgstr "settings" -#~ msgid "Cloudflare" -#~ msgstr "Cloudflare" - #~ msgid "Error" #~ msgstr "Greška" diff --git a/languages/wpp-zh_CN.mo b/languages/wpp-zh_CN.mo deleted file mode 100644 index d14bd841887b4a7fb6504574b9f35753c7292676..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21961 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\n" -"Language-Team: WordPress淘宝网 \n" -"Language: zh_CN\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.3\n" -"X-Poedit-Basepath: ..\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Poedit-Flags-xgettext: --add-comments=translators:\n" -"X-Poedit-WPHeader: wp-performance.php\n" -"X-Poedit-SourceCharset: UTF-8\n" -"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;" -"esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;" -"_nx_noop:3c,1,2;__ngettext_noop:1,2\n" -"X-Poedit-SearchPath-0: .\n" -"X-Poedit-SearchPathExcluded-0: *.js\n" - -#: includes/addons/cloudflare/cloudflare.php:55 -#, fuzzy -#| msgid "Cloudflare credentials" -msgid "Cloudflare - purge everything" -msgstr "Cloudflare凭据" - -#: includes/addons/cloudflare/cloudflare.php:56 -msgid "Cloudflare - purge custom URL(s)" -msgstr "" - -#: includes/addons/cloudflare/cloudflare.php:97 -msgid "Cloudflare API credentials not set" -msgstr "未设置Cloudflare API凭据" - -#: includes/addons/cloudflare/cloudflare.php:116 -msgid " Cloudflare cannot get zone details. Check your Cloudflare credentials" -msgstr " Cloudflare无法获取区域详细信息。检查您的Cloudflare凭据" - -#: includes/addons/cloudflare/cloudflare.php:123 -#, php-format -msgid "" -" Cloudflare zone %s is not activated. Please go to your Cloudflare dashboard " -"and activate it." -msgstr " Cloudflare区域%s未激活。请转到Cloudflare仪表板并激活它。" - -#: includes/addons/cloudflare/cloudflare.php:127 -#, php-format -msgid "" -" Cloudflare zone %s status is pending and these settings won't have any " -"effect on your website." -msgstr " Cloudflare 区域%s状态为待审,这些设置对您的网站没有任何影响。" - -#: includes/addons/cloudflare/cloudflare.php:142 -msgid " Cloudflare development mode not set" -msgstr " 未设置Cloudflare开发模式" - -#: includes/addons/cloudflare/cloudflare.php:151 -msgid " Cloudflare cache level not set" -msgstr " 未设置Cloudflare缓存级别" - -#: includes/addons/cloudflare/cloudflare.php:161 -msgid " Cloudflare browser cache expiration not set" -msgstr " 未设置Cloudflare浏览器缓存过期" - -#: includes/addons/cloudflare/cloudflare.php:175 -msgid " Cloudflare minify not set" -msgstr " 未设置Cloudflare压缩" - -#: includes/addons/cloudflare/cloudflare.php:187 -msgid " Cloudflare Rocket loader mode not set" -msgstr " 未设置Cloudflare Rocket加载器模式" - -#: includes/addons/cloudflare/cloudflare.php:197 -msgid " Cloudflare Brotli mode not set" -msgstr " 未设置Cloudflare Brotli模式" - -#: includes/addons/cloudflare/cloudflare.php:209 -msgid "Cloudflare settings saved" -msgstr "Cloudflare设置已保存" - -#: includes/addons/cloudflare/cloudflare.php:231 -msgid "Something went wrong. Cannot purge Cloudflare cache" -msgstr "有些不对劲。无法清除Cloudflare缓存" - -#: includes/addons/cloudflare/cloudflare.php:261 -msgid "Something went wrong. Cannot purge Cloudflare custom URL(s) cache" -msgstr "" - -#: includes/addons/cloudflare/views/addon.php:20 -msgid "Integrate your Cloudflare account with this add-on." -msgstr "使用此扩展程序将Cloudflare账户集成。" - -#: includes/addons/cloudflare/views/addon.php:27 -#: includes/addons/cloudflare/views/admin.php:82 -#: includes/addons/cloudflare/views/admin.php:175 -#: includes/addons/cloudflare/views/admin.php:187 -#: includes/addons/prefetch/views/addon.php:18 -#: includes/addons/varnish/views/addon.php:49 includes/functions/admin.php:267 -#: includes/functions/backend.php:238 -msgid "Enable" -msgstr "启用" - -#: includes/addons/cloudflare/views/admin.php:15 -msgid "Caching" -msgstr "缓存" - -#: includes/addons/cloudflare/views/admin.php:21 -msgid "Purge Cache" -msgstr "" - -#: includes/addons/cloudflare/views/admin.php:23 -msgid "Clear all Cloudflare cache" -msgstr "清除所有Cloudflare缓存" - -#: includes/addons/cloudflare/views/admin.php:23 -msgid "Purge everything" -msgstr "" - -#: includes/addons/cloudflare/views/admin.php:24 -msgid "Clear custom URL(s) from Cloudflare cache" -msgstr "" - -#: includes/addons/cloudflare/views/admin.php:24 -#: includes/addons/cloudflare/views/admin.php:29 -msgid "Purge custom URL(s)" -msgstr "" - -#: includes/addons/cloudflare/views/admin.php:49 includes/admin/cache.php:116 -#: includes/admin/cache.php:335 includes/admin/cache.php:355 -#: includes/admin/cache.php:414 includes/admin/cdn.php:66 -#: includes/admin/css.php:317 includes/admin/css.php:327 -#: includes/admin/includes/external_files.php:66 -#: includes/admin/includes/external_files.php:94 -#: includes/admin/includes/local_files.php:65 -#: includes/admin/includes/local_files.php:92 includes/admin/javascript.php:243 -#: includes/admin/javascript.php:253 includes/admin/media.php:66 -#: includes/admin/media.php:92 includes/admin/media.php:136 -#: includes/admin/media.php:156 includes/admin/media.php:238 -#: includes/admin/media.php:258 includes/functions/miscellaneous.php:258 -msgid "Remove" -msgstr "删除" - -#: includes/addons/cloudflare/views/admin.php:58 -#: includes/addons/cloudflare/views/admin.php:67 -msgid "" -"Any assets in the Cloudflare cache that match the URL(s) exactly will be " -"purged from the cache." -msgstr "" - -#: includes/addons/cloudflare/views/admin.php:70 includes/admin/cache.php:380 -#: includes/admin/css.php:351 includes/admin/includes/external_files.php:113 -#: includes/admin/includes/external_files.php:124 -#: includes/admin/includes/local_files.php:109 -#: includes/admin/includes/local_files.php:120 -#: includes/admin/javascript.php:277 includes/admin/media.php:180 -#: includes/admin/media.php:282 includes/functions/miscellaneous.php:260 -msgid "Add URL" -msgstr "添加网址" - -#: includes/addons/cloudflare/views/admin.php:78 -msgid "Development mode" -msgstr "开发模式" - -#: includes/addons/cloudflare/views/admin.php:85 -msgid "Temporarily activate development mode on your website." -msgstr "暂时激活您网站上的开发模式。" - -#: includes/addons/cloudflare/views/admin.php:86 -msgid "This setting will automatically turn off after 3 hours." -msgstr "此设置将在3小时后自动关闭。" - -#: includes/addons/cloudflare/views/admin.php:91 -msgid "Cache level" -msgstr "缓存级别" - -#: includes/addons/cloudflare/views/admin.php:94 -msgid "Aggressive - Standard" -msgstr "积极 - 标准" - -#: includes/addons/cloudflare/views/admin.php:95 -msgid "Simplified - Ignore query string" -msgstr "简化 - 忽略查询字符串" - -#: includes/addons/cloudflare/views/admin.php:96 -msgid "Basic - No query string" -msgstr "基本 - 没有查询字符串" - -#: includes/addons/cloudflare/views/admin.php:101 -msgid "" -"Aggressive: Delivers a different resource each time the query string changes." -msgstr "积极:每次查询字符串更改时提供不同的资源。" - -#: includes/addons/cloudflare/views/admin.php:102 -msgid "" -"Simplified: Delivers the same resource to everyone independent of the query " -"string." -msgstr "简化:向所有人提供与查询字符串无关的相同资源。" - -#: includes/addons/cloudflare/views/admin.php:103 -msgid "" -"Basic: Only delivers resources from cache when there is no query string." -msgstr "基本:只有在没有查询字符串时才从缓存中提供资源。" - -#: includes/addons/cloudflare/views/admin.php:118 -msgid "Browser Cache Expiration" -msgstr "浏览器缓存过期" - -#: includes/addons/cloudflare/views/admin.php:121 -msgid "Respect Existing Headers" -msgstr "尊重现有标题" - -#: includes/addons/cloudflare/views/admin.php:131 -msgid "" -"Browser cache TTL (in seconds) specifies how long CloudFlare-cached " -"resources will remain on your visitors computers." -msgstr "" -"浏览器缓存TTL(以秒为单位)指定CloudFlare缓存资源在访问者计算机上保留的时间。" - -#: includes/addons/cloudflare/views/admin.php:132 -msgid "The minimum TTL available depends on the plan level of the zone." -msgstr "可用的最小TTL取决于区域的计划级别。" - -#: includes/addons/cloudflare/views/admin.php:140 -msgid "Content" -msgstr "内容" - -#: includes/addons/cloudflare/views/admin.php:146 includes/admin/css.php:27 -#: includes/admin/includes/local_files.php:153 includes/admin/javascript.php:27 -msgid "Minify" -msgstr "压缩" - -#: includes/addons/cloudflare/views/admin.php:171 -msgid "Rocket Loader" -msgstr "Rocket 加载器" - -#: includes/addons/cloudflare/views/admin.php:178 -msgid "Rocket Loader is a asynchronous JavaScript loader." -msgstr "Rocket 加载器是一个异步JavaScript加载器。" - -#: includes/addons/cloudflare/views/admin.php:183 -msgid "Brotli" -msgstr "Brotli" - -#: includes/addons/cloudflare/views/admin.php:190 -msgid "" -"Speed up page load times for your visitor’s HTTPS traffic by applying Brotli " -"compression." -msgstr "通过应用Brotli压缩,加快访问者HTTPS流量的页面加载时间。" - -#: includes/addons/cloudflare/views/admin.php:198 includes/admin/addons.php:17 -#: includes/admin/cache.php:259 includes/admin/cdn.php:33 -#: includes/admin/css.php:119 includes/admin/database.php:183 -#: includes/admin/javascript.php:118 includes/admin/media.php:292 -#: includes/admin/settings.php:81 -msgid "Save changes" -msgstr "保存更改" - -#: includes/addons/cloudflare/views/admin.php:207 -msgid "Cloudflare credentials" -msgstr "Cloudflare凭据" - -#: includes/addons/cloudflare/views/admin.php:211 -msgid "API key" -msgstr "API密钥" - -#: includes/addons/cloudflare/views/admin.php:218 -msgid "Account email" -msgstr "账户邮箱" - -#: includes/addons/cloudflare/views/admin.php:223 -msgid "Zone ID" -msgstr "区域ID" - -#: includes/addons/prefetch/views/addon.php:9 -#: includes/addons/prefetch/views/addon.php:18 -msgid "Dynamic page preload" -msgstr "动态页面预加载" - -#: includes/addons/prefetch/views/addon.php:12 -msgid "Preloads a page right before a user clicks on link" -msgstr "在用户点击链接之前预加载页面" - -#: includes/addons/varnish/views/addon.php:20 -msgid "If Varnish runs on your server, you must activate this add-on." -msgstr "如果Varnish在您的服务器上运行,则必须激活此加载项。" - -#: includes/addons/varnish/views/addon.php:28 -msgid "Custom host" -msgstr "自定义主机" - -#: includes/addons/varnish/views/addon.php:41 -msgid "If you are using proxy, you may need this option" -msgstr "如果您使用的是代理主机,则可能需要此选项" - -#: includes/admin/addons.php:27 includes/admin/admin.php:30 -#: includes/admin/admin.php:45 includes/functions/admin.php:236 -#: includes/functions/admin.php:240 -msgid "Add-ons" -msgstr "扩展" - -#: includes/admin/addons.php:31 -#, php-format -msgid "Add more features to %s with add-ons." -msgstr "使用扩展程序向%s添加更多功能。" - -#: includes/admin/admin.php:23 includes/admin/admin.php:38 -#: includes/functions/admin.php:166 -msgid "Cache" -msgstr "缓存" - -#: includes/admin/admin.php:26 includes/admin/admin.php:41 -#: includes/functions/admin.php:196 includes/functions/admin.php:200 -msgid "Media" -msgstr "" - -#: includes/admin/admin.php:27 includes/admin/admin.php:42 -#: includes/functions/admin.php:206 includes/functions/admin.php:210 -msgid "Database" -msgstr "数据库" - -#: includes/admin/admin.php:29 includes/admin/admin.php:44 -#: includes/admin/settings.php:12 includes/functions/admin.php:170 -#: includes/functions/admin.php:226 includes/functions/admin.php:230 -#: includes/functions/admin.php:290 -msgid "Settings" -msgstr "设置" - -#: includes/admin/cache.php:11 -msgid "Enable cache" -msgstr "启用缓存" - -#: includes/admin/cache.php:15 -msgid "Reduces your server response time by serving static files to users" -msgstr "通过向用户提供静态文件,缩短服务器响应时间" - -#: includes/admin/cache.php:30 includes/admin/cache.php:194 -#: includes/admin/cache.php:246 -msgid "" -"Your web site is running on a Nginx server and some additional steps may be " -"required in order to use this option." -msgstr "您的网站在 Nginx 服务器上运行,可能需要一些其他步骤才能使用此选项。" - -#: includes/admin/cache.php:39 -msgid "Separate cache for mobile devices" -msgstr "移动设备独立缓存" - -#: includes/admin/cache.php:42 -msgid "Create a dedicated cache file for mobile devices" -msgstr "为移动设备创建专用缓存文件" - -#: includes/admin/cache.php:48 -msgid "Clear cache after" -msgstr "多久后清空缓存" - -#: includes/admin/cache.php:53 -msgid "minutes" -msgstr "分" - -#: includes/admin/cache.php:56 -msgid "hours" -msgstr "时" - -#: includes/admin/cache.php:59 -msgid "days" -msgstr "天" - -#: includes/admin/cache.php:66 -msgid "Clear cache when" -msgstr "什么时候清空缓存" - -#: includes/admin/cache.php:70 -msgid "A new post or page is published or updated" -msgstr "发布或更新文章、页面时" - -#: includes/admin/cache.php:75 -msgid "A post or page is deleted" -msgstr "文章或页面被删除时" - -#: includes/admin/cache.php:80 -msgid "settings are saved" -msgstr "设置保存时" - -#: includes/admin/cache.php:86 -msgid "Clear cache options" -msgstr "" - -#: includes/admin/cache.php:90 -msgid "Keep generated CSS/JS files" -msgstr "" - -#: includes/admin/cache.php:96 -msgid "Cache preloading" -msgstr "高速缓存预加载" - -#: includes/admin/cache.php:126 includes/admin/cache.php:136 -msgid "Enter path to XML sitemap which will be used for cache preloading" -msgstr "输入将用于缓存预加载的 xml 站点地图的路径" - -#: includes/admin/cache.php:139 -msgid "Add Sitemap" -msgstr "添加网站地图" - -#: includes/admin/cache.php:147 -msgid "Browser caching" -msgstr "浏览器缓存" - -#: includes/admin/cache.php:151 -msgid "Leverage browser caching" -msgstr "启用浏览器缓存" - -#: includes/admin/cache.php:176 -msgid "" -"Setting an expiry date in the HTTP headers for static resources instructs " -"the browser to load previously downloaded resources from local disk rather " -"than over the network" -msgstr "" -"在静态资源的 HTTP 标头中设置到期日期指示浏览器从本地磁盘而不是通过网络加载以" -"前下载的资源" - -#: includes/admin/cache.php:183 includes/admin/cache.php:235 -msgid "" -"This option is turned ON automatically for all sites in Wordpress multisite" -msgstr "" - -#: includes/admin/cache.php:204 -msgid "Enable gzip compression" -msgstr "启用 gzip 压缩" - -#: includes/admin/cache.php:228 -msgid "" -"Compressing resources with gzip reduce the number of bytes sent over the " -"network" -msgstr "使用 gzip 压缩资源可减少通过网络发送的字节数" - -#: includes/admin/cache.php:268 -msgid "Cache statistics" -msgstr "缓存统计信息" - -#: includes/admin/cache.php:269 includes/functions/admin.php:155 -#: includes/functions/admin.php:160 -msgid "Clear cache" -msgstr "清除缓存" - -#: includes/admin/cache.php:291 -msgid "HTML files" -msgstr "HTML文件" - -#: includes/admin/cache.php:294 -msgid "CSS files" -msgstr "CSS文件" - -#: includes/admin/cache.php:297 -msgid "JavaScript files" -msgstr "JavaScript文件" - -#: includes/admin/cache.php:302 -msgid "Total cache size" -msgstr "缓存总大小" - -#: includes/admin/cache.php:313 -msgid "Exclude URL(s) from cache" -msgstr "从缓存中排除网址" - -#: includes/admin/cache.php:334 includes/admin/css.php:316 -#: includes/admin/javascript.php:242 includes/admin/media.php:135 -#: includes/admin/media.php:237 -#, php-format -msgid "Remove %s from excluded URL(s)?" -msgstr "从已排除的网址中删除%s?" - -#: includes/admin/cache.php:365 includes/admin/cache.php:377 -#: includes/admin/cdn.php:75 includes/admin/cdn.php:86 -#: includes/admin/css.php:336 includes/admin/css.php:348 -#: includes/admin/javascript.php:262 includes/admin/javascript.php:274 -#: includes/admin/media.php:165 includes/admin/media.php:177 -#: includes/admin/media.php:267 includes/admin/media.php:279 -msgid "Use {numbers} to match only numbers" -msgstr "使用 {numbers} 来匹配数字" - -#: includes/admin/cache.php:366 includes/admin/cache.php:377 -#: includes/admin/cdn.php:76 includes/admin/cdn.php:86 -#: includes/admin/css.php:337 includes/admin/css.php:348 -#: includes/admin/javascript.php:263 includes/admin/javascript.php:274 -#: includes/admin/media.php:166 includes/admin/media.php:177 -#: includes/admin/media.php:268 includes/admin/media.php:279 -msgid "Use {letters} to match only letters" -msgstr "使用 {letters} 来匹配字母" - -#: includes/admin/cache.php:367 includes/admin/cache.php:377 -#: includes/admin/cdn.php:77 includes/admin/cdn.php:86 -#: includes/admin/css.php:338 includes/admin/css.php:348 -#: includes/admin/javascript.php:264 includes/admin/javascript.php:274 -#: includes/admin/media.php:167 includes/admin/media.php:177 -#: includes/admin/media.php:269 includes/admin/media.php:279 -msgid "Use {any} to match any string" -msgstr "使用 {any} 来匹配任何字符串" - -#: includes/admin/cache.php:368 includes/admin/cache.php:377 -#: includes/admin/css.php:339 includes/admin/css.php:348 -#: includes/admin/javascript.php:265 includes/admin/javascript.php:274 -#: includes/admin/media.php:168 includes/admin/media.php:177 -#: includes/admin/media.php:270 includes/admin/media.php:279 -msgid "Use {all} to match all" -msgstr "使用 {all} 来匹配任何字符串" - -#: includes/admin/cache.php:392 -msgid "Exclude User Agent(s) from cache" -msgstr "从缓存中排除用户代理" - -#: includes/admin/cache.php:427 -msgid "Add User Agent" -msgstr "添加用户代理" - -#: includes/admin/cache.php:437 -msgid "Exclude search engines" -msgstr "排除搜索引擎" - -#: includes/admin/cdn.php:12 -msgid "Enable CDN" -msgstr "启用CDN" - -#: includes/admin/cdn.php:16 -msgid "" -"All URL(s) of static files ( CSS, JavaScript and Images ) will be rewritten " -"to the CDN hostname you provide. " -msgstr "" -"所有静态文件 (CSS、JavaScript 和图片) 的网址都将被重写到您提供的 CDN 主机" -"名。 " - -#: includes/admin/cdn.php:23 -msgid "CDN hostname" -msgstr "CDN主机名" - -#: includes/admin/cdn.php:43 -msgid "Exclude file(s) from CDN" -msgstr "从CDN中排除文件" - -#: includes/admin/cdn.php:89 -msgid "Add file" -msgstr "添加文件" - -#: includes/admin/css.php:26 includes/admin/javascript.php:26 -msgid "File" -msgstr "文件" - -#: includes/admin/css.php:28 includes/admin/includes/local_files.php:171 -#: includes/admin/javascript.php:28 -msgid "Inline" -msgstr "内联" - -#: includes/admin/css.php:29 includes/admin/includes/local_files.php:189 -#: includes/admin/javascript.php:29 -msgid "Combine" -msgstr "合并" - -#: includes/admin/css.php:30 includes/admin/includes/external_files.php:152 -#: includes/admin/includes/local_files.php:213 includes/admin/javascript.php:30 -msgid "Disable" -msgstr "禁用" - -#: includes/admin/css.php:37 includes/admin/javascript.php:37 -msgid "Update all files in list below" -msgstr "更新下面列表中的所有文件" - -#: includes/admin/css.php:47 includes/admin/javascript.php:47 -msgid "Theme" -msgstr "主题" - -#: includes/admin/css.php:69 includes/admin/javascript.php:69 -msgid "Plugins" -msgstr "插件" - -#: includes/admin/css.php:92 includes/admin/javascript.php:92 -msgid "External resources" -msgstr "外部资源" - -#: includes/admin/css.php:115 includes/admin/javascript.php:114 -msgid "" -"If some of the files are missing from this list, enable Cache preloading " -"option." -msgstr "如果此列表中缺少某些文件,请启用缓存预加载选项。" - -#: includes/admin/css.php:122 includes/admin/javascript.php:121 -#, php-format -msgid "Clear collected %s files list.%s This option will also clear the cache." -msgstr "清除收集到的 %s 文件列表。%s 这个选项也将会清除缓存。" - -#: includes/admin/css.php:125 includes/admin/javascript.php:124 -msgid "Update files list" -msgstr "清除文件列表" - -#: includes/admin/css.php:130 -msgid "CSS files not found" -msgstr "找不到 CSS 文件" - -#: includes/admin/css.php:134 includes/admin/javascript.php:133 -msgid "Reload" -msgstr "刷新" - -#: includes/admin/css.php:142 -msgid "CSS settings" -msgstr "CSS 设置" - -#: includes/admin/css.php:158 -msgid "Minify inline CSS" -msgstr "压缩内联 CSS" - -#: includes/admin/css.php:166 -msgid "Asynchronously load CSS" -msgstr "异步加载 CSS" - -#: includes/admin/css.php:176 includes/admin/css.php:178 -msgid "Show critical CSS" -msgstr "显示关键CSS" - -#: includes/admin/css.php:177 includes/admin/css.php:178 -msgid "Hide critical CSS" -msgstr "隐藏关键CSS" - -#: includes/admin/css.php:188 -msgid "Eliminates render-blocking CSS" -msgstr "消除了渲染阻止CSS" - -#: includes/admin/css.php:194 -msgid "" -"Loading CSS asynchronously will produce FOUC effect (a Flash Of Unstyled " -"Content). In order to minimize the FOUC effect, use critical CSS path." -msgstr "" -"异步加载 CSS 将产生 FOUC 效果 (未设置样式内容的 flash)。为了最大限度地减少 " -"FOUC 效应,请使用关键 CSS 路径。" - -#: includes/admin/css.php:202 -msgid "Critical CSS path" -msgstr "关键 CSS 路径" - -#: includes/admin/css.php:207 -msgid "Enter critical CSS path definitions" -msgstr "输入关键 CSS 路径" - -#: includes/admin/css.php:212 -msgid "Generate critical CSS path" -msgstr "生成关键 CSS 路径" - -#: includes/admin/css.php:227 -msgid "Combine Google Fonts" -msgstr "合并谷歌字体" - -#: includes/admin/css.php:232 -msgid "Load all google fonts in one HTTP request" -msgstr "在一个 HTTP 请求中加载所有谷歌字体" - -#: includes/admin/css.php:241 -msgid "Disable CSS optimization for logged-in users" -msgstr "对已登录用户不启用CSS优化" - -#: includes/admin/css.php:252 includes/admin/javascript.php:178 -msgid "Resource Hints" -msgstr "资源提示" - -#: includes/admin/css.php:259 includes/admin/javascript.php:185 -msgid "Origins" -msgstr "来源" - -#: includes/admin/css.php:286 includes/admin/javascript.php:212 -msgid "DNS prefetching can make external resources load faster" -msgstr "DNS 预加载可以使外部资源加载速度更快" - -#: includes/admin/css.php:287 includes/admin/javascript.php:213 -msgid "Preconnect can remove additional roundtrips and reduce request latency" -msgstr "预连接可以删除其他往返并减少请求延迟" - -#: includes/admin/css.php:295 -msgid "Exclude URL(s) from CSS optimization" -msgstr "从 CSS 优化中排除网址" - -#: includes/admin/database.php:30 includes/admin/database.php:35 -msgid "Delete all pages, posts and comments from trash" -msgstr "从回收站中删除所有页面、文章和评论" - -#: includes/admin/database.php:31 includes/admin/database.php:55 -#: includes/admin/database.php:82 includes/admin/database.php:105 -#: includes/admin/database.php:132 includes/admin/database.php:157 -msgid "Delete" -msgstr "删除" - -#: includes/admin/database.php:34 -msgid "Trash" -msgstr "回收站" - -#: includes/admin/database.php:41 includes/admin/database.php:65 -#: includes/admin/database.php:92 includes/admin/database.php:115 -#: includes/admin/database.php:142 includes/admin/database.php:167 -msgid "Enable automatic cleanup" -msgstr "启用自动清理" - -#: includes/admin/database.php:54 includes/admin/database.php:59 -msgid "Delete all spam comments" -msgstr "删除所有垃圾评论" - -#: includes/admin/database.php:58 -msgid "Spam" -msgstr "垃圾评论" - -#: includes/admin/database.php:81 includes/admin/database.php:86 -msgid "Delete all revisions" -msgstr "删除所有修订版本" - -#: includes/admin/database.php:85 -msgid "Revisions" -msgstr "修订" - -#: includes/admin/database.php:104 includes/admin/database.php:109 -msgid "Delete all expired transients" -msgstr "删除所有过期的瞬态缓存" - -#: includes/admin/database.php:108 -msgid "Transients" -msgstr "瞬态缓存(Transients)" - -#: includes/admin/database.php:131 includes/admin/database.php:136 -msgid "Delete all auto drafts" -msgstr "删除所有自动草稿" - -#: includes/admin/database.php:135 -msgid "Auto Drafts" -msgstr "自动草稿" - -#: includes/admin/database.php:156 includes/admin/database.php:161 -msgid "Delete all unused scheduled tasks" -msgstr "删除所有未使用的计划任务" - -#: includes/admin/database.php:160 -msgid "Scheduled tasks" -msgstr "计划任务" - -#: includes/admin/database.php:179 -msgid "" -"Backup your database before running any of these cleanup actions. Once a " -"database cleanup has been performed, there is no way to undo it." -msgstr "" -"在运行任何这些清理操作之前备份你的数据库。一旦执行了数据库清理,就无法撤消" -"它。" - -#: includes/admin/database.php:185 includes/admin/database.php:186 -msgid "Delete all" -msgstr "全部删除" - -#: includes/admin/database.php:194 -msgid "Automatic database cleanup" -msgstr "自动清理数据库" - -#: includes/admin/database.php:200 -msgid "Schedule" -msgstr "计划" - -#: includes/admin/database.php:202 -msgid "Not scheduled" -msgstr "无计划任务" - -#: includes/admin/database.php:203 includes/functions/cron.php:26 -msgid "Daily" -msgstr "按天" - -#: includes/admin/database.php:204 includes/functions/cron.php:31 -msgid "Weekly" -msgstr "按周" - -#: includes/admin/database.php:205 includes/functions/cron.php:36 -msgid "Monthly" -msgstr "按月" - -#: includes/admin/database.php:208 -msgid "Next run" -msgstr "下一次运行" - -#: includes/admin/database.php:214 -msgid "Not set" -msgstr "没有设置" - -#: includes/admin/includes/external_files.php:31 -#: includes/admin/includes/local_files.php:31 -#: includes/functions/miscellaneous.php:261 -msgid "Disable everywhere" -msgstr "在所有地方禁用" - -#: includes/admin/includes/external_files.php:35 -#: includes/admin/includes/local_files.php:35 -#: includes/functions/miscellaneous.php:262 -msgid "Disable only on selected URL" -msgstr "仅在选定的网址上禁用" - -#: includes/admin/includes/external_files.php:39 -#: includes/admin/includes/local_files.php:39 -#: includes/functions/miscellaneous.php:263 -msgid "Disable everywhere except on selected URL" -msgstr "在所选网址以外的任何地方禁用" - -#: includes/admin/javascript.php:129 -msgid "JavaScript files not found" -msgstr "找不到 JavaScript 文件" - -#: includes/admin/javascript.php:142 -msgid "JavaScript settings" -msgstr "JavaScript 设置" - -#: includes/admin/javascript.php:150 -msgid "Minify inline JavaScript" -msgstr "压缩内联 JavaScript" - -#: includes/admin/javascript.php:157 -msgid "Asynchronously load JavaScript" -msgstr "异步加载 JavaScript" - -#: includes/admin/javascript.php:161 -msgid "Eliminates render-blocking JavaScript" -msgstr "消除了阻止渲染的 JavaScript" - -#: includes/admin/javascript.php:167 -msgid "Disable JavaScript optimization for logged-in users" -msgstr "对已登录的用户禁用 JavaScript 优化" - -#: includes/admin/javascript.php:221 -msgid "Exclude URL(s) from JavaScript optimization" -msgstr "从 JavaScript 优化中排除网址" - -#: includes/admin/media.php:12 -msgid "Images" -msgstr "图片" - -#: includes/admin/media.php:16 includes/admin/media.php:192 -msgid "Lazy load" -msgstr "延迟加载" - -#: includes/admin/media.php:20 -msgid "Lazy load images" -msgstr "延迟加载图片" - -#: includes/admin/media.php:24 includes/admin/media.php:209 -msgid "Reduces the number of HTTP requests and improves loading time" -msgstr "减少 HTTP 请求的数量并缩短加载时间" - -#: includes/admin/media.php:34 -msgid "Disable lazy load on mobile devices" -msgstr "在移动设备上禁用延迟加载" - -#: includes/admin/media.php:40 -msgid "Responsive images" -msgstr "响应式图片" - -#: includes/admin/media.php:44 -msgid "Force images to use srcset attribute" -msgstr "强制图片使用 srcset 属性" - -#: includes/admin/media.php:47 -msgid "" -"Loads the best optimized image depending on users screen size and image " -"sizes settings" -msgstr "根据用户屏幕大小和图片大小设置加载最佳优化的图片" - -#: includes/admin/media.php:52 -msgid "Exclude" -msgstr "排除" - -#: includes/admin/media.php:55 -msgid "Exclude image by name" -msgstr "按名称排除图片" - -#: includes/admin/media.php:72 -msgid "Add Image" -msgstr "添加图片" - -#: includes/admin/media.php:81 -msgid "" -"Exclude images located in specific html containers like sliders and galleries" -msgstr "排除位于特定 HTML 容器中的图片,如滑块和图库" - -#: includes/admin/media.php:99 includes/admin/media.php:108 -msgid "Enter container id or class name" -msgstr "输入容器 id 或类名" - -#: includes/admin/media.php:100 includes/admin/media.php:108 -msgid "Example" -msgstr "例子" - -#: includes/admin/media.php:108 -msgid "Add Container" -msgstr "添加容器" - -#: includes/admin/media.php:116 -msgid "Exclude URL(s) from image optimization" -msgstr "从图片优化中排除网址" - -#: includes/admin/media.php:188 -msgid "Videos" -msgstr "" - -#: includes/admin/media.php:204 -msgid "Lazy load videos" -msgstr "" - -#: includes/admin/media.php:218 -msgid "Exclude URL(s)" -msgstr "排除网址" - -#: includes/admin/media.php:303 -msgid "Emoji" -msgstr "" - -#: includes/admin/media.php:310 -msgid "Disable Emoji" -msgstr "" - -#: includes/admin/media.php:314 -msgid "" -"Use default emoji of visitor's browser instead of loading emoji from " -"WordPress.org" -msgstr "" - -#: includes/admin/media.php:319 -msgid "Embeds" -msgstr "" - -#: includes/admin/media.php:326 -msgid "Disable embeds" -msgstr "" - -#: includes/admin/media.php:330 -msgid "Prevents embedding content from your site" -msgstr "" - -#: includes/admin/media.php:336 -msgid "Image sizes" -msgstr "图片尺寸" - -#: includes/admin/media.php:343 includes/admin/media.php:354 -msgid "Name" -msgstr "名称" - -#: includes/admin/media.php:344 includes/admin/media.php:360 -msgid "Width" -msgstr "宽" - -#: includes/admin/media.php:345 includes/admin/media.php:366 -msgid "Height" -msgstr "高" - -#: includes/admin/media.php:346 includes/admin/media.php:372 -msgid "Crop" -msgstr "裁剪" - -#: includes/admin/media.php:347 -msgid "Actions" -msgstr "操作" - -#: includes/admin/media.php:374 includes/functions/miscellaneous.php:259 -msgid "Yes" -msgstr "是" - -#: includes/admin/media.php:379 -#, php-format -msgid "Remove image size %s" -msgstr "删除图片大小 %s" - -#: includes/admin/media.php:381 -msgid "Remove size" -msgstr "删除大小" - -#: includes/admin/media.php:391 -msgid "Add size" -msgstr "添加大小" - -#: includes/admin/media.php:392 -msgid "Restore default image sizes" -msgstr "恢复默认图片大小" - -#: includes/admin/media.php:392 -msgid "Restore image sizes" -msgstr "恢复图片大小" - -#: includes/admin/media.php:398 -msgid "Regenerate thumbnails every time you make some changes to image sizes" -msgstr "每次对图片大小进行某些更改时,都会重新生成缩略图" - -#: includes/admin/media.php:400 -msgid "Regenerate thumbnails" -msgstr "重新生成缩略图" - -#: includes/admin/metabox.php:13 includes/admin/metabox.php:80 -#: includes/admin/metabox.php:131 includes/admin/metabox.php:183 -#: includes/admin/metabox.php:234 -msgid "Page URL will be added to exclude list" -msgstr "页面网址将被添加排除列表" - -#: includes/admin/metabox.php:41 includes/admin/metabox.php:68 -msgid "Exclude from cache" -msgstr "从缓存中排除" - -#: includes/admin/metabox.php:46 -msgid "" -"This page is your website home page and it is affected by Exclude URL(s) " -"from cache option. Usually a home page is not excluded from cache. Please " -"check your exclude settings." -msgstr "" -"此页面是您的网站主页,它受缓存选项中的排除网址影响。通常,主页不会从缓存中排" -"除。请检查您的排除设置。" - -#: includes/admin/metabox.php:49 -msgid "This page is affected by URL(s) exclude options on Cache page" -msgstr "此页面受缓存页面上的网址排除选项的影响" - -#: includes/admin/metabox.php:63 -msgid "" -"This page is your website home page.
      Do you want to exclude home page " -"from cache?" -msgstr "此页面是您的网站主页。
      要从缓存中排除主页吗?" - -#: includes/admin/metabox.php:107 includes/admin/metabox.php:121 -#: includes/admin/metabox.php:158 -msgid "Exclude from CSS optimization" -msgstr "从CSS优化中排除" - -#: includes/admin/metabox.php:111 -msgid "This page is affected by URL(s) exclude options on CSS page" -msgstr "此页面受CSS页面上网址排除选项的影响" - -#: includes/admin/metabox.php:162 -msgid "This page is affected by URL(s) exclude options on JavaScript page" -msgstr "此页面受JavaScript页面上的网址排除选项的影响" - -#: includes/admin/metabox.php:172 -msgid "Exclude from JS optimization" -msgstr "从JS优化中排除" - -#: includes/admin/metabox.php:209 includes/admin/metabox.php:223 -msgid "Exclude from Image optimization" -msgstr "从图片优化中排除" - -#: includes/admin/metabox.php:213 includes/admin/metabox.php:264 -msgid "This page is affected by URL(s) exclude options on Media page" -msgstr "" - -#: includes/admin/metabox.php:260 includes/admin/metabox.php:274 -msgid "Exclude from Video lazyload" -msgstr "" - -#: includes/admin/settings.php:16 -msgid "Import settings" -msgstr "导入设置" - -#: includes/admin/settings.php:22 -msgid "Export settings" -msgstr "导出设置" - -#: includes/admin/settings.php:25 -msgid "Export" -msgstr "导出" - -#: includes/admin/settings.php:34 -msgid "Server" -msgstr "服务器" - -#: includes/admin/settings.php:39 -msgid "Nginx configuration" -msgstr "Nginx 配置" - -#: includes/admin/settings.php:43 -#, php-format -msgid "" -"%s will work out of the box on Nginx servers, this rewrite rules are not " -"required. However, to optimize your website even more, you should add this " -"rules to your Nginx configuration file." -msgstr "" -"%s 将在 Nginx 服务器上开箱即用,此重写规则不是必需的。但是,为了进一步优化您" -"的网站,您应该将此规则添加到您的 Nginx 配置文件。" - -#: includes/admin/settings.php:45 -msgid "Select all" -msgstr "全选" - -#: includes/admin/settings.php:52 -msgid "Logs" -msgstr "日志" - -#: includes/admin/settings.php:56 -msgid "Troubleshooting logging" -msgstr "故障排除日志" - -#: includes/admin/settings.php:60 -msgid "Enable troubleshooting logging" -msgstr "启用故障排除日志" - -#: includes/admin/settings.php:63 -msgid "These logs can be helpful for troubleshooting problems" -msgstr "这些日志可帮助解决问题" - -#: includes/admin/settings.php:69 -msgid "Log file content" -msgstr "记录文件内容" - -#: includes/admin/settings.php:72 -msgid "Content is auto refreshed every 10 seconds" -msgstr "内容每10秒自动刷新一次" - -#: includes/admin/settings.php:84 -msgid "Clear log file" -msgstr "清除日志文件" - -#: includes/admin/settings.php:93 -msgid "Previous configuration settings" -msgstr "以前的配置设置" - -#: includes/admin/settings.php:114 -msgid "Saved" -msgstr "保存于" - -#: includes/admin/settings.php:117 -msgid "Load configuration settings saved on " -msgstr "加载配置设置保存于 " - -#: includes/admin/settings.php:120 -msgid "Load" -msgstr "加载" - -#: includes/classes/api.php:130 -#, php-format -msgid "Call to undefined method %s" -msgstr "调用未定义的方法%s" - -#: includes/classes/cli.php:23 -msgid "Flushing the cache..." -msgstr "刷新缓存......" - -#: includes/classes/cli.php:25 -msgid "Cache flushed." -msgstr "缓存已刷新。" - -#: includes/classes/cli.php:73 -msgid "Running tranisent cleanup" -msgstr "运行tranisent清理" - -#: includes/classes/cli.php:75 -msgid "Transient cleanup complete" -msgstr "Transient清理完成" - -#: includes/classes/cli.php:81 -msgid "Running revisions cleanup" -msgstr "运行修订清理" - -#: includes/classes/cli.php:83 -msgid "Revisions cleanup complete" -msgstr "修订清理完成" - -#: includes/classes/cli.php:89 -msgid "Running drafts cleanup" -msgstr "运行草稿清理" - -#: includes/classes/cli.php:91 -msgid "Drafts cleanup complete" -msgstr "草稿清理完成" - -#: includes/classes/cli.php:97 -msgid "Running trash cleanup" -msgstr "运行垃圾清理" - -#: includes/classes/cli.php:99 -msgid "Trash cleanup complete" -msgstr "垃圾清理完成" - -#: includes/classes/cli.php:105 -msgid "Running spam cleanup" -msgstr "运行垃圾评论清理" - -#: includes/classes/cli.php:107 -msgid "Spam cleanup complete" -msgstr "垃圾评论清理完成" - -#: includes/classes/cli.php:113 -msgid "Running cron tasks cleanup" -msgstr "运行计划任务清理" - -#: includes/classes/cli.php:115 -msgid "Cron tasks cleanup complete" -msgstr "计划任务清理完成" - -#: includes/classes/cli.php:126 -msgid "Running database cleanup" -msgstr "运行数据库清理" - -#: includes/classes/cli.php:128 -msgid "Database cleanup complete" -msgstr "数据库清理完成" - -#: includes/classes/parser.php:94 -msgid "error" -msgstr "错误" - -#: includes/classes/parser.php:95 includes/classes/parser.php:98 -msgid "both head and body tag should be present in template file" -msgstr "head 和 body 标记都应存在模板文件中" - -#: includes/classes/parser.php:932 -msgid "Optimized by" -msgstr "已优化来自" - -#: includes/classes/parser.php:956 -#, php-format -msgid "Cache file was created in %s seconds on %s at %s" -msgstr "缓存文件创建于 %s 秒,%s 于 %s" - -#: includes/functions/admin.php:270 -msgid "Temporarily disable" -msgstr "暂时禁用" - -#: includes/functions/backend.php:52 -#, php-format -msgid "" -"File advanced-cache.php is missing. If you updated your " -"installation of %s recently, try to deactivate and then activate the plugin " -"again." -msgstr "" - -#: includes/functions/backend.php:237 -msgid "is temporarily disabled" -msgstr "暂时禁用" - -#: includes/functions/backend.php:250 -#, php-format -msgid "" -"%s: Log file is getting large, either clear the log or disable " -"troubleshooting logging" -msgstr "%s: 日志文件越来越大,可以清除日志,也可以禁用故障排除日志记录" - -#: includes/functions/backend.php:262 -#, php-format -msgid "%s: missing writing permissions for file .htaccess" -msgstr "%s: 缺少 . htaccess 文件的写入权限 " - -#: includes/functions/backend.php:275 -#, php-format -msgid "%s: enter Cloudflare credentials" -msgstr "%s:输入Cloudflare凭据" - -#: includes/functions/cron.php:41 -msgid "Every minute" -msgstr "每1分钟" - -#: includes/functions/cron.php:46 -msgid "Every 5 minutes" -msgstr "每5分钟" - -#: includes/functions/db.php:85 -msgid "You are doing it wrong" -msgstr "你做错了" - -#: includes/functions/image.php:68 -msgid "Size name already in use" -msgstr "已在使用的大小名称" - -#: includes/functions/image.php:190 -#, php-format -msgid "%s image left" -msgid_plural "%s images left" -msgstr[0] "剩余 %s 图片" -msgstr[1] "剩余 %s 图片" - -#: includes/functions/image.php:202 -msgid "Done" -msgstr "完成" - -#: includes/functions/miscellaneous.php:257 -msgid "Are you sure?" -msgstr "你确定?" - -#: includes/functions/miscellaneous.php:264 -msgid "Something went wrong" -msgstr "出了些问题" - -#: includes/functions/miscellaneous.php:265 -msgid "Regenerating thumbs" -msgstr "重新生成缩略图" - -#: includes/functions/miscellaneous.php:266 -msgid "Regenerate thumbnails may take a long time. Do not close your browser." -msgstr "重新生成缩略图可能需要很长时间。不要关闭浏览器。" - -#: includes/functions/plugin.php:220 -msgid "The following plugins are not compatible with" -msgstr "以下插件不兼容" - -#: includes/functions/plugin.php:227 -msgid "Deactivate" -msgstr "停用" - -#. Plugin Name of the plugin/theme -msgid "WP Performance" -msgstr "WP性能" - -#. Plugin URI of the plugin/theme -msgid "https://www.wp-performance.com" -msgstr "https://www.wp-performance.com" - -#. Description of the plugin/theme -msgid "WP Performance Optimizer" -msgstr "" -"WP性能优化插件,由 WordPress大学 https://www.wpdaxue.com 提供简体中文支持" - -#. Author of the plugin/theme -msgid "Ante Laca" -msgstr "Ante Laca" - -#. Author URI of the plugin/theme -msgid "https://www.antelaca.xyz" -msgstr "https://www.antelaca.xyz" - -#~ msgid "Cloudflare cache" -#~ msgstr "Cloudflare缓存" - -#~ msgid "Varnish" -#~ msgstr "Varnish 缓存" - -#~ msgid "If Varnish runs on your server, you need to activate this option." -#~ msgstr "如果Varnish在您的服务器上运行,则需要激活此选项。" - -#~ msgid "Part of the URL will also work" -#~ msgstr "包含这些网址部分的页面也一样生效" - -#~ msgid "Exclude image" -#~ msgstr "排除图片" - -#~ msgid "This page is affected by URL(s) exclude options on Images page" -#~ msgstr "此页面受图片页面上网址排除选项的影响" - -#~ msgid "settings" -#~ msgstr "设置" - -#~ msgid "Enable auto purge" -#~ msgstr "启用自动清除" - -#~ msgid "Prefetch external CSS resources" -#~ msgstr "预加载外部 CSS 资源" - -#~ msgid "Cron tasks" -#~ msgstr "定时任务" - -#~ msgid "Prefetch external JS resources" -#~ msgstr "预加载外部 JS 资源" - -#~ msgid "Error" -#~ msgstr "错误" - -#~ msgid "Warning" -#~ msgstr "警告" - -#~ msgid "Notice" -#~ msgstr "通知" - -#~ msgid "Event" -#~ msgstr "活动" diff --git a/languages/wpp.pot b/languages/wpp.pot index 0bcfbe4..e84c506 100644 --- a/languages/wpp.pot +++ b/languages/wpp.pot @@ -1,1323 +1,1709 @@ -#, fuzzy +# Copyright (C) 2026 Ante Laca +# This file is distributed under the GPL-2.0-or-later. msgid "" msgstr "" -"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" -"Project-Id-Version: WP Performance\n" -"POT-Creation-Date: 2019-08-30 14:57+0200\n" -"PO-Revision-Date: 2018-12-26 17:50+0100\n" -"Last-Translator: \n" -"Language-Team: \n" +"Project-Id-Version: WP Performance 2.0.0\n" +"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/WP-Performance\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.3\n" -"X-Poedit-Basepath: ..\n" -"X-Poedit-Flags-xgettext: --add-comments=translators:\n" -"X-Poedit-WPHeader: wp-performance.php\n" -"X-Poedit-SourceCharset: UTF-8\n" -"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;" -"esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;" -"_nx_noop:3c,1,2;__ngettext_noop:1,2;wpp_notify\n" -"X-Poedit-SearchPath-0: .\n" -"X-Poedit-SearchPath-1: vendor\n" -"X-Poedit-SearchPath-2: .git\n" -"X-Poedit-SearchPath-3: assets\n" -"X-Poedit-SearchPathExcluded-0: *.js\n" +"POT-Creation-Date: 2026-08-18T12:27:44+00:00\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"X-Generator: WP-CLI 2.12.0\n" +"X-Domain: wpp\n" + +#. Plugin Name of the plugin +#: wp-performance.php +#: src/Admin/AdminMenu.php:23 +#: src/Admin/AdminMenu.php:24 +#: src/Admin/Metabox.php:37 +#: assets/admin/app/App.jsx:85 +msgid "WP Performance" +msgstr "" + +#. Description of the plugin +#: wp-performance.php +msgid "WP Performance Optimizer - cache & performance plugin." +msgstr "" + +#. Author of the plugin +#: wp-performance.php +msgid "Ante Laca" +msgstr "" + +#: src/Addons/Cloudflare/CloudflareApi.php:58 +msgid "Unknown Cloudflare error." +msgstr "" + +#: src/Addons/Cloudflare/CloudflareController.php:113 +msgid "Cloudflare rejected the request." +msgstr "" + +#: src/Addons/Cloudflare/CloudflareController.php:120 +msgid "Cloudflare is not configured." +msgstr "" + +#: src/Admin/CompatibilityNotice.php:63 +msgid "WP Performance detected another caching/optimization plugin:" +msgstr "" + +#: src/Admin/CompatibilityNotice.php:65 +msgid "Running more than one can cause conflicts; consider deactivating the others." +msgstr "" + +#: src/Admin/Metabox.php:54 +msgid "Exclude from cache" +msgstr "" + +#: src/Admin/Metabox.php:55 +msgid "Exclude from CSS optimization" +msgstr "" + +#: src/Admin/Metabox.php:56 +msgid "Exclude from JavaScript optimization" +msgstr "" + +#: src/Admin/Metabox.php:57 +msgid "Exclude from HTML optimization" +msgstr "" + +#: src/Admin/Metabox.php:58 +msgid "Exclude from image optimization" +msgstr "" + +#: src/Admin/Metabox.php:59 +msgid "Exclude from video lazy load" +msgstr "" + +#: src/Cron/CronHooks.php:45 +msgid "Once weekly" +msgstr "" + +#: src/Cron/CronHooks.php:46 +msgid "Once monthly" +msgstr "" + +#: src/Rest/Admin/FilesController.php:77 +msgid "Could not load the homepage automatically, so the list may be incomplete. Visit your site once, then reload this page." +msgstr "" + +#: src/Rest/Admin/FilesController.php:82 +msgid "No files were found. Turn on a CSS or JavaScript optimization first, then update the list." +msgstr "" + +#: src/Rest/Admin/OverviewController.php:98 +#: src/Rest/Admin/OverviewController.php:124 +#: src/Rest/Admin/OverviewController.php:126 +#: src/Rest/Admin/OverviewController.php:128 +msgid "Page cache" +msgstr "" + +#: src/Rest/Admin/OverviewController.php:99 +#: assets/admin/app/tabs/CacheTab.jsx:240 +#: assets/admin/app/tabs/CacheTab.jsx:270 +msgid "Block cache" +msgstr "" + +#: src/Rest/Admin/OverviewController.php:100 +#: assets/admin/app/tabs/CacheTab.jsx:220 +msgid "Browser caching" +msgstr "" + +#: src/Rest/Admin/OverviewController.php:101 +msgid "GZIP compression" +msgstr "" + +#: src/Rest/Admin/OverviewController.php:102 +msgid "CSS optimization" +msgstr "" + +#: src/Rest/Admin/OverviewController.php:103 +msgid "JavaScript optimization" +msgstr "" -#: includes/addons/cloudflare/cloudflare.php:55 -msgid "Cloudflare - purge everything" +#: src/Rest/Admin/OverviewController.php:104 +msgid "HTML minification" msgstr "" -#: includes/addons/cloudflare/cloudflare.php:56 -msgid "Cloudflare - purge custom URL(s)" +#: src/Rest/Admin/OverviewController.php:105 +msgid "Lazy loading" msgstr "" -#: includes/addons/cloudflare/cloudflare.php:97 -msgid "Cloudflare API credentials not set" +#: src/Rest/Admin/OverviewController.php:106 +msgid "WebP/AVIF images" msgstr "" -#: includes/addons/cloudflare/cloudflare.php:116 -msgid " Cloudflare cannot get zone details. Check your Cloudflare credentials" +#: src/Rest/Admin/OverviewController.php:107 +msgid "Database cleanup" msgstr "" -#: includes/addons/cloudflare/cloudflare.php:123 +#: src/Rest/Admin/OverviewController.php:108 +#: assets/admin/app/App.jsx:43 +#: assets/admin/app/tabs/SettingsTab.jsx:22 +msgid "CDN" +msgstr "" + +#: src/Rest/Admin/OverviewController.php:109 +#: src/Rest/Admin/OverviewController.php:133 +#: src/Rest/Admin/OverviewController.php:135 +#: src/Rest/Admin/OverviewController.php:137 +#: src/Rest/Admin/OverviewController.php:139 +#: assets/admin/app/tabs/SettingsTab.jsx:211 +msgid "Object cache" +msgstr "" + +#: src/Rest/Admin/OverviewController.php:124 +msgid "Page caching is turned off." +msgstr "" + +#: src/Rest/Admin/OverviewController.php:126 +msgid "Page caching is active and serving cached pages." +msgstr "" + +#: src/Rest/Admin/OverviewController.php:128 +msgid "The advanced-cache.php drop-in or WP_CACHE constant is missing." +msgstr "" + +#: src/Rest/Admin/OverviewController.php:133 +msgid "A persistent object cache is active." +msgstr "" + +#: src/Rest/Admin/OverviewController.php:135 +msgid "Another object cache drop-in is installed." +msgstr "" + +#: src/Rest/Admin/OverviewController.php:137 +msgid "Redis is available but the object cache is not enabled." +msgstr "" + +#: src/Rest/Admin/OverviewController.php:139 +msgid "No object cache backend detected (Redis recommended)." +msgstr "" + +#: src/Rest/Admin/OverviewController.php:144 +#: src/Rest/Admin/OverviewController.php:145 +msgid "Compression" +msgstr "" + +#: src/Rest/Admin/OverviewController.php:144 +msgid "GZIP compression is available." +msgstr "" + +#: src/Rest/Admin/OverviewController.php:145 +msgid "The zlib extension is missing, so GZIP is unavailable." +msgstr "" + +#: src/Rest/Admin/OverviewController.php:154 +#: src/Rest/Admin/OverviewController.php:155 +msgid "PHP OPcache" +msgstr "" + +#: src/Rest/Admin/OverviewController.php:154 +msgid "OPcache is enabled." +msgstr "" + +#: src/Rest/Admin/OverviewController.php:155 +msgid "OPcache is not enabled. Enabling it speeds up PHP execution." +msgstr "" + +#. translators: %s: PHP version. +#: src/Rest/Admin/OverviewController.php:159 +#: src/Rest/Admin/OverviewController.php:160 +msgid "PHP version" +msgstr "" + +#. translators: %s: PHP version. +#: src/Rest/Admin/OverviewController.php:159 #, php-format -msgid "" -" Cloudflare zone %s is not activated. Please go to your Cloudflare dashboard " -"and activate it." +msgid "Running PHP %s." msgstr "" -#: includes/addons/cloudflare/cloudflare.php:127 +#. translators: 1: current PHP version, 2: recommended version. +#: src/Rest/Admin/OverviewController.php:160 #, php-format -msgid "" -" Cloudflare zone %s status is pending and these settings won't have any " -"effect on your website." +msgid "PHP %1$s is below the recommended %2$s." msgstr "" -#: includes/addons/cloudflare/cloudflare.php:142 -msgid " Cloudflare development mode not set" +#: src/Rest/Admin/OverviewController.php:166 +#: src/Rest/Admin/OverviewController.php:167 +msgid "Cache directory" msgstr "" -#: includes/addons/cloudflare/cloudflare.php:151 -msgid " Cloudflare cache level not set" +#: src/Rest/Admin/OverviewController.php:166 +msgid "The cache directory is writable." msgstr "" -#: includes/addons/cloudflare/cloudflare.php:161 -msgid " Cloudflare browser cache expiration not set" +#: src/Rest/Admin/OverviewController.php:167 +msgid "The cache directory is not writable." msgstr "" -#: includes/addons/cloudflare/cloudflare.php:175 -msgid " Cloudflare minify not set" +#: src/Rest/Admin/OverviewController.php:171 +#: src/Rest/Admin/OverviewController.php:172 +msgid "Image conversion" msgstr "" -#: includes/addons/cloudflare/cloudflare.php:187 -msgid " Cloudflare Rocket loader mode not set" +#: src/Rest/Admin/OverviewController.php:171 +msgid "GD can generate WebP images." msgstr "" -#: includes/addons/cloudflare/cloudflare.php:197 -msgid " Cloudflare Brotli mode not set" +#: src/Rest/Admin/OverviewController.php:172 +msgid "GD cannot generate WebP images on this server." msgstr "" -#: includes/addons/cloudflare/cloudflare.php:209 -msgid "Cloudflare settings saved" +#: src/Rest/Admin/OverviewController.php:179 +#: src/Rest/Admin/OverviewController.php:180 +#: src/Rest/Admin/OverviewController.php:182 +#: src/Rest/Admin/OverviewController.php:184 +msgid "Server rules" msgstr "" -#: includes/addons/cloudflare/cloudflare.php:231 -msgid "Something went wrong. Cannot purge Cloudflare cache" +#: src/Rest/Admin/OverviewController.php:179 +msgid "Apache detected; .htaccess is writable." msgstr "" -#: includes/addons/cloudflare/cloudflare.php:261 -msgid "Something went wrong. Cannot purge Cloudflare custom URL(s) cache" +#: src/Rest/Admin/OverviewController.php:180 +msgid "Apache detected but .htaccess is not writable." msgstr "" -#: includes/addons/cloudflare/views/addon.php:20 -msgid "Integrate your Cloudflare account with this add-on." +#: src/Rest/Admin/OverviewController.php:182 +msgid "Nginx detected; add the generated rules from Settings." msgstr "" -#: includes/addons/cloudflare/views/addon.php:27 -#: includes/addons/cloudflare/views/admin.php:82 -#: includes/addons/cloudflare/views/admin.php:175 -#: includes/addons/cloudflare/views/admin.php:187 -#: includes/addons/prefetch/views/addon.php:18 -#: includes/addons/varnish/views/addon.php:49 includes/functions/admin.php:267 -#: includes/functions/backend.php:238 -msgid "Enable" +#: src/Rest/Admin/OverviewController.php:184 +msgid "Server type could not be determined." msgstr "" -#: includes/addons/cloudflare/views/admin.php:15 -msgid "Caching" +#: src/Rest/Admin/SettingsController.php:64 +#: src/Rest/Admin/SettingsController.php:73 +msgid "Unknown settings group." +msgstr "" + +#: assets/admin/app/App.jsx:36 +msgid "Overview" msgstr "" -#: includes/addons/cloudflare/views/admin.php:21 -msgid "Purge Cache" +#: assets/admin/app/App.jsx:37 +#: assets/admin/app/tabs/SettingsTab.jsx:16 +#: assets/blocks/cache/index.js:8 +msgid "Cache" msgstr "" -#: includes/addons/cloudflare/views/admin.php:23 -msgid "Clear all Cloudflare cache" +#: assets/admin/app/App.jsx:38 +#: assets/admin/app/tabs/SettingsTab.jsx:17 +msgid "CSS" msgstr "" -#: includes/addons/cloudflare/views/admin.php:23 -msgid "Purge everything" +#: assets/admin/app/App.jsx:39 +#: assets/admin/app/tabs/SettingsTab.jsx:18 +msgid "JavaScript" +msgstr "" + +#: assets/admin/app/App.jsx:40 +#: assets/admin/app/tabs/SettingsTab.jsx:19 +msgid "HTML" +msgstr "" + +#: assets/admin/app/App.jsx:41 +#: assets/admin/app/tabs/SettingsTab.jsx:20 +msgid "Media" +msgstr "" + +#: assets/admin/app/App.jsx:42 +#: assets/admin/app/tabs/SettingsTab.jsx:21 +msgid "Database" +msgstr "" + +#: assets/admin/app/App.jsx:44 +#: assets/admin/app/tabs/SettingsTab.jsx:23 +msgid "Settings" +msgstr "" + +#: assets/admin/app/App.jsx:45 +msgid "Add-ons" +msgstr "" + +#: assets/admin/app/App.jsx:51 +#: assets/admin/app/tabs/AddonsTab.jsx:60 +#: assets/admin/app/tabs/SettingsTab.jsx:24 +msgid "Cloudflare" +msgstr "" + +#: assets/admin/app/components/ConfirmDialog.jsx:72 +msgid "Are you sure?" msgstr "" -#: includes/addons/cloudflare/views/admin.php:24 -msgid "Clear custom URL(s) from Cloudflare cache" +#: assets/admin/app/components/ConfirmDialog.jsx:103 +#: assets/admin/app/components/ImageSizes.jsx:176 +msgid "Cancel" msgstr "" -#: includes/addons/cloudflare/views/admin.php:24 -#: includes/addons/cloudflare/views/admin.php:29 -msgid "Purge custom URL(s)" +#: assets/admin/app/components/ConfirmDialog.jsx:111 +msgid "Confirm" msgstr "" -#: includes/addons/cloudflare/views/admin.php:49 includes/admin/cache.php:116 -#: includes/admin/cache.php:335 includes/admin/cache.php:355 -#: includes/admin/cache.php:414 includes/admin/cdn.php:66 -#: includes/admin/css.php:317 includes/admin/css.php:327 -#: includes/admin/includes/external_files.php:66 -#: includes/admin/includes/external_files.php:94 -#: includes/admin/includes/local_files.php:65 -#: includes/admin/includes/local_files.php:92 includes/admin/javascript.php:243 -#: includes/admin/javascript.php:253 includes/admin/media.php:66 -#: includes/admin/media.php:92 includes/admin/media.php:136 -#: includes/admin/media.php:156 includes/admin/media.php:238 -#: includes/admin/media.php:258 includes/functions/miscellaneous.php:258 +#: assets/admin/app/components/fields/RepeatableInput.jsx:11 +#: assets/admin/app/components/ImageSizes.jsx:173 +#: assets/admin/app/tabs/JsTab.jsx:77 +msgid "Add" +msgstr "" + +#: assets/admin/app/components/fields/RepeatableInput.jsx:37 +#: assets/admin/app/components/ImageSizes.jsx:47 +#: assets/admin/app/components/ImageSizes.jsx:131 msgid "Remove" msgstr "" -#: includes/addons/cloudflare/views/admin.php:58 -#: includes/addons/cloudflare/views/admin.php:67 -msgid "" -"Any assets in the Cloudflare cache that match the URL(s) exactly will be " -"purged from the cache." +#: assets/admin/app/components/FileListTable.jsx:8 +msgid "Theme" +msgstr "" + +#: assets/admin/app/components/FileListTable.jsx:9 +msgid "Plugins" +msgstr "" + +#: assets/admin/app/components/FileListTable.jsx:10 +msgid "External" +msgstr "" + +#: assets/admin/app/components/FileListTable.jsx:14 +msgid "Everywhere" +msgstr "" + +#: assets/admin/app/components/FileListTable.jsx:15 +msgid "Only on selected URLs" +msgstr "" + +#: assets/admin/app/components/FileListTable.jsx:16 +msgid "Everywhere except selected URLs" +msgstr "" + +#: assets/admin/app/components/FileListTable.jsx:35 +msgid "No files collected yet. Enable caching or an optimization, visit your site, then choose \"Update files list\"." +msgstr "" + +#: assets/admin/app/components/FileListTable.jsx:75 +msgid "File" +msgstr "" + +#: assets/admin/app/components/FileListTable.jsx:76 +#: assets/admin/app/tabs/HtmlTab.jsx:45 +msgid "Minify" +msgstr "" + +#: assets/admin/app/components/FileListTable.jsx:77 +msgid "Inline" +msgstr "" + +#: assets/admin/app/components/FileListTable.jsx:78 +msgid "Combine" +msgstr "" + +#: assets/admin/app/components/FileListTable.jsx:79 +msgid "Disable" msgstr "" -#: includes/addons/cloudflare/views/admin.php:70 includes/admin/cache.php:380 -#: includes/admin/css.php:351 includes/admin/includes/external_files.php:113 -#: includes/admin/includes/external_files.php:124 -#: includes/admin/includes/local_files.php:109 -#: includes/admin/includes/local_files.php:120 -#: includes/admin/javascript.php:277 includes/admin/media.php:180 -#: includes/admin/media.php:282 includes/functions/miscellaneous.php:260 +#: assets/admin/app/components/FileListTable.jsx:84 +msgid "Apply to all" +msgstr "" + +#: assets/admin/app/components/FileListTable.jsx:125 +#: assets/admin/app/components/FileListTable.jsx:132 +#: assets/admin/app/tabs/AddonsTab.jsx:130 +#: assets/admin/app/tabs/CacheTab.jsx:102 +#: assets/admin/app/tabs/CloudflareTab.jsx:104 +#: assets/admin/app/tabs/CssTab.jsx:160 +#: assets/admin/app/tabs/HtmlTab.jsx:26 +#: assets/admin/app/tabs/JsTab.jsx:96 +#: assets/admin/app/tabs/MediaTab.jsx:166 +#: assets/admin/app/tabs/MediaTab.jsx:183 msgid "Add URL" msgstr "" -#: includes/addons/cloudflare/views/admin.php:78 -msgid "Development mode" +#: assets/admin/app/components/ImageSizes.jsx:36 +msgid "Image size added." msgstr "" -#: includes/addons/cloudflare/views/admin.php:85 -msgid "Temporarily activate development mode on your website." +#: assets/admin/app/components/ImageSizes.jsx:38 +msgid "Could not add size." msgstr "" -#: includes/addons/cloudflare/views/admin.php:86 -msgid "This setting will automatically turn off after 3 hours." +#: assets/admin/app/components/ImageSizes.jsx:45 +msgid "Remove image size" msgstr "" -#: includes/addons/cloudflare/views/admin.php:91 -msgid "Cache level" +#: assets/admin/app/components/ImageSizes.jsx:46 +msgid "New uploads will no longer be generated at this size." msgstr "" -#: includes/addons/cloudflare/views/admin.php:94 -msgid "Aggressive - Standard" +#: assets/admin/app/components/ImageSizes.jsx:56 +msgid "Could not remove size." msgstr "" -#: includes/addons/cloudflare/views/admin.php:95 -msgid "Simplified - Ignore query string" +#: assets/admin/app/components/ImageSizes.jsx:63 +#: assets/admin/app/components/ImageSizes.jsx:185 +msgid "Restore defaults" msgstr "" -#: includes/addons/cloudflare/views/admin.php:96 -msgid "Basic - No query string" +#: assets/admin/app/components/ImageSizes.jsx:64 +msgid "This restores the WordPress default image sizes and discards your changes here." msgstr "" -#: includes/addons/cloudflare/views/admin.php:101 -msgid "" -"Aggressive: Delivers a different resource each time the query string changes." +#: assets/admin/app/components/ImageSizes.jsx:65 +#: assets/admin/app/tabs/SettingsTab.jsx:71 +#: assets/admin/app/tabs/SettingsTab.jsx:158 +msgid "Restore" msgstr "" -#: includes/addons/cloudflare/views/admin.php:102 -msgid "" -"Simplified: Delivers the same resource to everyone independent of the query " -"string." +#: assets/admin/app/components/ImageSizes.jsx:71 +msgid "Defaults restored." msgstr "" -#: includes/addons/cloudflare/views/admin.php:103 -msgid "" -"Basic: Only delivers resources from cache when there is no query string." +#: assets/admin/app/components/ImageSizes.jsx:77 +#: assets/admin/app/components/ImageSizes.jsx:194 +msgid "Regenerate thumbnails" msgstr "" -#: includes/addons/cloudflare/views/admin.php:118 -msgid "Browser Cache Expiration" +#: assets/admin/app/components/ImageSizes.jsx:78 +msgid "Every image is processed again. This may take a while on large media libraries." msgstr "" -#: includes/addons/cloudflare/views/admin.php:121 -msgid "Respect Existing Headers" +#: assets/admin/app/components/ImageSizes.jsx:79 +msgid "Regenerate" msgstr "" -#: includes/addons/cloudflare/views/admin.php:131 -msgid "" -"Browser cache TTL (in seconds) specifies how long CloudFlare-cached " -"resources will remain on your visitors computers." +#: assets/admin/app/components/ImageSizes.jsx:98 +msgid "Thumbnails regenerated." msgstr "" -#: includes/addons/cloudflare/views/admin.php:132 -msgid "The minimum TTL available depends on the plan level of the zone." +#: assets/admin/app/components/ImageSizes.jsx:100 +msgid "Regeneration failed." msgstr "" -#: includes/addons/cloudflare/views/admin.php:140 -msgid "Content" +#: assets/admin/app/components/ImageSizes.jsx:113 +msgid "Name" msgstr "" -#: includes/addons/cloudflare/views/admin.php:146 includes/admin/css.php:27 -#: includes/admin/includes/local_files.php:153 includes/admin/javascript.php:27 -msgid "Minify" +#: assets/admin/app/components/ImageSizes.jsx:114 +msgid "W" msgstr "" -#: includes/addons/cloudflare/views/admin.php:171 -msgid "Rocket Loader" +#: assets/admin/app/components/ImageSizes.jsx:115 +msgid "H" msgstr "" -#: includes/addons/cloudflare/views/admin.php:178 -msgid "Rocket Loader is a asynchronous JavaScript loader." +#: assets/admin/app/components/ImageSizes.jsx:116 +#: assets/admin/app/components/ImageSizes.jsx:170 +msgid "Crop" msgstr "" -#: includes/addons/cloudflare/views/admin.php:183 -msgid "Brotli" +#: assets/admin/app/components/ImageSizes.jsx:126 +msgid "Yes" msgstr "" -#: includes/addons/cloudflare/views/admin.php:190 -msgid "" -"Speed up page load times for your visitor’s HTTPS traffic by applying Brotli " -"compression." +#: assets/admin/app/components/ImageSizes.jsx:146 +msgid "name" msgstr "" -#: includes/addons/cloudflare/views/admin.php:198 includes/admin/addons.php:17 -#: includes/admin/cache.php:259 includes/admin/cdn.php:33 -#: includes/admin/css.php:119 includes/admin/database.php:183 -#: includes/admin/javascript.php:118 includes/admin/media.php:292 -#: includes/admin/settings.php:81 +#: assets/admin/app/components/ImageSizes.jsx:182 +msgid "Add size" +msgstr "" + +#: assets/admin/app/components/ImageSizes.jsx:193 +msgid "Regenerating" +msgstr "" + +#: assets/admin/app/components/SaveButton.jsx:12 +msgid "Saving…" +msgstr "" + +#: assets/admin/app/components/SaveButton.jsx:12 msgid "Save changes" msgstr "" -#: includes/addons/cloudflare/views/admin.php:207 -msgid "Cloudflare credentials" +#: assets/admin/app/hooks/useSettingsGroup.js:62 +msgid "Settings saved." msgstr "" -#: includes/addons/cloudflare/views/admin.php:211 -msgid "API key" +#: assets/admin/app/hooks/useSettingsGroup.js:65 +msgid "Could not save settings." msgstr "" -#: includes/addons/cloudflare/views/admin.php:218 -msgid "Account email" +#: assets/admin/app/lib/format.js:6 +msgid "just now" msgstr "" -#: includes/addons/cloudflare/views/admin.php:223 -msgid "Zone ID" +#. translators: %d: number of minutes. +#: assets/admin/app/lib/format.js:11 +#, js-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "" +msgstr[1] "" + +#. translators: %d: number of hours. +#: assets/admin/app/lib/format.js:16 +#, js-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "" +msgstr[1] "" + +#. translators: %d: number of days. +#: assets/admin/app/lib/format.js:20 +#, js-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "" +msgstr[1] "" + +#: assets/admin/app/tabs/AddonsTab.jsx:13 +msgid "Prerender (load the whole page, instant)" +msgstr "" + +#: assets/admin/app/tabs/AddonsTab.jsx:14 +msgid "Prefetch (fetch the page, lighter)" +msgstr "" + +#: assets/admin/app/tabs/AddonsTab.jsx:18 +msgid "On click" msgstr "" -#: includes/addons/prefetch/views/addon.php:9 -#: includes/addons/prefetch/views/addon.php:18 -msgid "Dynamic page preload" +#: assets/admin/app/tabs/AddonsTab.jsx:19 +msgid "On hover" msgstr "" -#: includes/addons/prefetch/views/addon.php:12 -msgid "Preloads a page right before a user clicks on link" +#: assets/admin/app/tabs/AddonsTab.jsx:20 +msgid "As soon as possible" msgstr "" -#: includes/addons/varnish/views/addon.php:20 -msgid "If Varnish runs on your server, you must activate this add-on." +#: assets/admin/app/tabs/AddonsTab.jsx:64 +msgid "Integrate your Cloudflare account to purge cache and manage zone settings." msgstr "" -#: includes/addons/varnish/views/addon.php:28 +#: assets/admin/app/tabs/AddonsTab.jsx:73 +msgid "Configure Cloudflare" +msgstr "" + +#: assets/admin/app/tabs/AddonsTab.jsx:80 +#: assets/admin/app/tabs/SettingsTab.jsx:25 +msgid "Varnish" +msgstr "" + +#: assets/admin/app/tabs/AddonsTab.jsx:84 +msgid "Automatically purge Varnish whenever the cache is cleared." +msgstr "" + +#: assets/admin/app/tabs/AddonsTab.jsx:88 msgid "Custom host" msgstr "" -#: includes/addons/varnish/views/addon.php:41 -msgid "If you are using proxy, you may need this option" +#: assets/admin/app/tabs/AddonsTab.jsx:100 +msgid "Link prefetch" msgstr "" -#: includes/admin/addons.php:27 includes/admin/admin.php:30 -#: includes/admin/admin.php:45 includes/functions/admin.php:236 -#: includes/functions/admin.php:240 -msgid "Add-ons" +#: assets/admin/app/tabs/AddonsTab.jsx:104 +msgid "Loads the next page in the background before a visitor clicks, so navigation feels instant. Uses the Speculation Rules API." msgstr "" -#: includes/admin/addons.php:31 -#, php-format -msgid "Add more features to %s with add-ons." +#: assets/admin/app/tabs/AddonsTab.jsx:109 +msgid "Mode" msgstr "" -#: includes/admin/admin.php:23 includes/admin/admin.php:38 -#: includes/functions/admin.php:166 -msgid "Cache" +#: assets/admin/app/tabs/AddonsTab.jsx:117 +msgid "When to start" msgstr "" -#: includes/admin/admin.php:26 includes/admin/admin.php:41 -#: includes/functions/admin.php:196 includes/functions/admin.php:200 -msgid "Media" +#: assets/admin/app/tabs/AddonsTab.jsx:125 +msgid "Exclude URLs" msgstr "" -#: includes/admin/admin.php:27 includes/admin/admin.php:42 -#: includes/functions/admin.php:206 includes/functions/admin.php:210 -msgid "Database" +#: assets/admin/app/tabs/CacheTab.jsx:19 +msgid "Minutes" msgstr "" -#: includes/admin/admin.php:29 includes/admin/admin.php:44 -#: includes/admin/settings.php:12 includes/functions/admin.php:170 -#: includes/functions/admin.php:226 includes/functions/admin.php:230 -#: includes/functions/admin.php:290 -msgid "Settings" +#: assets/admin/app/tabs/CacheTab.jsx:20 +msgid "Hours" msgstr "" -#: includes/admin/cache.php:11 -msgid "Enable cache" +#: assets/admin/app/tabs/CacheTab.jsx:21 +msgid "Days" msgstr "" -#: includes/admin/cache.php:15 -msgid "Reduces your server response time by serving static files to users" +#: assets/admin/app/tabs/CacheTab.jsx:24 +#: assets/admin/app/tabs/HtmlTab.jsx:11 +msgid "Use {numbers}, {letters}, {any} or {all} to match dynamic parts of a URL." msgstr "" -#: includes/admin/cache.php:30 includes/admin/cache.php:194 -#: includes/admin/cache.php:246 -msgid "" -"Your web site is running on a Nginx server and some additional steps may be " -"required in order to use this option." +#: assets/admin/app/tabs/CacheTab.jsx:45 +msgid "Block cache cleared." msgstr "" -#: includes/admin/cache.php:39 -msgid "Separate cache for mobile devices" +#: assets/admin/app/tabs/CacheTab.jsx:47 +msgid "Could not clear the block cache." msgstr "" -#: includes/admin/cache.php:42 -msgid "Create a dedicated cache file for mobile devices" +#: assets/admin/app/tabs/CacheTab.jsx:58 +#: assets/admin/app/tabs/OverviewTab.jsx:60 +msgid "Cache cleared." msgstr "" -#: includes/admin/cache.php:48 -msgid "Clear cache after" +#: assets/admin/app/tabs/CacheTab.jsx:60 +#: assets/admin/app/tabs/OverviewTab.jsx:62 +msgid "Could not clear the cache." +msgstr "" + +#: assets/admin/app/tabs/CacheTab.jsx:67 +msgid "HTML files" msgstr "" -#: includes/admin/cache.php:53 -msgid "minutes" +#: assets/admin/app/tabs/CacheTab.jsx:68 +msgid "CSS files" +msgstr "" + +#: assets/admin/app/tabs/CacheTab.jsx:69 +msgid "JavaScript files" msgstr "" -#: includes/admin/cache.php:56 -msgid "hours" +#: assets/admin/app/tabs/CacheTab.jsx:74 +msgid "Cache statistics" msgstr "" -#: includes/admin/cache.php:59 -msgid "days" +#: assets/admin/app/tabs/CacheTab.jsx:83 +msgid "Total" msgstr "" -#: includes/admin/cache.php:66 +#: assets/admin/app/tabs/CacheTab.jsx:93 +#: assets/admin/app/tabs/CacheTab.jsx:277 +#: assets/admin/app/tabs/OverviewTab.jsx:134 +msgid "Clearing…" +msgstr "" + +#: assets/admin/app/tabs/CacheTab.jsx:93 +#: assets/admin/app/tabs/OverviewTab.jsx:134 +msgid "Clear cache" +msgstr "" + +#: assets/admin/app/tabs/CacheTab.jsx:97 +msgid "Exclude URL(s) from cache" +msgstr "" + +#: assets/admin/app/tabs/CacheTab.jsx:107 +msgid "Exclude User Agent(s) from cache" +msgstr "" + +#: assets/admin/app/tabs/CacheTab.jsx:111 +msgid "Add User Agent" +msgstr "" + +#: assets/admin/app/tabs/CacheTab.jsx:117 +msgid "Exclude search engines" +msgstr "" + +#: assets/admin/app/tabs/CacheTab.jsx:118 +msgid "Google, Bing and other crawlers bypass the cache." +msgstr "" + +#: assets/admin/app/tabs/CacheTab.jsx:128 +msgid "Enable cache" +msgstr "" + +#: assets/admin/app/tabs/CacheTab.jsx:132 +msgid "Reduces server response time by serving static HTML files to visitors." +msgstr "" + +#: assets/admin/app/tabs/CacheTab.jsx:141 +msgid "Mobile cache" +msgstr "" + +#: assets/admin/app/tabs/CacheTab.jsx:145 +msgid "Separate cache for mobile devices" +msgstr "" + +#: assets/admin/app/tabs/CacheTab.jsx:149 +msgid "Clear cache after" +msgstr "" + +#: assets/admin/app/tabs/CacheTab.jsx:164 msgid "Clear cache when" msgstr "" -#: includes/admin/cache.php:70 -msgid "A new post or page is published or updated" +#: assets/admin/app/tabs/CacheTab.jsx:168 +msgid "A post or page is published or updated" msgstr "" -#: includes/admin/cache.php:75 +#: assets/admin/app/tabs/CacheTab.jsx:173 msgid "A post or page is deleted" msgstr "" -#: includes/admin/cache.php:80 -msgid "settings are saved" +#: assets/admin/app/tabs/CacheTab.jsx:178 +msgid "WP Performance settings are saved" msgstr "" -#: includes/admin/cache.php:86 +#: assets/admin/app/tabs/CacheTab.jsx:182 msgid "Clear cache options" msgstr "" -#: includes/admin/cache.php:90 -msgid "Keep generated CSS/JS files" +#: assets/admin/app/tabs/CacheTab.jsx:186 +msgid "Keep generated CSS/JS files when clearing the cache" +msgstr "" + +#: assets/admin/app/tabs/CacheTab.jsx:190 +msgid "Query strings" msgstr "" -#: includes/admin/cache.php:96 +#: assets/admin/app/tabs/CacheTab.jsx:194 +msgid "Cache URLs with query strings" +msgstr "" + +#: assets/admin/app/tabs/CacheTab.jsx:195 +msgid "Off (recommended): tracking params (utm, gclid, fbclid…) are ignored so only clean URLs are cached." +msgstr "" + +#: assets/admin/app/tabs/CacheTab.jsx:203 msgid "Cache preloading" msgstr "" -#: includes/admin/cache.php:126 includes/admin/cache.php:136 -msgid "Enter path to XML sitemap which will be used for cache preloading" +#: assets/admin/app/tabs/CacheTab.jsx:204 +msgid "Enter the path to an XML sitemap used to preload the cache." msgstr "" -#: includes/admin/cache.php:139 +#: assets/admin/app/tabs/CacheTab.jsx:213 msgid "Add Sitemap" msgstr "" -#: includes/admin/cache.php:147 -msgid "Browser caching" +#: assets/admin/app/tabs/CacheTab.jsx:221 +msgid "Leverage browser caching" msgstr "" -#: includes/admin/cache.php:151 -msgid "Leverage browser caching" +#: assets/admin/app/tabs/CacheTab.jsx:225 +msgid "Sets HTTP expiry headers so returning visitors load resources from their browser." msgstr "" -#: includes/admin/cache.php:176 -msgid "" -"Setting an expiry date in the HTTP headers for static resources instructs " -"the browser to load previously downloaded resources from local disk rather " -"than over the network" +#: assets/admin/app/tabs/CacheTab.jsx:231 +msgid "Gzip compression" msgstr "" -#: includes/admin/cache.php:183 includes/admin/cache.php:235 -msgid "" -"This option is turned ON automatically for all sites in Wordpress multisite" +#: assets/admin/app/tabs/CacheTab.jsx:235 +msgid "Compresses resources before sending them to the browser." msgstr "" -#: includes/admin/cache.php:204 -msgid "Enable gzip compression" +#: assets/admin/app/tabs/CacheTab.jsx:241 +msgid "Enable block cache" msgstr "" -#: includes/admin/cache.php:228 -msgid "" -"Compressing resources with gzip reduce the number of bytes sent over the " -"network" +#: assets/admin/app/tabs/CacheTab.jsx:245 +msgid "Caches parts of a page so they load faster, even when the full page is not cached. Add a Cache block to a page to use it." msgstr "" -#: includes/admin/cache.php:268 -msgid "Cache statistics" +#: assets/admin/app/tabs/CacheTab.jsx:254 +msgid "Default cache time (seconds)" msgstr "" -#: includes/admin/cache.php:269 includes/functions/admin.php:155 -#: includes/functions/admin.php:160 -msgid "Clear cache" +#: assets/admin/app/tabs/CacheTab.jsx:262 +msgid "Clearing" msgstr "" -#: includes/admin/cache.php:291 -msgid "HTML files" +#: assets/admin/app/tabs/CacheTab.jsx:266 +msgid "Also clear it when I clear the page cache" msgstr "" -#: includes/admin/cache.php:294 -msgid "CSS files" +#: assets/admin/app/tabs/CacheTab.jsx:277 +msgid "Clear block cache" msgstr "" -#: includes/admin/cache.php:297 -msgid "JavaScript files" +#: assets/admin/app/tabs/CdnTab.jsx:18 +msgid "Exclude file(s) from CDN" msgstr "" -#: includes/admin/cache.php:302 -msgid "Total cache size" +#: assets/admin/app/tabs/CdnTab.jsx:23 +#: assets/admin/app/tabs/CssTab.jsx:91 +#: assets/admin/app/tabs/JsTab.jsx:56 +msgid "Add file" msgstr "" -#: includes/admin/cache.php:313 -msgid "Exclude URL(s) from cache" +#: assets/admin/app/tabs/CdnTab.jsx:26 +msgid "Use {numbers}, {letters} or {any} to match dynamic parts of a URL." msgstr "" -#: includes/admin/cache.php:334 includes/admin/css.php:316 -#: includes/admin/javascript.php:242 includes/admin/media.php:135 -#: includes/admin/media.php:237 -#, php-format -msgid "Remove %s from excluded URL(s)?" +#: assets/admin/app/tabs/CdnTab.jsx:34 +msgid "Enable CDN" msgstr "" -#: includes/admin/cache.php:365 includes/admin/cache.php:377 -#: includes/admin/cdn.php:75 includes/admin/cdn.php:86 -#: includes/admin/css.php:336 includes/admin/css.php:348 -#: includes/admin/javascript.php:262 includes/admin/javascript.php:274 -#: includes/admin/media.php:165 includes/admin/media.php:177 -#: includes/admin/media.php:267 includes/admin/media.php:279 -msgid "Use {numbers} to match only numbers" +#: assets/admin/app/tabs/CdnTab.jsx:38 +msgid "Rewrites static asset URLs (CSS, JavaScript, images) to your CDN hostname." msgstr "" -#: includes/admin/cache.php:366 includes/admin/cache.php:377 -#: includes/admin/cdn.php:76 includes/admin/cdn.php:86 -#: includes/admin/css.php:337 includes/admin/css.php:348 -#: includes/admin/javascript.php:263 includes/admin/javascript.php:274 -#: includes/admin/media.php:166 includes/admin/media.php:177 -#: includes/admin/media.php:268 includes/admin/media.php:279 -msgid "Use {letters} to match only letters" +#: assets/admin/app/tabs/CdnTab.jsx:46 +msgid "CDN hostname" msgstr "" -#: includes/admin/cache.php:367 includes/admin/cache.php:377 -#: includes/admin/cdn.php:77 includes/admin/cdn.php:86 -#: includes/admin/css.php:338 includes/admin/css.php:348 -#: includes/admin/javascript.php:264 includes/admin/javascript.php:274 -#: includes/admin/media.php:167 includes/admin/media.php:177 -#: includes/admin/media.php:269 includes/admin/media.php:279 -msgid "Use {any} to match any string" +#: assets/admin/app/tabs/CloudflareTab.jsx:16 +#: assets/admin/app/tabs/HtmlTab.jsx:54 +#: assets/admin/app/tabs/OverviewTab.jsx:36 +msgid "Aggressive" msgstr "" -#: includes/admin/cache.php:368 includes/admin/cache.php:377 -#: includes/admin/css.php:339 includes/admin/css.php:348 -#: includes/admin/javascript.php:265 includes/admin/javascript.php:274 -#: includes/admin/media.php:168 includes/admin/media.php:177 -#: includes/admin/media.php:270 includes/admin/media.php:279 -msgid "Use {all} to match all" +#: assets/admin/app/tabs/CloudflareTab.jsx:17 +msgid "Simplified (ignore query string)" msgstr "" -#: includes/admin/cache.php:392 -msgid "Exclude User Agent(s) from cache" +#: assets/admin/app/tabs/CloudflareTab.jsx:18 +msgid "Basic (no query string)" msgstr "" -#: includes/admin/cache.php:427 -msgid "Add User Agent" +#: assets/admin/app/tabs/CloudflareTab.jsx:34 +msgid "complete." msgstr "" -#: includes/admin/cache.php:437 -msgid "Exclude search engines" +#: assets/admin/app/tabs/CloudflareTab.jsx:36 +msgid "Cloudflare error." msgstr "" -#: includes/admin/cdn.php:12 -msgid "Enable CDN" +#: assets/admin/app/tabs/CloudflareTab.jsx:52 +msgid "Cloudflare rejected:" msgstr "" -#: includes/admin/cdn.php:16 -msgid "" -"All URL(s) of static files ( CSS, JavaScript and Images ) will be rewritten " -"to the CDN hostname you provide. " +#: assets/admin/app/tabs/CloudflareTab.jsx:58 +msgid "Respect existing headers" msgstr "" -#: includes/admin/cdn.php:23 -msgid "CDN hostname" +#: assets/admin/app/tabs/CloudflareTab.jsx:62 +msgid "Credentials" msgstr "" -#: includes/admin/cdn.php:43 -msgid "Exclude file(s) from CDN" +#: assets/admin/app/tabs/CloudflareTab.jsx:63 +msgid "Account email" msgstr "" -#: includes/admin/cdn.php:89 -msgid "Add file" +#: assets/admin/app/tabs/CloudflareTab.jsx:66 +msgid "API key" msgstr "" -#: includes/admin/css.php:26 includes/admin/javascript.php:26 -msgid "File" +#: assets/admin/app/tabs/CloudflareTab.jsx:69 +msgid "Zone ID" msgstr "" -#: includes/admin/css.php:28 includes/admin/includes/local_files.php:171 -#: includes/admin/javascript.php:28 -msgid "Inline" +#: assets/admin/app/tabs/CloudflareTab.jsx:77 +msgid "Purge cache" msgstr "" -#: includes/admin/css.php:29 includes/admin/includes/local_files.php:189 -#: includes/admin/javascript.php:29 -msgid "Combine" +#: assets/admin/app/tabs/CloudflareTab.jsx:83 +#: assets/admin/app/tabs/CloudflareTab.jsx:85 +msgid "Purge everything" msgstr "" -#: includes/admin/css.php:30 includes/admin/includes/external_files.php:152 -#: includes/admin/includes/local_files.php:213 includes/admin/javascript.php:30 -msgid "Disable" +#: assets/admin/app/tabs/CloudflareTab.jsx:85 +msgid "Purging…" msgstr "" -#: includes/admin/css.php:37 includes/admin/javascript.php:37 -msgid "Update all files in list below" +#: assets/admin/app/tabs/CloudflareTab.jsx:92 +#: assets/admin/app/tabs/CloudflareTab.jsx:97 +msgid "Purge custom URLs" msgstr "" -#: includes/admin/css.php:47 includes/admin/javascript.php:47 -msgid "Theme" +#: assets/admin/app/tabs/CloudflareTab.jsx:100 +msgid "Custom URLs to purge" msgstr "" -#: includes/admin/css.php:69 includes/admin/javascript.php:69 -msgid "Plugins" +#: assets/admin/app/tabs/CloudflareTab.jsx:109 +msgid "Zone settings" msgstr "" -#: includes/admin/css.php:92 includes/admin/javascript.php:92 -msgid "External resources" +#: assets/admin/app/tabs/CloudflareTab.jsx:110 +msgid "Development mode" msgstr "" -#: includes/admin/css.php:115 includes/admin/javascript.php:114 -msgid "" -"If some of the files are missing from this list, enable Cache preloading " -"option." +#: assets/admin/app/tabs/CloudflareTab.jsx:114 +msgid "Temporarily bypass the Cloudflare cache (auto-off after 3h)" msgstr "" -#: includes/admin/css.php:122 includes/admin/javascript.php:121 -#, php-format -msgid "Clear collected %s files list.%s This option will also clear the cache." +#: assets/admin/app/tabs/CloudflareTab.jsx:117 +msgid "Cache level" msgstr "" -#: includes/admin/css.php:125 includes/admin/javascript.php:124 -msgid "Update files list" +#: assets/admin/app/tabs/CloudflareTab.jsx:120 +msgid "Browser cache TTL" msgstr "" -#: includes/admin/css.php:130 -msgid "CSS files not found" +#: assets/admin/app/tabs/CloudflareTab.jsx:127 +msgid "Rocket Loader" msgstr "" -#: includes/admin/css.php:134 includes/admin/javascript.php:133 -msgid "Reload" +#: assets/admin/app/tabs/CloudflareTab.jsx:128 +msgid "Asynchronous JavaScript loading" msgstr "" -#: includes/admin/css.php:142 +#: assets/admin/app/tabs/CloudflareTab.jsx:130 +msgid "Brotli" +msgstr "" + +#: assets/admin/app/tabs/CloudflareTab.jsx:131 +msgid "Brotli compression" +msgstr "" + +#: assets/admin/app/tabs/CssTab.jsx:19 +msgid "Default" +msgstr "" + +#: assets/admin/app/tabs/CssTab.jsx:41 +#: assets/admin/app/tabs/JsTab.jsx:30 +msgid "File list updated." +msgstr "" + +#: assets/admin/app/tabs/CssTab.jsx:43 +#: assets/admin/app/tabs/JsTab.jsx:32 +msgid "Could not update the file list." +msgstr "" + +#: assets/admin/app/tabs/CssTab.jsx:51 msgid "CSS settings" msgstr "" -#: includes/admin/css.php:158 +#: assets/admin/app/tabs/CssTab.jsx:52 msgid "Minify inline CSS" msgstr "" -#: includes/admin/css.php:166 -msgid "Asynchronously load CSS" +#: assets/admin/app/tabs/CssTab.jsx:55 +msgid "Remove unused CSS" msgstr "" -#: includes/admin/css.php:176 includes/admin/css.php:178 -msgid "Show critical CSS" +#: assets/admin/app/tabs/CssTab.jsx:59 +msgid "Inline only used CSS; load the rest async" msgstr "" -#: includes/admin/css.php:177 includes/admin/css.php:178 -msgid "Hide critical CSS" +#: assets/admin/app/tabs/CssTab.jsx:60 +msgid "Heuristic: keeps rules whose classes/ids appear on the page. The full CSS still loads async as a fallback." msgstr "" -#: includes/admin/css.php:188 -msgid "Eliminates render-blocking CSS" +#: assets/admin/app/tabs/CssTab.jsx:68 +msgid "Used-CSS safelist" msgstr "" -#: includes/admin/css.php:194 -msgid "" -"Loading CSS asynchronously will produce FOUC effect (a Flash Of Unstyled " -"Content). In order to minimize the FOUC effect, use critical CSS path." +#: assets/admin/app/tabs/CssTab.jsx:69 +msgid "Selectors to always keep, e.g. classes toggled by JavaScript." msgstr "" -#: includes/admin/css.php:202 -msgid "Critical CSS path" +#: assets/admin/app/tabs/CssTab.jsx:74 +msgid "Add selector" msgstr "" -#: includes/admin/css.php:207 -msgid "Enter critical CSS path definitions" +#: assets/admin/app/tabs/CssTab.jsx:78 +msgid "Asynchronous CSS" msgstr "" -#: includes/admin/css.php:212 -msgid "Generate critical CSS path" +#: assets/admin/app/tabs/CssTab.jsx:82 +msgid "Load CSS without render-blocking" msgstr "" -#: includes/admin/css.php:227 -msgid "Combine Google Fonts" +#: assets/admin/app/tabs/CssTab.jsx:87 +msgid "Exclude from async" msgstr "" -#: includes/admin/css.php:232 -msgid "Load all google fonts in one HTTP request" +#: assets/admin/app/tabs/CssTab.jsx:95 +msgid "Critical CSS" msgstr "" -#: includes/admin/css.php:241 +#: assets/admin/app/tabs/CssTab.jsx:96 +msgid "Above-the-fold CSS, inlined and applied before the async stylesheet loads." +msgstr "" + +#: assets/admin/app/tabs/CssTab.jsx:107 +msgid "Google Fonts" +msgstr "" + +#: assets/admin/app/tabs/CssTab.jsx:111 +msgid "Combine Google Fonts into one request" +msgstr "" + +#: assets/admin/app/tabs/CssTab.jsx:116 +msgid "Host Google Fonts locally and preload them" +msgstr "" + +#: assets/admin/app/tabs/CssTab.jsx:119 +msgid "Font display" +msgstr "" + +#: assets/admin/app/tabs/CssTab.jsx:126 +#: assets/admin/app/tabs/JsTab.jsx:82 +msgid "Logged-in users" +msgstr "" + +#: assets/admin/app/tabs/CssTab.jsx:130 msgid "Disable CSS optimization for logged-in users" msgstr "" -#: includes/admin/css.php:252 includes/admin/javascript.php:178 -msgid "Resource Hints" +#: assets/admin/app/tabs/CssTab.jsx:135 +msgid "Resource hints" msgstr "" -#: includes/admin/css.php:259 includes/admin/javascript.php:185 -msgid "Origins" +#: assets/admin/app/tabs/CssTab.jsx:137 +msgid "DNS prefetch" msgstr "" -#: includes/admin/css.php:286 includes/admin/javascript.php:212 -msgid "DNS prefetching can make external resources load faster" +#: assets/admin/app/tabs/CssTab.jsx:138 +msgid "Origins to resolve early, e.g. https://fonts.gstatic.com" msgstr "" -#: includes/admin/css.php:287 includes/admin/javascript.php:213 -msgid "Preconnect can remove additional roundtrips and reduce request latency" +#: assets/admin/app/tabs/CssTab.jsx:143 +#: assets/admin/app/tabs/CssTab.jsx:150 +msgid "Add origin" msgstr "" -#: includes/admin/css.php:295 +#: assets/admin/app/tabs/CssTab.jsx:146 +msgid "Preconnect" +msgstr "" + +#: assets/admin/app/tabs/CssTab.jsx:155 msgid "Exclude URL(s) from CSS optimization" msgstr "" -#: includes/admin/database.php:30 includes/admin/database.php:35 -msgid "Delete all pages, posts and comments from trash" +#: assets/admin/app/tabs/CssTab.jsx:177 +#: assets/admin/app/tabs/JsTab.jsx:113 +msgid "Updating…" msgstr "" -#: includes/admin/database.php:31 includes/admin/database.php:55 -#: includes/admin/database.php:82 includes/admin/database.php:105 -#: includes/admin/database.php:132 includes/admin/database.php:157 -msgid "Delete" +#: assets/admin/app/tabs/CssTab.jsx:177 +#: assets/admin/app/tabs/JsTab.jsx:113 +msgid "Update files list" msgstr "" -#: includes/admin/database.php:34 -msgid "Trash" +#: assets/admin/app/tabs/DatabaseTab.jsx:15 +msgid "Not scheduled" msgstr "" -#: includes/admin/database.php:41 includes/admin/database.php:65 -#: includes/admin/database.php:92 includes/admin/database.php:115 -#: includes/admin/database.php:142 includes/admin/database.php:167 -msgid "Enable automatic cleanup" +#: assets/admin/app/tabs/DatabaseTab.jsx:16 +msgid "Daily" +msgstr "" + +#: assets/admin/app/tabs/DatabaseTab.jsx:17 +msgid "Weekly" +msgstr "" + +#: assets/admin/app/tabs/DatabaseTab.jsx:18 +msgid "Monthly" msgstr "" -#: includes/admin/database.php:54 includes/admin/database.php:59 -msgid "Delete all spam comments" +#: assets/admin/app/tabs/DatabaseTab.jsx:22 +msgid "Trash" +msgstr "" + +#: assets/admin/app/tabs/DatabaseTab.jsx:22 +msgid "Trashed posts and pages." msgstr "" -#: includes/admin/database.php:58 +#: assets/admin/app/tabs/DatabaseTab.jsx:23 msgid "Spam" msgstr "" -#: includes/admin/database.php:81 includes/admin/database.php:86 -msgid "Delete all revisions" +#: assets/admin/app/tabs/DatabaseTab.jsx:23 +msgid "Spam and trashed comments." msgstr "" -#: includes/admin/database.php:85 +#: assets/admin/app/tabs/DatabaseTab.jsx:24 msgid "Revisions" msgstr "" -#: includes/admin/database.php:104 includes/admin/database.php:109 -msgid "Delete all expired transients" +#: assets/admin/app/tabs/DatabaseTab.jsx:24 +msgid "Stored post revisions." msgstr "" -#: includes/admin/database.php:108 +#: assets/admin/app/tabs/DatabaseTab.jsx:25 msgid "Transients" msgstr "" -#: includes/admin/database.php:131 includes/admin/database.php:136 -msgid "Delete all auto drafts" +#: assets/admin/app/tabs/DatabaseTab.jsx:25 +msgid "Expired and stale transients." msgstr "" -#: includes/admin/database.php:135 +#: assets/admin/app/tabs/DatabaseTab.jsx:26 msgid "Auto Drafts" msgstr "" -#: includes/admin/database.php:156 includes/admin/database.php:161 -msgid "Delete all unused scheduled tasks" +#: assets/admin/app/tabs/DatabaseTab.jsx:26 +msgid "Auto-saved draft posts." msgstr "" -#: includes/admin/database.php:160 +#: assets/admin/app/tabs/DatabaseTab.jsx:27 msgid "Scheduled tasks" msgstr "" -#: includes/admin/database.php:179 -msgid "" -"Backup your database before running any of these cleanup actions. Once a " -"database cleanup has been performed, there is no way to undo it." +#: assets/admin/app/tabs/DatabaseTab.jsx:27 +msgid "Orphaned cron events." msgstr "" -#: includes/admin/database.php:185 includes/admin/database.php:186 -msgid "Delete all" +#: assets/admin/app/tabs/DatabaseTab.jsx:53 +msgid "Run cleanup" msgstr "" -#: includes/admin/database.php:194 -msgid "Automatic database cleanup" +#: assets/admin/app/tabs/DatabaseTab.jsx:54 +msgid "This permanently deletes the selected data. Back up your database first." msgstr "" -#: includes/admin/database.php:200 -msgid "Schedule" +#: assets/admin/app/tabs/DatabaseTab.jsx:55 +#: assets/admin/app/tabs/DatabaseTab.jsx:110 +msgid "Delete" msgstr "" -#: includes/admin/database.php:202 -msgid "Not scheduled" +#: assets/admin/app/tabs/DatabaseTab.jsx:66 +msgid "Cleanup complete." msgstr "" -#: includes/admin/database.php:203 includes/functions/cron.php:26 -msgid "Daily" +#: assets/admin/app/tabs/DatabaseTab.jsx:68 +msgid "Cleanup failed." msgstr "" -#: includes/admin/database.php:204 includes/functions/cron.php:31 -msgid "Weekly" +#: assets/admin/app/tabs/DatabaseTab.jsx:77 +msgid "Automatic database cleanup" msgstr "" -#: includes/admin/database.php:205 includes/functions/cron.php:36 -msgid "Monthly" +#: assets/admin/app/tabs/DatabaseTab.jsx:78 +msgid "Schedule" msgstr "" -#: includes/admin/database.php:208 +#: assets/admin/app/tabs/DatabaseTab.jsx:85 msgid "Next run" msgstr "" -#: includes/admin/database.php:214 +#: assets/admin/app/tabs/DatabaseTab.jsx:89 msgid "Not set" msgstr "" -#: includes/admin/includes/external_files.php:31 -#: includes/admin/includes/local_files.php:31 -#: includes/functions/miscellaneous.php:261 -msgid "Disable everywhere" +#: assets/admin/app/tabs/DatabaseTab.jsx:110 +#: assets/admin/app/tabs/DatabaseTab.jsx:140 +msgid "Cleaning…" msgstr "" -#: includes/admin/includes/external_files.php:35 -#: includes/admin/includes/local_files.php:35 -#: includes/functions/miscellaneous.php:262 -msgid "Disable only on selected URL" +#: assets/admin/app/tabs/DatabaseTab.jsx:119 +msgid "Enable automatic cleanup" msgstr "" -#: includes/admin/includes/external_files.php:39 -#: includes/admin/includes/local_files.php:39 -#: includes/functions/miscellaneous.php:263 -msgid "Disable everywhere except on selected URL" +#: assets/admin/app/tabs/DatabaseTab.jsx:128 +msgid "Back up your database before running any cleanup. These actions cannot be undone." msgstr "" -#: includes/admin/javascript.php:129 -msgid "JavaScript files not found" +#: assets/admin/app/tabs/DatabaseTab.jsx:141 +msgid "Delete all" msgstr "" -#: includes/admin/javascript.php:142 -msgid "JavaScript settings" +#: assets/admin/app/tabs/HtmlTab.jsx:21 +msgid "Exclude URL(s) from HTML optimization" msgstr "" -#: includes/admin/javascript.php:150 -msgid "Minify inline JavaScript" +#: assets/admin/app/tabs/HtmlTab.jsx:35 +msgid "HTML optimization" msgstr "" -#: includes/admin/javascript.php:157 -msgid "Asynchronously load JavaScript" +#: assets/admin/app/tabs/HtmlTab.jsx:39 +msgid "Enable HTML optimization" msgstr "" -#: includes/admin/javascript.php:161 -msgid "Eliminates render-blocking JavaScript" +#: assets/admin/app/tabs/HtmlTab.jsx:49 +msgid "Normal" msgstr "" -#: includes/admin/javascript.php:167 -msgid "Disable JavaScript optimization for logged-in users" +#: assets/admin/app/tabs/HtmlTab.jsx:58 +msgid "Remove comments" msgstr "" -#: includes/admin/javascript.php:221 -msgid "Exclude URL(s) from JavaScript optimization" +#: assets/admin/app/tabs/HtmlTab.jsx:62 +msgid "Remove HTML comments (conditional comments preserved)" msgstr "" -#: includes/admin/media.php:12 -msgid "Images" +#: assets/admin/app/tabs/HtmlTab.jsx:66 +msgid "Remove type attribute" msgstr "" -#: includes/admin/media.php:16 includes/admin/media.php:192 -msgid "Lazy load" +#: assets/admin/app/tabs/HtmlTab.jsx:70 +msgid "Remove type=\"text/css\" from link tags" msgstr "" -#: includes/admin/media.php:20 -msgid "Lazy load images" +#: assets/admin/app/tabs/HtmlTab.jsx:75 +msgid "Remove type=\"text/javascript\" from script tags" msgstr "" -#: includes/admin/media.php:24 includes/admin/media.php:209 -msgid "Reduces the number of HTTP requests and improves loading time" +#: assets/admin/app/tabs/HtmlTab.jsx:79 +msgid "Remove quotes" msgstr "" -#: includes/admin/media.php:34 -msgid "Disable lazy load on mobile devices" +#: assets/admin/app/tabs/HtmlTab.jsx:83 +msgid "Remove quotes from attributes where possible" msgstr "" -#: includes/admin/media.php:40 -msgid "Responsive images" +#: assets/admin/app/tabs/JsTab.jsx:40 +msgid "JavaScript settings" msgstr "" -#: includes/admin/media.php:44 -msgid "Force images to use srcset attribute" +#: assets/admin/app/tabs/JsTab.jsx:41 +msgid "Minify inline JavaScript" msgstr "" -#: includes/admin/media.php:47 -msgid "" -"Loads the best optimized image depending on users screen size and image " -"sizes settings" +#: assets/admin/app/tabs/JsTab.jsx:44 +msgid "Asynchronous JavaScript" msgstr "" -#: includes/admin/media.php:52 -msgid "Exclude" +#: assets/admin/app/tabs/JsTab.jsx:48 +msgid "Defer JavaScript to remove render-blocking" msgstr "" -#: includes/admin/media.php:55 -msgid "Exclude image by name" +#: assets/admin/app/tabs/JsTab.jsx:52 +msgid "Exclude from defer" msgstr "" -#: includes/admin/media.php:72 -msgid "Add Image" +#: assets/admin/app/tabs/JsTab.jsx:61 +msgid "Delay until interaction" msgstr "" -#: includes/admin/media.php:81 -msgid "" -"Exclude images located in specific html containers like sliders and galleries" +#: assets/admin/app/tabs/JsTab.jsx:65 +msgid "Delay JavaScript until user interaction" msgstr "" -#: includes/admin/media.php:99 includes/admin/media.php:108 -msgid "Enter container id or class name" +#: assets/admin/app/tabs/JsTab.jsx:66 +msgid "Biggest TBT/INP win: scripts run on first scroll, click, or key press. Exclude anything that must run immediately." msgstr "" -#: includes/admin/media.php:100 includes/admin/media.php:108 -msgid "Example" +#: assets/admin/app/tabs/JsTab.jsx:73 +msgid "Exclude from delay" msgstr "" -#: includes/admin/media.php:108 -msgid "Add Container" +#: assets/admin/app/tabs/JsTab.jsx:86 +msgid "Disable JavaScript optimization for logged-in users" msgstr "" -#: includes/admin/media.php:116 -msgid "Exclude URL(s) from image optimization" +#: assets/admin/app/tabs/JsTab.jsx:91 +msgid "Exclude URL(s) from JavaScript optimization" msgstr "" -#: includes/admin/media.php:188 -msgid "Videos" +#: assets/admin/app/tabs/MediaTab.jsx:26 +msgid "Convert images" msgstr "" -#: includes/admin/media.php:204 -msgid "Lazy load videos" +#: assets/admin/app/tabs/MediaTab.jsx:27 +msgid "Convert all images to WebP and AVIF? This can take a while on large media libraries." msgstr "" -#: includes/admin/media.php:218 -msgid "Exclude URL(s)" +#: assets/admin/app/tabs/MediaTab.jsx:28 +msgid "Convert" msgstr "" -#: includes/admin/media.php:303 -msgid "Emoji" +#: assets/admin/app/tabs/MediaTab.jsx:44 +msgid "Images converted." msgstr "" -#: includes/admin/media.php:310 -msgid "Disable Emoji" +#: assets/admin/app/tabs/MediaTab.jsx:46 +msgid "Conversion failed." msgstr "" -#: includes/admin/media.php:314 -msgid "" -"Use default emoji of visitor's browser instead of loading emoji from " -"WordPress.org" +#: assets/admin/app/tabs/MediaTab.jsx:54 +msgid "Emoji & Embeds" msgstr "" -#: includes/admin/media.php:319 -msgid "Embeds" +#: assets/admin/app/tabs/MediaTab.jsx:55 +msgid "Emoji" +msgstr "" + +#: assets/admin/app/tabs/MediaTab.jsx:59 +msgid "Disable WordPress emoji" msgstr "" -#: includes/admin/media.php:326 -msgid "Disable embeds" +#: assets/admin/app/tabs/MediaTab.jsx:62 +msgid "Embeds" msgstr "" -#: includes/admin/media.php:330 -msgid "Prevents embedding content from your site" +#: assets/admin/app/tabs/MediaTab.jsx:66 +msgid "Disable oEmbed discovery" msgstr "" -#: includes/admin/media.php:336 +#: assets/admin/app/tabs/MediaTab.jsx:71 msgid "Image sizes" msgstr "" -#: includes/admin/media.php:343 includes/admin/media.php:354 -msgid "Name" +#: assets/admin/app/tabs/MediaTab.jsx:79 +msgid "Images" msgstr "" -#: includes/admin/media.php:344 includes/admin/media.php:360 -msgid "Width" +#: assets/admin/app/tabs/MediaTab.jsx:80 +#: assets/admin/app/tabs/MediaTab.jsx:172 +msgid "Lazy load" msgstr "" -#: includes/admin/media.php:345 includes/admin/media.php:366 -msgid "Height" +#: assets/admin/app/tabs/MediaTab.jsx:84 +msgid "Lazy load images" msgstr "" -#: includes/admin/media.php:346 includes/admin/media.php:372 -msgid "Crop" +#: assets/admin/app/tabs/MediaTab.jsx:85 +msgid "Defer offscreen images with native loading=\"lazy\"." msgstr "" -#: includes/admin/media.php:347 -msgid "Actions" +#: assets/admin/app/tabs/MediaTab.jsx:92 +msgid "Disable lazy load on mobile devices" msgstr "" -#: includes/admin/media.php:374 includes/functions/miscellaneous.php:259 -msgid "Yes" +#: assets/admin/app/tabs/MediaTab.jsx:97 +msgid "Responsive images" msgstr "" -#: includes/admin/media.php:379 -#, php-format -msgid "Remove image size %s" +#: assets/admin/app/tabs/MediaTab.jsx:101 +msgid "Force srcset on images" msgstr "" -#: includes/admin/media.php:381 -msgid "Remove size" +#: assets/admin/app/tabs/MediaTab.jsx:104 +msgid "Image dimensions" msgstr "" -#: includes/admin/media.php:391 -msgid "Add size" +#: assets/admin/app/tabs/MediaTab.jsx:108 +msgid "Add missing width/height to prevent layout shift (CLS)" msgstr "" -#: includes/admin/media.php:392 -msgid "Restore default image sizes" +#: assets/admin/app/tabs/MediaTab.jsx:112 +msgid "Preload LCP images" msgstr "" -#: includes/admin/media.php:392 -msgid "Restore image sizes" +#: assets/admin/app/tabs/MediaTab.jsx:113 +msgid "Number of above-the-fold images to preload (fetchpriority=high) and skip from lazy load. 0 = off." msgstr "" -#: includes/admin/media.php:398 -msgid "Regenerate thumbnails every time you make some changes to image sizes" +#: assets/admin/app/tabs/MediaTab.jsx:126 +msgid "Next-gen images" msgstr "" -#: includes/admin/media.php:400 -msgid "Regenerate thumbnails" +#: assets/admin/app/tabs/MediaTab.jsx:127 +msgid "Serve WebP/AVIF via when a converted file exists. New uploads convert automatically." msgstr "" -#: includes/admin/metabox.php:13 includes/admin/metabox.php:80 -#: includes/admin/metabox.php:131 includes/admin/metabox.php:183 -#: includes/admin/metabox.php:234 -msgid "Page URL will be added to exclude list" +#: assets/admin/app/tabs/MediaTab.jsx:132 +msgid "Serve WebP/AVIF images" msgstr "" -#: includes/admin/metabox.php:41 includes/admin/metabox.php:68 -msgid "Exclude from cache" +#: assets/admin/app/tabs/MediaTab.jsx:142 +msgid "Converting" msgstr "" -#: includes/admin/metabox.php:46 -msgid "" -"This page is your website home page and it is affected by Exclude URL(s) " -"from cache option. Usually a home page is not excluded from cache. Please " -"check your exclude settings." +#: assets/admin/app/tabs/MediaTab.jsx:143 +msgid "Convert existing images" msgstr "" -#: includes/admin/metabox.php:49 -msgid "This page is affected by URL(s) exclude options on Cache page" +#: assets/admin/app/tabs/MediaTab.jsx:147 +msgid "Exclude by name" msgstr "" -#: includes/admin/metabox.php:63 -msgid "" -"This page is your website home page.
      Do you want to exclude home page " -"from cache?" +#: assets/admin/app/tabs/MediaTab.jsx:151 +msgid "Add image" msgstr "" -#: includes/admin/metabox.php:107 includes/admin/metabox.php:121 -#: includes/admin/metabox.php:158 -msgid "Exclude from CSS optimization" +#: assets/admin/app/tabs/MediaTab.jsx:154 +msgid "Exclude containers" msgstr "" -#: includes/admin/metabox.php:111 -msgid "This page is affected by URL(s) exclude options on CSS page" +#: assets/admin/app/tabs/MediaTab.jsx:154 +msgid "CSS id or class, e.g. #hero or .no-lazy" msgstr "" -#: includes/admin/metabox.php:162 -msgid "This page is affected by URL(s) exclude options on JavaScript page" +#: assets/admin/app/tabs/MediaTab.jsx:158 +msgid "Add container" msgstr "" -#: includes/admin/metabox.php:172 -msgid "Exclude from JS optimization" +#: assets/admin/app/tabs/MediaTab.jsx:161 +#: assets/admin/app/tabs/MediaTab.jsx:179 +msgid "Exclude URL(s)" msgstr "" -#: includes/admin/metabox.php:209 includes/admin/metabox.php:223 -msgid "Exclude from Image optimization" +#: assets/admin/app/tabs/MediaTab.jsx:171 +msgid "Videos" msgstr "" -#: includes/admin/metabox.php:213 includes/admin/metabox.php:264 -msgid "This page is affected by URL(s) exclude options on Media page" +#: assets/admin/app/tabs/MediaTab.jsx:176 +msgid "Lazy load videos & iframes" msgstr "" -#: includes/admin/metabox.php:260 includes/admin/metabox.php:274 -msgid "Exclude from Video lazyload" +#: assets/admin/app/tabs/OverviewTab.jsx:19 +msgid "Safe" msgstr "" -#: includes/admin/settings.php:16 -msgid "Import settings" +#: assets/admin/app/tabs/OverviewTab.jsx:20 +msgid "Page cache, GZIP, browser caching and lazy loading. Works with virtually any theme." msgstr "" -#: includes/admin/settings.php:22 -msgid "Export settings" +#: assets/admin/app/tabs/OverviewTab.jsx:27 +msgid "Balanced" msgstr "" -#: includes/admin/settings.php:25 -msgid "Export" +#: assets/admin/app/tabs/OverviewTab.jsx:29 +msgid "Adds deferred CSS/JS, hosted fonts and modern image formats. Recommended for most sites." msgstr "" -#: includes/admin/settings.php:34 -msgid "Server" +#: assets/admin/app/tabs/OverviewTab.jsx:37 +msgid "Every optimization on, including delayed JavaScript and unused-CSS removal. Test your site after applying." msgstr "" -#: includes/admin/settings.php:39 -msgid "Nginx configuration" +#: assets/admin/app/tabs/OverviewTab.jsx:70 +msgid "Apply preset" msgstr "" -#: includes/admin/settings.php:43 -#, php-format -msgid "" -"%s will work out of the box on Nginx servers, this rewrite rules are not " -"required. However, to optimize your website even more, you should add this " -"rules to your Nginx configuration file." +#: assets/admin/app/tabs/OverviewTab.jsx:71 +msgid "This replaces the settings the preset covers. Your file lists, exclusions and CDN settings are kept." msgstr "" -#: includes/admin/settings.php:45 -msgid "Select all" +#: assets/admin/app/tabs/OverviewTab.jsx:72 +#: assets/admin/app/tabs/OverviewTab.jsx:166 +msgid "Apply" msgstr "" -#: includes/admin/settings.php:52 -msgid "Logs" +#: assets/admin/app/tabs/OverviewTab.jsx:80 +msgid "Preset applied. Reloading…" msgstr "" -#: includes/admin/settings.php:56 -msgid "Troubleshooting logging" +#: assets/admin/app/tabs/OverviewTab.jsx:83 +msgid "Could not apply the preset." msgstr "" -#: includes/admin/settings.php:60 -msgid "Enable troubleshooting logging" +#: assets/admin/app/tabs/OverviewTab.jsx:96 +msgid "Cache status" msgstr "" -#: includes/admin/settings.php:63 -msgid "These logs can be helpful for troubleshooting problems" +#: assets/admin/app/tabs/OverviewTab.jsx:100 +msgid "Active" msgstr "" -#: includes/admin/settings.php:69 -msgid "Log file content" +#: assets/admin/app/tabs/OverviewTab.jsx:101 +msgid "Disabled" msgstr "" -#: includes/admin/settings.php:72 -msgid "Content is auto refreshed every 10 seconds" +#: assets/admin/app/tabs/OverviewTab.jsx:106 +msgid "Cached pages" msgstr "" -#: includes/admin/settings.php:84 -msgid "Clear log file" +#: assets/admin/app/tabs/OverviewTab.jsx:112 +msgid "Cache size" msgstr "" -#: includes/admin/settings.php:93 -msgid "Previous configuration settings" +#: assets/admin/app/tabs/OverviewTab.jsx:119 +msgid "Block fragments" msgstr "" -#: includes/admin/settings.php:114 -msgid "Saved" +#: assets/admin/app/tabs/OverviewTab.jsx:122 +msgid "In Redis" msgstr "" -#: includes/admin/settings.php:117 -msgid "Load configuration settings saved on " +#: assets/admin/app/tabs/OverviewTab.jsx:139 +msgid "Quick setup" msgstr "" -#: includes/admin/settings.php:120 -msgid "Load" +#: assets/admin/app/tabs/OverviewTab.jsx:141 +msgid "Apply a curated configuration in one click, then fine-tune any tab." msgstr "" -#: includes/classes/api.php:130 -#, php-format -msgid "Call to undefined method %s" +#: assets/admin/app/tabs/OverviewTab.jsx:153 +msgid "Recommended" msgstr "" -#: includes/classes/cli.php:23 -msgid "Flushing the cache..." +#: assets/admin/app/tabs/OverviewTab.jsx:165 +msgid "Applying…" msgstr "" -#: includes/classes/cli.php:25 -msgid "Cache flushed." +#: assets/admin/app/tabs/OverviewTab.jsx:173 +msgid "Active optimizations" msgstr "" -#: includes/classes/cli.php:73 -msgid "Running tranisent cleanup" +#: assets/admin/app/tabs/OverviewTab.jsx:189 +msgid "Health checks" msgstr "" -#: includes/classes/cli.php:75 -msgid "Transient cleanup complete" +#: assets/admin/app/tabs/Placeholder.jsx:8 +msgid "is being rebuilt in the next step." msgstr "" -#: includes/classes/cli.php:81 -msgid "Running revisions cleanup" +#: assets/admin/app/tabs/SettingsTab.jsx:26 +msgid "Prefetch" msgstr "" -#: includes/classes/cli.php:83 -msgid "Revisions cleanup complete" +#: assets/admin/app/tabs/SettingsTab.jsx:61 +msgid "Log cleared." msgstr "" -#: includes/classes/cli.php:89 -msgid "Running drafts cleanup" +#: assets/admin/app/tabs/SettingsTab.jsx:63 +msgid "Could not clear the log." msgstr "" -#: includes/classes/cli.php:91 -msgid "Drafts cleanup complete" +#: assets/admin/app/tabs/SettingsTab.jsx:69 +msgid "Restore settings" msgstr "" -#: includes/classes/cli.php:97 -msgid "Running trash cleanup" +#: assets/admin/app/tabs/SettingsTab.jsx:70 +msgid "Your current settings will be replaced by this saved configuration." msgstr "" -#: includes/classes/cli.php:99 -msgid "Trash cleanup complete" +#: assets/admin/app/tabs/SettingsTab.jsx:79 +msgid "Settings restored. Reloading…" msgstr "" -#: includes/classes/cli.php:105 -msgid "Running spam cleanup" +#: assets/admin/app/tabs/SettingsTab.jsx:82 +msgid "Could not restore settings." msgstr "" -#: includes/classes/cli.php:107 -msgid "Spam cleanup complete" +#: assets/admin/app/tabs/SettingsTab.jsx:100 +msgid "Export failed." msgstr "" -#: includes/classes/cli.php:113 -msgid "Running cron tasks cleanup" +#: assets/admin/app/tabs/SettingsTab.jsx:112 +msgid "Settings imported. Reloading…" msgstr "" -#: includes/classes/cli.php:115 -msgid "Cron tasks cleanup complete" +#: assets/admin/app/tabs/SettingsTab.jsx:115 +msgid "Import failed - invalid file." msgstr "" -#: includes/classes/cli.php:126 -msgid "Running database cleanup" +#: assets/admin/app/tabs/SettingsTab.jsx:125 +msgid "Restore points" msgstr "" -#: includes/classes/cli.php:128 -msgid "Database cleanup complete" +#: assets/admin/app/tabs/SettingsTab.jsx:128 +msgid "The last five saved configurations appear here so you can roll back a change." msgstr "" -#: includes/classes/parser.php:94 -msgid "error" +#. translators: %s: settings group name. +#: assets/admin/app/tabs/SettingsTab.jsx:143 +#, js-format +msgid "%s settings" msgstr "" -#: includes/classes/parser.php:95 includes/classes/parser.php:98 -msgid "both head and body tag should be present in template file" +#: assets/admin/app/tabs/SettingsTab.jsx:157 +msgid "Restoring…" msgstr "" -#: includes/classes/parser.php:932 -msgid "Optimized by" +#: assets/admin/app/tabs/SettingsTab.jsx:166 +msgid "About" msgstr "" -#: includes/classes/parser.php:956 -#, php-format -msgid "Cache file was created in %s seconds on %s at %s" +#: assets/admin/app/tabs/SettingsTab.jsx:168 +msgid "Export your configuration to move it between sites, or import a saved configuration file." msgstr "" -#: includes/functions/admin.php:270 -msgid "Temporarily disable" +#: assets/admin/app/tabs/SettingsTab.jsx:179 +msgid "Import / Export" msgstr "" -#: includes/functions/backend.php:52 -#, php-format -msgid "" -"File advanced-cache.php is missing. If you updated your " -"installation of %s recently, try to deactivate and then activate the plugin " -"again." +#: assets/admin/app/tabs/SettingsTab.jsx:180 +msgid "Export settings" msgstr "" -#: includes/functions/backend.php:237 -msgid "is temporarily disabled" +#: assets/admin/app/tabs/SettingsTab.jsx:182 +msgid "Download settings file" msgstr "" -#: includes/functions/backend.php:250 -#, php-format -msgid "" -"%s: Log file is getting large, either clear the log or disable " -"troubleshooting logging" +#: assets/admin/app/tabs/SettingsTab.jsx:185 +msgid "Import settings" msgstr "" -#: includes/functions/backend.php:262 -#, php-format -msgid "%s: missing writing permissions for file .htaccess" +#: assets/admin/app/tabs/SettingsTab.jsx:196 +msgid "Nginx rules" msgstr "" -#: includes/functions/backend.php:275 -#, php-format -msgid "%s: enter Cloudflare credentials" +#: assets/admin/app/tabs/SettingsTab.jsx:198 +msgid "Add these rules to your nginx server block, then reload nginx." msgstr "" -#: includes/functions/cron.php:41 -msgid "Every minute" +#: assets/admin/app/tabs/SettingsTab.jsx:204 +msgid "Server" msgstr "" -#: includes/functions/cron.php:46 -msgid "Every 5 minutes" +#: assets/admin/app/tabs/SettingsTab.jsx:206 +msgid "Browser cache and gzip rules are written to .htaccess automatically." msgstr "" -#: includes/functions/db.php:85 -msgid "You are doing it wrong" +#: assets/admin/app/tabs/SettingsTab.jsx:213 +msgid "Redis object cache" msgstr "" -#: includes/functions/files.php:350 -msgid "Log file cleared" +#: assets/admin/app/tabs/SettingsTab.jsx:217 +msgid "Enable persistent object cache" msgstr "" -#: includes/functions/image.php:68 -msgid "Size name already in use" +#: assets/admin/app/tabs/SettingsTab.jsx:218 +msgid "Stores WordPress query and option lookups in Redis to cut database load. Installs an object-cache.php drop-in." msgstr "" -#: includes/functions/image.php:190 -#, php-format -msgid "%s image left" -msgid_plural "%s images left" -msgstr[0] "" -msgstr[1] "" +#: assets/admin/app/tabs/SettingsTab.jsx:226 +msgid "No supported object cache backend was detected. Install and enable the Redis PHP extension to use a persistent object cache." +msgstr "" -#: includes/functions/image.php:202 -msgid "Done" +#: assets/admin/app/tabs/SettingsTab.jsx:234 +msgid "Troubleshooting" msgstr "" -#: includes/functions/miscellaneous.php:257 -msgid "Are you sure?" +#: assets/admin/app/tabs/SettingsTab.jsx:235 +msgid "Logging" msgstr "" -#: includes/functions/miscellaneous.php:264 -msgid "Something went wrong" +#: assets/admin/app/tabs/SettingsTab.jsx:239 +msgid "Enable troubleshooting log" msgstr "" -#: includes/functions/miscellaneous.php:265 -msgid "Regenerating thumbs" +#: assets/admin/app/tabs/SettingsTab.jsx:240 +msgid "Records cache and optimization activity to help diagnose issues." msgstr "" -#: includes/functions/miscellaneous.php:266 -msgid "Regenerate thumbnails may take a long time. Do not close your browser." +#: assets/admin/app/tabs/SettingsTab.jsx:245 +msgid "Log file" msgstr "" -#: includes/functions/plugin.php:220 -msgid "The following plugins are not compatible with" +#: assets/admin/app/tabs/SettingsTab.jsx:250 +msgid "The log is empty." msgstr "" -#: includes/functions/plugin.php:227 -msgid "Deactivate" +#: assets/admin/app/tabs/SettingsTab.jsx:254 +msgid "Content refreshes automatically every 10 seconds." msgstr "" -#: includes/functions/settings.php:57 -msgid "Invalid settings file" +#: assets/admin/app/tabs/SettingsTab.jsx:257 +msgid "Clear log" msgstr "" -#: includes/functions/settings.php:269 -msgid "Settings saved" +#: assets/blocks/cache/index.js:9 +msgid "Saves everything inside this block so it loads faster." msgstr "" -#: includes/functions/settings.php:330 -msgid "Settings file loaded" +#: assets/blocks/cache/index.js:12 +msgid "cache" msgstr "" -#: includes/functions/settings.php:520 -msgid "Files list cleared" +#: assets/blocks/cache/index.js:12 +msgid "fragment" msgstr "" -#. Plugin Name of the plugin/theme -msgid "WP Performance" +#: assets/blocks/cache/index.js:12 +msgid "performance" +msgstr "" + +#: assets/blocks/cache/index.js:28 +msgid "Caching" msgstr "" -#. Plugin URI of the plugin/theme -msgid "https://www.wp-performance.com" +#: assets/blocks/cache/index.js:31 +msgid "Cache for (seconds)" msgstr "" -#. Description of the plugin/theme -msgid "WP Performance Optimizer" +#: assets/blocks/cache/index.js:32 +msgid "Leave 0 to use the default." msgstr "" -#. Author of the plugin/theme -msgid "Ante Laca" +#: assets/blocks/cache/index.js:38 +msgid "Cache each page separately" +msgstr "" + +#: assets/blocks/cache/index.js:39 +msgid "Turn off to reuse one copy everywhere, like a menu or footer." +msgstr "" + +#: assets/blocks/cache/index.js:44 +msgid "Separate copy for logged-in visitors" +msgstr "" + +#: assets/blocks/cache/index.js:49 +msgid "Separate copy for each user role" msgstr "" -#. Author URI of the plugin/theme -msgid "https://www.antelaca.xyz" +#: assets/blocks/cache/index.js:54 +msgid "Separate copy on mobile" msgstr "" diff --git a/object-cache.php b/object-cache.php new file mode 100644 index 0000000..bf064b3 --- /dev/null +++ b/object-cache.php @@ -0,0 +1,361 @@ +add($key, $data, $group, (int) $expire); +} + +function wp_cache_add_multiple(array $data, $group = '', $expire = 0) +{ + $result = []; + foreach ($data as $key => $value) { + $result[$key] = wp_cache_add($key, $value, $group, $expire); + } + return $result; +} + +function wp_cache_replace($key, $data, $group = '', $expire = 0) +{ + return $GLOBALS['wp_object_cache']->replace($key, $data, $group, (int) $expire); +} + +function wp_cache_set($key, $data, $group = '', $expire = 0) +{ + return $GLOBALS['wp_object_cache']->set($key, $data, $group, (int) $expire); +} + +function wp_cache_set_multiple(array $data, $group = '', $expire = 0) +{ + $result = []; + foreach ($data as $key => $value) { + $result[$key] = wp_cache_set($key, $value, $group, $expire); + } + return $result; +} + +function wp_cache_get($key, $group = '', $force = false, &$found = null) +{ + return $GLOBALS['wp_object_cache']->get($key, $group, $force, $found); +} + +function wp_cache_get_multiple($keys, $group = '', $force = false) +{ + return $GLOBALS['wp_object_cache']->get_multiple($keys, $group, $force); +} + +function wp_cache_delete($key, $group = '') +{ + return $GLOBALS['wp_object_cache']->delete($key, $group); +} + +function wp_cache_delete_multiple(array $keys, $group = '') +{ + $result = []; + foreach ($keys as $key) { + $result[$key] = wp_cache_delete($key, $group); + } + return $result; +} + +function wp_cache_incr($key, $offset = 1, $group = '') +{ + return $GLOBALS['wp_object_cache']->incr($key, (int) $offset, $group); +} + +function wp_cache_decr($key, $offset = 1, $group = '') +{ + return $GLOBALS['wp_object_cache']->decr($key, (int) $offset, $group); +} + +function wp_cache_flush() +{ + return $GLOBALS['wp_object_cache']->flush(); +} + +function wp_cache_flush_runtime() +{ + return $GLOBALS['wp_object_cache']->flush_runtime(); +} + +function wp_cache_supports($feature) +{ + return in_array($feature, ['get_multiple', 'set_multiple', 'add_multiple', 'delete_multiple', 'flush_runtime'], true); +} + +function wp_cache_close() +{ + return true; +} + +function wp_cache_add_global_groups($groups) +{ + $GLOBALS['wp_object_cache']->add_global_groups($groups); +} + +function wp_cache_add_non_persistent_groups($groups) +{ + $GLOBALS['wp_object_cache']->add_non_persistent_groups($groups); +} + +function wp_cache_switch_to_blog($blog_id) +{ + $GLOBALS['wp_object_cache']->switch_to_blog((int) $blog_id); +} + +function wp_cache_reset() +{ +} + +class WPP_Object_Cache +{ + /** @var array */ + private array $cache = []; + private ?\Redis $redis = null; + private bool $connected = false; + /** @var array */ + private array $globalGroups = []; + /** @var array */ + private array $nonPersistent = ['counts' => true, 'plugins' => true]; + private int $blogPrefix = 1; + private string $salt; + + public int $cache_hits = 0; + public int $cache_misses = 0; + + public function __construct() + { + $this->salt = defined('WP_CACHE_KEY_SALT') ? (string) WP_CACHE_KEY_SALT : ''; + + // Without a site-specific default, two installs sharing one Redis would + // collide on identical keys and read each other's options and users. + if ($this->salt === '') { + $this->salt = substr(md5( + (defined('DB_NAME') ? (string) DB_NAME : '') + . '|' . (string) ($GLOBALS['table_prefix'] ?? '') + . '|' . (defined('ABSPATH') ? (string) ABSPATH : '') + ), 0, 12); + } + if (function_exists('get_current_blog_id')) { + $this->blogPrefix = (int) get_current_blog_id(); + } + + if (class_exists('Redis')) { + try { + $this->redis = new \Redis(); + $host = defined('WP_REDIS_HOST') ? WP_REDIS_HOST : '127.0.0.1'; + $port = defined('WP_REDIS_PORT') ? (int) WP_REDIS_PORT : 6379; + $this->connected = (bool) @$this->redis->connect($host, $port, 1.0); + if ($this->connected && defined('WP_REDIS_PASSWORD') && WP_REDIS_PASSWORD) { + @$this->redis->auth(WP_REDIS_PASSWORD); + } + if ($this->connected && defined('WP_REDIS_DATABASE')) { + @$this->redis->select((int) WP_REDIS_DATABASE); + } + } catch (\Throwable $e) { + $this->connected = false; + } + } + } + + public function add_global_groups($groups): void + { + foreach ((array) $groups as $group) { + $this->globalGroups[$group] = true; + } + } + + public function add_non_persistent_groups($groups): void + { + foreach ((array) $groups as $group) { + $this->nonPersistent[$group] = true; + } + } + + public function switch_to_blog($blogId): void + { + $this->blogPrefix = (int) $blogId; + } + + public function get($key, $group = 'default', $force = false, &$found = null) + { + $group = $group ?: 'default'; + $id = $this->id($key, $group); + + if (! $force && array_key_exists($id, $this->cache)) { + $found = true; + $this->cache_hits++; + return is_object($this->cache[$id]) ? clone $this->cache[$id] : $this->cache[$id]; + } + + if ($this->persistent($group)) { + $value = $this->call(static fn ($redis) => $redis->get($id), false); + if ($value !== false) { + $value = maybe_unserialize($value); + $this->cache[$id] = $value; + $found = true; + $this->cache_hits++; + return is_object($value) ? clone $value : $value; + } + } + + $found = false; + $this->cache_misses++; + return false; + } + + public function get_multiple($keys, $group = 'default', $force = false): array + { + $result = []; + foreach ((array) $keys as $key) { + $found = null; + $result[$key] = $this->get($key, $group, $force, $found); + } + return $result; + } + + public function set($key, $data, $group = 'default', $expire = 0): bool + { + $group = $group ?: 'default'; + $id = $this->id($key, $group); + + $this->cache[$id] = is_object($data) ? clone $data : $data; + + if ($this->persistent($group)) { + $serialized = maybe_serialize($data); + $this->call(static fn ($redis) => $expire > 0 + ? $redis->setex($id, (int) $expire, $serialized) + : $redis->set($id, $serialized)); + } + return true; + } + + public function add($key, $data, $group = 'default', $expire = 0): bool + { + $group = $group ?: 'default'; + $id = $this->id($key, $group); + if (array_key_exists($id, $this->cache)) { + return false; + } + if ($this->persistent($group) && $this->call(static fn ($redis) => $redis->exists($id), false)) { + return false; + } + return $this->set($key, $data, $group, $expire); + } + + public function replace($key, $data, $group = 'default', $expire = 0): bool + { + $found = null; + $this->get($key, $group, false, $found); + return $found ? $this->set($key, $data, $group, $expire) : false; + } + + public function delete($key, $group = 'default'): bool + { + $group = $group ?: 'default'; + $id = $this->id($key, $group); + unset($this->cache[$id]); + if ($this->persistent($group)) { + $this->call(static fn ($redis) => $redis->del($id)); + } + return true; + } + + public function incr($key, $offset = 1, $group = 'default') + { + $found = null; + $value = $this->get($key, $group, false, $found); + if (! $found) { + return false; + } + $value = max(0, (int) $value + (int) $offset); + $this->set($key, $value, $group); + return $value; + } + + public function decr($key, $offset = 1, $group = 'default') + { + return $this->incr($key, -(int) $offset, $group); + } + + /** + * Deletes only this install's keys. flushDb() would empty the whole Redis + * database, which is shared by default with anything else on the server. + */ + public function flush(): bool + { + $this->cache = []; + if (! $this->connected) { + return true; + } + + $pattern = "wpp:{$this->salt}:*"; + + return $this->call(static function ($redis) use ($pattern) { + $redis->setOption(\Redis::OPT_SCAN, \Redis::SCAN_RETRY); + $cursor = null; + while (($keys = $redis->scan($cursor, $pattern, 500)) !== false) { + if ($keys === []) { + continue; + } + method_exists($redis, 'unlink') ? $redis->unlink($keys) : $redis->del($keys); + } + return true; + }) === true; + } + + public function flush_runtime(): bool + { + $this->cache = []; + return true; + } + + private function persistent(string $group): bool + { + return $this->connected && ! isset($this->nonPersistent[$group]); + } + + /** + * Run a Redis command, degrading to the in-memory cache on any failure. + * + * phpredis throws RedisException not only when the connection drops but for + * server replies such as NOAUTH, LOADING, MISCONF and OOM. Uncaught, that is + * a fatal error on every front-end and admin request, which cannot then be + * switched off from the admin. Dropping the connection keeps the request + * alive on the runtime array cache instead. + */ + private function call(callable $command, mixed $fallback = false): mixed + { + if (! $this->connected) { + return $fallback; + } + + try { + return $command($this->redis); + } catch (\Throwable $e) { + $this->connected = false; + return $fallback; + } + } + + private function id($key, string $group): string + { + $prefix = isset($this->globalGroups[$group]) ? 'global' : (string) $this->blogPrefix; + return "wpp:{$this->salt}:{$prefix}:{$group}:{$key}"; + } +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..6adf046 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,20423 @@ +{ + "name": "wp-performance", + "version": "2.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "wp-performance", + "version": "2.0.0", + "dependencies": { + "@wordpress/api-fetch": "^7.0.0", + "@wordpress/element": "^6.0.0", + "@wordpress/i18n": "^5.0.0", + "@wordpress/url": "^4.0.0", + "lucide-react": "^1.16.0" + }, + "devDependencies": { + "@wordpress/scripts": "^30.0.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.29.7", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz", + "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.7.tgz", + "integrity": "sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.25.7", + "@babel/generator": "^7.25.7", + "@babel/helper-compilation-targets": "^7.25.7", + "@babel/helper-module-transforms": "^7.25.7", + "@babel/helpers": "^7.25.7", + "@babel/parser": "^7.25.7", + "@babel/template": "^7.25.7", + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/eslint-parser": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.25.7.tgz", + "integrity": "sha512-B+BO9x86VYsQHimucBAL1fxTJKF4wyKY6ZVzee9QgzdZOUfs3BaR6AQrgoGrRI+7IFS1wUz/VyQ+SoBcSpdPbw==", + "dev": true, + "dependencies": { + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.11.0", + "eslint": "^7.5.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.7.tgz", + "integrity": "sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz", + "integrity": "sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz", + "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.29.7.tgz", + "integrity": "sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-member-expression-to-functions": "^7.29.7", + "@babel/helper-optimise-call-expression": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", + "@babel/traverse": "^7.29.7", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.29.7.tgz", + "integrity": "sha512-907Uymvqgg1dwUA+7IGwFAOSYzQOuzPXKNJ1yxzwPffzkYFg2q2eHi1fIOs6sXkG9NbIUMunnUlkYsfRFNvomg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "regexpu-core": "^6.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz", + "integrity": "sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "debug": "^4.4.3", + "lodash.debounce": "^4.0.8", + "resolve": "^1.22.11" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", + "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.29.7.tgz", + "integrity": "sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", + "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", + "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.29.7.tgz", + "integrity": "sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong==", + "dev": true, + "dependencies": { + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.29.7.tgz", + "integrity": "sha512-16AMiW26DbXWBbr3B8wNozKM0ydMLB892vaOaJW/fPJdnT8vJk5sdkQcU/isqUxyCE0cEoa8wZOcbgDuC4b6Og==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-wrap-function": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.29.7.tgz", + "integrity": "sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ==", + "dev": true, + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.29.7", + "@babel/helper-optimise-call-expression": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.29.7.tgz", + "integrity": "sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", + "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.29.7.tgz", + "integrity": "sha512-iES0Skag9ERIF68aXadpO6dbXa03mNWK3sEqJaMnLNs/eC3l0lkImdfoy6Y09/SfkpawdAB4RjQ7PVA7TcVGdw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.29.7", + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz", + "integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz", + "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.29.7" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.29.7.tgz", + "integrity": "sha512-j8SrR0zLZrRsC09DlszEx8FpMiwukKffYXMK0d5LmOglO7vGG6sz/BR/20yHqWH+Lnn31JTt2PE3hIWNgM2J6w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.29.7.tgz", + "integrity": "sha512-r8j8escF+U2FUHo0KOhPUdMzUO+jp9fInva6+ACVAF3Y97Ev+5iNZwiqTghmzNeWwDkOPlYuTcfb1vDaoZKmAQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.29.7.tgz", + "integrity": "sha512-GE1TFSiuFeGsCxmYXZl8HwoPrVlwe4rHPFE8weieGKZqnDORK+Ar3vgWMgW+AOxQ6/2TgLSKx9p6W7O4rC6qgQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-rest-destructuring-rhs-array": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-rest-destructuring-rhs-array/-/plugin-bugfix-safari-rest-destructuring-rhs-array-7.29.7.tgz", + "integrity": "sha512-oBNVCvnO5tND+xSopWvV8WNGfpTfgP4Zr/YXXSj8zfmcPktp5Ku/aZlsIowgSD4fjmgHn6sGmB9APVsU5zOdhA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.29.7.tgz", + "integrity": "sha512-QQt9qKHZ2sg/kivaLr7lnQr8HVrQDdBNSfCsTjiDxRuX/K5ORyKq+Bu8Xr0cDE3Dfkv0cw28Ve0EKyKMvulkOw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", + "@babel/plugin-transform-optional-chaining": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.29.7.tgz", + "integrity": "sha512-pn6QacGLgvCcwc+syUhKE/qSjV2D1IHDB84RNxWYSt1mW3K/SCtjinZ2p0cETJxAWBjPy3K/1lHwG5BjjPxNlw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.29.7.tgz", + "integrity": "sha512-/An1OCBN93thpBAGyfsK2pcf0jvju1SAtKkL2Ny++B5Sy6sqgzXDQH1cZxWbF96Wuk+bn41MDA9bLd4VVAw6rw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.29.7.tgz", + "integrity": "sha512-zGYcYfq/WmZ4V+kBIXQon9dSSc8ircGZqw9ZaNhhGj9nZkeBu1jHLBDQqYYi5WA9uawvA2sIMbry2nCFhf5Djg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.29.7.tgz", + "integrity": "sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.29.7.tgz", + "integrity": "sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.29.7.tgz", + "integrity": "sha512-N7zArUXWzAMzm+/N0uPBeVB3Fam5lMxtUwMmDK5f/IBBS7a7p1qeUoxd/6CckXoxUdgsntq1Dh8xNW06maZbDQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.29.7.tgz", + "integrity": "sha512-d98gXZkgswvkyohMBABkhm3GeXhYj8psWfwQ2C7gtfrKGTykQa/iOIi+JJhwMjPlZ6Vm2XN+DCf3Es1EoG4ZLA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-remap-async-to-generator": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.29.7.tgz", + "integrity": "sha512-pcUb2SS+RMo9TWVBwKGI5ShtoG7R+zBsFmCKDa6fe8c+hPr3XJlZgoE5j6i8W7gDjhyvy+85vmYexanvXh3d1w==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-remap-async-to-generator": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.29.7.tgz", + "integrity": "sha512-cUSmjh72N+rN4PrkFlN1dJwNCwjVp5d38/CQrEsFggkD10UiFlBFgdH3tv5dNsLuHY+3S8db2xCHjhZcv5WgvA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.29.7.tgz", + "integrity": "sha512-ONyr4+AZhKh8yKWInVxU9AXA9EbsyeLcL6V0dJy6M2/62vuvpGm29zzuymbTpdc451GEpDIdAyPLP3r+P61yKQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.29.7.tgz", + "integrity": "sha512-GtcpjFvanPfzNQi3eTitsCqtRRmmqzpy/A+yhTR1HaZo1Ly3EA8ZXxlPyHdR8/IuRMYc3E4wdGBewB2QKQjAaA==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.29.7.tgz", + "integrity": "sha512-kibJgmEdX2iMwsHY2tSZNDgj8PwIlCQz7FK9KuGKO8zsuoUwSEhoNnNVp/emKWrbY4HeO6kkXfdMqRKKKXBm2A==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.29.7.tgz", + "integrity": "sha512-qV0OGGBVacduzQHE649JyCneOFI/maT+YKsO+K4Yi3xv2wTPNjM/W2o2gdzMwEAZz7fXNTHAe0NcSg30bIN69g==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-globals": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.29.7.tgz", + "integrity": "sha512-RK7/IyU5phpuCdBAuig5VkzG/EnbDaui5SQGdU9BFrHdV+mV4cUjLMQ9lJDjLNtWHsqtiefpGZUXQP2BiTYMsA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/template": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.29.7.tgz", + "integrity": "sha512-iPX8aD6H9zV5s7ZsqTdNocPN/MGQ5sSMnElKrktxjJRMnB2jN/1p2+R7GkfD6CAYoVFqy5A4XnSIUeGgJzIWpg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.29.7.tgz", + "integrity": "sha512-3qc18hsD2RdZiyJNDNc7HQpv6xbncwh8FYtxNFFzclSyh/trPD9KkVR9BDECUjDLvb7yJVF15GfYUuC+LMkkiQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.29.7.tgz", + "integrity": "sha512-6IvRRriEMqnBwD6chtxdLpMYCHWEzN+oL5cyQtjykya19UgzbmKhxmhZgKC/LHxS2nYr9Q/qYPZ5Lr6jOL9+yQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.29.7.tgz", + "integrity": "sha512-2wiIyo2BjtgU7HufSeDnL9L2O7zr8jmhFKuSr65VpRkUiRKRNpb0mdlk56+XPPKoIrfHqzbMuglDvZun0RISsA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.29.7.tgz", + "integrity": "sha512-giOlEm/EFjfjr+te9NsdjkUo2v4f8rS/SXPumRVHAtbNcyNlvtREkU1dZzaIDclNpnaVhlCqRdFKhJBjBikzLg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-explicit-resource-management": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.29.7.tgz", + "integrity": "sha512-Rstj7coNz8sE+7Ju7ihpHLI564lsK5pUpNNlvptCIC/16E/S5hbl6n3kESPKdNRmqEWlpn5xpS5Q2dvXBsySLw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/plugin-transform-destructuring": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.29.7.tgz", + "integrity": "sha512-zFpMOTLZBdW5LfObqcSbL6kefg4R4eLdmvS0wbN9M6D5Mym/sKm9toOoWyVOa+xDjvCnuWcHls2YonXwHvH3CQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.29.7.tgz", + "integrity": "sha512-24B2nOy2TeJSMheqwPD4DDQOV/elLSIlKxjZt4i05H5AgdPdWR3n18HnNrcJ+j76WJd9gbwb9jPjNYUy6RautA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.29.7.tgz", + "integrity": "sha512-zeSIHh0+E1Um1WJRXCFlHQYu2ieJNdivLLjlBEp+dIBu3S51n+SZZmIXjxnItw6pz56Cn+KvK68BIBVsxq2JiQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.29.7.tgz", + "integrity": "sha512-otRWaHXE6fbAGkePvaj/kvs3HsqXfPhlnzwSOlnFgbqCPMd975dW+4wZ00WFBt+/YlBGcJwNrARQTOJOb4ZrIg==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.29.7.tgz", + "integrity": "sha512-RRnE2+eon1rJAq8MnoF1b5kTpY1vU88twHcvcKMrsqP/jxIRqDVs9iJB5fqPuqyeFAW0wJo4MlUIPpQCq/aRsg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.29.7.tgz", + "integrity": "sha512-DZ/oLP21ZuWx1vKqnoNv6/tvEK48AQOBRai40CX9dTjGluvT/YZCyY3rryDtyUqCEoyNroy5KKPwX2iQCiRvyw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.29.7.tgz", + "integrity": "sha512-A0H91hh6W8MFRkp5TqJmMr39jzGD1A1E1Ysiv2O06Sfbhkapm+XyIzxWCEh5kqwOZ1/8QZ0dY3SeQ7XBqfJd5Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.29.7.tgz", + "integrity": "sha512-hl1kwFZCCiDyfH25Xmco9jTrkPgnS9pmOzSG7W5I4SaGbLeqKv417hcU2RKmaxoPEgsoJh7ZPOrnPGq99bHoUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.29.7.tgz", + "integrity": "sha512-fxtQoH3m5ywUSIfaH0FGCzWu4McsYon5bD3K4XnskC7f+OyQMj7rsOMi4NvvmJ83WwBAg4UCe+ov4VZlqEvyew==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.29.7.tgz", + "integrity": "sha512-j0vCldybPC5b5dwCQOJ21uKtHzt7hxLygJTg9eF1ScfaikEDNfzn94XoW5Fi+seBR0nCyL23xaBFFkq7dTM8XQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.7.tgz", + "integrity": "sha512-TM2ZcQLoG2/y4HODiStCo10DibYhWhGWAwVv+EQKmG/7GFl0N+AAmUiXOMKM+aiJ9XBJ9AHVZBvTzMnJ2sM3cQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.29.7.tgz", + "integrity": "sha512-B4UkaTK3QpgCwJnrxKfMPKdo92CN7OKXAlpAAnM3UPu0Q0lCCk57ylA9AJbRy2v8dDKOPAAWcoR6CMyeoHwRCA==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.29.7.tgz", + "integrity": "sha512-vuFoLwr4qnv2xbZ16SQd6uPcH5FNrLHhk/Jzo++0XJFcaDsr4gjJVg6j398oMHiC+83k/GiBzviwF5KBJkPUtQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.29.7.tgz", + "integrity": "sha512-fEo41GmsOUhOBlw8ioo6zvjX5Xc2Lqkzlyfqbpsk3eB6TReV18uhxZ0esfEokVbY2+PVJAQHNKxER6lGrzNd3A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.29.7.tgz", + "integrity": "sha512-idmp1dFaekP9GbcMvG24Kvw2BfhFZjHnNJCkV4WuIY4PskJzwI3f1N5OdgYke38T7rftO6ERulFRn2cFeZwRkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.29.7.tgz", + "integrity": "sha512-zR7fv/z14OjgHl4AgRtkDBvBMhIzCxqV/qN/2BCRC7LjFwvuzjYe7gDWxC4Wl/SNsLM6SE1IWvRPYMgSJaUvNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.29.7.tgz", + "integrity": "sha512-Ld98jn4c0smUywL57m7SgsHq3OpThOa6LqZJif3G6jYOovPleoFhVrBJ1WegRApSFB2wu4+RelAj9AC9G08Z4A==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/plugin-transform-destructuring": "^7.29.7", + "@babel/plugin-transform-parameters": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.29.7.tgz", + "integrity": "sha512-Ea/diGcw0twB5IlZPO5sgET6fJsLJqPABqTuFWIR+iMPGPZJkATEIWx0wa+aEQ5UY1CBQyP/gkAiLEqn1vBiQA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.29.7.tgz", + "integrity": "sha512-sLsyndxK2VwX6yNUOakMb7Sh553ZTe/vVM1XJ+9Z5aW1ytsc8xOIwmyk05NNjN60vkc5/KqoTH6hB4V41LJhng==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.29.7.tgz", + "integrity": "sha512-6GM1dhvK3gNODkXcEcMCOLEDCLSoZ/sBbro2Ax8HURyasQ4NshagQixkRFdh5niI6E4gmA/jYI/4aT7rRos3ZQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.29.7.tgz", + "integrity": "sha512-ZDOBqV/qLYJI0YElr8DcENEyARsFQeESqWXH6gZlghYXuPPjvweuDhP4VyEi4BlUBlLRFZVjxoZDMjxhLW766g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.29.7.tgz", + "integrity": "sha512-/6Rz4DK1ETDEM/bWHsPHcaEe7ZaT1EqSXjtSP/L0DijOYuaUhiRiOKcwpZ8P7zR4xXEHc2ITdiCgBm9Tpyv9ug==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.29.7.tgz", + "integrity": "sha512-+BNo06dnrzdNNqCm1X6YUaVv0DKk8Q+JYcoZfOkLhYWNCXzlwTSRq8zGWayT1csjcpNXV9CQTBRRbmTLZac5cA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.29.7.tgz", + "integrity": "sha512-bOMRLQuI0A5ZqHq3OWJ89/rXpJ/NJrbVhXiP4zwPGMs6kpcVsuTUNjwoE30K0Qm3mf48a/TnRYYD6vPNqcg6jA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.29.7.tgz", + "integrity": "sha512-J0wGhKan+rIiE2OhfhRptySLrJ6SjQYM6b6N1FMlhyhCcw1Mig8vQjWchyB+bgHGDvaWo6Diu6CLRMra2uMtmg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.29.7.tgz", + "integrity": "sha512-+1wdDMGNb4UPeY3Q4L5yLiYe6TXPXubs4NjrgRFw13hPRLJfEMw2Q5OXkee6/IfdqePIeW4Jjwe3aBh7SdKz4Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.29.7.tgz", + "integrity": "sha512-WsZulLVBUHXVj2cUcPVx6UE21TpalB6bHbSFErKT0Ib++ax24jjXe73FqlWvdylFOjiuPHYi6VCcgRad1ItN+A==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/plugin-syntax-jsx": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.29.7.tgz", + "integrity": "sha512-Xfy3UVMF04+ypnFbkhvfqtmvwfe92qwQdbGZVonhE+6v35GzlofmOnA1szaZqzb9xYWr0nl1e5EMmzi0DNON1g==", + "dev": true, + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.29.7.tgz", + "integrity": "sha512-H5E+HBgDpr6Q5t+Aj11tL7XkIui1jhbIoArVQnqjgXo5/3YxkN7ZEBcWF4RQlB0T4rrxJQbXS6kiFV6B7XTqUA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.7.tgz", + "integrity": "sha512-rNNFV0DBAJp988xW2DOntfDoYn1eR8GGF5AT5vYc+rjyfaQkM242c9tZUHHPe7KYaiJizXPWhQTzzdbXySyhBw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.29.7.tgz", + "integrity": "sha512-mB5Fs0VWrJ42ZCmc8114v60qetdaUVNkj9PmSZRmanCZM3S9hm0CFRLjRmYIsuXav14l2jvZ+4T8iiCGnhj3nQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.29.7.tgz", + "integrity": "sha512-5+YhdpVgmfSmwZyLMftfaiffLRMHjzIRHFHHLdibcSyJm2pasMrKHrO3Ptrt2DRshjvpgjEJJ1zVW14WPq/6QA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.7.tgz", + "integrity": "sha512-Y9p487tyTzB0yDYQOtWnC+9HGOuogtP3/wNpun1xJXEEvI6vip59BSBTsHnekZLqxmPcgsrAKt46HAAb//xGhg==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", + "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2", + "core-js-compat": "^3.38.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.29.7.tgz", + "integrity": "sha512-I+WYbGBAiCn7nA6xBrlgPH+MB7HWb4u8pv5S0Pv7OtwNvIFvCCb24YlttKEeUFVurfBCEaOTnuhlqsb7f0Z5Dg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.29.7.tgz", + "integrity": "sha512-/u5K1QWada7tbYNqTjMh96718g9NTwh9tfPJMsSmVsQwGT447FskV+KcfeXkXq2GWki4EM/MuTdmBec+hOuVTQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.29.7.tgz", + "integrity": "sha512-BCHzNYJGe9l7EpwwDBN/ztlL2NYFFq8hp9ddjtUEM9f2O7S7kKV/lL6Fwo7IF7NSkYhPK2vO+86nIGltA90MsA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.29.7.tgz", + "integrity": "sha512-NCSEJ4sLFU2gqAub45HYh4fus2yQ36rr6ei6vpU7NdoJqCpxvEG8E6eJpscGyXP3VHD2Ny+fSXr04k1hoUrFqA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.29.7.tgz", + "integrity": "sha512-223mNGoTkBiTEWFoK+Q6Go3tueMRclO8vxxxxquNCYuNI4jWOofFKJRRDu6SDrB8Sgo1UEGW9T4GAQ8ZyRso1A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.29.7.tgz", + "integrity": "sha512-jK52h8LaLc7JarhQV2ofeFMts4H7vnOXnqZNA6fYglBTZewRBE51KWt3BUltW1P+KoPsYkHoJeXePuz4zo2LMw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", + "@babel/plugin-syntax-typescript": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.29.7.tgz", + "integrity": "sha512-jCfXxSjf94lf4E0hKE0AByxF6F3/pVFqRdUUNkDJhsY0m1ZKjnN6ZYyMeHNpzflxb/0q5b7t3p+BE+SLF1WOtA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.29.7.tgz", + "integrity": "sha512-OgZ+zoAJgZLUCunsTRQ5LAjOywDv5zzZ2/hQ5aMw1pGXyY2rtE8/chXYUmu3AlVHKpm10KEdG9aMwbI/K76ZGw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.29.7.tgz", + "integrity": "sha512-7D/x/23/d/3VqZ0QA+LGbZMlGwZjztBygSWWWsfTPoQ1oQ6Q1P6Mr3d0kk42XabyUVw+fha3LqdRsFqeKqvCyA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.29.7.tgz", + "integrity": "sha512-BLOhLht9DOJwIxlmp91wHvkXv1lguuHS3/FwUO8HL1H0u8s4hR1gASVFyilu9iGtcTRYqjTZmlsFFeQletntEg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.7.tgz", + "integrity": "sha512-GYzX36n1nsciIb0uyH0GHwxwtNwPQIcpxSeiVLDtG/B7jB5xXgchnmL1f/jCX5o+pwnaDBtO60ONSJhEBJfxYA==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.29.7", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.29.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.29.7", + "@babel/plugin-bugfix-safari-rest-destructuring-rhs-array": "^7.29.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.29.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.29.7", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-import-assertions": "^7.29.7", + "@babel/plugin-syntax-import-attributes": "^7.29.7", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.29.7", + "@babel/plugin-transform-async-generator-functions": "^7.29.7", + "@babel/plugin-transform-async-to-generator": "^7.29.7", + "@babel/plugin-transform-block-scoped-functions": "^7.29.7", + "@babel/plugin-transform-block-scoping": "^7.29.7", + "@babel/plugin-transform-class-properties": "^7.29.7", + "@babel/plugin-transform-class-static-block": "^7.29.7", + "@babel/plugin-transform-classes": "^7.29.7", + "@babel/plugin-transform-computed-properties": "^7.29.7", + "@babel/plugin-transform-destructuring": "^7.29.7", + "@babel/plugin-transform-dotall-regex": "^7.29.7", + "@babel/plugin-transform-duplicate-keys": "^7.29.7", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.29.7", + "@babel/plugin-transform-dynamic-import": "^7.29.7", + "@babel/plugin-transform-explicit-resource-management": "^7.29.7", + "@babel/plugin-transform-exponentiation-operator": "^7.29.7", + "@babel/plugin-transform-export-namespace-from": "^7.29.7", + "@babel/plugin-transform-for-of": "^7.29.7", + "@babel/plugin-transform-function-name": "^7.29.7", + "@babel/plugin-transform-json-strings": "^7.29.7", + "@babel/plugin-transform-literals": "^7.29.7", + "@babel/plugin-transform-logical-assignment-operators": "^7.29.7", + "@babel/plugin-transform-member-expression-literals": "^7.29.7", + "@babel/plugin-transform-modules-amd": "^7.29.7", + "@babel/plugin-transform-modules-commonjs": "^7.29.7", + "@babel/plugin-transform-modules-systemjs": "^7.29.7", + "@babel/plugin-transform-modules-umd": "^7.29.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.29.7", + "@babel/plugin-transform-new-target": "^7.29.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.29.7", + "@babel/plugin-transform-numeric-separator": "^7.29.7", + "@babel/plugin-transform-object-rest-spread": "^7.29.7", + "@babel/plugin-transform-object-super": "^7.29.7", + "@babel/plugin-transform-optional-catch-binding": "^7.29.7", + "@babel/plugin-transform-optional-chaining": "^7.29.7", + "@babel/plugin-transform-parameters": "^7.29.7", + "@babel/plugin-transform-private-methods": "^7.29.7", + "@babel/plugin-transform-private-property-in-object": "^7.29.7", + "@babel/plugin-transform-property-literals": "^7.29.7", + "@babel/plugin-transform-regenerator": "^7.29.7", + "@babel/plugin-transform-regexp-modifiers": "^7.29.7", + "@babel/plugin-transform-reserved-words": "^7.29.7", + "@babel/plugin-transform-shorthand-properties": "^7.29.7", + "@babel/plugin-transform-spread": "^7.29.7", + "@babel/plugin-transform-sticky-regex": "^7.29.7", + "@babel/plugin-transform-template-literals": "^7.29.7", + "@babel/plugin-transform-typeof-symbol": "^7.29.7", + "@babel/plugin-transform-unicode-escapes": "^7.29.7", + "@babel/plugin-transform-unicode-property-regex": "^7.29.7", + "@babel/plugin-transform-unicode-regex": "^7.29.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.29.7", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.15", + "babel-plugin-polyfill-corejs3": "^0.14.0", + "babel-plugin-polyfill-regenerator": "^0.6.6", + "core-js-compat": "^3.48.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.29.7.tgz", + "integrity": "sha512-C+PV1TFUPTmBQGoPBL8j2QmLpZ117YTCwxIZeJOM96GbYMFSc7/pOXU5lVykwnZxyTqQxRsvoRk6f2FktZgGHA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "@babel/plugin-transform-react-display-name": "^7.29.7", + "@babel/plugin-transform-react-jsx": "^7.29.7", + "@babel/plugin-transform-react-jsx-development": "^7.29.7", + "@babel/plugin-transform-react-pure-annotations": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.29.7.tgz", + "integrity": "sha512-/Foi8vKY2EVbed/1eZx0gJEEwHAIxogrySI7rULcRIvhZzbvoE/b5qG5Ghc0WKAFKOHA9SD1x7RsFlOYdutIiQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "@babel/plugin-syntax-jsx": "^7.29.7", + "@babel/plugin-transform-modules-commonjs": "^7.29.7", + "@babel/plugin-transform-typescript": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.7.tgz", + "integrity": "sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", + "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.7.tgz", + "integrity": "sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-globals": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", + "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@cacheable/memory": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-2.0.9.tgz", + "integrity": "sha512-HdMx6DoGywB30vacDbBsITbIX4pgFqj1zsrV58jZBUw3klzkNoXhj7qOqAgledhxG7YZI5rBSJg7Zp8/VG0DuA==", + "dev": true, + "dependencies": { + "@cacheable/utils": "^2.4.1", + "@keyv/bigmap": "^1.3.1", + "hookified": "^1.15.1", + "keyv": "^5.6.0" + } + }, + "node_modules/@cacheable/memory/node_modules/@keyv/bigmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-1.3.1.tgz", + "integrity": "sha512-WbzE9sdmQtKy8vrNPa9BRnwZh5UF4s1KTmSK0KUVLo3eff5BlQNNWDnFOouNpKfPKDnms9xynJjsMYjMaT/aFQ==", + "dev": true, + "dependencies": { + "hashery": "^1.4.0", + "hookified": "^1.15.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "keyv": "^5.6.0" + } + }, + "node_modules/@cacheable/memory/node_modules/keyv": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz", + "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==", + "dev": true, + "dependencies": { + "@keyv/serialize": "^1.1.1" + } + }, + "node_modules/@cacheable/utils": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-2.4.1.tgz", + "integrity": "sha512-eiFgzCbIneyMlLOmNG4g9xzF7Hv3Mga4LjxjcSC/ues6VYq2+gUbQI8JqNuw/ZM8tJIeIaBGpswAsqV2V7ApgA==", + "dev": true, + "dependencies": { + "hashery": "^1.5.1", + "keyv": "^5.6.0" + } + }, + "node_modules/@cacheable/utils/node_modules/keyv": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz", + "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==", + "dev": true, + "dependencies": { + "@keyv/serialize": "^1.1.1" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", + "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-syntax-patches-for-csstree": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.4.tgz", + "integrity": "sha512-wgsqt92b7C7tQhIdPNxj0n9zuUbQlvAuI1exyzeNrOKOi62SD7ren8zqszmpVREjAOqg8cD2FqYhQfAuKjk4sw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "peerDependencies": { + "css-tree": "^3.2.1" + }, + "peerDependenciesMeta": { + "css-tree": { + "optional": true + } + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz", + "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/media-query-list-parser": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-3.0.1.tgz", + "integrity": "sha512-HNo8gGD02kHmcbX6PvCoUuOQvn4szyB9ca63vZHKX5A81QytgDG4oxG4IaEfHTlEZSZ6MjPEMWIVU+zF2PZcgw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.1", + "@csstools/css-tokenizer": "^3.0.1" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@dual-bundle/import-meta-resolve": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.2.1.tgz", + "integrity": "sha512-id+7YRUgoUX6CgV0DtuhirQWodeeA7Lf4i2x71JS/vtA5pRb/hIGWlw+G6MeXvsM+MXrz0VAydTGElX1rAfgPg==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/JounQin" + } + }, + "node_modules/@emnapi/core": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", + "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", + "dev": true, + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.1", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", + "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", + "dev": true, + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", + "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", + "dev": true, + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@es-joy/jsdoccomment": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.41.0.tgz", + "integrity": "sha512-aKUhyn1QI5Ksbqcr3fFJj16p99QdjUxXAEuFst1Z47DRyoiMwivIH9MV/ARcJOCXVjPfjITciej8ZD2O/6qUmw==", + "dev": true, + "dependencies": { + "comment-parser": "1.4.1", + "esquery": "^1.5.0", + "jsdoc-type-pratt-parser": "~4.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", + "dev": true, + "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, + "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.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.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": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/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 + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@formatjs/ecma402-abstract": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.3.6.tgz", + "integrity": "sha512-HJnTFeRM2kVFVr5gr5kH1XP6K0JcJtE7Lzvtr3FS/so5f1kpsqqqxy5JF+FRaO6H2qmcMfAUIox7AJteieRtVw==", + "dev": true, + "dependencies": { + "@formatjs/fast-memoize": "2.2.7", + "@formatjs/intl-localematcher": "0.6.2", + "decimal.js": "^10.4.3", + "tslib": "^2.8.0" + } + }, + "node_modules/@formatjs/fast-memoize": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.7.tgz", + "integrity": "sha512-Yabmi9nSvyOMrlSeGGWDiH7rf3a7sIwplbvo/dlz9WCIjzIQAfy1RMf4S0X3yG724n5Ghu2GmEl5NJIV6O9sZQ==", + "dev": true, + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@formatjs/icu-messageformat-parser": { + "version": "2.11.4", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.11.4.tgz", + "integrity": "sha512-7kR78cRrPNB4fjGFZg3Rmj5aah8rQj9KPzuLsmcSn4ipLXQvC04keycTI1F7kJYDwIXtT2+7IDEto842CfZBtw==", + "dev": true, + "dependencies": { + "@formatjs/ecma402-abstract": "2.3.6", + "@formatjs/icu-skeleton-parser": "1.8.16", + "tslib": "^2.8.0" + } + }, + "node_modules/@formatjs/icu-skeleton-parser": { + "version": "1.8.16", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.16.tgz", + "integrity": "sha512-H13E9Xl+PxBd8D5/6TVUluSpxGNvFSlN/b3coUp0e0JpuWXXnQDiavIpY3NnvSp4xhEMoXyyBvVfdFX8jglOHQ==", + "dev": true, + "dependencies": { + "@formatjs/ecma402-abstract": "2.3.6", + "tslib": "^2.8.0" + } + }, + "node_modules/@formatjs/intl-localematcher": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.6.2.tgz", + "integrity": "sha512-XOMO2Hupl0wdd172Y06h6kLpBz6Dv+J4okPLl4LPtzbr8f66WbIoy4ev98EBuZ6ZK4h5ydTN6XneT4QVpD7cdA==", + "dev": true, + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@hapi/address": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-5.1.1.tgz", + "integrity": "sha512-A+po2d/dVoY7cYajycYI43ZbYMXukuopIsqCjh5QzsBCipDtdofHntljDlpccMjIfTy6UOkg+5KPriwYch2bXA==", + "dev": true, + "dependencies": { + "@hapi/hoek": "^11.0.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@hapi/formula": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@hapi/formula/-/formula-3.0.2.tgz", + "integrity": "sha512-hY5YPNXzw1He7s0iqkRQi+uMGh383CGdyyIGYtB+W5N3KHPXoqychklvHhKCC9M3Xtv0OCs/IHw+r4dcHtBYWw==", + "dev": true + }, + "node_modules/@hapi/hoek": { + "version": "11.0.7", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-11.0.7.tgz", + "integrity": "sha512-HV5undWkKzcB4RZUusqOpcgxOaq6VOAH7zhhIr2g3G8NF/MlFO75SjOr2NfuSx0Mh40+1FqCkagKLJRykUWoFQ==", + "dev": true + }, + "node_modules/@hapi/pinpoint": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-2.0.1.tgz", + "integrity": "sha512-EKQmr16tM8s16vTT3cA5L0kZZcTMU5DUOZTuvpnY738m+jyP3JIUj+Mm1xc1rsLkGBQ/gVnfKYPwOmPg1tUR4Q==", + "dev": true + }, + "node_modules/@hapi/tlds": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@hapi/tlds/-/tlds-1.1.6.tgz", + "integrity": "sha512-xdi7A/4NZokvV0ewovme3aUO5kQhW9pQ2YD1hRqZGhhSi5rBv4usHYidVocXSi9eihYsznZxLtAiEYYUL6VBGw==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@hapi/topo": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-6.0.2.tgz", + "integrity": "sha512-KR3rD5inZbGMrHmgPxsJ9dbi6zEK+C3ZwUwTa+eMwWLz7oijWUTWD2pMSNNYJAU6Qq+65NkxXjqHr/7LM2Xkqg==", + "dev": true, + "dependencies": { + "@hapi/hoek": "^11.0.2" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "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, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.6.tgz", + "integrity": "sha512-+Sg6GCR/wy1oSmQDFq4LQDAhm3ETKnorxN+y5nbLULOR3P0c14f2Wurzj3/xqPXtasLFfHd5iRFQ7AJt4KH2cw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/reporters/node_modules/semver": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz", + "integrity": "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "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, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@keyv/serialize": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.1.1.tgz", + "integrity": "sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==", + "dev": true + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", + "dev": true + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz", + "integrity": "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==", + "dev": true, + "optional": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "dev": true, + "dependencies": { + "eslint-scope": "5.1.1" + } + }, + "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, + "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, + "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, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@opentelemetry/api": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.1.tgz", + "integrity": "sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@opentelemetry/api-logs": { + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.57.2.tgz", + "integrity": "sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A==", + "dev": true, + "dependencies": { + "@opentelemetry/api": "^1.3.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/context-async-hooks": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.30.1.tgz", + "integrity": "sha512-s5vvxXPVdjqS3kTLKMeBMvop9hbWkwzBpu+mUO2M7sZtlkyDJGwFe33wRKnbaYDo8ExRVBIIdwIGrqpxHuKttA==", + "dev": true, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/core": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.30.1.tgz", + "integrity": "sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==", + "dev": true, + "dependencies": { + "@opentelemetry/semantic-conventions": "1.28.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/core/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz", + "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/instrumentation": { + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.57.2.tgz", + "integrity": "sha512-BdBGhQBh8IjZ2oIIX6F2/Q3LKm/FDDKi6ccYKcBTeilh6SNdNKveDOLk73BkSJjQLJk6qe4Yh+hHw1UPhCDdrg==", + "dev": true, + "dependencies": { + "@opentelemetry/api-logs": "0.57.2", + "@types/shimmer": "^1.2.0", + "import-in-the-middle": "^1.8.1", + "require-in-the-middle": "^7.1.1", + "semver": "^7.5.2", + "shimmer": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-amqplib": { + "version": "0.46.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-amqplib/-/instrumentation-amqplib-0.46.1.tgz", + "integrity": "sha512-AyXVnlCf/xV3K/rNumzKxZqsULyITJH6OVLiW6730JPRqWA7Zc9bvYoVNpN6iOpTU8CasH34SU/ksVJmObFibQ==", + "dev": true, + "dependencies": { + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.57.1", + "@opentelemetry/semantic-conventions": "^1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-connect": { + "version": "0.43.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-connect/-/instrumentation-connect-0.43.1.tgz", + "integrity": "sha512-ht7YGWQuV5BopMcw5Q2hXn3I8eG8TH0J/kc/GMcW4CuNTgiP6wCu44BOnucJWL3CmFWaRHI//vWyAhaC8BwePw==", + "dev": true, + "dependencies": { + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.57.1", + "@opentelemetry/semantic-conventions": "^1.27.0", + "@types/connect": "3.4.38" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-dataloader": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dataloader/-/instrumentation-dataloader-0.16.1.tgz", + "integrity": "sha512-K/qU4CjnzOpNkkKO4DfCLSQshejRNAJtd4esgigo/50nxCB6XCyi1dhAblUHM9jG5dRm8eu0FB+t87nIo99LYQ==", + "dev": true, + "dependencies": { + "@opentelemetry/instrumentation": "^0.57.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-express": { + "version": "0.47.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.47.1.tgz", + "integrity": "sha512-QNXPTWteDclR2B4pDFpz0TNghgB33UMjUt14B+BZPmtH1MwUFAfLHBaP5If0Z5NZC+jaH8oF2glgYjrmhZWmSw==", + "dev": true, + "dependencies": { + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.57.1", + "@opentelemetry/semantic-conventions": "^1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-fs": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fs/-/instrumentation-fs-0.19.1.tgz", + "integrity": "sha512-6g0FhB3B9UobAR60BGTcXg4IHZ6aaYJzp0Ki5FhnxyAPt8Ns+9SSvgcrnsN2eGmk3RWG5vYycUGOEApycQL24A==", + "dev": true, + "dependencies": { + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.57.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-generic-pool": { + "version": "0.43.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-generic-pool/-/instrumentation-generic-pool-0.43.1.tgz", + "integrity": "sha512-M6qGYsp1cURtvVLGDrPPZemMFEbuMmCXgQYTReC/IbimV5sGrLBjB+/hANUpRZjX67nGLdKSVLZuQQAiNz+sww==", + "dev": true, + "dependencies": { + "@opentelemetry/instrumentation": "^0.57.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-graphql": { + "version": "0.47.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-graphql/-/instrumentation-graphql-0.47.1.tgz", + "integrity": "sha512-EGQRWMGqwiuVma8ZLAZnExQ7sBvbOx0N/AE/nlafISPs8S+QtXX+Viy6dcQwVWwYHQPAcuY3bFt3xgoAwb4ZNQ==", + "dev": true, + "dependencies": { + "@opentelemetry/instrumentation": "^0.57.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-hapi": { + "version": "0.45.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-hapi/-/instrumentation-hapi-0.45.2.tgz", + "integrity": "sha512-7Ehow/7Wp3aoyCrZwQpU7a2CnoMq0XhIcioFuKjBb0PLYfBfmTsFTUyatlHu0fRxhwcRsSQRTvEhmZu8CppBpQ==", + "dev": true, + "dependencies": { + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.57.1", + "@opentelemetry/semantic-conventions": "^1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-http": { + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-http/-/instrumentation-http-0.57.2.tgz", + "integrity": "sha512-1Uz5iJ9ZAlFOiPuwYg29Bf7bJJc/GeoeJIFKJYQf67nTVKFe8RHbEtxgkOmK4UGZNHKXcpW4P8cWBYzBn1USpg==", + "dev": true, + "dependencies": { + "@opentelemetry/core": "1.30.1", + "@opentelemetry/instrumentation": "0.57.2", + "@opentelemetry/semantic-conventions": "1.28.0", + "forwarded-parse": "2.1.2", + "semver": "^7.5.2" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz", + "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/instrumentation-http/node_modules/semver": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz", + "integrity": "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@opentelemetry/instrumentation-ioredis": { + "version": "0.47.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-ioredis/-/instrumentation-ioredis-0.47.1.tgz", + "integrity": "sha512-OtFGSN+kgk/aoKgdkKQnBsQFDiG8WdCxu+UrHr0bXScdAmtSzLSraLo7wFIb25RVHfRWvzI5kZomqJYEg/l1iA==", + "dev": true, + "dependencies": { + "@opentelemetry/instrumentation": "^0.57.1", + "@opentelemetry/redis-common": "^0.36.2", + "@opentelemetry/semantic-conventions": "^1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-kafkajs": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-kafkajs/-/instrumentation-kafkajs-0.7.1.tgz", + "integrity": "sha512-OtjaKs8H7oysfErajdYr1yuWSjMAectT7Dwr+axIoZqT9lmEOkD/H/3rgAs8h/NIuEi2imSXD+vL4MZtOuJfqQ==", + "dev": true, + "dependencies": { + "@opentelemetry/instrumentation": "^0.57.1", + "@opentelemetry/semantic-conventions": "^1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-knex": { + "version": "0.44.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-knex/-/instrumentation-knex-0.44.1.tgz", + "integrity": "sha512-U4dQxkNhvPexffjEmGwCq68FuftFK15JgUF05y/HlK3M6W/G2iEaACIfXdSnwVNe9Qh0sPfw8LbOPxrWzGWGMQ==", + "dev": true, + "dependencies": { + "@opentelemetry/instrumentation": "^0.57.1", + "@opentelemetry/semantic-conventions": "^1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-koa": { + "version": "0.47.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-koa/-/instrumentation-koa-0.47.1.tgz", + "integrity": "sha512-l/c+Z9F86cOiPJUllUCt09v+kICKvT+Vg1vOAJHtHPsJIzurGayucfCMq2acd/A/yxeNWunl9d9eqZ0G+XiI6A==", + "dev": true, + "dependencies": { + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.57.1", + "@opentelemetry/semantic-conventions": "^1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-lru-memoizer": { + "version": "0.44.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-lru-memoizer/-/instrumentation-lru-memoizer-0.44.1.tgz", + "integrity": "sha512-5MPkYCvG2yw7WONEjYj5lr5JFehTobW7wX+ZUFy81oF2lr9IPfZk9qO+FTaM0bGEiymwfLwKe6jE15nHn1nmHg==", + "dev": true, + "dependencies": { + "@opentelemetry/instrumentation": "^0.57.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-mongodb": { + "version": "0.52.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongodb/-/instrumentation-mongodb-0.52.0.tgz", + "integrity": "sha512-1xmAqOtRUQGR7QfJFfGV/M2kC7wmI2WgZdpru8hJl3S0r4hW0n3OQpEHlSGXJAaNFyvT+ilnwkT+g5L4ljHR6g==", + "dev": true, + "dependencies": { + "@opentelemetry/instrumentation": "^0.57.1", + "@opentelemetry/semantic-conventions": "^1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-mongoose": { + "version": "0.46.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongoose/-/instrumentation-mongoose-0.46.1.tgz", + "integrity": "sha512-3kINtW1LUTPkiXFRSSBmva1SXzS/72we/jL22N+BnF3DFcoewkdkHPYOIdAAk9gSicJ4d5Ojtt1/HeibEc5OQg==", + "dev": true, + "dependencies": { + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.57.1", + "@opentelemetry/semantic-conventions": "^1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-mysql": { + "version": "0.45.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.45.1.tgz", + "integrity": "sha512-TKp4hQ8iKQsY7vnp/j0yJJ4ZsP109Ht6l4RHTj0lNEG1TfgTrIH5vJMbgmoYXWzNHAqBH2e7fncN12p3BP8LFg==", + "dev": true, + "dependencies": { + "@opentelemetry/instrumentation": "^0.57.1", + "@opentelemetry/semantic-conventions": "^1.27.0", + "@types/mysql": "2.15.26" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-mysql2": { + "version": "0.45.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.45.2.tgz", + "integrity": "sha512-h6Ad60FjCYdJZ5DTz1Lk2VmQsShiViKe0G7sYikb0GHI0NVvApp2XQNRHNjEMz87roFttGPLHOYVPlfy+yVIhQ==", + "dev": true, + "dependencies": { + "@opentelemetry/instrumentation": "^0.57.1", + "@opentelemetry/semantic-conventions": "^1.27.0", + "@opentelemetry/sql-common": "^0.40.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-pg": { + "version": "0.51.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.51.1.tgz", + "integrity": "sha512-QxgjSrxyWZc7Vk+qGSfsejPVFL1AgAJdSBMYZdDUbwg730D09ub3PXScB9d04vIqPriZ+0dqzjmQx0yWKiCi2Q==", + "dev": true, + "dependencies": { + "@opentelemetry/core": "^1.26.0", + "@opentelemetry/instrumentation": "^0.57.1", + "@opentelemetry/semantic-conventions": "^1.27.0", + "@opentelemetry/sql-common": "^0.40.1", + "@types/pg": "8.6.1", + "@types/pg-pool": "2.0.6" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-redis-4": { + "version": "0.46.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis-4/-/instrumentation-redis-4-0.46.1.tgz", + "integrity": "sha512-UMqleEoabYMsWoTkqyt9WAzXwZ4BlFZHO40wr3d5ZvtjKCHlD4YXLm+6OLCeIi/HkX7EXvQaz8gtAwkwwSEvcQ==", + "dev": true, + "dependencies": { + "@opentelemetry/instrumentation": "^0.57.1", + "@opentelemetry/redis-common": "^0.36.2", + "@opentelemetry/semantic-conventions": "^1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-tedious": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-tedious/-/instrumentation-tedious-0.18.1.tgz", + "integrity": "sha512-5Cuy/nj0HBaH+ZJ4leuD7RjgvA844aY2WW+B5uLcWtxGjRZl3MNLuxnNg5DYWZNPO+NafSSnra0q49KWAHsKBg==", + "dev": true, + "dependencies": { + "@opentelemetry/instrumentation": "^0.57.1", + "@opentelemetry/semantic-conventions": "^1.27.0", + "@types/tedious": "^4.0.14" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-undici": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-undici/-/instrumentation-undici-0.10.1.tgz", + "integrity": "sha512-rkOGikPEyRpMCmNu9AQuV5dtRlDmJp2dK5sw8roVshAGoB6hH/3QjDtRhdwd75SsJwgynWUNRUYe0wAkTo16tQ==", + "dev": true, + "dependencies": { + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.57.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.7.0" + } + }, + "node_modules/@opentelemetry/instrumentation/node_modules/semver": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz", + "integrity": "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@opentelemetry/redis-common": { + "version": "0.36.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/redis-common/-/redis-common-0.36.2.tgz", + "integrity": "sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/resources": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.30.1.tgz", + "integrity": "sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA==", + "dev": true, + "dependencies": { + "@opentelemetry/core": "1.30.1", + "@opentelemetry/semantic-conventions": "1.28.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/resources/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz", + "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/sdk-trace-base": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.30.1.tgz", + "integrity": "sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg==", + "dev": true, + "dependencies": { + "@opentelemetry/core": "1.30.1", + "@opentelemetry/resources": "1.30.1", + "@opentelemetry/semantic-conventions": "1.28.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-trace-base/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz", + "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/semantic-conventions": { + "version": "1.41.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.41.1.tgz", + "integrity": "sha512-/UhIkaZgPutTFmQ7RnIJGgDXZmtEJ7Dvi86xNTFWcnRxVRNk/aotsqDJYeEvDP+FSMB2SdW+pQzNMcWP0rwuNA==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/sql-common": { + "version": "0.40.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sql-common/-/sql-common-0.40.1.tgz", + "integrity": "sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg==", + "dev": true, + "dependencies": { + "@opentelemetry/core": "^1.1.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0" + } + }, + "node_modules/@parcel/watcher": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.6.tgz", + "integrity": "sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "dependencies": { + "detect-libc": "^2.0.3", + "is-glob": "^4.0.3", + "node-addon-api": "^7.0.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.5.6", + "@parcel/watcher-darwin-arm64": "2.5.6", + "@parcel/watcher-darwin-x64": "2.5.6", + "@parcel/watcher-freebsd-x64": "2.5.6", + "@parcel/watcher-linux-arm-glibc": "2.5.6", + "@parcel/watcher-linux-arm-musl": "2.5.6", + "@parcel/watcher-linux-arm64-glibc": "2.5.6", + "@parcel/watcher-linux-arm64-musl": "2.5.6", + "@parcel/watcher-linux-x64-glibc": "2.5.6", + "@parcel/watcher-linux-x64-musl": "2.5.6", + "@parcel/watcher-win32-arm64": "2.5.6", + "@parcel/watcher-win32-ia32": "2.5.6", + "@parcel/watcher-win32-x64": "2.5.6" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.6.tgz", + "integrity": "sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "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.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.6.tgz", + "integrity": "sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "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.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.6.tgz", + "integrity": "sha512-HgvOf3W9dhithcwOWX9uDZyn1lW9R+7tPZ4sug+NGrGIo4Rk1hAXLEbcH1TQSqxts0NYXXlOWqVpvS1SFS4fRg==", + "cpu": [ + "x64" + ], + "dev": true, + "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.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.6.tgz", + "integrity": "sha512-vJVi8yd/qzJxEKHkeemh7w3YAn6RJCtYlE4HPMoVnCpIXEzSrxErBW5SJBgKLbXU3WdIpkjBTeUNtyBVn8TRng==", + "cpu": [ + "x64" + ], + "dev": true, + "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.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.6.tgz", + "integrity": "sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ==", + "cpu": [ + "arm" + ], + "dev": true, + "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.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.6.tgz", + "integrity": "sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==", + "cpu": [ + "arm" + ], + "dev": true, + "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.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.6.tgz", + "integrity": "sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==", + "cpu": [ + "arm64" + ], + "dev": true, + "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.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.6.tgz", + "integrity": "sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==", + "cpu": [ + "arm64" + ], + "dev": true, + "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.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.6.tgz", + "integrity": "sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==", + "cpu": [ + "x64" + ], + "dev": true, + "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.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.6.tgz", + "integrity": "sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==", + "cpu": [ + "x64" + ], + "dev": true, + "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.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.6.tgz", + "integrity": "sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "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.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.6.tgz", + "integrity": "sha512-k35yLp1ZMwwee3Ez/pxBi5cf4AoBKYXj00CZ80jUz5h8prpiaQsiRPKQMxoLstNuqe2vR4RNPEAEcjEFzhEz/g==", + "cpu": [ + "ia32" + ], + "dev": true, + "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.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.6.tgz", + "integrity": "sha512-hbQlYcCq5dlAX9Qx+kFb0FHue6vbjlf0FrNzSKdYK2APUf7tGfGxQCk2ihEREmbR6ZMc0MVAD5RIX/41gpUzTw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "optional": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@paulirish/trace_engine": { + "version": "0.0.59", + "resolved": "https://registry.npmjs.org/@paulirish/trace_engine/-/trace_engine-0.0.59.tgz", + "integrity": "sha512-439NUzQGmH+9Y017/xCchBP9571J4bzhpcNhrxorf7r37wcyJZkgUfrUsRL3xl+JDcZ6ORhoFCzCw98c6S3YHw==", + "dev": true, + "dependencies": { + "legacy-javascript": "latest", + "third-party-web": "latest" + } + }, + "node_modules/@pkgr/core": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz", + "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } + }, + "node_modules/@playwright/test": { + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.60.0.tgz", + "integrity": "sha512-O71yZIbAh/PxDMNGns37GHBIfrVkEVyn+AXyIa5dOTfb4/xNvRWV+Vv/NMbNCtODB/pO7vLlF2OTmMVLhmr7Ag==", + "dev": true, + "peer": true, + "dependencies": { + "playwright": "1.60.0" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin": { + "version": "0.5.17", + "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.17.tgz", + "integrity": "sha512-tXDyE1/jzFsHXjhRZQ3hMl0IVhYe5qula43LDWIhVfjp9G/nT5OQY5AORVOrkEGAUltBJOfOWeETbmhm6kHhuQ==", + "dev": true, + "dependencies": { + "ansi-html": "^0.0.9", + "core-js-pure": "^3.23.3", + "error-stack-parser": "^2.0.6", + "html-entities": "^2.1.0", + "loader-utils": "^2.0.4", + "schema-utils": "^4.2.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">= 10.13" + }, + "peerDependencies": { + "@types/webpack": "4.x || 5.x", + "react-refresh": ">=0.10.0 <1.0.0", + "sockjs-client": "^1.4.0", + "type-fest": ">=0.17.0 <5.0.0", + "webpack": ">=4.43.0 <6.0.0", + "webpack-dev-server": "3.x || 4.x || 5.x", + "webpack-hot-middleware": "2.x", + "webpack-plugin-serve": "0.x || 1.x" + }, + "peerDependenciesMeta": { + "@types/webpack": { + "optional": true + }, + "sockjs-client": { + "optional": true + }, + "type-fest": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + }, + "webpack-hot-middleware": { + "optional": true + }, + "webpack-plugin-serve": { + "optional": true + } + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.29", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", + "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", + "dev": true + }, + "node_modules/@prisma/instrumentation": { + "version": "6.11.1", + "resolved": "https://registry.npmjs.org/@prisma/instrumentation/-/instrumentation-6.11.1.tgz", + "integrity": "sha512-mrZOev24EDhnefmnZX7WVVT7v+r9LttPRqf54ONvj6re4XMF7wFTpK2tLJi4XHB7fFp/6xhYbgRel8YV7gQiyA==", + "dev": true, + "dependencies": { + "@opentelemetry/instrumentation": "^0.52.0 || ^0.53.0 || ^0.54.0 || ^0.55.0 || ^0.56.0 || ^0.57.0" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.8" + } + }, + "node_modules/@puppeteer/browsers": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.6.1.tgz", + "integrity": "sha512-aBSREisdsGH890S2rQqK82qmQYU3uFpSH8wcZWHgHzl3LfzsxAKbLNiAG9mO8v1Y0UICBeClICxPJvyr0rcuxg==", + "dev": true, + "dependencies": { + "debug": "^4.4.0", + "extract-zip": "^2.0.1", + "progress": "^2.0.3", + "proxy-agent": "^6.5.0", + "semver": "^7.6.3", + "tar-fs": "^3.0.6", + "unbzip2-stream": "^1.4.3", + "yargs": "^17.7.2" + }, + "bin": { + "browsers": "lib/cjs/main-cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@puppeteer/browsers/node_modules/semver": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz", + "integrity": "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true + }, + "node_modules/@sentry/core": { + "version": "9.47.1", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-9.47.1.tgz", + "integrity": "sha512-KX62+qIt4xgy8eHKHiikfhz2p5fOciXd0Cl+dNzhgPFq8klq4MGMNaf148GB3M/vBqP4nw/eFvRMAayFCgdRQw==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@sentry/node": { + "version": "9.47.1", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-9.47.1.tgz", + "integrity": "sha512-CDbkasBz3fnWRKSFs6mmaRepM2pa+tbZkrqhPWifFfIkJDidtVW40p6OnquTvPXyPAszCnDZRnZT14xyvNmKPQ==", + "dev": true, + "dependencies": { + "@opentelemetry/api": "^1.9.0", + "@opentelemetry/context-async-hooks": "^1.30.1", + "@opentelemetry/core": "^1.30.1", + "@opentelemetry/instrumentation": "^0.57.2", + "@opentelemetry/instrumentation-amqplib": "^0.46.1", + "@opentelemetry/instrumentation-connect": "0.43.1", + "@opentelemetry/instrumentation-dataloader": "0.16.1", + "@opentelemetry/instrumentation-express": "0.47.1", + "@opentelemetry/instrumentation-fs": "0.19.1", + "@opentelemetry/instrumentation-generic-pool": "0.43.1", + "@opentelemetry/instrumentation-graphql": "0.47.1", + "@opentelemetry/instrumentation-hapi": "0.45.2", + "@opentelemetry/instrumentation-http": "0.57.2", + "@opentelemetry/instrumentation-ioredis": "0.47.1", + "@opentelemetry/instrumentation-kafkajs": "0.7.1", + "@opentelemetry/instrumentation-knex": "0.44.1", + "@opentelemetry/instrumentation-koa": "0.47.1", + "@opentelemetry/instrumentation-lru-memoizer": "0.44.1", + "@opentelemetry/instrumentation-mongodb": "0.52.0", + "@opentelemetry/instrumentation-mongoose": "0.46.1", + "@opentelemetry/instrumentation-mysql": "0.45.1", + "@opentelemetry/instrumentation-mysql2": "0.45.2", + "@opentelemetry/instrumentation-pg": "0.51.1", + "@opentelemetry/instrumentation-redis-4": "0.46.1", + "@opentelemetry/instrumentation-tedious": "0.18.1", + "@opentelemetry/instrumentation-undici": "0.10.1", + "@opentelemetry/resources": "^1.30.1", + "@opentelemetry/sdk-trace-base": "^1.30.1", + "@opentelemetry/semantic-conventions": "^1.34.0", + "@prisma/instrumentation": "6.11.1", + "@sentry/core": "9.47.1", + "@sentry/node-core": "9.47.1", + "@sentry/opentelemetry": "9.47.1", + "import-in-the-middle": "^1.14.2", + "minimatch": "^9.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@sentry/node-core": { + "version": "9.47.1", + "resolved": "https://registry.npmjs.org/@sentry/node-core/-/node-core-9.47.1.tgz", + "integrity": "sha512-7TEOiCGkyShJ8CKtsri9lbgMCbB+qNts2Xq37itiMPN2m+lIukK3OX//L8DC5nfKYZlgikrefS63/vJtm669hQ==", + "dev": true, + "dependencies": { + "@sentry/core": "9.47.1", + "@sentry/opentelemetry": "9.47.1", + "import-in-the-middle": "^1.14.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.9.0", + "@opentelemetry/context-async-hooks": "^1.30.1 || ^2.0.0", + "@opentelemetry/core": "^1.30.1 || ^2.0.0", + "@opentelemetry/instrumentation": ">=0.57.1 <1", + "@opentelemetry/resources": "^1.30.1 || ^2.0.0", + "@opentelemetry/sdk-trace-base": "^1.30.1 || ^2.0.0", + "@opentelemetry/semantic-conventions": "^1.34.0" + } + }, + "node_modules/@sentry/opentelemetry": { + "version": "9.47.1", + "resolved": "https://registry.npmjs.org/@sentry/opentelemetry/-/opentelemetry-9.47.1.tgz", + "integrity": "sha512-STtFpjF7lwzeoedDJV+5XA6P89BfmFwFftmHSGSe3UTI8z8IoiR5yB6X2vCjSPvXlfeOs13qCNNCEZyznxM8Xw==", + "dev": true, + "dependencies": { + "@sentry/core": "9.47.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.9.0", + "@opentelemetry/context-async-hooks": "^1.30.1 || ^2.0.0", + "@opentelemetry/core": "^1.30.1 || ^2.0.0", + "@opentelemetry/sdk-trace-base": "^1.30.1 || ^2.0.0", + "@opentelemetry/semantic-conventions": "^1.34.0" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.10", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.10.tgz", + "integrity": "sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==", + "dev": true + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "dev": true + }, + "node_modules/@stylistic/stylelint-plugin": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-3.1.3.tgz", + "integrity": "sha512-85fsmzgsIVmyG3/GFrjuYj6Cz8rAM7IZiPiXCMiSMfoDOC1lOrzrXPDk24WqviAghnPqGpx8b0caK2PuewWGFg==", + "dev": true, + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.1", + "@csstools/css-tokenizer": "^3.0.1", + "@csstools/media-query-list-parser": "^3.0.1", + "is-plain-object": "^5.0.0", + "postcss": "^8.4.41", + "postcss-selector-parser": "^6.1.2", + "postcss-value-parser": "^4.2.0", + "style-search": "^0.1.0" + }, + "engines": { + "node": "^18.12 || >=20.9" + }, + "peerDependencies": { + "stylelint": "^16.8.0" + } + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", + "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", + "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", + "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", + "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", + "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", + "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", + "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", + "dev": true, + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", + "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", + "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", + "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", + "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", + "@svgr/babel-plugin-transform-svg-component": "8.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/core": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", + "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^8.1.3", + "snake-case": "^3.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", + "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.21.3", + "entities": "^4.4.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", + "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "@svgr/hast-util-to-babel-ast": "8.0.0", + "svg-parser": "^2.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz", + "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==", + "dev": true, + "dependencies": { + "cosmiconfig": "^8.1.3", + "deepmerge": "^4.3.1", + "svgo": "^3.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/webpack": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz", + "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.21.3", + "@babel/plugin-transform-react-constant-elements": "^7.21.3", + "@babel/preset-env": "^7.20.2", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.21.0", + "@svgr/core": "8.1.0", + "@svgr/plugin-jsx": "8.1.0", + "@svgr/plugin-svgo": "8.1.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@tannin/compile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@tannin/compile/-/compile-1.1.0.tgz", + "integrity": "sha512-n8m9eNDfoNZoxdvWiTfW/hSPhehzLJ3zW7f8E7oT6mCROoMNWCB4TYtv041+2FMAxweiE0j7i1jubQU4MEC/Gg==", + "dependencies": { + "@tannin/evaluate": "^1.2.0", + "@tannin/postfix": "^1.1.0" + } + }, + "node_modules/@tannin/evaluate": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@tannin/evaluate/-/evaluate-1.2.0.tgz", + "integrity": "sha512-3ioXvNowbO/wSrxsDG5DKIMxC81P0QrQTYai8zFNY+umuoHWRPbQ/TuuDEOju9E+jQDXmj6yI5GyejNuh8I+eg==" + }, + "node_modules/@tannin/plural-forms": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@tannin/plural-forms/-/plural-forms-1.1.0.tgz", + "integrity": "sha512-xl9R2mDZO/qiHam1AgMnAES6IKIg7OBhcXqy6eDsRCdXuxAFPcjrej9HMjyCLE0DJ/8cHf0i5OQTstuBRhpbHw==", + "dependencies": { + "@tannin/compile": "^1.1.0" + } + }, + "node_modules/@tannin/postfix": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@tannin/postfix/-/postfix-1.1.0.tgz", + "integrity": "sha512-oocsqY7g0cR+Gur5jRQLSrX2OtpMLMse1I10JQBm8CdGMrDkh1Mg2gjsiquMHRtBs4Qwu5wgEp5GgIYHk4SNPw==" + }, + "node_modules/@tannin/sprintf": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@tannin/sprintf/-/sprintf-1.3.3.tgz", + "integrity": "sha512-RwARl+hFwhzy0tg9atWcchLFvoQiOh4rrP7uG2N5E4W80BPCUX0ElcUR9St43fxB9EfjsW2df9Qp+UsTbvQDjA==" + }, + "node_modules/@tootallnate/once": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.1.tgz", + "integrity": "sha512-HqmEUIGRJ5fSXchkVgR5F7qn48bDBzv0kWj/Kfu5e6uci4UlEeng4331LnBkWffb++Ei3FOVLxo8JJWMFBDMeQ==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "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 + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.2.tgz", + "integrity": "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==", + "dev": true, + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.28.2" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "dev": true, + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.25", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.25.tgz", + "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "^1" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.1.1.tgz", + "integrity": "sha512-v4zIMr/cX7/d2BpAEX3KNKL/JrT1s43s96lLvvdTmza1oEvDudCqK9aF/djc/SWgy8Yh0h30TZx5VpzqFCxk5A==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/express/node_modules/@types/express-serve-static-core": { + "version": "4.19.8", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.8.tgz", + "integrity": "sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/http-errors": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", + "dev": true + }, + "node_modules/@types/http-proxy": { + "version": "1.17.17", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.17.tgz", + "integrity": "sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jsdom": { + "version": "20.0.1", + "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz", + "integrity": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/tough-cookie": "*", + "parse5": "^7.0.0" + } + }, + "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 + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "dev": true + }, + "node_modules/@types/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", + "dev": true + }, + "node_modules/@types/mysql": { + "version": "2.15.26", + "resolved": "https://registry.npmjs.org/@types/mysql/-/mysql-2.15.26.tgz", + "integrity": "sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/node": { + "version": "20.19.41", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.41.tgz", + "integrity": "sha512-ECymXOukMnOoVkC2bb1Vc/w/836DXncOg5m8Xj1RH7xSHZJWNYY6Zh7EH477vcnD5egKNNfy2RpNOmuChhFPgQ==", + "dev": true, + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@types/node-forge": { + "version": "1.3.14", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.14.tgz", + "integrity": "sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "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 + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "dev": true + }, + "node_modules/@types/pg": { + "version": "8.6.1", + "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.6.1.tgz", + "integrity": "sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==", + "dev": true, + "dependencies": { + "@types/node": "*", + "pg-protocol": "*", + "pg-types": "^2.2.0" + } + }, + "node_modules/@types/pg-pool": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/pg-pool/-/pg-pool-2.0.6.tgz", + "integrity": "sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ==", + "dev": true, + "dependencies": { + "@types/pg": "*" + } + }, + "node_modules/@types/prop-types": { + "version": "15.7.15", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", + "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==" + }, + "node_modules/@types/qs": { + "version": "6.15.1", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.15.1.tgz", + "integrity": "sha512-GZHUBZR9hckSUhrxmp1nG6NwdpM9fCunJwyThLW1X3AyHgd9IlHb6VANpQQqDr2o/qQp6McZ3y/IA2rVzKzSbw==", + "dev": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true + }, + "node_modules/@types/react": { + "version": "18.3.29", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.29.tgz", + "integrity": "sha512-ch0qJdr2JY0r04NXSprbK6TXOgnaJ1Tz23fm5W+z0/CBah6BSBc3n96h7K9GOtwh0HrilNWHIBzE1Ko4Dcw/Wg==", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.2.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.7", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz", + "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", + "peerDependencies": { + "@types/react": "^18.0.0" + } + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "dev": true + }, + "node_modules/@types/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==", + "dev": true + }, + "node_modules/@types/send": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz", + "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "dev": true, + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.10.tgz", + "integrity": "sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==", + "dev": true, + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "<1" + } + }, + "node_modules/@types/serve-static/node_modules/@types/send": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.6.tgz", + "integrity": "sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==", + "dev": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/shimmer": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/shimmer/-/shimmer-1.2.0.tgz", + "integrity": "sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==", + "dev": true + }, + "node_modules/@types/sockjs": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true + }, + "node_modules/@types/tedious": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/@types/tedious/-/tedious-4.0.14.tgz", + "integrity": "sha512-KHPsfX/FoVbUGbyYvk1q9MMQHLPeRZhRJZdO45Q4YjvFkv4hMNghCWTvy7rdKessBsmtz4euWCWAB6/tVpI1Iw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/tough-cookie": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", + "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", + "dev": true + }, + "node_modules/@types/ws": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "17.0.35", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz", + "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true + }, + "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, + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", + "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/type-utils": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz", + "integrity": "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", + "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", + "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", + "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", + "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz", + "integrity": "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", + "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "semver": "^7.5.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/semver": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz", + "integrity": "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", + "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/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, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.1.tgz", + "integrity": "sha512-mUFwbeTqrVgDQxFveS+df2yfap6iuP20NAKAsBt5jDEoOTDew+zwLAOilHCeQJOVSvmgCX4ogqIrA0mnyr08yQ==", + "dev": true + }, + "node_modules/@unrs/resolver-binding-android-arm-eabi": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.12.2.tgz", + "integrity": "sha512-g5T90pqg1bo/7mytQx6F4iBNC0Wsh9cu+z9veDbFjc7HjpesJFWD7QMS0NGStXM075+7dJPPVvBbpZlnrdpi/w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-android-arm64": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.12.2.tgz", + "integrity": "sha512-YGCRZv/9GLhwmz6mYDeTsm/92BAyR28l6c2ReweVW5pWgfsitWLY8upvfRlGdoyD8HjeTHSYJWyZGD4KJA/nFQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-arm64": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.12.2.tgz", + "integrity": "sha512-u9DiNT1auQMO20A9SyTuG3wUgQWB9Z7KjAg0uFuCDR1FsAY8A0CG2S6JpHS1xwm/w1G08bjXZDcyOCjv1WAm2w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-x64": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.12.2.tgz", + "integrity": "sha512-f7rPLi/T1HVKZu/u6t87lroib16n8vrSzcyxI7lg4BGO9UF26KhQL44sd9eOUgrTYhvRXtWOIZT5PejdPyJfUA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-freebsd-x64": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.12.2.tgz", + "integrity": "sha512-BpcOjWCJub6nRZUS2zA20pmLvjtqAtGejETaIyRLiZiQf++cbrjltLA5NN/xaXfqeOBOSlMFbemIl5/S5tljmg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.12.2.tgz", + "integrity": "sha512-vZTDvdSISZjJx66OzJqtsOhzifbqRjbmI1Mnu49fQDwog5GtDI4QidRiEAYbZCRj9C8YZEW+3ZjqsyS9GR4k2A==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.12.2.tgz", + "integrity": "sha512-BiPI+IrIlwcW4nLLMM21+B1dFPzd55yAVgVGrdgDjNef+ch03GdxrcyaIz8X9SsQirh/kCQ7mviyWlMxdh2D7g==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.12.2.tgz", + "integrity": "sha512-zJc0H99FEPoFfSrNpa91HYfxzfAJCr502oxNK1cfdC9hlaFI43RT+JFCann9JUgZmLzzntChHyn13Sgn9ljHNg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-musl": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.12.2.tgz", + "integrity": "sha512-KQ3Lki6l+Pz1k/eBipN41ES+YUK30beLGb9YqcB1O542cyLCNE6GaxrfcY3T6EezmGGk84wb5XyO9loTM9tkcA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-loong64-gnu": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-loong64-gnu/-/resolver-binding-linux-loong64-gnu-1.12.2.tgz", + "integrity": "sha512-3SJGEh1DborhG6pyxvhPzCT4bbSIVihsvgJc13P1bHG7KLdNDaF9T3gsTwFc7Jw/5Y5/iWOjkEx7Zy0NvCGX3Q==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-loong64-musl": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-loong64-musl/-/resolver-binding-linux-loong64-musl-1.12.2.tgz", + "integrity": "sha512-jiuG/Obbel7uw1PwHNFfrkiKhLAF6mnyZ6aWlOAVN9WqKm8v0OFGnciJIHu8+CMvXLQ8AD51LPzAoUfT21D5Ew==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.12.2.tgz", + "integrity": "sha512-q7xRvVpmcfeL+LlZg8Pbbo6QaTZwDU5BaGZbwfhkEsXJn3Was8xYfE0RBH266xZt0rM6B7i8xAYIvjthuUIWHg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.12.2.tgz", + "integrity": "sha512-0CVdx6lcnT3Q9inOH8tsMIOJ6ImndllMjqJHg8RLVdB7Vq4SfkEXl9mCSsVNuNA4MCYycRicCUxPCabVHJRr6A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.12.2.tgz", + "integrity": "sha512-iOwlRo9vnp6R6ohHQS11n0NnfdXx/omhkocmIfaPRpQhKZ+3BDMkkdRVh53qjkFkpPddf+FETA28NwGN7l5l+w==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.12.2.tgz", + "integrity": "sha512-HYJtLfXq94q8iZNFT1lknx258wlkkWhZeUXJRqzKBBUJ00CvZ+N33zgbCqimLjsyw5Va6uUxhVa12mI+kaveEw==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-gnu": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.12.2.tgz", + "integrity": "sha512-mPsUhunKKDih5O96Y6enDQyHc1SqBPlY1E/SfMWDM3EdJ95Z9CArPeCVwCCqbP45ljvivdEk8Fxn+SIb1rDAJQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-musl": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.12.2.tgz", + "integrity": "sha512-azrt6+5ydLd8Vt210AAFis/lZevSfPw93EJRIJG+xPu4WCJ8K0kppCTpMyLPcKT7H15M4Jnt2tMp5bOvCkRC6A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-openharmony-arm64": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-openharmony-arm64/-/resolver-binding-openharmony-arm64-1.12.2.tgz", + "integrity": "sha512-YZ9hP4O0X9PQb8eO980qmLNGH4zT3I9+SZTdt0Pr0YyuGQhYKoOZkV02VzrzyOZJ5xIJ3UFIenKkUkGg8GjgWQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@unrs/resolver-binding-wasm32-wasi": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.12.2.tgz", + "integrity": "sha512-tYFDIkMxSflfEc/h92ZWNsZlHSwgimbNHSO3PL2JWQHfCuC2q316jMyYU9TIWZsFK2bQwyK5VAdYgn8ygPj69A==", + "cpu": [ + "wasm32" + ], + "dev": true, + "optional": true, + "dependencies": { + "@emnapi/core": "1.10.0", + "@emnapi/runtime": "1.10.0", + "@napi-rs/wasm-runtime": "^1.1.4" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.12.2.tgz", + "integrity": "sha512-qzNyg3xL0VPQmCaUh+N5jSitce6k+uCBfMDesWRnlULOZaqUkaJ0ybdT+UqlAWJoQjuqfIU/0Ptx9bteN4D82g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.12.2.tgz", + "integrity": "sha512-WD9sY00OfpHVGfsnHZoA8jVT+esS/Bg8z8jzxp5BnDCjjwsuKsPQrzswwpFy4J1AUJbXPRfkpcX0mXrzeXW79g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-x64-msvc": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.12.2.tgz", + "integrity": "sha512-nAB74NfSNKknqQ1RrYj6uz8FcXEomu/MATJZxh/x+BArzN2U3JbOYC0APYzUIGhVY3m5hRxA8VPNdPBoG8txlA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webpack-cli/configtest": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", + "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", + "dev": true, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", + "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", + "dev": true, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", + "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", + "dev": true, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/@wordpress/api-fetch": { + "version": "7.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/api-fetch/-/api-fetch-7.46.0.tgz", + "integrity": "sha512-QOxuHSUXMzLat3Y90+0HNUDPSlBUK53r4mQ4m7f4/OKaWRRZU5jzvDBJyj52dEST7yJ1eZtuqUkEwK2T1MEBfQ==", + "dependencies": { + "@wordpress/i18n": "^6.19.0", + "@wordpress/url": "^4.46.0" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + } + }, + "node_modules/@wordpress/api-fetch/node_modules/@wordpress/i18n": { + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-6.19.0.tgz", + "integrity": "sha512-hRXd2E0SF9OQf22ZZWw7Ny/o+Q9u8jINiF1p0bF+rnSDKQUgoStihak6YiazWVRiIEYwctzotKXlt0HePJelXA==", + "dependencies": { + "@tannin/sprintf": "^1.3.2", + "@wordpress/hooks": "^4.46.0", + "gettext-parser": "^1.3.1", + "memize": "^2.1.0", + "tannin": "^1.2.0" + }, + "bin": { + "pot-to-php": "tools/pot-to-php.js" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + } + }, + "node_modules/@wordpress/babel-preset-default": { + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-8.46.0.tgz", + "integrity": "sha512-HpjX32OkbSpNZkhVo2WdQuP1MkpVg24hVaq7uM5whDdYR88pSc5bfhJ1cNsWagYJQvuYFBf+YIBSvxref4ojXA==", + "dev": true, + "dependencies": { + "@babel/core": "7.25.7", + "@babel/plugin-syntax-import-attributes": "7.26.0", + "@babel/plugin-transform-react-jsx": "7.25.7", + "@babel/plugin-transform-runtime": "7.25.7", + "@babel/preset-env": "7.25.7", + "@babel/preset-typescript": "7.25.7", + "@wordpress/browserslist-config": "^6.46.0", + "@wordpress/warning": "^3.46.0", + "browserslist": "^4.21.10", + "core-js": "^3.31.0", + "react": "^18.3.0" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + } + }, + "node_modules/@wordpress/babel-preset-default/node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", + "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@wordpress/babel-preset-default/node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.7.tgz", + "integrity": "sha512-vILAg5nwGlR9EXE8JIOX4NHXd49lrYbN8hnjffDtoULwpL9hUx/N55nqh2qd0q6FyNDfjl9V79ecKGvFbcSA0Q==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.7", + "@babel/helper-module-imports": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/plugin-syntax-jsx": "^7.25.7", + "@babel/types": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@wordpress/babel-preset-default/node_modules/@babel/preset-env": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.7.tgz", + "integrity": "sha512-Gibz4OUdyNqqLj+7OAvBZxOD7CklCtMA5/j0JgUEwOnaRULsPDXmic2iKxL2DX2vQduPR5wH2hjZas/Vr/Oc0g==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.25.7", + "@babel/helper-compilation-targets": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-validator-option": "^7.25.7", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.7", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.7", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.25.7", + "@babel/plugin-syntax-import-attributes": "^7.25.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.25.7", + "@babel/plugin-transform-async-generator-functions": "^7.25.7", + "@babel/plugin-transform-async-to-generator": "^7.25.7", + "@babel/plugin-transform-block-scoped-functions": "^7.25.7", + "@babel/plugin-transform-block-scoping": "^7.25.7", + "@babel/plugin-transform-class-properties": "^7.25.7", + "@babel/plugin-transform-class-static-block": "^7.25.7", + "@babel/plugin-transform-classes": "^7.25.7", + "@babel/plugin-transform-computed-properties": "^7.25.7", + "@babel/plugin-transform-destructuring": "^7.25.7", + "@babel/plugin-transform-dotall-regex": "^7.25.7", + "@babel/plugin-transform-duplicate-keys": "^7.25.7", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.7", + "@babel/plugin-transform-dynamic-import": "^7.25.7", + "@babel/plugin-transform-exponentiation-operator": "^7.25.7", + "@babel/plugin-transform-export-namespace-from": "^7.25.7", + "@babel/plugin-transform-for-of": "^7.25.7", + "@babel/plugin-transform-function-name": "^7.25.7", + "@babel/plugin-transform-json-strings": "^7.25.7", + "@babel/plugin-transform-literals": "^7.25.7", + "@babel/plugin-transform-logical-assignment-operators": "^7.25.7", + "@babel/plugin-transform-member-expression-literals": "^7.25.7", + "@babel/plugin-transform-modules-amd": "^7.25.7", + "@babel/plugin-transform-modules-commonjs": "^7.25.7", + "@babel/plugin-transform-modules-systemjs": "^7.25.7", + "@babel/plugin-transform-modules-umd": "^7.25.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.7", + "@babel/plugin-transform-new-target": "^7.25.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.7", + "@babel/plugin-transform-numeric-separator": "^7.25.7", + "@babel/plugin-transform-object-rest-spread": "^7.25.7", + "@babel/plugin-transform-object-super": "^7.25.7", + "@babel/plugin-transform-optional-catch-binding": "^7.25.7", + "@babel/plugin-transform-optional-chaining": "^7.25.7", + "@babel/plugin-transform-parameters": "^7.25.7", + "@babel/plugin-transform-private-methods": "^7.25.7", + "@babel/plugin-transform-private-property-in-object": "^7.25.7", + "@babel/plugin-transform-property-literals": "^7.25.7", + "@babel/plugin-transform-regenerator": "^7.25.7", + "@babel/plugin-transform-reserved-words": "^7.25.7", + "@babel/plugin-transform-shorthand-properties": "^7.25.7", + "@babel/plugin-transform-spread": "^7.25.7", + "@babel/plugin-transform-sticky-regex": "^7.25.7", + "@babel/plugin-transform-template-literals": "^7.25.7", + "@babel/plugin-transform-typeof-symbol": "^7.25.7", + "@babel/plugin-transform-unicode-escapes": "^7.25.7", + "@babel/plugin-transform-unicode-property-regex": "^7.25.7", + "@babel/plugin-transform-unicode-regex": "^7.25.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.25.7", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.38.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@wordpress/babel-preset-default/node_modules/@babel/preset-env/node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@wordpress/babel-preset-default/node_modules/@babel/preset-env/node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@wordpress/babel-preset-default/node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", + "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2", + "core-js-compat": "^3.38.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@wordpress/babel-preset-default/node_modules/@babel/preset-typescript": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.25.7.tgz", + "integrity": "sha512-rkkpaXJZOFN45Fb+Gki0c+KMIglk4+zZXOoMJuyEK8y8Kkc8Jd3BDmP7qPsz0zQMJj+UD7EprF+AqAXcILnexw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-validator-option": "^7.25.7", + "@babel/plugin-syntax-jsx": "^7.25.7", + "@babel/plugin-transform-modules-commonjs": "^7.25.7", + "@babel/plugin-transform-typescript": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@wordpress/base-styles": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-8.0.0.tgz", + "integrity": "sha512-livtgwnvBm7xbpm/gaBxwtdZm3KCXq210UNsr48WA8TGfi/OfZ4oOzk4Mp4/ZHsq2baaXzhZ0iXjyR7oyaOTsw==", + "dev": true, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + } + }, + "node_modules/@wordpress/browserslist-config": { + "version": "6.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-6.46.0.tgz", + "integrity": "sha512-FV/CN/Qjvu0Ts1h63w0xuZyhKzipyePMFGXPmbZawu+fHpib/2D/JyAHb0wVpOD4qz8XOfB8Tyi9iMPJzAI87w==", + "dev": true, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin": { + "version": "6.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-6.46.0.tgz", + "integrity": "sha512-Lm2JFEI4NrcEQFdnIXK+CsUQGK/LTiRxrDY0ocpTLt5hhb3DJm3Ds2HFn8fa//H0U5B3FvO3XyGMHOUf9Q12Pg==", + "dev": true, + "dependencies": { + "json2php": "^0.0.7" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/json2php": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/json2php/-/json2php-0.0.7.tgz", + "integrity": "sha512-dnSoUiLAoVaMXxFsVi4CrPVYMKOuDBXTghXSmMINX44RZ8WM9cXlY7UqrQnlAcODCVO7FV3+8t/5nDKAjimLfg==", + "dev": true + }, + "node_modules/@wordpress/e2e-test-utils-playwright": { + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils-playwright/-/e2e-test-utils-playwright-1.46.0.tgz", + "integrity": "sha512-Bls5BGRNda0Oo4biTZ/KIwO8iHBeovvfWNfrPXReIsrW1td1UqXw2Z9l0/LaP3euJZFNom2QExHCOba+8eN5lQ==", + "dev": true, + "dependencies": { + "change-case": "^4.1.2", + "get-port": "^5.1.1", + "lighthouse": "^12.2.2", + "mime": "^3.0.0", + "web-vitals": "^4.2.1" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "@playwright/test": ">=1", + "@types/node": "^20.17.10" + } + }, + "node_modules/@wordpress/element": { + "version": "6.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-6.46.0.tgz", + "integrity": "sha512-hjnrqZi0cZVdkmN0xQavKfSQJYAkb9pVSnDPpuX65OLxeD9/EWkIXvFzBb+nH8c4NzKKSqQU96XCTQrH37OCIA==", + "dependencies": { + "@types/react": "^18.3.27", + "@types/react-dom": "^18.3.1", + "@wordpress/escape-html": "^3.46.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.0.0", + "react": "^18.3.0", + "react-dom": "^18.3.0" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + } + }, + "node_modules/@wordpress/escape-html": { + "version": "3.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/escape-html/-/escape-html-3.46.0.tgz", + "integrity": "sha512-SzrVQwLQBZdaSStYVpTKeYqp97NABz1w551T8me3msDDsfhWWPhSZiZTNaGZ6iqUNfOX2uKyZsqXedvkqwLHqA==", + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + } + }, + "node_modules/@wordpress/eslint-plugin": { + "version": "22.22.0", + "resolved": "https://registry.npmjs.org/@wordpress/eslint-plugin/-/eslint-plugin-22.22.0.tgz", + "integrity": "sha512-DLGm5i8Gn0vjkZGKF49U2pYME5Jl9AvmoMJB2G508d+sB/oTSkPmM0baUP7G5zxbd1aqfNTaD0KjdyGyWFFKOA==", + "dev": true, + "dependencies": { + "@babel/eslint-parser": "7.25.7", + "@typescript-eslint/eslint-plugin": "^6.4.1", + "@typescript-eslint/parser": "^6.4.1", + "@wordpress/babel-preset-default": "^8.36.0", + "@wordpress/prettier-config": "^4.36.0", + "cosmiconfig": "^7.0.0", + "eslint-config-prettier": "^8.3.0", + "eslint-import-resolver-typescript": "^4.4.4", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-jest": "^27.4.3", + "eslint-plugin-jsdoc": "^46.4.6", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-playwright": "^0.15.3", + "eslint-plugin-prettier": "^5.0.0", + "eslint-plugin-react": "^7.27.0", + "eslint-plugin-react-hooks": "^4.3.0", + "globals": "^13.12.0", + "requireindex": "^1.2.0" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "@babel/core": ">=7", + "eslint": ">=8", + "prettier": ">=3", + "typescript": ">=5" + }, + "peerDependenciesMeta": { + "prettier": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/@wordpress/eslint-plugin/node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@wordpress/hooks": { + "version": "4.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-4.46.0.tgz", + "integrity": "sha512-fsKw4dmw4voIRoKc8t0XRREQlFvwj9XS/jTXvkh6mqRYCDpaEnrdB2Ji5jgbRXEMPU0GKVGMeAn5Wwi56gjBMg==", + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + } + }, + "node_modules/@wordpress/i18n": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-5.26.0.tgz", + "integrity": "sha512-YHzaUWlCuN2ynl47qbsdMkTGtP52+E1giDOdWBgUaSexUYjbeFxKFUzRMB0Wuh1psL80+VzvJOH/mU440KAJnA==", + "dependencies": { + "@babel/runtime": "7.25.7", + "@wordpress/hooks": "^4.26.0", + "gettext-parser": "^1.3.1", + "memize": "^2.1.0", + "sprintf-js": "^1.1.1", + "tannin": "^1.2.0" + }, + "bin": { + "pot-to-php": "tools/pot-to-php.js" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + } + }, + "node_modules/@wordpress/jest-console": { + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/jest-console/-/jest-console-8.46.0.tgz", + "integrity": "sha512-bD5FD/LDbDyfadZzxfUCOM6uBXlIfRFj+AAsgmCHuUBW3c7PrsZXDGh5KRaR8E0XLoeLpkxA78fpUaY8S1+XPw==", + "dev": true, + "dependencies": { + "jest-matcher-utils": "^29.6.2", + "jest-mock": "^29.6.2" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "jest": ">=29" + } + }, + "node_modules/@wordpress/jest-preset-default": { + "version": "12.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/jest-preset-default/-/jest-preset-default-12.46.0.tgz", + "integrity": "sha512-R6D1IMFD1lkpTg8MI5g0c5Bb2TFwp37ZIHR5Xsv7cfK4e73Xk/NsQ5ImP0MyPNIu90IYMcGDOgCdUll7fgeLZg==", + "dev": true, + "dependencies": { + "@wordpress/jest-console": "^8.46.0", + "babel-jest": "29.7.0" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "@babel/core": ">=7", + "jest": ">=29" + } + }, + "node_modules/@wordpress/npm-package-json-lint-config": { + "version": "5.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/npm-package-json-lint-config/-/npm-package-json-lint-config-5.46.0.tgz", + "integrity": "sha512-8LoW3tNXA1cjehpP/12g20HnbYAQ7n7//D6f3cha4Ev295XXGszxI2FSzk7OLEgV1QtQgCyijEC196RABRCilQ==", + "dev": true, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "npm-package-json-lint": ">=6.0.0" + } + }, + "node_modules/@wordpress/postcss-plugins-preset": { + "version": "5.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/postcss-plugins-preset/-/postcss-plugins-preset-5.46.0.tgz", + "integrity": "sha512-0cQq8mHFKqDCunu84oekhw/E2bE1paOxKPGAxe8mXdCAYrW/ZyIlHlNLBAy/EfI621UMsQYAz95KrJoKA9h0YA==", + "dev": true, + "dependencies": { + "@wordpress/base-styles": "^8.0.0", + "autoprefixer": "^10.4.20", + "postcss-import": "^16.1.1" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/@wordpress/prettier-config": { + "version": "4.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/prettier-config/-/prettier-config-4.46.0.tgz", + "integrity": "sha512-KjqvxbBohc0dtZBCYy82chj9WCa5nSQP7LuXrsTo5xFacRrNaB101TlsogVoaHADbOlcrayC0yRPzVmkA8gJFg==", + "dev": true, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "prettier": ">=3" + } + }, + "node_modules/@wordpress/private-apis": { + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-1.46.0.tgz", + "integrity": "sha512-l8dsEuxq6CrtsI7Twfpn6CbPHmGBUQoGN4oLPJG1Bqsr1yXXLU/bEx9KAQN9emxRjXaELPsn7x7TVx0TUoKyJw==", + "dev": true, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + } + }, + "node_modules/@wordpress/scripts": { + "version": "30.27.0", + "resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-30.27.0.tgz", + "integrity": "sha512-gXGptazCxAaR7g8kcN5joj7B5fCm0VeBHOmnDBs2dbQ4W4F3tfzdg6CTEj8LonF9bWQXlSy3ku8EqWCdkSG9Xw==", + "dev": true, + "dependencies": { + "@babel/core": "7.25.7", + "@pmmmwh/react-refresh-webpack-plugin": "^0.5.11", + "@svgr/webpack": "^8.0.1", + "@wordpress/babel-preset-default": "^8.34.0", + "@wordpress/browserslist-config": "^6.34.0", + "@wordpress/dependency-extraction-webpack-plugin": "^6.34.0", + "@wordpress/e2e-test-utils-playwright": "^1.34.0", + "@wordpress/eslint-plugin": "^22.20.0", + "@wordpress/jest-preset-default": "^12.34.0", + "@wordpress/npm-package-json-lint-config": "^5.34.0", + "@wordpress/postcss-plugins-preset": "^5.34.0", + "@wordpress/prettier-config": "^4.34.0", + "@wordpress/stylelint-config": "^23.26.0", + "adm-zip": "^0.5.9", + "babel-jest": "29.7.0", + "babel-loader": "9.2.1", + "browserslist": "^4.21.10", + "chalk": "^4.0.0", + "check-node-version": "^4.1.0", + "copy-webpack-plugin": "^10.2.0", + "cross-spawn": "^7.0.6", + "css-loader": "^6.2.0", + "cssnano": "^6.0.1", + "cwd": "^0.10.0", + "dir-glob": "^3.0.1", + "eslint": "^8.3.0", + "expect-puppeteer": "^4.4.0", + "fast-glob": "^3.2.7", + "filenamify": "^4.2.0", + "jest": "^29.6.2", + "jest-dev-server": "^10.1.4", + "jest-environment-jsdom": "^29.6.2", + "jest-environment-node": "^29.6.2", + "json2php": "^0.0.9", + "markdownlint-cli": "^0.31.1", + "merge-deep": "^3.0.3", + "mini-css-extract-plugin": "^2.9.2", + "minimist": "^1.2.0", + "npm-package-json-lint": "^6.4.0", + "npm-packlist": "^3.0.0", + "postcss": "^8.4.5", + "postcss-loader": "^6.2.1", + "prettier": "npm:wp-prettier@3.0.3", + "puppeteer-core": "^23.10.1", + "react-refresh": "^0.14.0", + "read-pkg-up": "^7.0.1", + "resolve-bin": "^0.4.0", + "rtlcss": "^4.3.0", + "sass": "^1.54.0", + "sass-loader": "^16.0.3", + "schema-utils": "^4.2.0", + "source-map-loader": "^3.0.0", + "stylelint": "^16.8.2", + "terser-webpack-plugin": "^5.3.10", + "url-loader": "^4.1.1", + "webpack": "^5.97.0", + "webpack-bundle-analyzer": "^4.9.1", + "webpack-cli": "^5.1.4", + "webpack-dev-server": "^4.15.1" + }, + "bin": { + "wp-scripts": "bin/wp-scripts.js" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "@playwright/test": "^1.56.1", + "@wordpress/env": "^10.0.0", + "react": "^18.0.0", + "react-dom": "^18.0.0" + }, + "peerDependenciesMeta": { + "@wordpress/env": { + "optional": true + } + } + }, + "node_modules/@wordpress/style-runtime": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@wordpress/style-runtime/-/style-runtime-0.2.0.tgz", + "integrity": "sha512-9pLmilkgWqTvIlrnnXbW7ECfEPvCSYOve7btXgYGgMOzrGs12ijnG+kSGGg0aJhEV8OCzQ/QdVBh4s1zQZ0bLQ==", + "dev": true, + "engines": { + "node": ">=20.10.0", + "npm": ">=10.2.3" + } + }, + "node_modules/@wordpress/stylelint-config": { + "version": "23.38.0", + "resolved": "https://registry.npmjs.org/@wordpress/stylelint-config/-/stylelint-config-23.38.0.tgz", + "integrity": "sha512-F1Bo45fhWFrpEXlkkwVfopmmgM8PwbzplrlBwu1FGm+9ohF890IXKhjjQ/CDphE9pMBCQnAyofF6ESymhbEm5A==", + "dev": true, + "dependencies": { + "@stylistic/stylelint-plugin": "^3.0.1", + "@wordpress/theme": "^0.13.0", + "stylelint-config-recommended": "^14.0.1", + "stylelint-config-recommended-scss": "^14.1.0" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "stylelint": "^16.8.2", + "stylelint-scss": "^6.4.0" + } + }, + "node_modules/@wordpress/theme": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@wordpress/theme/-/theme-0.13.0.tgz", + "integrity": "sha512-4Lasso3BPej43c7e+eO+YN/fl/mcg/Q9+nclp1FmV6xdWFiUXvfwAOsEeNQQ/5s5mw5aCgseK3//qX5gydhfUA==", + "dev": true, + "dependencies": { + "@wordpress/element": "^6.46.0", + "@wordpress/private-apis": "^1.46.0", + "@wordpress/style-runtime": "^0.2.0", + "colorjs.io": "^0.6.0", + "memize": "^2.1.0" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0", + "stylelint": "^16.8.2" + }, + "peerDependenciesMeta": { + "stylelint": { + "optional": true + } + } + }, + "node_modules/@wordpress/url": { + "version": "4.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-4.46.0.tgz", + "integrity": "sha512-LGja+dYBzaNkkPSE5ddPgk03M66wadUheuhyOLTu4uLQU2UmipN9qQgI4VAnZLrnXs7dqb4fJ8f0AuNmshHpbg==", + "dependencies": { + "remove-accents": "^0.5.0" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + } + }, + "node_modules/@wordpress/warning": { + "version": "3.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-3.46.0.tgz", + "integrity": "sha512-Z1CE6x732iMD+NcWziitqWUyhxVy1JlioHDtQUU2oqhDcA0d/P2ifOc/af02dDYFIuLh7umurU19LqpBX6EoWw==", + "dev": true, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", + "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", + "dev": true, + "dependencies": { + "acorn": "^8.1.0", + "acorn-walk": "^8.0.2" + } + }, + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-import-phases": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", + "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", + "dev": true, + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "acorn": "^8.14.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, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.5.tgz", + "integrity": "sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==", + "dev": true, + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/adm-zip": { + "version": "0.5.17", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.17.tgz", + "integrity": "sha512-+Ut8d9LLqwEvHHJl1+PIHqoyDxFgVN847JTVM3Izi3xHDWPE4UtzzXysMZQs64DMcrJfBeS/uoEP4AD3HQHnQQ==", + "dev": true, + "engines": { + "node": ">=12.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", + "dev": true, + "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/ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true, + "peerDependencies": { + "ajv": ">=5.0.0" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "dev": true, + "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/ajv-formats/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 + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.9.tgz", + "integrity": "sha512-ozbS3LuenHVxNRh/wdnN16QapUHzauqSomAl1jwwJRRsGwFwtj644lIhxfWu0Fy0acCij2+AEgHvjscq3dlVXg==", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "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, + "engines": { + "node": ">=8" + } + }, + "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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/are-docs-informative": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", + "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/argparse/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 + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "dev": true, + "engines": { + "node": ">=0.10.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, + "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-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "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, + "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-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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, + "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.findlastindex": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", + "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-shim-unscopables": "^1.1.0" + }, + "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, + "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, + "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, + "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, + "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/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", + "dev": true + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/atomically": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/atomically/-/atomically-2.1.1.tgz", + "integrity": "sha512-P4w9o2dqARji6P7MHprklbfiArZAWvo07yW7qs3pdljb3BWr12FIB7W+p0zJiuiVsUpRO0iZn1kFFcpPegg0tQ==", + "dev": true, + "dependencies": { + "stubborn-fs": "^2.0.0", + "when-exit": "^2.1.4" + } + }, + "node_modules/autoprefixer": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.5.0.tgz", + "integrity": "sha512-FMhOoZV4+qR6aTUALKX2rEqGG+oyATvwBt9IIzVR5rMa2HRWPkxf+P+PAJLD1I/H5/II+HuZcBJYEFBpq39ong==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.28.2", + "caniuse-lite": "^1.0.30001787", + "fraction.js": "^5.3.4", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.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", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.11.4", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.11.4.tgz", + "integrity": "sha512-KunSNx+TVpkAw/6ULfhnx+HWRecjqZGTOyquAoWHYLRSdK1tB5Ihce1ZW+UY3fj33bYAFWPu7W/GRSmmrCGuxA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/axios": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.16.1.tgz", + "integrity": "sha512-caYkukvroVPO8KrzuJEb50Hm07KwfBZPEC3VeFHTsqWHvKTsy54hjJz9BS/cdaypROE2rH6xvm9mHX4fgWkr3A==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.16.0", + "form-data": "^4.0.5", + "https-proxy-agent": "^5.0.1", + "proxy-from-env": "^2.1.0" + } + }, + "node_modules/axios/node_modules/proxy-from-env": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz", + "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-loader": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.2.1.tgz", + "integrity": "sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==", + "dev": true, + "dependencies": { + "find-cache-dir": "^4.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0", + "webpack": ">=5" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.17", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.17.tgz", + "integrity": "sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.28.6", + "@babel/helper-define-polyfill-provider": "^0.6.8", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.2.tgz", + "integrity": "sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.8", + "core-js-compat": "^3.48.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.8.tgz", + "integrity": "sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.8" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz", + "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.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 + }, + "node_modules/bare-events": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.3.tgz", + "integrity": "sha512-HdUm8EMQBLaJvGUdidNNbqpA1kYkwNcb+MYxkxCLAPJGQzlv9J0C24h8V65Z4c5GLd/JEALDvpFCQgpLJqc0zw==", + "dev": true, + "peerDependencies": { + "bare-abort-controller": "*" + }, + "peerDependenciesMeta": { + "bare-abort-controller": { + "optional": true + } + } + }, + "node_modules/bare-fs": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.7.1.tgz", + "integrity": "sha512-WDRsyVN52eAx/lBamKD6uyw8H4228h/x0sGGGegOamM2cd7Pag88GfMQalobXI+HaEUxpCkbKQUDOQqt9wawRw==", + "dev": true, + "dependencies": { + "bare-events": "^2.5.4", + "bare-path": "^3.0.0", + "bare-stream": "^2.6.4", + "bare-url": "^2.2.2", + "fast-fifo": "^1.3.2" + }, + "engines": { + "bare": ">=1.16.0" + }, + "peerDependencies": { + "bare-buffer": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + } + } + }, + "node_modules/bare-os": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.9.1.tgz", + "integrity": "sha512-6M5XjcnsygQNPMCMPXSK379xrJFiZ/AEMNBmFEmQW8d/789VQATvriyi5r0HYTL9TkQ26rn3kgdTG3aisbrXkQ==", + "dev": 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, + "dependencies": { + "bare-os": "^3.0.1" + } + }, + "node_modules/bare-stream": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.13.1.tgz", + "integrity": "sha512-Vp0cnjYyrEC4whYTymQ+YZi6pBpfiICZO3cfRG8sy67ZNWe951urv1x4eW1BKNngw3U+3fPYb5JQvHbCtxH7Ow==", + "dev": true, + "dependencies": { + "streamx": "^2.25.0", + "teex": "^1.0.1" + }, + "peerDependencies": { + "bare-abort-controller": "*", + "bare-buffer": "*", + "bare-events": "*" + }, + "peerDependenciesMeta": { + "bare-abort-controller": { + "optional": true + }, + "bare-buffer": { + "optional": true + }, + "bare-events": { + "optional": true + } + } + }, + "node_modules/bare-url": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.4.3.tgz", + "integrity": "sha512-Kccpc7ACfXaxfeInfqKcZtW4pT5YBn1mesc4sCsun6sRwtbJ4h+sNOaksUpYEJUKfN65YWC6Bw2OJEFiKxq8nQ==", + "dev": true, + "dependencies": { + "bare-path": "^3.0.0" + } + }, + "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==", + "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" + } + ] + }, + "node_modules/baseline-browser-mapping": { + "version": "2.10.32", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.32.tgz", + "integrity": "sha512-wbPvpyjJPC0zdfdKXxqEL3Ea+bOMD/87X4lftiJkkaBiuG6ALQy1SLmEd7BSmVCuwCQsBrCamgBoLyfFDD1EPg==", + "dev": true, + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/basic-ftp": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.3.1.tgz", + "integrity": "sha512-bopVNp6ugyA150DDuZfPFdt1KZ5a94ZDiwX4hMgZDzF+GttD80lEy8kj98kbyhLXnPvhtIo93mdnLIjpCAeeOw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/body-parser": { + "version": "1.20.5", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.5.tgz", + "integrity": "sha512-3grm+/2tUOvu2cjJkvsIxrv/wVpfXQW4PsQHYm7yk4vfpu7Ekl6nEsYBoJUL6qDwZUx8wUhQ8tR2qz+ad9c9OA==", + "dev": true, + "dependencies": { + "bytes": "~3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "~1.2.0", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "on-finished": "~2.4.1", + "qs": "~6.15.1", + "raw-body": "~2.5.3", + "type-is": "~1.6.18", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/bonjour-service": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.4.0.tgz", + "integrity": "sha512-fGQtj1qdR9vIKjFiWPQd52qIqwjaYqhcI40JEiDuvlZ86E7ZBPBwY9fPgHy9r2rYGIjiRfctNPYz6OQU73ww2w==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "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 + }, + "node_modules/brace-expansion": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.1.tgz", + "integrity": "sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "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, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", + "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "baseline-browser-mapping": "^2.10.12", + "caniuse-lite": "^1.0.30001782", + "electron-to-chromium": "^1.5.328", + "node-releases": "^2.0.36", + "update-browserslist-db": "^1.2.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "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" + } + ], + "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", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacheable": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-2.3.5.tgz", + "integrity": "sha512-EQfaKe09tl615iNvq/TBRWTFf1AKJNXYQSsMx0Z3EI0nA+pVsVPS8wJhnRlkbdacKPh1d0qVIhwTc2zsQNFEEg==", + "dev": true, + "dependencies": { + "@cacheable/memory": "^2.0.8", + "@cacheable/utils": "^2.4.1", + "hookified": "^1.15.0", + "keyv": "^5.6.0", + "qified": "^0.10.1" + } + }, + "node_modules/cacheable/node_modules/keyv": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz", + "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==", + "dev": true, + "dependencies": { + "@keyv/serialize": "^1.1.1" + } + }, + "node_modules/call-bind": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz", + "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==", + "dev": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "get-intrinsic": "^1.3.0", + "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, + "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, + "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, + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001793", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001793.tgz", + "integrity": "sha512-iwSsYWaCOoh26cV8NwNRViHlrfUvYsHDfRVcbtmw0Kg6PJIZZXwMkj1442FYLBGkeUf1juAsU3DTfxW579mrPA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/capital-case": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", + "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "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, + "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/change-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", + "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", + "dependencies": { + "camel-case": "^4.1.2", + "capital-case": "^1.0.4", + "constant-case": "^3.0.4", + "dot-case": "^3.0.4", + "header-case": "^2.0.4", + "no-case": "^3.0.4", + "param-case": "^3.0.4", + "pascal-case": "^3.1.2", + "path-case": "^3.0.4", + "sentence-case": "^3.0.4", + "snake-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/check-node-version": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/check-node-version/-/check-node-version-4.2.1.tgz", + "integrity": "sha512-YYmFYHV/X7kSJhuN/QYHUu998n/TRuDe8UenM3+m5NrkiH670lb9ILqHIvBencvJc4SDh+XcbXMR4b+TtubJiw==", + "dev": true, + "dependencies": { + "chalk": "^3.0.0", + "map-values": "^1.0.1", + "minimist": "^1.2.0", + "object-filter": "^1.0.2", + "run-parallel": "^1.1.4", + "semver": "^6.3.0" + }, + "bin": { + "check-node-version": "bin.js" + }, + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/check-node-version/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", + "dev": true, + "dependencies": { + "readdirp": "^5.0.0" + }, + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/chrome-launcher": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-1.2.1.tgz", + "integrity": "sha512-qmFR5PLMzHyuNJHwOloHPAHhbaNglkfeV/xDtt5b7xiFFyU1I+AZZX0PYseMuhenJSSirgxELYIbswcoc+5H4A==", + "dev": true, + "dependencies": { + "@types/node": "*", + "escape-string-regexp": "^4.0.0", + "is-wsl": "^2.2.0", + "lighthouse-logger": "^2.0.1" + }, + "bin": { + "print-chrome-path": "bin/print-chrome-path.cjs" + }, + "engines": { + "node": ">=12.13.0" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/chromium-bidi": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.11.0.tgz", + "integrity": "sha512-6CJWHkNRoyZyjV9Rwv2lYONZf1Xm0IuDyNq97nwSsxxP3wf5Bwy15K5rOvVKMtJ127jJBmxFUanSAOjgFRxgrA==", + "dev": true, + "dependencies": { + "mitt": "3.0.1", + "zod": "3.23.8" + }, + "peerDependencies": { + "devtools-protocol": "*" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", + "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==", + "dev": true + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clone-deep": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.2.4.tgz", + "integrity": "sha512-we+NuQo2DHhSl+DP6jlUiAhyAjBQrYnpOk15rN6c6JSPScjiCLh8IbSU+VTcph6YS3o7mASE8a0+gbZ7ChLpgg==", + "dev": true, + "dependencies": { + "for-own": "^0.1.3", + "is-plain-object": "^2.0.1", + "kind-of": "^3.0.2", + "lazy-cache": "^1.0.3", + "shallow-clone": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clone-deep/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz", + "integrity": "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==", + "dev": true + }, + "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, + "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 + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "node_modules/colorjs.io": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/colorjs.io/-/colorjs.io-0.6.1.tgz", + "integrity": "sha512-8lyR2wHzuIykCpqHKgluGsqQi5iDm3/a2IgP2GBZrasn2sBRkE4NOGsglZxWLs/jZQoNkmA/KM/8NV16rLUdBg==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/color" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "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, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz", + "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "compressible": "~2.0.18", + "debug": "2.6.9", + "negotiator": "~0.6.4", + "on-headers": "~1.1.0", + "safe-buffer": "5.2.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "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 + }, + "node_modules/configstore": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-7.1.0.tgz", + "integrity": "sha512-N4oog6YJWbR9kGyXvS7jEykLDXIE2C0ILYqNBZBp9iwiJpoCBWYsuAdW6PPFn6w06jjnC+3JstVvWHO4cZqvRg==", + "dev": true, + "dependencies": { + "atomically": "^2.0.3", + "dot-prop": "^9.0.0", + "graceful-fs": "^4.2.11", + "xdg-basedir": "^5.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/constant-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", + "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case": "^2.0.2" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz", + "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==", + "dev": true + }, + "node_modules/copy-webpack-plugin": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-10.2.4.tgz", + "integrity": "sha512-xFVltahqlsRcyyJqQbDY6EYTtyQZF9rf+JPjwHObLdPFMEISqkFkr7mFoVOC6BfYS/dNThyoQKvziugm+OnwBg==", + "dev": true, + "dependencies": { + "fast-glob": "^3.2.7", + "glob-parent": "^6.0.1", + "globby": "^12.0.2", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" + }, + "engines": { + "node": ">= 12.20.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/array-union": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", + "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin/node_modules/globby": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", + "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", + "dev": true, + "dependencies": { + "array-union": "^3.0.1", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.7", + "ignore": "^5.1.9", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/core-js": { + "version": "3.49.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.49.0.tgz", + "integrity": "sha512-es1U2+YTtzpwkxVLwAFdSpaIMyQaq0PBgm3YD1W3Qpsn1NAmO3KSgZfu+oGSWVu6NvLHoHCV/aYcsE5wiB7ALg==", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.49.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.49.0.tgz", + "integrity": "sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==", + "dev": true, + "dependencies": { + "browserslist": "^4.28.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-pure": { + "version": "3.49.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.49.0.tgz", + "integrity": "sha512-XM4RFka59xATyJv/cS3O3Kml72hQXUeGRuuTmMYFxwzc9/7C8OYTaIR/Ji+Yt8DXzsFLNhat15cE/JP15HrCgw==", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cosmiconfig/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 + }, + "node_modules/cosmiconfig/node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/csp_evaluator": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/csp_evaluator/-/csp_evaluator-1.1.5.tgz", + "integrity": "sha512-EL/iN9etCTzw/fBnp0/uj0f5BOOGvZut2mzsiiBZ/FdT6gFQCKRO/tmcKOxn5drWZ2Ndm/xBb1SI4zwWbGtmIw==", + "dev": true + }, + "node_modules/css-declaration-sorter": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.4.0.tgz", + "integrity": "sha512-LTuzjPoyA2vMGKKcaOqKSp7Ub2eGrNfKiZH4LpezxpNrsICGCSFvsQOI29psISxNZtaXibkC2CXzrQ5enMeGGw==", + "dev": true, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-functions-list": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.3.3.tgz", + "integrity": "sha512-8HFEBPKhOpJPEPu70wJJetjKta86Gw9+CCyCnB3sui2qQfOvRyqBy4IKLKKAwdMpWb2lHXWk9Wb4Z6AmaUT1Pg==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/css-loader": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", + "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", + "dev": true, + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/css-loader/node_modules/semver": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz", + "integrity": "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/css-select": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz", + "integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==", + "dev": true, + "dependencies": { + "mdn-data": "2.27.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "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, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.1.2.tgz", + "integrity": "sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==", + "dev": true, + "dependencies": { + "cssnano-preset-default": "^6.1.2", + "lilconfig": "^3.1.1" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/cssnano-preset-default": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz", + "integrity": "sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==", + "dev": true, + "dependencies": { + "browserslist": "^4.23.0", + "css-declaration-sorter": "^7.2.0", + "cssnano-utils": "^4.0.2", + "postcss-calc": "^9.0.1", + "postcss-colormin": "^6.1.0", + "postcss-convert-values": "^6.1.0", + "postcss-discard-comments": "^6.0.2", + "postcss-discard-duplicates": "^6.0.3", + "postcss-discard-empty": "^6.0.3", + "postcss-discard-overridden": "^6.0.2", + "postcss-merge-longhand": "^6.0.5", + "postcss-merge-rules": "^6.1.1", + "postcss-minify-font-values": "^6.1.0", + "postcss-minify-gradients": "^6.0.3", + "postcss-minify-params": "^6.1.0", + "postcss-minify-selectors": "^6.0.4", + "postcss-normalize-charset": "^6.0.2", + "postcss-normalize-display-values": "^6.0.2", + "postcss-normalize-positions": "^6.0.2", + "postcss-normalize-repeat-style": "^6.0.2", + "postcss-normalize-string": "^6.0.2", + "postcss-normalize-timing-functions": "^6.0.2", + "postcss-normalize-unicode": "^6.1.0", + "postcss-normalize-url": "^6.0.2", + "postcss-normalize-whitespace": "^6.0.2", + "postcss-ordered-values": "^6.0.2", + "postcss-reduce-initial": "^6.1.0", + "postcss-reduce-transforms": "^6.0.2", + "postcss-svgo": "^6.0.3", + "postcss-unique-selectors": "^6.0.4" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/cssnano-utils": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz", + "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==", + "dev": true, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "dev": true, + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "dev": true + }, + "node_modules/cssom": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", + "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", + "dev": true + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==" + }, + "node_modules/cwd": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/cwd/-/cwd-0.10.0.tgz", + "integrity": "sha512-YGZxdTTL9lmLkCUTpg4j0zQ7IhRB5ZmqNBbGCl3Tg6MP/d5/6sY7L5mmTjzbc6JKgVZYiqTQTNhPFsbXNGlRaA==", + "dev": true, + "dependencies": { + "find-pkg": "^0.1.2", + "fs-exists-sync": "^0.1.0" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true + }, + "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, + "engines": { + "node": ">= 14" + } + }, + "node_modules/data-urls": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", + "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", + "dev": true, + "dependencies": { + "abab": "^2.0.6", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "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, + "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, + "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, + "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/debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", + "dev": true + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "dev": true, + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decimal.js": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", + "dev": true + }, + "node_modules/dedent": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.2.tgz", + "integrity": "sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==", + "dev": true, + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "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 + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "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, + "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-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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, + "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/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, + "dependencies": { + "ast-types": "^0.13.4", + "escodegen": "^2.1.0", + "esprima": "^4.0.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "node_modules/devtools-protocol": { + "version": "0.0.1507524", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1507524.tgz", + "integrity": "sha512-OjaNE7qpk6GRTXtqQjAE5bGx6+c4F1zZH0YXtpZQLM92HNXx4zMAaqlKhP4T52DosG6hDW8gPMNhGOF8xbwk/w==", + "dev": true + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "dev": true, + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domexception": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", + "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", + "deprecated": "Use your platform's native DOMException instead", + "dev": true, + "dependencies": { + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "dev": true, + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dot-prop": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-9.0.0.tgz", + "integrity": "sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==", + "dev": true, + "dependencies": { + "type-fest": "^4.18.2" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dot-prop/node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.5.361", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.361.tgz", + "integrity": "sha512-Q6Hts7N9FnJc5LeGRINFvLhCI9xZmNtTDe5ZbcVezQz7cU4a8Aua3GH1b8J2XY8Al9PF+OCwYqhgsOOheMdvkA==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "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 + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "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, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.22.0.tgz", + "integrity": "sha512-xYcDWrpELkFzz9SpZ3PlI6Eu6eD93Yf0WLDRxikGhWJ3MAir2SNZTIVCVZqZ/NUyx8AdMc2gT9C0gPiw18kG+A==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.3.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "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, + "engines": { + "node": ">=0.12" + }, + "funding": { + "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, + "engines": { + "node": ">=6" + } + }, + "node_modules/envinfo": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.21.0.tgz", + "integrity": "sha512-Lw7I8Zp5YKHFCXL7+Dz95g4CcbMEpgvqZNNq3AmlT5XAV6CgAAk6gyAMqn2zjw08K9BHfcNuKrMiCPLByGafow==", + "dev": true, + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "dev": true, + "dependencies": { + "stackframe": "^1.3.4" + } + }, + "node_modules/es-abstract": { + "version": "1.24.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.2.tgz", + "integrity": "sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==", + "dev": true, + "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, + "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, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.3.2.tgz", + "integrity": "sha512-HVLACW1TppGYjJ8H6/jqH/pqOtKRw6wMlrB23xfExmFWxFquAIWCmwoLsOyN96K4a5KbmOf5At9ZUO3GZbetAw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.2", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.1.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.3.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", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.5", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.1.0.tgz", + "integrity": "sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==", + "dev": true + }, + "node_modules/es-object-atoms": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", + "dev": true, + "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, + "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, + "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, + "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/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "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, + "engines": { + "node": ">=10" + }, + "funding": { + "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, + "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/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "8.10.2", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.2.tgz", + "integrity": "sha512-/IGJ6+Dka158JnP5n5YFMOszjDWrXggGz1LaK/guZq9vZTmniaKlHcsscvkAhn9y4U+BU3JuUdYvtAMcv30y4A==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-import-context": { + "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, + "dependencies": { + "get-tsconfig": "^4.10.1", + "stable-hash-x": "^0.2.0" + }, + "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-node": { + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.10.tgz", + "integrity": "sha512-tRrKqFyCaKict5hOd244sL6EQFNycnMQnBe+j8uqGNXYzsImGbGUU4ibtoaBmv5FLwJwcFJNeg1GeVjQfbMrDQ==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.16.1", + "resolve": "^2.0.0-next.6" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/resolve": { + "version": "2.0.0-next.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.7.tgz", + "integrity": "sha512-tqt+NBWwyaMgw3zDsnygx4CByWjQEJHOPMdslYhppaQSJUtL/D4JO9CcBBlhPoI8lz9oJIDXkwXfhF4aWqP8xQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.2", + "node-exports-info": "^1.6.0", + "object-keys": "^1.1.1", + "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/eslint-import-resolver-typescript": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-4.4.4.tgz", + "integrity": "sha512-1iM2zeBvrYmUNTj2vSC/90JTHDth+dfOfiNKkxApWRsTJYNrc8rOdxxIf5vazX+BiAXTeOT0UvWpGI/7qIWQOw==", + "dev": true, + "dependencies": { + "debug": "^4.4.1", + "eslint-import-context": "^0.1.8", + "get-tsconfig": "^4.10.1", + "is-bun-module": "^2.0.0", + "stable-hash-x": "^0.2.0", + "tinyglobby": "^0.2.14", + "unrs-resolver": "^1.7.11" + }, + "engines": { + "node": "^16.17.0 || >=18.6.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-module-utils": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz", + "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.32.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", + "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", + "dev": true, + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.9", + "array.prototype.findlastindex": "^1.2.6", + "array.prototype.flat": "^1.3.3", + "array.prototype.flatmap": "^1.3.3", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.1", + "hasown": "^2.0.2", + "is-core-module": "^2.16.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.1", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.9", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/brace-expansion": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-plugin-jest": { + "version": "27.9.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.9.0.tgz", + "integrity": "sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug==", + "dev": true, + "dependencies": { + "@typescript-eslint/utils": "^5.10.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^5.0.0 || ^6.0.0 || ^7.0.0", + "eslint": "^7.0.0 || ^8.0.0", + "jest": "*" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-jest/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, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-jest/node_modules/semver": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz", + "integrity": "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-jsdoc": { + "version": "46.10.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.10.1.tgz", + "integrity": "sha512-x8wxIpv00Y50NyweDUpa+58ffgSAI5sqe+zcZh33xphD0AVh+1kqr1ombaTRb7Fhpove1zfUuujlX9DWWBP5ag==", + "dev": true, + "dependencies": { + "@es-joy/jsdoccomment": "~0.41.0", + "are-docs-informative": "^0.0.2", + "comment-parser": "1.4.1", + "debug": "^4.3.4", + "escape-string-regexp": "^4.0.0", + "esquery": "^1.5.0", + "is-builtin-module": "^3.2.1", + "semver": "^7.5.4", + "spdx-expression-parse": "^4.0.0" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/semver": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz", + "integrity": "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", + "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", + "dev": true, + "dependencies": { + "aria-query": "^5.3.2", + "array-includes": "^3.1.8", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "hasown": "^2.0.2", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.1" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-jsx-a11y/node_modules/brace-expansion": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint-plugin-jsx-a11y/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-plugin-playwright": { + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-playwright/-/eslint-plugin-playwright-0.15.3.tgz", + "integrity": "sha512-LQMW5y0DLK5Fnpya7JR1oAYL2/7Y9wDiYw6VZqlKqcRGSgjbVKNqxraphk7ra1U3Bb5EK444xMgUlQPbMg2M1g==", + "dev": true, + "peerDependencies": { + "eslint": ">=7", + "eslint-plugin-jest": ">=25" + }, + "peerDependenciesMeta": { + "eslint-plugin-jest": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.5.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.5.tgz", + "integrity": "sha512-hscXkbqUZ2sPithAuLm5MXL+Wph+U7wHngPBv9OMWwlP8iaflyxpjTYZkmdgB4/vPIhemRlBEoLrH7UC1n7aUw==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.1", + "synckit": "^0.11.12" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "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, + "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-hooks": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react/node_modules/brace-expansion": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.7.tgz", + "integrity": "sha512-tqt+NBWwyaMgw3zDsnygx4CByWjQEJHOPMdslYhppaQSJUtL/D4JO9CcBBlhPoI8lz9oJIDXkwXfhF4aWqP8xQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.2", + "node-exports-info": "^1.6.0", + "object-keys": "^1.1.1", + "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/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-scope/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/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 + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/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, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/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, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/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, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint/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, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/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, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "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, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", + "dev": true, + "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, + "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, + "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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/events-universal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz", + "integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==", + "dev": true, + "dependencies": { + "bare-events": "^2.7.0" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expand-tilde": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz", + "integrity": "sha512-rtmc+cjLZqnu9dSYosX9EWmSJhTwpACgJQTfj4hgg2JjOD/6SIQalZrt4a3aQeh++oNxkazcaxrhPUj6+g5G/Q==", + "dev": true, + "dependencies": { + "os-homedir": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/expect-puppeteer": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/expect-puppeteer/-/expect-puppeteer-4.4.0.tgz", + "integrity": "sha512-6Ey4Xy2xvmuQu7z7YQtMsaMV0EHJRpVxIDOd5GRrm04/I3nkTKIutELfECsLp6le+b3SSa3cXhPiw6PgqzxYWA==", + "dev": true + }, + "node_modules/express": { + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.22.2.tgz", + "integrity": "sha512-IuL+Elrou2ZvCFHs18/CIzy2Nzvo25nZ1/D2eIZlz7c+QUayAcYoiM2BthCjs+EBHVpjYjcuLDAiCWgeIX3X1Q==", + "dev": true, + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "~1.20.5", + "content-disposition": "~0.5.4", + "content-type": "~1.0.4", + "cookie": "~0.7.1", + "cookie-signature": "~1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.3.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "~0.1.12", + "proxy-addr": "~2.0.7", + "qs": "~6.15.1", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "~0.19.0", + "serve-static": "~1.16.2", + "setprototypeof": "1.2.0", + "statuses": "~2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "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, + "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/extract-zip/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, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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 + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true + }, + "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 + }, + "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, + "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, + "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 + }, + "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 + }, + "node_modules/fast-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.2.tgz", + "integrity": "sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ] + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "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, + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/filename-reserved-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", + "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/filenamify": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", + "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", + "dev": true, + "dependencies": { + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.1", + "trim-repeated": "^1.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", + "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "statuses": "~2.0.2", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/find-cache-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", + "dev": true, + "dependencies": { + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-file-up": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/find-file-up/-/find-file-up-0.1.3.tgz", + "integrity": "sha512-mBxmNbVyjg1LQIIpgO8hN+ybWBgDQK8qjht+EbrTCGmmPV/sc7RF1i9stPTD6bpvXZywBdrwRYxhSdJv867L6A==", + "dev": true, + "dependencies": { + "fs-exists-sync": "^0.1.0", + "resolve-dir": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/find-parent-dir": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/find-parent-dir/-/find-parent-dir-0.3.1.tgz", + "integrity": "sha512-o4UcykWV/XN9wm+jMEtWLPlV8RXCZnMhQI6F6OdHeSez7iiJWePw8ijOlskJZMsaQoGR/b7dH6lO02HhaTN7+A==", + "dev": true + }, + "node_modules/find-pkg": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/find-pkg/-/find-pkg-0.1.2.tgz", + "integrity": "sha512-0rnQWcFwZr7eO0513HahrWafsc3CTFioEB7DRiEYCUM/70QXSY8f3mCST17HXLcPvEhzH/Ty/Bxd72ZZsr/yvw==", + "dev": true, + "dependencies": { + "find-file-up": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/find-process": { + "version": "1.4.11", + "resolved": "https://registry.npmjs.org/find-process/-/find-process-1.4.11.tgz", + "integrity": "sha512-mAOh9gGk9WZ4ip5UjV0o6Vb4SrfnAmtsFNzkMRH9HQiFXVQnDyQFrSHTK5UoG6E+KV+s+cIznbtwpfN41l2nFA==", + "dev": true, + "dependencies": { + "chalk": "~4.1.2", + "commander": "^12.1.0", + "loglevel": "^1.9.2" + }, + "bin": { + "find-process": "bin/find-process.js" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "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, + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha512-SKmowqGTJoPzLO1T0BBJpkfp3EMacCMOuH40hOUbrbzElVktk4DioXVM99QkLCyKoiuOmyjgcWMpVz2xjE7LZw==", + "dev": true, + "dependencies": { + "for-in": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/form-data": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/forwarded-parse": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/forwarded-parse/-/forwarded-parse-2.1.2.tgz", + "integrity": "sha512-alTFZZQDKMporBH77856pXgzhEzaUVmLCDk+egLgIgHst3Tpndzz8MnKe+GzRJRfvVdn69HhpW7cmXzvtLvJAw==", + "dev": true + }, + "node_modules/fraction.js": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz", + "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-exists-sync": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz", + "integrity": "sha512-cR/vflFyPZtrN6b38ZyWxpWdhlXrzZEBawlpBQMq7033xVY7/kg0GDMBK5jg8lDYQckdJ5x/YC88lM3C7VMsLg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fs-monkey": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.1.0.tgz", + "integrity": "sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw==", + "dev": true + }, + "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==", + "dev": true + }, + "node_modules/fsevents": { + "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, + "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", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "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, + "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, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generator-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "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, + "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-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-port": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", + "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stdin": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", + "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "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", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "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.14.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.14.0.tgz", + "integrity": "sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "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, + "dependencies": { + "basic-ftp": "^5.0.2", + "data-uri-to-buffer": "^6.0.2", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/gettext-parser": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-1.4.0.tgz", + "integrity": "sha512-sedZYLHlHeBop/gZ1jdg59hlUEcpcZJofLq2JFwJT1zTqAU3l2wFv6IsuwFHGqbiT9DWzMUW4/em2+hspnmMMA==", + "dependencies": { + "encoding": "^0.1.12", + "safe-buffer": "^5.1.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": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "dev": true, + "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", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/global-modules": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz", + "integrity": "sha512-JeXuCbvYzYXcwE6acL9V2bAOeSIGl4dD+iwLY9iUx2VBJJ80R18HCn+JCwHM9Oegdfya3lEkGCdaRkSyc10hDA==", + "dev": true, + "dependencies": { + "global-prefix": "^0.1.4", + "is-windows": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.5.tgz", + "integrity": "sha512-gOPiyxcD9dJGCEArAhF4Hd0BAqvAe/JzERP7tYumE4yIkmIedPUVXcJFWbV3/p/ovIIvKjkrTk+f1UVkq7vvbw==", + "dev": true, + "dependencies": { + "homedir-polyfill": "^1.0.0", + "ini": "^1.3.4", + "is-windows": "^0.2.0", + "which": "^1.2.12" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "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, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globjoin": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", + "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", + "dev": true + }, + "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, + "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 + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dev": true, + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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, + "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, + "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, + "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, + "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, + "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, + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hashery": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/hashery/-/hashery-1.5.1.tgz", + "integrity": "sha512-iZyKG96/JwPz1N55vj2Ie2vXbhu440zfUfJvSwEqEbeLluk7NnapfGqa7LH0mOsnDxTF85Mx8/dyR6HfqcbmbQ==", + "dev": true, + "dependencies": { + "hookified": "^1.15.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/hasown": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz", + "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/header-case": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", + "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", + "dependencies": { + "capital-case": "^1.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hookified": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.15.1.tgz", + "integrity": "sha512-MvG/clsADq1GPM2KGo2nyfaWVyn9naPiXrqIe4jYjXNZQt238kWyOGrsyc/DmRAQ+Re6yeo6yX/yoNCG5KAEVg==", + "dev": true + }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hosted-git-info/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 + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-entities": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz", + "integrity": "sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ] + }, + "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 + }, + "node_modules/html-tags": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true + }, + "node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "dev": true, + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/http-link-header": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/http-link-header/-/http-link-header-1.1.3.tgz", + "integrity": "sha512-3cZ0SRL8fb9MUlU3mKM61FcQvPfXx2dBrZW3Vbg5CXa8jFlK8OaEpePenLe1oEXQduhz8b0QjsqfS59QP4AJDQ==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", + "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", + "dev": true + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz", + "integrity": "sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==", + "dev": true, + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "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" + } + ] + }, + "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, + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-walk": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-4.0.1.tgz", + "integrity": "sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==", + "dev": true, + "dependencies": { + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ignore-walk/node_modules/brace-expansion": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/ignore-walk/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/image-ssim": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/image-ssim/-/image-ssim-0.2.0.tgz", + "integrity": "sha512-W7+sO6/yhxy83L0G7xR8YAc5Z5QFtYEXXRV6EaE8tuYBZJnA3gVgp3q7X7muhLZVodeb9UfvjSbwt9VJwjIYAg==", + "dev": true + }, + "node_modules/immutable": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.5.tgz", + "integrity": "sha512-t7xcm2siw+hlUM68I+UEOK+z84RzmN59as9DZ7P1l0994DKUWV7UXBMQZVxaoMSRQ+PBZbHCOoBt7a2wxOMt+A==", + "dev": true + }, + "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, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/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, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-in-the-middle": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.15.0.tgz", + "integrity": "sha512-bpQy+CrsRmYmoPMAE/0G33iwRqwW4ouqdRg8jgbH3aKuCtOc8lxgmYXg2dMM92CRiGP660EtBcymH/eVUpCSaA==", + "dev": true, + "dependencies": { + "acorn": "^8.14.0", + "acorn-import-attributes": "^1.9.5", + "cjs-module-lexer": "^1.2.2", + "module-details-from-path": "^1.0.3" + } + }, + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local/node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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.", + "dev": true, + "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==", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "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, + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/interpret": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/intl-messageformat": { + "version": "10.7.18", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.7.18.tgz", + "integrity": "sha512-m3Ofv/X/tV8Y3tHXLohcuVuhWKo7BBq62cqY15etqmLxg2DZ34AGGgQDeR+SCta2+zICb1NX83af0GJmbQ1++g==", + "dev": true, + "dependencies": { + "@formatjs/ecma402-abstract": "2.3.6", + "@formatjs/fast-memoize": "2.2.7", + "@formatjs/icu-messageformat-parser": "2.11.4", + "tslib": "^2.8.0" + } + }, + "node_modules/ip-address": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.2.0.tgz", + "integrity": "sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/ipaddr.js": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.4.0.tgz", + "integrity": "sha512-9VGk3HGanVE6JoZXHiCpnGy5X0jYDnN4EA4lntFPj+1vIWlFhIylq2CrrCOJH9EAhc5CYhq18F2Av2tgoAPsYQ==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/irregular-plurals": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.5.0.tgz", + "integrity": "sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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, + "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-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "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, + "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, + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "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-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "dependencies": { + "semver": "^7.7.1" + } + }, + "node_modules/is-bun-module/node_modules/semver": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz", + "integrity": "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "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, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz", + "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==", + "dev": true, + "dependencies": { + "hasown": "^2.0.3" + }, + "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, + "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, + "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-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.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, + "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, + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.4", + "generator-function": "^2.0.0", + "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-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "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, + "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, + "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, + "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, + "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-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, + "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, + "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, + "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, + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "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, + "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, + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "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, + "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, + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-windows": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz", + "integrity": "sha512-n67eJYmXbniZB7RF4I/FTjK1s6RPOCTxhYrVYLRaCt3lF0mpWZPKr3T2LSZAqyjQsxR2qMmGYXXzK0YWwcPM1Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": true, + "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 + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "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, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "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", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", + "dev": true, + "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/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-dev-server": { + "version": "10.1.4", + "resolved": "https://registry.npmjs.org/jest-dev-server/-/jest-dev-server-10.1.4.tgz", + "integrity": "sha512-bGQ6sedNGtT6AFHhCVqGTXMPz7UyJi/ZrhNBgyqsP0XU9N8acCEIfqZEA22rOaZ+NdEVsaltk6tL7UT6aXfI7w==", + "dev": true, + "dependencies": { + "chalk": "^4.1.2", + "cwd": "^0.10.0", + "find-process": "^1.4.7", + "prompts": "^2.4.2", + "spawnd": "^10.1.4", + "tree-kill": "^1.2.2", + "wait-on": "^8.0.1" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-jsdom": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz", + "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/jsdom": "^20.0.0", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0", + "jsdom": "^20.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz", + "integrity": "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/joi": { + "version": "18.2.1", + "resolved": "https://registry.npmjs.org/joi/-/joi-18.2.1.tgz", + "integrity": "sha512-2/OKlogiESf2Nh3TFCrRjrr9z1DRHeW0I+KReF67+4J0Ns+8hBtHRmoWAZ2OFU6I5+TWLEe6sVlSdXPjHm5UbQ==", + "dev": true, + "dependencies": { + "@hapi/address": "^5.1.1", + "@hapi/formula": "^3.0.2", + "@hapi/hoek": "^11.0.7", + "@hapi/pinpoint": "^2.0.1", + "@hapi/tlds": "^1.1.1", + "@hapi/topo": "^6.0.2", + "@standard-schema/spec": "^1.1.0" + }, + "engines": { + "node": ">= 20" + } + }, + "node_modules/jpeg-js": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.4.tgz", + "integrity": "sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==", + "dev": true + }, + "node_modules/js-library-detector": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/js-library-detector/-/js-library-detector-6.7.0.tgz", + "integrity": "sha512-c80Qupofp43y4cJ7+8TTDN/AsDwLi5oOm/plBrWI+iQt485vKXCco+yVmOwEgdo9VOdsYTuV0UlTeetVPTriXA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "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==" + }, + "node_modules/js-yaml": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdoc-type-pratt-parser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz", + "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==", + "dev": true, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/jsdom": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", + "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", + "dev": true, + "dependencies": { + "abab": "^2.0.6", + "acorn": "^8.8.1", + "acorn-globals": "^7.0.0", + "cssom": "^0.5.0", + "cssstyle": "^2.3.0", + "data-urls": "^3.0.2", + "decimal.js": "^10.4.2", + "domexception": "^4.0.0", + "escodegen": "^2.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.2", + "parse5": "^7.1.1", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.1.2", + "w3c-xmlserializer": "^4.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0", + "ws": "^8.11.0", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "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 + }, + "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 + }, + "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 + }, + "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 + }, + "node_modules/json2php": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/json2php/-/json2php-0.0.9.tgz", + "integrity": "sha512-fQMYwvPsQt8hxRnCGyg1r2JVi6yL8Um0DIIawiKiMK9yhAAkcRNj5UsBWoaFvFzPpcWbgw9L6wzj+UMYA702Mw==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", + "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", + "dev": true + }, + "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, + "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, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/known-css-properties": { + "version": "0.37.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.37.0.tgz", + "integrity": "sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==", + "dev": true + }, + "node_modules/language-subtag-registry": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", + "dev": true + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "dev": true, + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/launch-editor": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.13.2.tgz", + "integrity": "sha512-4VVDnbOpLXy/s8rdRCSXb+zfMeFR0WlJWpET1iA9CQdlZDfwyLjUuGQzXU4VeOoey6AicSAluWan7Etga6Kcmg==", + "dev": true, + "dependencies": { + "picocolors": "^1.1.1", + "shell-quote": "^1.8.3" + } + }, + "node_modules/lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/legacy-javascript": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/legacy-javascript/-/legacy-javascript-0.0.1.tgz", + "integrity": "sha512-lPyntS4/aS7jpuvOlitZDFifBCb4W8L/3QU0PLbUTUj+zYah8rfVjYic88yG7ZKTxhS5h9iz7duT8oUXKszLhg==", + "dev": true + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lighthouse": { + "version": "12.8.2", + "resolved": "https://registry.npmjs.org/lighthouse/-/lighthouse-12.8.2.tgz", + "integrity": "sha512-+5SKYzVaTFj22MgoYDPNrP9tlD2/Ay7j3SxPSFD9FpPyVxGr4UtOQGKyrdZ7wCmcnBaFk0mCkPfARU3CsE0nvA==", + "dev": true, + "dependencies": { + "@paulirish/trace_engine": "0.0.59", + "@sentry/node": "^9.28.1", + "axe-core": "^4.10.3", + "chrome-launcher": "^1.2.0", + "configstore": "^7.0.0", + "csp_evaluator": "1.1.5", + "devtools-protocol": "0.0.1507524", + "enquirer": "^2.3.6", + "http-link-header": "^1.1.1", + "intl-messageformat": "^10.5.3", + "jpeg-js": "^0.4.4", + "js-library-detector": "^6.7.0", + "lighthouse-logger": "^2.0.2", + "lighthouse-stack-packs": "1.12.2", + "lodash-es": "^4.17.21", + "lookup-closest-locale": "6.2.0", + "metaviewport-parser": "0.3.0", + "open": "^8.4.0", + "parse-cache-control": "1.0.1", + "puppeteer-core": "^24.17.1", + "robots-parser": "^3.0.1", + "speedline-core": "^1.4.3", + "third-party-web": "^0.27.0", + "tldts-icann": "^7.0.12", + "ws": "^7.0.0", + "yargs": "^17.3.1", + "yargs-parser": "^21.0.0" + }, + "bin": { + "chrome-debug": "core/scripts/manual-chrome-launcher.js", + "lighthouse": "cli/index.js", + "smokehouse": "cli/test/smokehouse/frontends/smokehouse-bin.js" + }, + "engines": { + "node": ">=18.16" + } + }, + "node_modules/lighthouse-logger": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-2.0.2.tgz", + "integrity": "sha512-vWl2+u5jgOQuZR55Z1WM0XDdrJT6mzMP8zHUct7xTlWhuQs+eV0g+QL0RQdFjT54zVmbhLCP8vIVpy1wGn/gCg==", + "dev": true, + "dependencies": { + "debug": "^4.4.1", + "marky": "^1.2.2" + } + }, + "node_modules/lighthouse-stack-packs": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/lighthouse-stack-packs/-/lighthouse-stack-packs-1.12.2.tgz", + "integrity": "sha512-Ug8feS/A+92TMTCK6yHYLwaFMuelK/hAKRMdldYkMNwv+d9PtWxjXEg6rwKtsUXTADajhdrhXyuNCJ5/sfmPFw==", + "dev": true + }, + "node_modules/lighthouse/node_modules/@puppeteer/browsers": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.13.2.tgz", + "integrity": "sha512-5EUZSUIc37H6aIXyWO0Z4y8NlF8NnjgmqeQgOGiswAU7pY0HOo16ho4+alIWmSfdZnjqBRawMsP3I5YqLSn6kw==", + "dev": true, + "dependencies": { + "debug": "^4.4.3", + "extract-zip": "^2.0.1", + "progress": "^2.0.3", + "proxy-agent": "^6.5.0", + "semver": "^7.7.4", + "tar-fs": "^3.1.1", + "yargs": "^17.7.2" + }, + "bin": { + "browsers": "lib/cjs/main-cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/lighthouse/node_modules/puppeteer-core": { + "version": "24.43.1", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.43.1.tgz", + "integrity": "sha512-T5ScUMAsmhdNbgDR41AGESYeS6V9MSgetkSnVhhW+gXvzC42VesKCn5ld87gAZDJ6vLHL9GkRvY9WtQWSnwFbw==", + "dev": true, + "dependencies": { + "@puppeteer/browsers": "2.13.2", + "chromium-bidi": "14.0.0", + "debug": "^4.4.3", + "devtools-protocol": "0.0.1608973", + "typed-query-selector": "^2.12.2", + "webdriver-bidi-protocol": "0.4.1", + "ws": "^8.20.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/lighthouse/node_modules/puppeteer-core/node_modules/chromium-bidi": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-14.0.0.tgz", + "integrity": "sha512-9gYlLtS6tStdRWzrtXaTMnqcM4dudNegMXJxkR0I/CXObHalYeYcAMPrL19eroNZHtJ8DQmu1E+ZNOYu/IXMXw==", + "dev": true, + "dependencies": { + "mitt": "^3.0.1", + "zod": "^3.24.1" + }, + "peerDependencies": { + "devtools-protocol": "*" + } + }, + "node_modules/lighthouse/node_modules/puppeteer-core/node_modules/devtools-protocol": { + "version": "0.0.1608973", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1608973.tgz", + "integrity": "sha512-Tpm17fxYzt+J7VrGdc1k8YdRqS3YV7se/M6KeemEqvUbq/n7At1rWVuXMxQgpWkdwSdIEKYbU//Bve+Shm4YNQ==", + "dev": true + }, + "node_modules/lighthouse/node_modules/puppeteer-core/node_modules/ws": { + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz", + "integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/lighthouse/node_modules/semver": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz", + "integrity": "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/lighthouse/node_modules/ws": { + "version": "7.5.11", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.11.tgz", + "integrity": "sha512-zS54Oen9bITtp7kp2XM3AydrCIq1D+HwJOuH+c+e4LfpL/lotP5osijd+UoMnxwAam1GN8R4KtLAyIrIcBNpiA==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/lighthouse/node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "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 + }, + "node_modules/linkify-it": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", + "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", + "dev": true, + "dependencies": { + "uc.micro": "^1.0.1" + } + }, + "node_modules/loader-runner": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.2.tgz", + "integrity": "sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==", + "dev": true, + "engines": { + "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", + "dev": true + }, + "node_modules/lodash-es": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.18.1.tgz", + "integrity": "sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": 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 + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true + }, + "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 + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/loglevel": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.2.tgz", + "integrity": "sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/loglevel" + } + }, + "node_modules/lookup-closest-locale": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/lookup-closest-locale/-/lookup-closest-locale-6.2.0.tgz", + "integrity": "sha512-/c2kL+Vnp1jnV6K6RpDTHK3dgg0Tu2VVp+elEiJpjfS1UyY7AjOYHohRug6wT0OpoX2qFgNORndE9RqesfVxWQ==", + "dev": true + }, + "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==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lucide-react": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.16.0.tgz", + "integrity": "sha512-dYwyPzb4MEKpGUmNYk3WKWPnMrHs3FKM+q94kAnJrcDIqqn1hq2xY8scaS2ovsOCM5D51ey2gaRG3PBb1vgoYQ==", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.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, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz", + "integrity": "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/map-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-values/-/map-values-1.0.1.tgz", + "integrity": "sha512-BbShUnr5OartXJe1GeccAWtfro11hhgNJg6G9/UtWKjVGvV5U4C09cg5nk8JUevhXODaXY+hQ3xxMUKSs62ONQ==", + "dev": true + }, + "node_modules/markdown-it": { + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", + "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1", + "entities": "~2.1.0", + "linkify-it": "^3.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/markdown-it/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 + }, + "node_modules/markdown-it/node_modules/entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/markdownlint": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.25.1.tgz", + "integrity": "sha512-AG7UkLzNa1fxiOv5B+owPsPhtM4D6DoODhsJgiaNg1xowXovrYgOnLqAgOOFQpWOlHFVQUzjMY5ypNNTeov92g==", + "dev": true, + "dependencies": { + "markdown-it": "12.3.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/markdownlint-cli": { + "version": "0.31.1", + "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.31.1.tgz", + "integrity": "sha512-keIOMwQn+Ch7MoBwA+TdkyVMuxAeZFEGmIIlvwgV0Z1TGS5MxPnRr29XCLhkNzCHU+uNKGjU+VEjLX+Z9kli6g==", + "dev": true, + "dependencies": { + "commander": "~9.0.0", + "get-stdin": "~9.0.0", + "glob": "~7.2.0", + "ignore": "~5.2.0", + "js-yaml": "^4.1.0", + "jsonc-parser": "~3.0.0", + "markdownlint": "~0.25.1", + "markdownlint-rule-helpers": "~0.16.0", + "minimatch": "~3.0.5", + "run-con": "~1.2.10" + }, + "bin": { + "markdownlint": "markdownlint.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/markdownlint-cli/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 + }, + "node_modules/markdownlint-cli/node_modules/brace-expansion": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/markdownlint-cli/node_modules/commander": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.0.0.tgz", + "integrity": "sha512-JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw==", + "dev": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/markdownlint-cli/node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/markdownlint-cli/node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/markdownlint-cli/node_modules/minimatch": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/markdownlint-rule-helpers": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/markdownlint-rule-helpers/-/markdownlint-rule-helpers-0.16.0.tgz", + "integrity": "sha512-oEacRUVeTJ5D5hW1UYd2qExYI0oELdYK72k1TKGvIeYJIbqQWAz476NAc7LNixSySUhcNl++d02DvX0ccDk9/w==", + "dev": true + }, + "node_modules/marky": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/marky/-/marky-1.3.0.tgz", + "integrity": "sha512-ocnPZQLNpvbedwTy9kNrQEsknEfgvcLMvOtz3sFeWApDq1MXH1TqkCIx58xlpESsfwQOnuBO9beyQuNGzVvuhQ==", + "dev": true + }, + "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, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mathml-tag-names": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", + "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdn-data": { + "version": "2.27.1", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz", + "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==", + "dev": true + }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "dev": true + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "dev": true, + "dependencies": { + "fs-monkey": "^1.0.4" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/memize": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/memize/-/memize-2.1.1.tgz", + "integrity": "sha512-8Nl+i9S5D6KXnruM03Jgjb+LwSupvR13WBr4hJegaaEyobvowCVupi79y2WSiWvO1mzBWxPwEYE5feCe8vyA5w==" + }, + "node_modules/meow": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", + "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", + "dev": true, + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/merge-deep": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.3.tgz", + "integrity": "sha512-qtmzAS6t6grwEkNrunqTBdn0qKwFgNWvlxUbAV8es9M7Ot1EbyApytCnvE0jALPa46ZpKDUo527kKiaWplmlFA==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "clone-deep": "^0.2.4", + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "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, + "engines": { + "node": ">= 8" + } + }, + "node_modules/metaviewport-parser": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/metaviewport-parser/-/metaviewport-parser-0.3.0.tgz", + "integrity": "sha512-EoYJ8xfjQ6kpe9VbVHvZTZHiOl4HL1Z18CrZ+qahvLXT7ZO4YTC2JMyt5FaUp9JJp6J4Ybb/z7IsCXZt86/QkQ==", + "dev": true + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "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, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.10.2", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.10.2.tgz", + "integrity": "sha512-AOSS0IdEB95ayVkxn5oGzNQwqAi2J0Jb/kKm43t7H73s8+f5873g0yuj0PNvK4dO75mu5DHg4nlgp4k6Kga8eg==", + "dev": true, + "dependencies": { + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "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, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/minimist-options/node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/minimist-options/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "dev": true + }, + "node_modules/mixin-object": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", + "integrity": "sha512-ALGF1Jt9ouehcaXaHhn6t1yGWRqGaHkPFndtFVHfZXOvkIZ/yoGaSi0AHVTafb3ZBGg4dr/bDwnaEKqCXzchMA==", + "dev": true, + "dependencies": { + "for-in": "^0.1.3", + "is-extendable": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-object/node_modules/for-in": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", + "integrity": "sha512-F0to7vbBSHP8E3l6dCjxNOLuSFAACIxFy3UehTUlG7svlXi37HHsDkyVcHo0Pq8QwrE+pXvWSVX3ZT1T9wAZ9g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/module-details-from-path": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.4.tgz", + "integrity": "sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==", + "dev": true + }, + "node_modules/mrmime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "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 + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dev": true, + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/nanoid": { + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", + "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/napi-postinstall": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.4.tgz", + "integrity": "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==", + "dev": true, + "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 + }, + "node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "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 + }, + "node_modules/netmask": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.1.1.tgz", + "integrity": "sha512-eonl3sLUha+S1GzTPxychyhnUzKyeQkZ7jLjKrBagJgPla13F+uQ71HgpFefyHgqrjEbCPkDArxYsjY8/+gLKA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "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, + "optional": true + }, + "node_modules/node-exports-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/node-exports-info/-/node-exports-info-1.6.0.tgz", + "integrity": "sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==", + "dev": true, + "dependencies": { + "array.prototype.flatmap": "^1.3.3", + "es-errors": "^1.3.0", + "object.entries": "^1.1.9", + "semver": "^6.3.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/node-forge": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.4.0.tgz", + "integrity": "sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==", + "dev": true, + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.46", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.46.tgz", + "integrity": "sha512-GYVXHE2KnrzAfsAjl4uP++evGFCrAU1jta4ubEjIG7YWt/64Gqv66a30yKwWczVjA6j3bM4nBwH7Pk1JmDHaxQ==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz", + "integrity": "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-bundled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", + "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", + "dev": true, + "dependencies": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true + }, + "node_modules/npm-package-json-lint": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/npm-package-json-lint/-/npm-package-json-lint-6.4.0.tgz", + "integrity": "sha512-cuXAJJB1Rdqz0UO6w524matlBqDBjcNt7Ru+RDIu4y6RI1gVqiWBnylrK8sPRk81gGBA0X8hJbDXolVOoTc+sA==", + "dev": true, + "dependencies": { + "ajv": "^6.12.6", + "ajv-errors": "^1.0.1", + "chalk": "^4.1.2", + "cosmiconfig": "^8.0.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "ignore": "^5.2.0", + "is-plain-obj": "^3.0.0", + "jsonc-parser": "^3.2.0", + "log-symbols": "^4.1.0", + "meow": "^9.0.0", + "plur": "^4.0.0", + "semver": "^7.3.8", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1", + "type-fest": "^3.2.0", + "validate-npm-package-name": "^5.0.0" + }, + "bin": { + "npmPkgJsonLint": "dist/cli.js" + }, + "engines": { + "node": ">=14.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/npm-package-json-lint/node_modules/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "dev": true + }, + "node_modules/npm-package-json-lint/node_modules/semver": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz", + "integrity": "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-package-json-lint/node_modules/type-fest": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", + "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-packlist": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-3.0.0.tgz", + "integrity": "sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==", + "dev": true, + "dependencies": { + "glob": "^7.1.6", + "ignore-walk": "^4.0.1", + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + }, + "bin": { + "npm-packlist": "bin/index.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nwsapi": { + "version": "2.2.23", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.23.tgz", + "integrity": "sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==", + "dev": true + }, + "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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-filter": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/object-filter/-/object-filter-1.0.2.tgz", + "integrity": "sha512-NahvP2vZcy1ZiiYah30CEPw0FpDcSkSePJBMpzl5EQgCmISijiGuJm3SPYp7U+Lf2TljyaIw3E5EgkEx/TNEVA==", + "dev": true + }, + "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, + "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, + "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, + "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, + "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, + "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.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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, + "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/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", + "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "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==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "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, + "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/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true, + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "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/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", + "dev": true, + "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", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "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, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dev": true, + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "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, + "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-proxy-agent/node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-proxy-agent/node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-proxy-agent/node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "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, + "dependencies": { + "degenerator": "^5.0.0", + "netmask": "^2.0.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "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, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-cache-control": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==", + "dev": true + }, + "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, + "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-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "dev": true, + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "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, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", + "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "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, + "engines": { + "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==", + "dev": true, + "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, + "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 + }, + "node_modules/path-to-regexp": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz", + "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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 + }, + "node_modules/pg-int8": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", + "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/pg-protocol": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.14.0.tgz", + "integrity": "sha512-n5taZ1kO3s9ngDTVxsEznOqCyToTgz0FLuPq0B33COy5pPpuWJpY3/2oRBVETuOgzdqRXfWpM9HIhp2LBBT1BA==", + "dev": true + }, + "node_modules/pg-types": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", + "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", + "dev": true, + "dependencies": { + "pg-int8": "1.0.1", + "postgres-array": "~2.0.0", + "postgres-bytea": "~1.0.0", + "postgres-date": "~1.0.4", + "postgres-interval": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "dev": true, + "dependencies": { + "find-up": "^6.3.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/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, + "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/pkg-dir/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, + "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/pkg-dir/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, + "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/pkg-dir/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, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/pkg-dir/node_modules/yocto-queue": { + "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, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/playwright": { + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.60.0.tgz", + "integrity": "sha512-hheHdokM8cdqCb0lcE3s+zT4t4W+vvjpGxsZlDnikarzx8tSzMebh3UiFtgqwFwnTnjYQcsyMF8ei2mCO/tpeA==", + "dev": true, + "peer": true, + "dependencies": { + "playwright-core": "1.60.0" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", + "integrity": "sha512-9bW6zvX/m0lEbgTKJ6YppOKx8H3VOPBMOCFh2irXFOT4BbHgrx5hPjwJYLT40Lu+4qtD36qKc/Hn56StUW57IA==", + "dev": true, + "peer": true, + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/playwright/node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/plur": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/plur/-/plur-4.0.0.tgz", + "integrity": "sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==", + "dev": true, + "dependencies": { + "irregular-plurals": "^3.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.5.15", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz", + "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==", + "dev": true, + "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" + } + ], + "dependencies": { + "nanoid": "^3.3.12", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-calc": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", + "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.11", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-colormin": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz", + "integrity": "sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==", + "dev": true, + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-api": "^3.0.0", + "colord": "^2.9.3", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-convert-values": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz", + "integrity": "sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==", + "dev": true, + "dependencies": { + "browserslist": "^4.23.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-discard-comments": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz", + "integrity": "sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==", + "dev": true, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz", + "integrity": "sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==", + "dev": true, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-discard-empty": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz", + "integrity": "sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==", + "dev": true, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz", + "integrity": "sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==", + "dev": true, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-import": { + "version": "16.1.1", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-16.1.1.tgz", + "integrity": "sha512-2xVS1NCZAfjtVdvXiyegxzJ447GyqCeEI5V7ApgQVOWnros1p5lGNovJNapwPpMombyFBfqDwt7AD3n2l0KOfQ==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-loader": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "dev": true, + "dependencies": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-loader/node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/postcss-loader/node_modules/semver": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz", + "integrity": "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", + "dev": true + }, + "node_modules/postcss-merge-longhand": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz", + "integrity": "sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^6.1.1" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-merge-rules": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz", + "integrity": "sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^4.0.2", + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz", + "integrity": "sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz", + "integrity": "sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==", + "dev": true, + "dependencies": { + "colord": "^2.9.3", + "cssnano-utils": "^4.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-minify-params": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz", + "integrity": "sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==", + "dev": true, + "dependencies": { + "browserslist": "^4.23.0", + "cssnano-utils": "^4.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz", + "integrity": "sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", + "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz", + "integrity": "sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==", + "dev": true, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz", + "integrity": "sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz", + "integrity": "sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz", + "integrity": "sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-string": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz", + "integrity": "sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz", + "integrity": "sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz", + "integrity": "sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==", + "dev": true, + "dependencies": { + "browserslist": "^4.23.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-url": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz", + "integrity": "sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz", + "integrity": "sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-ordered-values": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz", + "integrity": "sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==", + "dev": true, + "dependencies": { + "cssnano-utils": "^4.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz", + "integrity": "sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==", + "dev": true, + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz", + "integrity": "sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-resolve-nested-selector": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.6.tgz", + "integrity": "sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==", + "dev": true + }, + "node_modules/postcss-safe-parser": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz", + "integrity": "sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-scss": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz", + "integrity": "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-scss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.4.29" + } + }, + "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, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz", + "integrity": "sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^3.2.0" + }, + "engines": { + "node": "^14 || ^16 || >= 18" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz", + "integrity": "sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/postgres-array": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", + "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/postgres-bytea": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.1.tgz", + "integrity": "sha512-5+5HqXnsZPE65IJZSMkZtURARZelel2oXUEO8rH83VS/hxH5vv1uHquPg5wZs8yMAfdv971IU+kcPUczi7NVBQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-date": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", + "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-interval": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", + "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", + "dev": true, + "dependencies": { + "xtend": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "name": "wp-prettier", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/wp-prettier/-/wp-prettier-3.0.3.tgz", + "integrity": "sha512-X4UlrxDTH8oom9qXlcjnydsjAOD2BmB6yFmvS4Z2zdTzqqpRWb+fbqrH412+l+OUXmbzJlSXjlMFYPgYG12IAA==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.1.tgz", + "integrity": "sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "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, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "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, + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "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 + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "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, + "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-agent/node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/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, + "engines": { + "node": ">=12" + } + }, + "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 + }, + "node_modules/psl": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "dev": true, + "dependencies": { + "punycode": "^2.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/lupomontero" + } + }, + "node_modules/pump": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz", + "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==", + "dev": true, + "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", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/puppeteer-core": { + "version": "23.11.1", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-23.11.1.tgz", + "integrity": "sha512-3HZ2/7hdDKZvZQ7dhhITOUg4/wOrDRjyK2ZBllRB0ZCOi9u0cwq1ACHDjBB+nX+7+kltHjQvBRdeY7+W0T+7Gg==", + "dev": true, + "dependencies": { + "@puppeteer/browsers": "2.6.1", + "chromium-bidi": "0.11.0", + "debug": "^4.4.0", + "devtools-protocol": "0.0.1367902", + "typed-query-selector": "^2.12.0", + "ws": "^8.18.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/puppeteer-core/node_modules/devtools-protocol": { + "version": "0.0.1367902", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1367902.tgz", + "integrity": "sha512-XxtPuC3PGakY6PD7dG66/o8KwJ/LkH2/EKe19Dcw58w53dv4/vSQEkn/SzuyhHE2q4zPgCkxQBxus3VV4ql+Pg==", + "dev": true + }, + "node_modules/pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ] + }, + "node_modules/qified": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/qified/-/qified-0.10.1.tgz", + "integrity": "sha512-+Owyggi9IxT1ePKGafcI87ubSmxol6smwJ+RAHDQlx9+9cPwFWDiKFFCPuWhr9ignlGpZ9vDQLw67N4dcTVFEA==", + "dev": true, + "dependencies": { + "hookified": "^2.1.1" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/qified/node_modules/hookified": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-2.2.0.tgz", + "integrity": "sha512-p/LgFzRN5FeoD3DLS6bkUapeye6E4SI6yJs6KetENd18S+FBthqYq2amJUWpt5z0EQwwHemidjY5OqJGEKm5uA==", + "dev": true + }, + "node_modules/qs": { + "version": "6.15.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.2.tgz", + "integrity": "sha512-Rzq0KEyX/w/tEybncDgdkZrJgVUsUMk3xjh3t5bv3S1HTAtg+uOYt72+ZfwiQwKdysThkTBdL/rTi6HDmX9Ddw==", + "dev": true, + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "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" + } + ] + }, + "node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", + "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", + "dev": true, + "dependencies": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "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 + }, + "node_modules/react-refresh": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz", + "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==", + "dev": true, + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "dev": true, + "dependencies": { + "resolve": "^1.20.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "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/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", + "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "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, + "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/regexpu-core": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", + "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.2", + "regjsgen": "^0.8.0", + "regjsparser": "^0.13.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.2.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true + }, + "node_modules/regjsparser": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.1.tgz", + "integrity": "sha512-dLsljMd9sqwRkby8zhO1gSg3PnJIBFid8f4CQj/sXx+7cKx+E7u0PKhZ+U4wmhx7EfmtvnA318oVaIkAB1lRJw==", + "dev": true, + "dependencies": { + "jsesc": "~3.1.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/remove-accents": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.5.0.tgz", + "integrity": "sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==" + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-in-the-middle": { + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.5.2.tgz", + "integrity": "sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ==", + "dev": true, + "dependencies": { + "debug": "^4.3.5", + "module-details-from-path": "^1.0.3", + "resolve": "^1.22.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/requireindex": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz", + "integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==", + "dev": true, + "engines": { + "node": ">=0.10.5" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", + "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-bin": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/resolve-bin/-/resolve-bin-0.4.3.tgz", + "integrity": "sha512-9u8TMpc+SEHXxQXblXHz5yRvRZERkCZimFN9oz85QI3uhkh7nqfjm6OGTLg+8vucpXGcY4jLK6WkylPmt7GSvw==", + "dev": true, + "dependencies": { + "find-parent-dir": "~0.3.0" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-dir": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz", + "integrity": "sha512-QxMPqI6le2u0dCLyiGzgy92kjkkL6zO0XyvHzjdTNH3zM6e5Hz3BwG6+aEyNgiQ5Xz6PwTwgQEj3U50dByPKIA==", + "dev": true, + "dependencies": { + "expand-tilde": "^1.2.2", + "global-modules": "^0.2.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "engines": { + "node": ">=8" + } + }, + "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, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", + "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/robots-parser": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/robots-parser/-/robots-parser-3.0.1.tgz", + "integrity": "sha512-s+pyvQeIKIZ0dx5iJiQk1tPLJAWln39+MI5jtM8wnyws+G5azk+dMnMX0qfbqNetKKNgcWWOdi0sfm+FbQbgdQ==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/rtlcss": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-4.3.0.tgz", + "integrity": "sha512-FI+pHEn7Wc4NqKXMXFM+VAYKEj/mRIcW4h24YVwVtyjI+EqGrLc2Hx/Ny0lrZ21cBWU2goLy36eqMcNj3AQJig==", + "dev": true, + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0", + "postcss": "^8.4.21", + "strip-json-comments": "^3.1.1" + }, + "bin": { + "rtlcss": "bin/rtlcss.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/run-con": { + "version": "1.2.12", + "resolved": "https://registry.npmjs.org/run-con/-/run-con-1.2.12.tgz", + "integrity": "sha512-5257ILMYIF4RztL9uoZ7V9Q97zHtNHn5bN3NobeAnzB1P3ASLgg8qocM2u+R18ttp+VEM78N2LK8XcNVtnSRrg==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~3.0.0", + "minimist": "^1.2.8", + "strip-json-comments": "~3.1.1" + }, + "bin": { + "run-con": "cli.js" + } + }, + "node_modules/run-con/node_modules/ini": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.1.tgz", + "integrity": "sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.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" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.4.tgz", + "integrity": "sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "get-intrinsic": "^1.3.0", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "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" + } + ] + }, + "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, + "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, + "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/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sass": { + "version": "1.100.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.100.0.tgz", + "integrity": "sha512-B5j0rYMlinhhOo9tjQebMVVn0TfyXAF+wB3b2ggZUuJ/is/Y+7+JGjirAMxHZ9Z3hIP98NPfamlAkBHa1lAaXQ==", + "dev": true, + "dependencies": { + "chokidar": "^5.0.0", + "immutable": "^5.1.5", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=20.19.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" + } + }, + "node_modules/sass-loader": { + "version": "16.0.8", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.8.tgz", + "integrity": "sha512-hcov4ZwZJIGbEuyNr9EmiTmZueyrxSToE6GOzoZnq5JM7ecRO7ttyvilPn+VmRsqiP16+VYZzVnGZj/hzZgKBA==", + "dev": true, + "dependencies": { + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || ^1.0.0 || ^2.0.0-0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/sax": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz", + "integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==", + "dev": true, + "engines": { + "node": ">=11.0.0" + } + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/schema-utils": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "dev": true, + "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/schema-utils/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/schema-utils/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 + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "dev": true + }, + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "dev": true, + "dependencies": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "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, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/send": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", + "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.4.1", + "range-parser": "~1.2.1", + "statuses": "~2.0.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/send/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/sentence-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", + "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.2.tgz", + "integrity": "sha512-KDj11HScOaLmrPxl70KYNW1PksP4Nb/CLL2yvC+Qd2kHMPEEpfc4Re2e4FOay+bC/+XQl/7zAcWON3JVo5v3KQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.8", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.8.0", + "mime-types": "~2.1.35", + "parseurl": "~1.3.3" + }, + "engines": { + "node": ">= 0.8.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz", + "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", + "dev": true, + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "~0.19.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "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, + "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, + "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, + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/shallow-clone": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz", + "integrity": "sha512-J1zdXCky5GmNnuauESROVu31MQSnLoYvlyEn6j2Ztk6Q5EHFIhxkMhYcv6vuDzl2XEzoRr856QwzMgWM/TmZgw==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.1", + "kind-of": "^2.0.1", + "lazy-cache": "^0.2.3", + "mixin-object": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shallow-clone/node_modules/kind-of": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz", + "integrity": "sha512-0u8i1NZ/mg0b+W3MGGw5I7+6Eib2nx72S/QvXa0hYjEkjTknYmEYQJwGu3mLC0BrhtJjtQafTkyRUQ75Kx0LVg==", + "dev": true, + "dependencies": { + "is-buffer": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shallow-clone/node_modules/lazy-cache": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz", + "integrity": "sha512-gkX52wvU/R8DVMMt78ATVPFMJqfW8FPz1GZ1sVHBVQHmu/WvhIWE4cE1GBzhJNFicDeYhnwp6Rl35BcAIM3YOQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "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, + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.4.tgz", + "integrity": "sha512-VsC6n6vz1ihYYyZZwX7YZSF5l5x36ca17OC+a69h94YqB7X6XLwf+5MOgynYir2SLFUbl8gIYvBo8K8RoNQ6bQ==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/shimmer": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", + "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==", + "dev": true + }, + "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, + "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.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4" + }, + "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, + "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, + "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/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sirv": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", + "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", + "dev": true, + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "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, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/socks": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.9.tgz", + "integrity": "sha512-LJhUYUvItdQ0LkJTmPeaEObWXAqFyfmP85x0tch/ez9cahmhlBBLbIqDFnvBnUJGagb0JbIQrkBs1wJ+yRYpEw==", + "dev": true, + "dependencies": { + "ip-address": "^10.1.1", + "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, + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/socks-proxy-agent/node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.2.tgz", + "integrity": "sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==", + "dev": true, + "dependencies": { + "abab": "^2.0.5", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spawnd": { + "version": "10.1.4", + "resolved": "https://registry.npmjs.org/spawnd/-/spawnd-10.1.4.tgz", + "integrity": "sha512-drqHc0mKJmtMsiGMOCwzlc5eZ0RPtRvT7tQAluW2A0qUc0G7TQ8KLcn3E6K5qzkLkH2UkS3nYQiVGULvvsD9dw==", + "dev": true, + "dependencies": { + "signal-exit": "^4.1.0", + "tree-kill": "^1.2.2" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/spawnd/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-correct/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, + "dependencies": { + "spdx-exceptions": "^2.1.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 + }, + "node_modules/spdx-expression-parse": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz", + "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.23", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.23.tgz", + "integrity": "sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==", + "dev": true + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/speedline-core": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/speedline-core/-/speedline-core-1.4.3.tgz", + "integrity": "sha512-DI7/OuAUD+GMpR6dmu8lliO2Wg5zfeh+/xsdyJZCzd8o5JgFUjCeLsBDuZjIQJdwXS3J0L/uZYrELKYqx+PXog==", + "dev": true, + "dependencies": { + "@types/node": "*", + "image-ssim": "^0.2.0", + "jpeg-js": "^0.4.1" + }, + "engines": { + "node": ">=8.0" + } + }, + "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==" + }, + "node_modules/stable-hash-x": { + "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, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", + "dev": true + }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "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, + "dependencies": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/streamx": { + "version": "2.25.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.25.0.tgz", + "integrity": "sha512-0nQuG6jf1w+wddNEEXCF4nTg3LtufWINB5eFEN+5TNZW7KWJp6x87+JFL43vaAUPyCfH1wID+mNVyW6OHtFamg==", + "dev": true, + "dependencies": { + "events-universal": "^1.0.0", + "fast-fifo": "^1.3.2", + "text-decoder": "^1.1.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==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "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, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/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 + }, + "node_modules/string.prototype.includes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", + "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3" + }, + "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, + "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, + "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, + "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, + "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, + "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-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-outer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", + "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-outer/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/stubborn-fs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/stubborn-fs/-/stubborn-fs-2.0.0.tgz", + "integrity": "sha512-Y0AvSwDw8y+nlSNFXMm2g6L51rBGdAQT20J3YSOqxC53Lo3bjWRtr2BKcfYoAf352WYpsZSTURrA0tqhfgudPA==", + "dev": true, + "dependencies": { + "stubborn-utils": "^1.0.1" + } + }, + "node_modules/stubborn-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stubborn-utils/-/stubborn-utils-1.0.2.tgz", + "integrity": "sha512-zOh9jPYI+xrNOyisSelgym4tolKTJCQd5GBhK0+0xJvcYDcwlOoxF/rnFKQ2KRZknXSG9jWAp66fwP6AxN9STg==", + "dev": true + }, + "node_modules/style-search": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", + "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==", + "dev": true + }, + "node_modules/stylehacks": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.1.tgz", + "integrity": "sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==", + "dev": true, + "dependencies": { + "browserslist": "^4.23.0", + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/stylelint": { + "version": "16.26.1", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.26.1.tgz", + "integrity": "sha512-v20V59/crfc8sVTAtge0mdafI3AdnzQ2KsWe6v523L4OA1bJO02S7MO2oyXDCS6iWb9ckIPnqAFVItqSBQr7jw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-syntax-patches-for-csstree": "^1.0.19", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/media-query-list-parser": "^4.0.3", + "@csstools/selector-specificity": "^5.0.0", + "@dual-bundle/import-meta-resolve": "^4.2.1", + "balanced-match": "^2.0.0", + "colord": "^2.9.3", + "cosmiconfig": "^9.0.0", + "css-functions-list": "^3.2.3", + "css-tree": "^3.1.0", + "debug": "^4.4.3", + "fast-glob": "^3.3.3", + "fastest-levenshtein": "^1.0.16", + "file-entry-cache": "^11.1.1", + "global-modules": "^2.0.0", + "globby": "^11.1.0", + "globjoin": "^0.1.4", + "html-tags": "^3.3.1", + "ignore": "^7.0.5", + "imurmurhash": "^0.1.4", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.37.0", + "mathml-tag-names": "^2.1.3", + "meow": "^13.2.0", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.5.6", + "postcss-resolve-nested-selector": "^0.1.6", + "postcss-safe-parser": "^7.0.1", + "postcss-selector-parser": "^7.1.0", + "postcss-value-parser": "^4.2.0", + "resolve-from": "^5.0.0", + "string-width": "^4.2.3", + "supports-hyperlinks": "^3.2.0", + "svg-tags": "^1.0.0", + "table": "^6.9.0", + "write-file-atomic": "^5.0.1" + }, + "bin": { + "stylelint": "bin/stylelint.mjs" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/stylelint-config-recommended": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-14.0.1.tgz", + "integrity": "sha512-bLvc1WOz/14aPImu/cufKAZYfXs/A/owZfSMZ4N+16WGXLoX5lOir53M6odBxvhgmgdxCVnNySJmZKx73T93cg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "stylelint": "^16.1.0" + } + }, + "node_modules/stylelint-config-recommended-scss": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-14.1.0.tgz", + "integrity": "sha512-bhaMhh1u5dQqSsf6ri2GVWWQW5iUjBYgcHkh7SgDDn92ijoItC/cfO/W+fpXshgTQWhwFkP1rVcewcv4jaftRg==", + "dev": true, + "dependencies": { + "postcss-scss": "^4.0.9", + "stylelint-config-recommended": "^14.0.1", + "stylelint-scss": "^6.4.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "postcss": "^8.3.3", + "stylelint": "^16.6.1" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + } + } + }, + "node_modules/stylelint-scss": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.14.0.tgz", + "integrity": "sha512-ZKmHMZolxeuYsnB+PCYrTpFce0/QWX9i9gh0hPXzp73WjuIMqUpzdQaBCrKoLWh6XtCFSaNDErkMPqdjy1/8aA==", + "dev": true, + "dependencies": { + "css-tree": "^3.0.1", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.37.0", + "mdn-data": "^2.25.0", + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.6", + "postcss-selector-parser": "^7.1.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "stylelint": "^16.8.2" + } + }, + "node_modules/stylelint-scss/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/stylelint/node_modules/@csstools/media-query-list-parser": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.3.tgz", + "integrity": "sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/stylelint/node_modules/@csstools/selector-specificity": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/stylelint/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 + }, + "node_modules/stylelint/node_modules/balanced-match": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", + "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", + "dev": true + }, + "node_modules/stylelint/node_modules/cosmiconfig": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.1.tgz", + "integrity": "sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==", + "dev": true, + "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/stylelint/node_modules/file-entry-cache": { + "version": "11.1.3", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-11.1.3.tgz", + "integrity": "sha512-oMbq0PD6VIiIwMF6LIa7MEwd/l9huKwmqRKXqmrkqIZv8CvRbfowL+L0ryAl8h//HfAS0zS+4SbYoRyAoA6BJA==", + "dev": true, + "dependencies": { + "flat-cache": "^6.1.22" + } + }, + "node_modules/stylelint/node_modules/flat-cache": { + "version": "6.1.22", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.22.tgz", + "integrity": "sha512-N2dnzVJIphnNsjHcrxGW7DePckJ6haPrSFqpsBUhHYgwtKGVq4JrBGielEGD2fCVnsGm1zlBVZ8wGhkyuetgug==", + "dev": true, + "dependencies": { + "cacheable": "^2.3.4", + "flatted": "^3.4.2", + "hookified": "^1.15.0" + } + }, + "node_modules/stylelint/node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/stylelint/node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/stylelint/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/stylelint/node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/stylelint/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stylelint/node_modules/meow": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", + "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/stylelint/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/stylelint/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/stylelint/node_modules/write-file-atomic": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.2.0.tgz", + "integrity": "sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=14.18" + }, + "funding": { + "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" + } + }, + "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, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", + "dev": true + }, + "node_modules/svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "dev": true + }, + "node_modules/svgo": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.3.tgz", + "integrity": "sha512-+wn7I4p7YgJhHs38k2TNjy1vCfPIfLIJWR5MnCStsN8WuuTcBnRKcMHQLMM2ijxGZmDoZwNv8ipl5aTTen62ng==", + "dev": true, + "dependencies": { + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0", + "sax": "^1.5.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/svgo/node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/svgo/node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "dev": true + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "node_modules/synckit": { + "version": "0.11.12", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.12.tgz", + "integrity": "sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==", + "dev": true, + "dependencies": { + "@pkgr/core": "^0.2.9" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/synckit" + } + }, + "node_modules/table": { + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.9.0.tgz", + "integrity": "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==", + "dev": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "dev": true, + "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/table/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 + }, + "node_modules/tannin": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tannin/-/tannin-1.2.0.tgz", + "integrity": "sha512-U7GgX/RcSeUETbV7gYgoz8PD7Ni4y95pgIP/Z6ayI3CfhSujwKEBlGFTCRN+Aqnuyf4AN2yHL+L8x+TCGjb9uA==", + "dependencies": { + "@tannin/plural-forms": "^1.1.0" + } + }, + "node_modules/tapable": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", + "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/tar-fs": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.2.tgz", + "integrity": "sha512-QGxxTxxyleAdyM3kpFs14ymbYmNFrfY+pHj7Z8FgtbZ7w2//VAgLMac7sT6nRpIHjppXO2AwwEOg0bPFVRcmXw==", + "dev": true, + "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.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.2.0.tgz", + "integrity": "sha512-ojzvCvVaNp6aOTFmG7jaRD0meowIAuPc3cMMhSgKiVWws1GyHbGd/xvnyuRKcKlMpt3qvxx6r0hreCNITP9hIg==", + "dev": true, + "dependencies": { + "b4a": "^1.6.4", + "bare-fs": "^4.5.5", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "node_modules/tar-stream/node_modules/b4a": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.8.1.tgz", + "integrity": "sha512-aiqre1Nr0B/6DgE2N5vwTc+2/oQZ4Wh1t4NznYY4E00y8LCt6NqdRv81so00oo27D8MVKTpUa/MwUUtBLXCoDw==", + "dev": true, + "peerDependencies": { + "react-native-b4a": "*" + }, + "peerDependenciesMeta": { + "react-native-b4a": { + "optional": true + } + } + }, + "node_modules/teex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz", + "integrity": "sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==", + "dev": true, + "dependencies": { + "streamx": "^2.12.5" + } + }, + "node_modules/terser": { + "version": "5.48.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.48.0.tgz", + "integrity": "sha512-J/9An6vs9Us6wKRriSFXBWdRZapREHqFzdNUKk0pmu804EMR6dr6winwo7e5JDxN4xahxQsuysyYFwlwj4XN/Q==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.6.0.tgz", + "integrity": "sha512-Eum+5ajkaOhf5KbM26osvv21kLD7BaGqQ1UA4Ami4arYwylmGUQTgHFpHDdmJod1q4QXa66p0to/FBKID+J1vA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "terser": "^5.31.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@minify-html/node": { + "optional": true + }, + "@swc/core": { + "optional": true + }, + "@swc/css": { + "optional": true + }, + "@swc/html": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "cssnano": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "html-minifier-terser": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "postcss": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/terser/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 + }, + "node_modules/terser/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/terser/node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/test-exclude/node_modules/brace-expansion": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/test-exclude/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/text-decoder": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.7.tgz", + "integrity": "sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==", + "dev": true, + "dependencies": { + "b4a": "^1.6.4" + } + }, + "node_modules/text-decoder/node_modules/b4a": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.8.1.tgz", + "integrity": "sha512-aiqre1Nr0B/6DgE2N5vwTc+2/oQZ4Wh1t4NznYY4E00y8LCt6NqdRv81so00oo27D8MVKTpUa/MwUUtBLXCoDw==", + "dev": true, + "peerDependencies": { + "react-native-b4a": "*" + }, + "peerDependenciesMeta": { + "react-native-b4a": { + "optional": true + } + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/third-party-web": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.27.0.tgz", + "integrity": "sha512-h0JYX+dO2Zr3abCQpS6/uFjujaOjA1DyDzGQ41+oFn9VW/ARiq9g5ln7qEP9+BTzDpOMyIfsfj4OvfgXAsMUSA==", + "dev": true + }, + "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 + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "node_modules/tinyglobby": { + "version": "0.2.16", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", + "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", + "dev": true, + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "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, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/tldts-core": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.4.0.tgz", + "integrity": "sha512-/mb9kRld+x1sIMXxWNOAp5m6C+D4GrAORWlJkOJ5dElvxdN1eutz/o7qHLp9gFvDF4Y3/L2xeScoxz6AbEo8rQ==", + "dev": true + }, + "node_modules/tldts-icann": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/tldts-icann/-/tldts-icann-7.4.0.tgz", + "integrity": "sha512-guDQQAxukhpUJB4ax1Is9tWrSYRbvDAJFSMPCHSSc+C5viEfLpoF5KELybFUuw0nno2R2sP+oXHfAxZkbSd8KQ==", + "dev": true, + "dependencies": { + "tldts-core": "^7.4.0" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "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, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "dev": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/trim-repeated/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", + "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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==" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": 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, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "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, + "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, + "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, + "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, + "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/typed-query-selector": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.2.tgz", + "integrity": "sha512-EOPFbyIub4ngnEdqi2yOcNeDLaX/0jcE1JoAXQDDMIthap7FoN795lc/SHfIq2d416VufXpM8z/lD+WRm2gfOQ==", + "dev": true + }, + "node_modules/typescript": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", + "dev": true, + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "dev": true + }, + "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, + "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/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dev": true, + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "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 + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", + "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", + "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unrs-resolver": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.12.2.tgz", + "integrity": "sha512-dmlRxBJJayXjqTwC+JtF1HhJmgf3ftQ3YejFcZrf4+KKtJv0qDsK1pjqaaVjG7wJ5NJ6UVP1OqRMQ71Z4C3rxQ==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "napi-postinstall": "^0.3.4" + }, + "funding": { + "url": "https://opencollective.com/unrs-resolver" + }, + "optionalDependencies": { + "@unrs/resolver-binding-android-arm-eabi": "1.12.2", + "@unrs/resolver-binding-android-arm64": "1.12.2", + "@unrs/resolver-binding-darwin-arm64": "1.12.2", + "@unrs/resolver-binding-darwin-x64": "1.12.2", + "@unrs/resolver-binding-freebsd-x64": "1.12.2", + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.12.2", + "@unrs/resolver-binding-linux-arm-musleabihf": "1.12.2", + "@unrs/resolver-binding-linux-arm64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-arm64-musl": "1.12.2", + "@unrs/resolver-binding-linux-loong64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-loong64-musl": "1.12.2", + "@unrs/resolver-binding-linux-ppc64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-riscv64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-riscv64-musl": "1.12.2", + "@unrs/resolver-binding-linux-s390x-gnu": "1.12.2", + "@unrs/resolver-binding-linux-x64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-x64-musl": "1.12.2", + "@unrs/resolver-binding-openharmony-arm64": "1.12.2", + "@unrs/resolver-binding-wasm32-wasi": "1.12.2", + "@unrs/resolver-binding-win32-arm64-msvc": "1.12.2", + "@unrs/resolver-binding-win32-ia32-msvc": "1.12.2", + "@unrs/resolver-binding-win32-x64-msvc": "1.12.2" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", + "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/upper-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "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, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-loader": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", + "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "mime-types": "^2.1.27", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "file-loader": "*", + "webpack": "^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "file-loader": { + "optional": true + } + } + }, + "node_modules/url-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.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 + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "deprecated": "uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-to-istanbul": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "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, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-license/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, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", + "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", + "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", + "dev": true, + "dependencies": { + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/wait-on": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-8.0.5.tgz", + "integrity": "sha512-J3WlS0txVHkhLRb2FsmRg3dkMTCV1+M6Xra3Ho7HzZDHpE7DCOnoSoCJsZotrmW3uRMhvIJGSKUKrh/MeF4iag==", + "dev": true, + "dependencies": { + "axios": "^1.12.1", + "joi": "^18.0.1", + "lodash": "^4.17.21", + "minimist": "^1.2.8", + "rxjs": "^7.8.2" + }, + "bin": { + "wait-on": "bin/wait-on" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/watchpack": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.1.tgz", + "integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/web-vitals": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-4.2.4.tgz", + "integrity": "sha512-r4DIlprAGwJ7YM11VZp4R884m0Vmgr6EAKe3P+kO0PPj3Unqyvv59rczf6UiGcb9Z8QxZVcqKNwv/g0WNdWwsw==", + "dev": true + }, + "node_modules/webdriver-bidi-protocol": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.4.1.tgz", + "integrity": "sha512-ARrjNjtWRRs2w4Tk7nqrf2gBI0QXWuOmMCx2hU+1jUt6d00MjMxURrhxhGbrsoiZKJrhTSTzbIrc554iKI10qw==", + "dev": true + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/webpack": { + "version": "5.107.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.107.1.tgz", + "integrity": "sha512-mvdIWxj/H6QsfgDdH9djne3a5dYcmEmtsXGESkypaGN5jXjF/b+9KDlmTDQ2TKlFUeA2fI9Y65kihD30JOdB+Q==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.8", + "@types/json-schema": "^7.0.15", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.16.0", + "acorn-import-phases": "^1.0.3", + "browserslist": "^4.28.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.21.4", + "es-module-lexer": "^2.1.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "loader-runner": "^4.3.2", + "mime-db": "^1.54.0", + "neo-async": "^2.6.2", + "schema-utils": "^4.3.3", + "tapable": "^2.3.0", + "terser-webpack-plugin": "^5.5.0", + "watchpack": "^2.5.1", + "webpack-sources": "^3.4.1" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-bundle-analyzer": { + "version": "4.10.2", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz", + "integrity": "sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==", + "dev": true, + "dependencies": { + "@discoveryjs/json-ext": "0.5.7", + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "commander": "^7.2.0", + "debounce": "^1.2.1", + "escape-string-regexp": "^4.0.0", + "gzip-size": "^6.0.0", + "html-escaper": "^2.0.2", + "opener": "^1.5.2", + "picocolors": "^1.0.0", + "sirv": "^2.0.3", + "ws": "^7.3.1" + }, + "bin": { + "webpack-bundle-analyzer": "lib/bin/analyzer.js" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/ws": { + "version": "7.5.11", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.11.tgz", + "integrity": "sha512-zS54Oen9bITtp7kp2XM3AydrCIq1D+HwJOuH+c+e4LfpL/lotP5osijd+UoMnxwAam1GN8R4KtLAyIrIcBNpiA==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-cli": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", + "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", + "dev": true, + "dependencies": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^2.1.1", + "@webpack-cli/info": "^2.0.2", + "@webpack-cli/serve": "^2.0.5", + "colorette": "^2.0.14", + "commander": "^10.0.1", + "cross-spawn": "^7.0.3", + "envinfo": "^7.7.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^3.1.1", + "rechoir": "^0.8.0", + "webpack-merge": "^5.7.3" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/webpack-cli/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, + "engines": { + "node": ">=14" + } + }, + "node_modules/webpack-dev-middleware": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", + "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.15.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz", + "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==", + "dev": true, + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.5", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.4", + "ws": "^8.13.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/webpack-dev-server/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, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/webpack-dev-server/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/webpack-merge": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-merge/node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-merge/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-merge/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-merge/node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-sources": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.5.0.tgz", + "integrity": "sha512-HPuy+uuoTCaaoEoI1LQ3JN9+vrPBvEesnnX1jADHy728cHSMlq4wUc4afYqahq2B1mhQVZxCXOkNTnXltr+2vQ==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "deprecated": "Use @exodus/bytes instead for a more spec-conformant and faster implementation", + "dev": true, + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "dev": true, + "dependencies": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/when-exit": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/when-exit/-/when-exit-2.1.5.tgz", + "integrity": "sha512-VGkKJ564kzt6Ms1dbgPP/yuIoQCrsFAnRbptpC5wOEsDaNsbCB2bnfnaA8i/vRs5tjUSEOtIuvl9/MyVsvQZCg==", + "dev": true + }, + "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, + "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, + "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, + "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, + "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.20", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz", + "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==", + "dev": true, + "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/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true + }, + "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, + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "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/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/ws": { + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz", + "integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xdg-basedir": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", + "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "engines": { + "node": ">=12" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yaml": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz", + "integrity": "sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "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, + "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", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "3.23.8", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", + "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..9db1a95 --- /dev/null +++ b/package.json @@ -0,0 +1,22 @@ +{ + "name": "wp-performance", + "version": "2.0.0", + "description": "WP Performance Optimizer admin app", + "private": true, + "scripts": { + "build": "wp-scripts build", + "start": "wp-scripts start", + "lint:js": "wp-scripts lint-js", + "format": "wp-scripts format" + }, + "devDependencies": { + "@wordpress/scripts": "^30.0.0" + }, + "dependencies": { + "@wordpress/api-fetch": "^7.0.0", + "@wordpress/element": "^6.0.0", + "@wordpress/i18n": "^5.0.0", + "@wordpress/url": "^4.0.0", + "lucide-react": "^1.16.0" + } +} diff --git a/readme.txt b/readme.txt index ee3ff2e..1cc7d8d 100644 --- a/readme.txt +++ b/readme.txt @@ -1,280 +1,180 @@ -=== WP Performance === +=== WP Performance === Contributors: alaca Donate link: https://profiles.wordpress.org/alaca -Tags: wp performance, cache, performance, speed optimization, seo -Requires at least: 4.7 -Tested up to: 5.4 -Requires PHP: 5.6 -Stable tag: trunk +Tags: cache, performance, page speed, optimization, core web vitals +Requires at least: 6.9 +Tested up to: 7.1 +Requires PHP: 8.1 +Stable tag: 2.0.0 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html -== Changelog == +Make your site fast. Page caching, CSS/JS/HTML optimization, modern images, and Core Web Vitals tools in one simple plugin. -= 1.1.8.3 = -[FIX] Cloudflare add-on - respect existing headers +== Description == -= 1.1.8.2 = -[FIX] Prefetch add-on again - -= 1.1.8.1 = -[FIX] Prefetch add-on - -= 1.1.8 = -[NEW] HTML optimization -[NEW] Google Fonts display optimization -[NEW] Exclude CSS/JS files from asynchronous loading -[UPDATE] Translations -[FIX] Asynchronous JS loading - -= 1.1.7.4 = -[FIX] Combine CSS -[FIX] Combine JS - -= 1.1.7.3 = -[FIX] Update UI - Checkboxes -[FIX] Skip dynamic files - -= 1.1.7.2 = -[FIX] Combined resource path errors -[FIX] Identifiy local resources without URL scheme - -= 1.1.7.1 = -[FIX] htaccess errors - -= 1.1.7 = -[NEW] Cloudflare Add-on - purge individual cache -[NEW] Option to keep generated JS/CSS files when flushing the cache -[FIX] Lazy Load issues in MSIE - -= 1.1.6.2 = -[FIX] HTML minify - -= 1.1.6.1 = -[FIX] Lazyload issues - -= 1.1.6 = -[NEW] Lazy load videos -[NEW] Disable Emojis -[NEW] Disable Embeds -[UPDATE] Translations -[FIX] Load/Save settings - -= 1.1.5.1 = -[FIX] Fix WooCommerce Add to cart error - -= 1.1.5 = -[IMPROVE] Minify JS -[IMPROVE] Minify CSS -[IMPROVE] Minify HTML -[IMPROVE] Images LazyLoad -[IMPROVE] Async JavaScript -[IMPROVE] Prefetch Add-on -[FIX] Cache dir path - -= 1.1.4.2 = -[IMPROVE] Minify JS -[IMPROVE] Process CSS import rules - -= 1.1.4.1 = -[FIX] Minify HTML - -= 1.1.4 = -[NEW] Multisite support -[NEW] AMP support - -= 1.1.3.4 = -[FIX] Clear log file after clearing the cache -[FIX] Wrong optimization status message in WPP metabox on edit page screen -[IMPROVE] Admin UI -[IMPROVE] Cloudflare add-on -[IMPROVE] Dynamic page preload add-on -[UPDATE] languages - -= 1.1.3.3 = -[FIX] Disable resources on selected URL -[UPDATE] Chinese language file - -= 1.1.3.2 = -[FIX] Parser minify error - -= 1.1.3.1 = -[FIX] Autoloader errors - -= 1.1.3 = -[NEW] Dynamic page preload addon -[NEW] Minify HTML - -= 1.1.2 = -[UPDATE] Chinese language file - -= 1.1.1 = -[NEW] Remove cache directory after uninstall -[IMPROVE] Move log file into cache dir -[FIX] Empty template errors - -= 1.1.0 = -[NEW] Exclude user agents from cache -[NEW] Exclude search engines from cache -[NEW] Add-ons page -[IMPROVE] Admin UI -[FIX] XML files cache - -= 1.0.9 = -[IMPROVE] JavaScript async loading -[IMPROVE] Security -[IMPROVE] Parser -[FIX] LazyLoad -[FIX] Exclude urls - -= 1.0.8.1 = -[FIX] Minor bug fixes - -= 1.0.8 = -[NEW] Cloudflare integration -[IMPROVE] Admin UI for desktop devices -[IMPROVE] Admin UI for mobile devices -[FIX] Disabled resources disappearing options -[FIX] Minor bugfixes - -= 1.0.7 = -[FIX] Add items to menu error -[FIX] Parser warnings for responsive images -[IMPROVE] Admin UI on mobile devices - -= 1.0.6 = -[NEW] Group resources ( Theme, Plugins, External ) -[IMPROVE] Security -[IMPROVE] Admin UI on mobile devices -[UPDATE] Translations -[FIX] Disable external resources -[FIX] Clear cache on front-page -[FIX] Various minor bugfixes - -= 1.0.5 = -[NEW] Drafts cleanup -[NEW] WP CLI commands - run database cleanups -[IMPROVE] Admin UI -[UPDATE] Translations -[FIX] Minor bugfixes - -= 1.0.4 = -[NEW] Resource hints -[NEW] Exclude page from Image optimization on edit page screen -[NEW] Exclude URL(s) from Image optimization -[IMPROVE] Metabox UI on Edit page -[IMPROVE] Admin UI -[UPDATE] Translations -[FIX] Cron tasks cleanup -[FIX] Combine Google fonts - -= 1.0.3 = -[NEW] Cron tasks cleanup -[NEW] Exclude page from Cache, JS and CSS optimization on edit page screen -[NEW] Admin toolbar links -[IMPROVE] Admin Database UI -[IMPROVE] Admin UI on mobile devices -[UPDATE] Translations -[FIX] htaccess backup handling -[FIX] Minor bugfixes - -= 1.0.2 = -[NEW] Detect server software -[NEW] Generate NGINX rewrite rules -[NEW] Clear collected files list -[IMPROVE] Admin UI -[UPDATE] Translations -[FIX] Htaccess permissions notice - -= 1.0.1 = -[FIX] PCRE2 parser issues -[FIX] Clear cache JS error -[NEW] Chinese translation +WP Performance makes your WordPress site load faster without the headache. Turn on a few options and the plugin handles caching, asset optimization, and image delivery for you. -== Description == +Not sure where to start? Open the **Overview** tab and pick a one-click preset (Safe, Balanced, or Aggressive). You can fine-tune anything afterwards. + +Version 2.0 is a complete rebuild with a fast new dashboard and no third-party dependencies. Everything below works together out of the box. + +### Caching ### + +* **Page cache** - serves a static HTML copy of each page, before WordPress even loads +* **Block cache** - cache just the slow parts of a page, even on pages you can't fully cache (more below) +* **Cache preloading** - warm the cache from your sitemap +* **Browser caching** - tells browsers to keep files so repeat visits are instant +* **GZIP compression** - sends smaller files to the browser +* **Object cache** - optional Redis drop-in to cut database load +* **Smart by default** - skips logged-in users and WooCommerce/EDD cart pages, and ignores tracking parameters (utm, gclid, fbclid) so clean URLs share one cache +* **Mobile cache** - keep a separate copy for mobile devices when you need it + +### CSS ### + +* Minify CSS (inline and files) +* Combine CSS files +* Load CSS without blocking the page +* Remove unused CSS, per page +* Critical CSS +* Combine Google Fonts, or host them on your own server +* Control font loading (font-display) +* DNS prefetch and preconnect hints -WP Performance is a cache & performance plugin which makes optimizing your site really easy. -This plugin generates static html files from your dynamic content and it uses mod_rewrite to load the cache files which is the fastest method. - - -### Features ### - -* Page cache -* Cache preloading -* Browser cache -* GZIP Compression -* Minify CSS, JavaScript, and HTML -* Asynchronously load CSS/JavaScript -* Combine CSS/JavaScript -* Disable CSS/JavaScript -* Resource hints -* Critical CSS path generator -* Database Cleaner -* Export/import settings -* Lazy Load images ( supports native lazy load ) -* Lazy Load videos ( supports native lazy load ) +### JavaScript ### + +* Minify JavaScript (inline and files) +* Combine JavaScript files +* Defer JavaScript +* Delay JavaScript until the visitor interacts (great for third-party scripts) +* Disable scripts you don't need, site-wide or per page + +### HTML ### + +* Minify HTML +* Remove comments and unneeded markup + +### Images and media ### + +* Lazy load images and videos (uses native browser lazy loading) * Responsive images -* Regenerate thumbs -* CDN -* WP-CLI Support -* WordPress Multisite +* Add missing width and height to stop layout shift (better CLS) +* Preload your largest image and set fetchpriority for a faster LCP +* Convert images to WebP and AVIF +* Custom image sizes and one-click thumbnail regeneration +* Disable emojis and embeds + +### Database ### + +* Clean up revisions, auto-drafts, trash, spam, transients, and stale cron tasks +* Schedule cleanups daily, weekly, or monthly + +### CDN ### + +* Rewrite asset URLs to your CDN, with exclusions + +### Tools ### + +* **Overview dashboard** with environment health checks +* **One-click presets** - Safe, Balanced, Aggressive +* **Restore points** - roll back to your last five saved configurations +* **Troubleshooting log** with a live viewer +* **Export and import** your settings +* **Per-page exclusions** from the post editor +* **WP-CLI** commands +* **Multisite** support + +### Block cache ### + +Block cache stores the rendered output of a section of a page and reuses it, even on pages that are not fully cached (like logged-in or dynamic pages). Use it three ways: + +1. **Cache block** - add the "Cache" block in the editor and put any blocks inside it +2. **Shortcode** - `[wpp_cache ttl="600"]...[/wpp_cache]` +3. **PHP** - in a template: + +`if ( wpp_cache_start( 'sidebar', [ 'ttl' => 3600 ] ) ) { expensive_render(); wpp_cache_end(); }` + +You choose how long to cache and whether to keep a separate copy per page, per device, per role, or for logged-in visitors. ### Add-ons ### -* Cloudflare integration -* Varnish cache -* Dynamic page preload +* **Cloudflare** - purge cache and control Cloudflare settings +* **Varnish** - auto-purge Varnish cache +* **Prefetch** - prefetch links on hover for instant navigation -### Supported languages ### +### WP-CLI ### -* English -* Hrvatski -* 中文 (by @cmhello) +* `wp wpp flush` - clear the page cache +* `wp wpp flush-blocks` - clear the block cache +* `wp wpp enable` - enable WP Performance +* `wp wpp disable` - temporarily disable WP Performance +* `wp wpp cleanup []` - run a database cleanup (all, trash, spam, revisions, autodrafts, transients, cron) +### Languages ### -### WP-CLI Support ### +* English +* Hrvatski (Croatian) -* **wp wpp flush** - Clear the cache -* **wp wpp disable** - Temporarily disable WP Performance -* **wp wpp enable** - Enable WP Performance -* **wp wpp cleanup** - Run all database cleanups -* **wp wpp cleanup trash** - Run trash cleanup -* **wp wpp cleanup spam** - Run spam cleanup -* **wp wpp cleanup revisions** - Run revisions cleanup -* **wp wpp cleanup drafts** - Run drafts cleanup -* **wp wpp cleanup transients** - Run transients cleanup -* **wp wpp cleanup cron** - Run cron tasks cleanup +### Report bugs ### -### Report bugs ### -If you encounter any bug, please create an issue on [Github](https://github.com/alaca/WP-Performance). +Found a bug? Please open an issue on [GitHub](https://github.com/alaca/WP-Performance). == Installation == -1. Upload "wp-performance" to the "/wp-content/plugins/" directory -2. Activate the plugin through the Plugins menu in WordPress +1. Upload the "wp-performance" folder to "/wp-content/plugins/" +2. Activate the plugin from the Plugins menu in WordPress +3. Open WP Performance and apply a preset from the Overview tab, or turn on the options you want +If you already used an older version, your existing settings are migrated automatically. == Screenshots == -1. Cache page -2. CSS optimization page -3. JavaScript optimization page -4. Images -5. DB Optimizer -6. CDN -7. Settings - +1. Overview dashboard with presets and health checks +2. Page cache settings +3. Image and media optimization +4. Database cleanup +5. Settings, restore points, and the troubleshooting log == Frequently Asked Questions == += Where do I start? = +Open the Overview tab and apply a preset. Safe is risk-free, Balanced suits most sites, and Aggressive turns everything on (test your site afterwards). -= Does WP Performance work with Nginx? = -WP Performance has support for Nginx servers, but an extra step is required to make it working properly. -Depending on your WP Performance configuration, rewrite rules will be generated and listed under the “Settings” tab. You have to copy and paste generated rules manually into the Nginx config file. += What is the block cache for? = +It caches just one section of a page. That is useful on pages you can't fully cache, like a logged-in dashboard, where one part (a menu, a product grid) is still expensive to build every time. -= Does WP Performance support WordPress Multisite? = -WP Performance supports WordPress Multisite with subdomains. += Does it work with Nginx? = +Yes. WP Performance generates the Nginx rules for you and shows them under Settings. Copy them into your server config and reload Nginx. + += Does it support Multisite? = +Yes. + += Do I need Redis? = +No. Redis is optional. If it is available, you can enable the object cache for an extra speed boost; everything else works without it. = Where can I get help? = -You can get help on the wordpress.org support forum. -If you encounter any bug, please create an issue on [Github](https://github.com/alaca/WP-Performance). \ No newline at end of file +Use the [wordpress.org support forum](https://wordpress.org/support/plugin/wp-performance), or open an issue on [GitHub](https://github.com/alaca/WP-Performance). + +== Changelog == + += 2.0.0 = +A complete rebuild with a new dashboard and many new features. +[NEW] Overview dashboard with environment health checks +[NEW] One-click presets (Safe, Balanced, Aggressive) +[NEW] Block cache - cache parts of a page via the Cache block, the [wpp_cache] shortcode, or wpp_cache_start() +[NEW] Delay JavaScript until the visitor interacts +[NEW] Remove unused CSS, per page +[NEW] Host Google Fonts locally +[NEW] Convert images to WebP and AVIF +[NEW] Preload the LCP image and set fetchpriority +[NEW] Add missing image width and height to reduce layout shift +[NEW] Redis object cache drop-in +[UPDATE] Rebuilt the cache engine, asset optimizer, and CSS/JS/HTML minifiers from scratch, with no third-party dependencies +[UPDATE] New React dashboard +[UPDATE] Existing settings are migrated automatically on update +[REMOVED] AMP support + += 1.1.8.3 = +[FIX] Cloudflare add-on - respect existing headers + +For the full history of older releases, see [changelog.txt](https://plugins.svn.wordpress.org/wp-performance/trunk/changelog.txt). diff --git a/src/Addons/Cloudflare/CloudflareApi.php b/src/Addons/Cloudflare/CloudflareApi.php new file mode 100644 index 0000000..8ab4ce1 --- /dev/null +++ b/src/Addons/Cloudflare/CloudflareApi.php @@ -0,0 +1,116 @@ +request('POST', "/zones/{$this->zone}/purge_cache", ['purge_everything' => true]); + } + + /** @param string[] $urls */ + public function purgeUrls(array $urls): array + { + $urls = array_values(array_filter(array_map('strval', $urls))); + if ($urls === []) { + return ['success' => false, 'errors' => ['No URLs provided']]; + } + return $this->request('POST', "/zones/{$this->zone}/purge_cache", ['files' => $urls]); + } + + /** + * Push the plugin's CF settings to the zone. + * + * @param array $cfg + * @return array setting id => error message, empty when every push succeeded + */ + public function applyAll(array $cfg, bool $withDevMode = true): array + { + $values = []; + if ($withDevMode) { + $values['development_mode'] = ! empty($cfg['dev_mode']) ? 'on' : 'off'; + } + $values['cache_level'] = (string) ($cfg['cache_level'] ?? 'aggressive'); + $values['browser_cache_ttl'] = (int) ($cfg['browser_expire'] ?? 14400); + $values['rocket_loader'] = ! empty($cfg['rocket_loader']) ? 'on' : 'off'; + $values['brotli'] = ! empty($cfg['brotli']) ? 'on' : 'off'; + + $failed = []; + foreach ($values as $id => $value) { + $result = $this->setting($id, $value); + if (empty($result['success'])) { + $messages = self::errorMessages((array) ($result['errors'] ?? [])); + $failed[$id] = $messages[0] ?? __('Unknown Cloudflare error.', 'wpp'); + } + } + + return $failed; + } + + /** + * Cloudflare reports errors as {code, message} objects; transport failures + * are added by request() as plain strings. + * + * @param array $errors + * @return list + */ + public static function errorMessages(array $errors): array + { + $out = []; + foreach ($errors as $error) { + if (is_array($error)) { + $message = trim((string) ($error['message'] ?? '')); + $code = isset($error['code']) ? ' (' . $error['code'] . ')' : ''; + $out[] = $message === '' ? '' : $message . $code; + continue; + } + $out[] = trim((string) $error); + } + + return array_values(array_filter($out)); + } + + private function setting(string $id, mixed $value): array + { + return $this->request('PATCH', "/zones/{$this->zone}/settings/{$id}", ['value' => $value]); + } + + private function request(string $method, string $path, ?array $body = null): array + { + $args = [ + 'method' => $method, + 'timeout' => 15, + 'headers' => [ + 'X-Auth-Email' => $this->email, + 'X-Auth-Key' => $this->key, + 'Content-Type' => 'application/json', + ], + ]; + if ($body !== null) { + $args['body'] = (string) wp_json_encode($body); + } + + $response = wp_remote_request(self::BASE . $path, $args); + if (is_wp_error($response)) { + return ['success' => false, 'errors' => [$response->get_error_message()]]; + } + + $data = json_decode((string) wp_remote_retrieve_body($response), true); + return is_array($data) ? $data : ['success' => false, 'errors' => ['Invalid response']]; + } +} diff --git a/src/Addons/Cloudflare/CloudflareController.php b/src/Addons/Cloudflare/CloudflareController.php new file mode 100644 index 0000000..462d518 --- /dev/null +++ b/src/Addons/Cloudflare/CloudflareController.php @@ -0,0 +1,129 @@ + purge everything + * POST /wpp/v1/cloudflare/purge-custom -> purge the posted URLs, or the saved ones + * GET /wpp/v1/cloudflare/status -> zone settings the last save could not apply + */ +final class CloudflareController +{ + private const NS = 'wpp/v1'; + + public function __construct(private SettingsService $settings) + { + } + + public function registerRoutes(): void + { + register_rest_route(self::NS, '/cloudflare/purge', [ + [ + 'methods' => WP_REST_Server::CREATABLE, + 'callback' => [$this, 'purge'], + 'permission_callback' => [$this, 'canAccess'], + ], + ]); + register_rest_route(self::NS, '/cloudflare/purge-custom', [ + [ + 'methods' => WP_REST_Server::CREATABLE, + 'callback' => [$this, 'purgeCustom'], + 'permission_callback' => [$this, 'canAccess'], + 'args' => [ + 'urls' => [ + 'type' => 'array', + 'items' => ['type' => 'string'], + ], + ], + ], + ]); + register_rest_route(self::NS, '/cloudflare/status', [ + [ + 'methods' => WP_REST_Server::READABLE, + 'callback' => [$this, 'status'], + 'permission_callback' => [$this, 'canAccess'], + ], + ]); + } + + public function canAccess(): bool + { + return current_user_can('manage_options'); + } + + public function purge(): WP_REST_Response + { + $api = $this->api(); + if ($api === null) { + return $this->error(); + } + return $this->result($api->purgeAll()); + } + + public function purgeCustom(WP_REST_Request $request): WP_REST_Response + { + $api = $this->api(); + if ($api === null) { + return $this->error(); + } + + $posted = $request->get_param('urls'); + $urls = is_array($posted) && $posted !== [] + ? array_map('esc_url_raw', array_map('strval', $posted)) + : (array) ($this->settings->get('cloudflare')['custom_purge_urls'] ?? []); + + return $this->result($api->purgeUrls(array_values(array_filter($urls)))); + } + + public function status(): WP_REST_Response + { + return new WP_REST_Response([ + 'errors' => (array) get_option(CloudflareModule::ERRORS_OPTION, []), + ], 200); + } + + private function api(): ?CloudflareApi + { + $cf = $this->settings->get('cloudflare'); + if (empty($cf['enabled']) || empty($cf['email']) || empty($cf['api_key']) || empty($cf['zone_id'])) { + return null; + } + return new CloudflareApi((string) $cf['email'], (string) $cf['api_key'], (string) $cf['zone_id']); + } + + /** + * A non-2xx body is what api-fetch throws to the client, and it reads + * 'message', so the reason has to travel in that key. + */ + private function result(array $response): WP_REST_Response + { + $ok = ! empty($response['success']); + $errors = CloudflareApi::errorMessages((array) ($response['errors'] ?? [])); + + return new WP_REST_Response([ + 'success' => $ok, + 'code' => $ok ? 'wpp_cloudflare_ok' : 'wpp_cloudflare_error', + 'message' => $ok ? '' : ($errors[0] ?? __('Cloudflare rejected the request.', 'wpp')), + 'errors' => $errors, + ], $ok ? 200 : 400); + } + + private function error(): WP_REST_Response + { + $message = __('Cloudflare is not configured.', 'wpp'); + + return new WP_REST_Response([ + 'success' => false, + 'code' => 'wpp_cloudflare_not_configured', + 'message' => $message, + 'errors' => [$message], + ], 400); + } +} diff --git a/src/Addons/Cloudflare/CloudflareModule.php b/src/Addons/Cloudflare/CloudflareModule.php new file mode 100644 index 0000000..45e2f5c --- /dev/null +++ b/src/Addons/Cloudflare/CloudflareModule.php @@ -0,0 +1,88 @@ + 'wpp_cloudflare', + 'defaults' => [ + 'enabled' => false, + 'api_key' => '', + 'email' => '', + 'zone_id' => '', + 'dev_mode' => false, + 'cache_level' => 'aggressive', + 'browser_expire' => 14400, + 'rocket_loader' => false, + 'brotli' => false, + 'custom_purge_urls' => [], + ], + ]; + return $groups; + }); + + $settings = $container->get(SettingsService::class); + + add_action('wpp.settings.updated', static function (string $group) use ($settings): void { + if ($group !== 'cloudflare') { + return; + } + $cf = $settings->get('cloudflare'); + if (empty($cf['enabled']) || empty($cf['email']) || empty($cf['api_key']) || empty($cf['zone_id'])) { + return; + } + + // Cloudflare turns development mode off by itself after three hours, + // so re-asserting a stale 'on' would bypass the whole cache again. + $dev = ! empty($cf['dev_mode']); + $pushed = get_option(self::DEV_MODE_OPTION, null); + $withDev = $pushed === null || (bool) $pushed !== $dev; + + $api = new CloudflareApi((string) $cf['email'], (string) $cf['api_key'], (string) $cf['zone_id']); + $failed = $api->applyAll($cf, $withDev); + + if ($withDev && ! isset($failed['development_mode'])) { + update_option(self::DEV_MODE_OPTION, $dev, false); + } + + $logger = new Logger($settings); + foreach ($failed as $id => $message) { + $logger->log(sprintf('Cloudflare: %s was not applied (%s)', $id, $message)); + } + + if ($failed === []) { + delete_option(self::ERRORS_OPTION); + return; + } + update_option(self::ERRORS_OPTION, $failed, false); + }, 10, 2); + + add_action('wpp.rest.register', static function ($registry) use ($settings): void { + $registry->add(new CloudflareController($settings)); + }); + } +} diff --git a/src/Addons/Prefetch/PrefetchModule.php b/src/Addons/Prefetch/PrefetchModule.php new file mode 100644 index 0000000..be33e7b --- /dev/null +++ b/src/Addons/Prefetch/PrefetchModule.php @@ -0,0 +1,147 @@ + */ + private array $config = []; + + public function id(): string + { + return 'prefetch'; + } + + public function boot(Container $container): void + { + add_filter('wpp.settings.groups', static function (array $groups): array { + $groups['prefetch'] = [ + 'option' => 'wpp_prefetch', + 'defaults' => [ + 'enabled' => false, + 'mode' => 'prerender', // prerender | prefetch + 'eagerness' => 'moderate', // conservative | moderate | eager + 'exclude' => [], + ], + ]; + return $groups; + }); + + if (is_admin()) { + return; + } + + $config = $container->get(SettingsService::class)->get('prefetch'); + if (empty($config['enabled'])) { + return; + } + + $this->config = $config; + add_action('wp_footer', [$this, 'speculationRules'], 99); + add_action('wp_footer', [$this, 'fallback'], 100); + } + + public function speculationRules(): void + { + $mode = ($this->config['mode'] ?? '') === 'prefetch' ? 'prefetch' : 'prerender'; + + // Same-origin links only, minus admin/login, query-string action links + // (logout, add-to-cart, etc.), and anything marked nofollow. + $conditions = [ + ['href_matches' => '/*'], + ['not' => ['href_matches' => '/*\\?*']], + ['not' => ['selector_matches' => '[rel~="nofollow"]']], + ]; + foreach ($this->exclusions() as $pattern) { + $conditions[] = ['not' => ['href_matches' => $pattern]]; + } + + $rules = [ + $mode => [[ + 'source' => 'document', + 'where' => ['and' => $conditions], + 'eagerness' => $this->eagerness(), + ]], + ]; + + echo '\n"; + } + + /** + * Prefetch for browsers without Speculation Rules support. It gets the same + * exclusions and eagerness as the rules above; only prerendering is beyond + * it, so 'mode' has no fallback equivalent. + */ + public function fallback(): void + { + $eagerness = $this->eagerness(); + $config = [ + 'exclude' => array_map([$this, 'toRegex'], $this->exclusions()), + 'event' => $eagerness === 'conservative' ? 'pointerdown' : 'mouseover', + 'eager' => $eagerness === 'eager', + ]; + + echo '' . "\n"; + } + + /** @return list URL patterns no handler may ever prefetch. */ + private function exclusions(): array + { + $patterns = [ + (string) parse_url(admin_url('/'), PHP_URL_PATH) . '*', + (string) parse_url(wp_login_url(), PHP_URL_PATH) . '*', + ]; + + foreach ((array) ($this->config['exclude'] ?? []) as $pattern) { + $pattern = trim((string) $pattern); + if ($pattern !== '') { + $patterns[] = $pattern; + } + } + + return $patterns; + } + + private function eagerness(): string + { + return in_array($this->config['eagerness'] ?? '', ['conservative', 'moderate', 'eager'], true) + ? (string) $this->config['eagerness'] + : 'moderate'; + } + + /** Speculation Rules glob to a JavaScript regular expression source. */ + private function toRegex(string $pattern): string + { + $escaped = str_replace( + ['\\', '/', '.', '+', '?', '^', '$', '{', '}', '(', ')', '|', '[', ']'], + ['\\\\', '\\/', '\\.', '\\+', '\\?', '\\^', '\\$', '\\{', '\\}', '\\(', '\\)', '\\|', '\\[', '\\]'], + $pattern + ); + + return '^' . str_replace('*', '.*', $escaped) . '$'; + } +} diff --git a/src/Addons/Varnish/VarnishClient.php b/src/Addons/Varnish/VarnishClient.php new file mode 100644 index 0000000..38af21a --- /dev/null +++ b/src/Addons/Varnish/VarnishClient.php @@ -0,0 +1,37 @@ + $cfg */ + public function purge(array $cfg): void + { + $custom = trim((string) ($cfg['custom_host'] ?? '')); + $target = $custom !== '' ? $custom : home_url('/'); + + $parsed = wp_parse_url($target); + if (! is_array($parsed) || empty($parsed['host'])) { + return; + } + + $scheme = $parsed['scheme'] ?? 'http'; + $port = isset($parsed['port']) ? ':' . (int) $parsed['port'] : ''; + $purgeUrl = $scheme . '://' . $parsed['host'] . $port . '/.*'; + + wp_remote_request($purgeUrl, [ + 'method' => 'PURGE', + 'blocking' => false, + 'timeout' => 2, + 'headers' => [ + 'host' => (string) wp_parse_url(home_url(), PHP_URL_HOST), + 'X-Purge-Method' => 'regex', + ], + ]); + } +} diff --git a/src/Addons/Varnish/VarnishModule.php b/src/Addons/Varnish/VarnishModule.php new file mode 100644 index 0000000..a8c7627 --- /dev/null +++ b/src/Addons/Varnish/VarnishModule.php @@ -0,0 +1,40 @@ + 'wpp_varnish', + 'defaults' => ['enabled' => false, 'custom_host' => ''], + ]; + return $groups; + }); + + $settings = $container->get(SettingsService::class); + if (empty($settings->get('varnish')['enabled'])) { + return; + } + + add_action('wpp.cache.after_clear', static function () use ($settings): void { + (new VarnishClient())->purge($settings->get('varnish')); + }); + } +} diff --git a/src/Admin/AdminAssets.php b/src/Admin/AdminAssets.php new file mode 100644 index 0000000..78051bd --- /dev/null +++ b/src/Admin/AdminAssets.php @@ -0,0 +1,101 @@ + 'enqueue']; + } + + public function enqueue(): void + { + if (! $this->isPluginPage()) { + return; + } + + $asset = $this->asset('admin/app'); + + wp_enqueue_script( + self::HANDLE, + WPP_URL . 'build/admin/app/index.js', + $asset['dependencies'], + $asset['version'], + true + ); + + wp_set_script_translations(self::HANDLE, 'wpp', WPP_DIR . 'languages'); + + // Version the stylesheet by its own mtime: wp-scripts ties the CSS version to + // the JS content hash, so a CSS-only change would otherwise not bust the cache. + $cssFile = WPP_DIR . 'build/admin/app.css'; + $cssVer = file_exists($cssFile) ? (string) filemtime($cssFile) : $asset['version']; + + wp_enqueue_style( + self::HANDLE, + WPP_URL . 'build/admin/app.css', + [], + $cssVer + ); + + // Swaps in the built app-rtl.css on right-to-left locales. + wp_style_add_data(self::HANDLE, 'rtl', 'replace'); + + $payload = [ + 'rest' => esc_url_raw(rest_url('wpp/v1/')), + 'nonce' => wp_create_nonce('wp_rest'), + 'slug' => WPP_SLUG, + 'version' => WPP_VERSION, + 'adminUrl' => esc_url_raw(admin_url('admin.php?page=' . WPP_SLUG)), + 'siteUrl' => esc_url_raw(home_url('/')), + 'settings' => $this->settings->all(), + 'caps' => [ + 'redis' => extension_loaded('redis'), + 'memcached' => class_exists('Memcached'), + 'webp' => function_exists('imagewebp'), + 'avif' => function_exists('imageavif'), + 'opcache' => function_exists('opcache_get_status'), + ], + ]; + + wp_add_inline_script( + self::HANDLE, + 'window.WPP = Object.assign(window.WPP || {}, ' . wp_json_encode($payload) . ');', + 'before' + ); + } + + /** @return array{dependencies: string[], version: string} */ + private function asset(string $name): array + { + $file = WPP_DIR . "build/{$name}/index.asset.php"; + if (file_exists($file)) { + /** @var array{dependencies: string[], version: string} $data */ + $data = require $file; + return $data; + } + return ['dependencies' => [], 'version' => WPP_VERSION]; + } + + private function isPluginPage(): bool + { + $page = isset($_GET['page']) ? sanitize_key((string) $_GET['page']) : ''; + return $page === WPP_SLUG; + } +} diff --git a/src/Admin/AdminMenu.php b/src/Admin/AdminMenu.php new file mode 100644 index 0000000..b16519a --- /dev/null +++ b/src/Admin/AdminMenu.php @@ -0,0 +1,50 @@ + 'registerMenu']; + } + + public function registerMenu(): void + { + add_menu_page( + __('WP Performance', 'wpp'), + __('WP Performance', 'wpp'), + 'manage_options', + WPP_SLUG, + [$this, 'render'], + $this->icon(), + 80 + ); + } + + /** + * The plugin mark as a menu icon. Single colour in the default menu grey: + * WordPress only varies opacity between states, so the fill is baked in. + */ + private function icon(): string + { + $svg = '' + . '' + . ''; + + return 'data:image/svg+xml;base64,' . base64_encode($svg); + } + + public function render(): void + { + echo '

      '; + } +} diff --git a/src/Admin/CompatibilityNotice.php b/src/Admin/CompatibilityNotice.php new file mode 100644 index 0000000..6888160 --- /dev/null +++ b/src/Admin/CompatibilityNotice.php @@ -0,0 +1,68 @@ + 'WP Rocket', + 'w3-total-cache/w3-total-cache.php' => 'W3 Total Cache', + 'wp-super-cache/wp-cache.php' => 'WP Super Cache', + 'litespeed-cache/litespeed-cache.php' => 'LiteSpeed Cache', + 'wp-fastest-cache/wpFastestCache.php' => 'WP Fastest Cache', + 'cache-enabler/cache-enabler.php' => 'Cache Enabler', + 'comet-cache/comet-cache.php' => 'Comet Cache', + 'sg-cachepress/sg-cachepress.php' => 'SiteGround Optimizer', + 'breeze/breeze.php' => 'Breeze', + 'autoptimize/autoptimize.php' => 'Autoptimize', + 'hummingbird-performance/wp-hummingbird.php' => 'Hummingbird', + 'wp-optimize/wp-optimize.php' => 'WP-Optimize', + ]; + + protected function actions(): array + { + return ['admin_notices' => 'render']; + } + + public function render(): void + { + // The notice is the only warning before a drop-in is replaced, so it is + // pointless for anyone who cannot deactivate the other plugin. + if (! current_user_can('manage_options')) { + return; + } + + $active = (array) get_option('active_plugins', []); + + // Network-activated plugins live in a site option keyed by plugin file. + if (is_multisite()) { + $active = array_merge($active, array_keys((array) get_site_option('active_sitewide_plugins', []))); + } + + $found = []; + foreach (self::KNOWN as $file => $name) { + if (in_array($file, $active, true)) { + $found[] = $name; + } + } + + if ($found === []) { + return; + } + + printf( + '

      %s %s. %s

      ', + esc_html__('WP Performance detected another caching/optimization plugin:', 'wpp'), + esc_html(implode(', ', $found)), + esc_html__('Running more than one can cause conflicts; consider deactivating the others.', 'wpp') + ); + } +} diff --git a/src/Admin/Metabox.php b/src/Admin/Metabox.php new file mode 100644 index 0000000..089c873 --- /dev/null +++ b/src/Admin/Metabox.php @@ -0,0 +1,118 @@ + 'addBox', + 'save_post' => ['save', 10, 1], + ]; + } + + /** + * Named screens only. add_meta_boxes also fires on screens whose object is + * not a WP_Post (the link editor passes a bookmark), and a null screen would + * register the box there too. + */ + public function addBox(): void + { + add_meta_box( + 'wpp-exclude', + __('WP Performance', 'wpp'), + [$this, 'render'], + array_values(get_post_types(['public' => true])), + 'side', + 'default' + ); + } + + public function render(mixed $post): void + { + if (! $post instanceof WP_Post) { + return; + } + + wp_nonce_field('wpp_metabox', 'wpp_metabox_nonce'); + + $labels = [ + 'cache' => __('Exclude from cache', 'wpp'), + 'css' => __('Exclude from CSS optimization', 'wpp'), + 'js' => __('Exclude from JavaScript optimization', 'wpp'), + 'html' => __('Exclude from HTML optimization', 'wpp'), + 'image' => __('Exclude from image optimization', 'wpp'), + 'video' => __('Exclude from video lazy load', 'wpp'), + ]; + + echo '
      '; + foreach ($labels as $key => $label) { + $checked = get_post_meta($post->ID, '_wpp_exclude_' . $key, true) ? ' checked' : ''; + printf( + '

      ', + esc_attr($key), + $checked, + esc_html($label) + ); + } + echo '
      '; + } + + public function save(int $postId): void + { + $nonce = isset($_POST['wpp_metabox_nonce']) ? sanitize_text_field(wp_unslash($_POST['wpp_metabox_nonce'])) : ''; + if ($nonce === '' || ! wp_verify_nonce($nonce, 'wpp_metabox')) { + return; + } + if ((defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) || ! current_user_can('edit_post', $postId)) { + return; + } + + $selected = []; + if (isset($_POST['wpp_exclude']) && is_array($_POST['wpp_exclude'])) { + $selected = array_map('sanitize_key', array_keys(wp_unslash($_POST['wpp_exclude']))); + } + + $changed = false; + + foreach (self::TYPES as $type) { + $key = '_wpp_exclude_' . $type; + $was = (bool) get_post_meta($postId, $key, true); + $now = in_array($type, $selected, true); + + if ($was === $now) { + continue; + } + + $changed = true; + + if ($now) { + update_post_meta($postId, $key, 1); + } else { + delete_post_meta($postId, $key); + } + } + + // These exclusions are only read while a page is being written. + // advanced-cache.php runs before WordPress and has no post meta, so an + // already cached copy would keep being served until it expired. + if ($changed) { + $settings = new SettingsService(); + (new CacheStore())->clear(! empty($settings->get('cache')['keep_assets'])); + } + } +} diff --git a/src/Cache/CacheInvalidation.php b/src/Cache/CacheInvalidation.php new file mode 100644 index 0000000..eb849f6 --- /dev/null +++ b/src/Cache/CacheInvalidation.php @@ -0,0 +1,131 @@ + ['onSavePost', 10, 1], + 'deleted_post' => ['onDeletePost', 10, 1], + 'switch_theme' => 'onSwitchTheme', + 'wpp.settings.updated' => ['onSettingsUpdated', 10, 2], + 'comment_post' => ['onCommentPosted', 10, 2], + 'edit_comment' => ['onCommentChanged', 10, 1], + 'transition_comment_status' => ['onCommentTransition', 10, 2], + 'trashed_comment' => ['onCommentChanged', 10, 1], + // The drop-in picks its path scheme from a snapshot of this option, + // so a change must refresh the snapshot and drop paths built the old way. + 'update_option_permalink_structure' => 'onPermalinksChanged', + 'permalink_structure_changed' => 'onPermalinksChanged', + ]; + } + + public function onSavePost(int $postId): void + { + if (wp_is_post_revision($postId) || wp_is_post_autosave($postId)) { + return; + } + if (! empty($this->settings->get('cache')['clear_on_publish'])) { + $this->store->clear($this->keepAssets()); + } + // Block cache may wrap dynamic content (recent posts, counts) that a new + // or edited published post affects, so refresh it on content changes. + if (get_post_status($postId) === 'publish') { + $this->flushBlocks(); + } + } + + /** @param int|string $approved 1, 'approve' or 'spam', as wp_allow_comment() returns it */ + public function onCommentPosted(int $commentId, $approved = 0): void + { + // A comment held for moderation is not in anyone's rendered output yet. + if ($approved === 1 || $approved === '1' || $approved === 'approve') { + $this->onCommentChanged(); + } + } + + public function onCommentTransition(string $new, string $old): void + { + if ($new !== $old && ($new === 'approved' || $old === 'approved')) { + $this->onCommentChanged(); + } + } + + public function onCommentChanged(): void + { + if (! empty($this->settings->get('cache')['clear_on_publish'])) { + $this->store->clear($this->keepAssets()); + } + $this->flushBlocks(); + } + + public function onDeletePost(int $postId): void + { + if (! empty($this->settings->get('cache')['clear_on_delete'])) { + $this->store->clear($this->keepAssets()); + } + $this->flushBlocks(); + } + + public function onPermalinksChanged(): void + { + $this->runtime->write(); + $this->store->clear($this->keepAssets()); + $this->flushBlocks(); + } + + public function onSwitchTheme(): void + { + $this->store->clear($this->keepAssets()); + $this->flushBlocks(); + } + + /** @param array $next */ + public function onSettingsUpdated(string $group, array $next): void + { + // Keep the drop-in's runtime file current for any cache-affecting change. + $this->runtime->write(); + + // Cached HTML is the post-optimization output, so a css/js/html/media/cdn + // save is stale the moment it lands, not just a cache-group save. + if (in_array($group, self::RENDER_GROUPS, true) + && ! empty($this->settings->get('cache')['clear_on_save']) + ) { + $this->store->clear($this->keepAssets()); + } + } + + private function keepAssets(): bool + { + return ! empty($this->settings->get('cache')['keep_assets']); + } + + private function flushBlocks(): void + { + if (! empty($this->settings->get('cache')['block_cache_enabled'])) { + $this->fragments->flush(); + } + } +} diff --git a/src/Cache/CacheStore.php b/src/Cache/CacheStore.php new file mode 100644 index 0000000..0f5ffb1 --- /dev/null +++ b/src/Cache/CacheStore.php @@ -0,0 +1,273 @@ +writeAtomic($file, $html); + + // A stale .gz would keep being served in preference to the html, so it + // is removed whenever gzip is off or the encode fails. + $wroteGz = false; + if ($ok && $gzip && function_exists('gzencode')) { + $encoded = gzencode($html, 6); + if ($encoded !== false) { + $wroteGz = $this->writeAtomic($file . '.gz', $encoded); + } + } + if (! $wroteGz && is_file($file . '.gz')) { + @unlink($file . '.gz'); + } + + return $ok; + } + + /** + * The drop-in readfile()s these with no lock, so an in-place write would let + * a concurrent request receive a half-written (or zero-byte) page. Rename is + * atomic within a filesystem, so a reader sees either the old file or the new. + */ + private function writeAtomic(string $file, string $contents): bool + { + $tmp = $file . '.' . getmypid() . '-' . uniqid() . '.tmp'; + if (file_put_contents($tmp, $contents, LOCK_EX) === false) { + @unlink($tmp); + return false; + } + if (! @rename($tmp, $file)) { + @unlink($tmp); + return false; + } + + return true; + } + + /** Delete cached pages. Keeps json/log (drop-in config + log) and, optionally, css/js. */ + public function clear(bool $keepAssets = false): void + { + if (! is_dir(WPP_CACHE_DIR)) { + return; + } + do_action('wpp.cache.before_clear'); + + $keep = ['json', 'log', 'php']; + if ($keepAssets) { + // Locally hosted fonts are referenced by the kept CSS, so dropping + // them would leave every @font-face pointing at a 404. + array_push($keep, 'css', 'js', 'woff2', 'woff', 'ttf', 'eot', 'otf'); + } + // Block-cache fragments belong to the after_clear listener, which honours + // block_cache_flush_on_clear; deleting them here ignores that setting. + $this->deleteContents(WPP_CACHE_DIR, $keep, self::fragmentsDir()); + + do_action('wpp.cache.after_clear'); + } + + public function clearAll(): void + { + if (! is_dir(WPP_CACHE_DIR)) { + return; + } + $this->deleteContents(WPP_CACHE_DIR, []); + } + + private static function fragmentsDir(): string + { + return rtrim(WPP_CACHE_DIR, '/\\') . '/fragments'; + } + + /** Whether a path sits inside the block cache's fragment subtree. */ + private static function isFragment(string $path): bool + { + $dir = self::fragmentsDir(); + + return str_starts_with($path, $dir . '/') || str_starts_with($path, $dir . DIRECTORY_SEPARATOR); + } + + /** + * @param string[] $keepExt extensions to preserve + */ + private function deleteContents(string $dir, array $keepExt, string $skipDir = ''): void + { + if (! is_dir($dir)) { + return; + } + + // glob() would treat a cached path containing [ ] * ? as a pattern and + // return nothing, silently leaving that directory unpurged forever. + foreach (iterator_to_array(new FilesystemIterator($dir, FilesystemIterator::SKIP_DOTS)) as $item) { + $path = $item->getPathname(); + if ($item->isDir()) { + if ($skipDir !== '' && rtrim($path, '/\\') === $skipDir) { + continue; + } + $this->deleteContents($path, $keepExt, $skipDir); + @rmdir($path); + continue; + } + $name = $item->getFilename(); + if ($name === 'index.php' || $name === '.htaccess') { + continue; + } + $ext = strtolower(pathinfo($name, PATHINFO_EXTENSION)); + if (in_array($ext, $keepExt, true)) { + continue; + } + @unlink($path); + } + } + + /** Number of cached HTML pages on disk (gzip siblings, assets and block fragments excluded). */ + public function pages(): int + { + if (! is_dir(WPP_CACHE_DIR)) { + return 0; + } + + $iterator = new RecursiveIteratorIterator( + new RecursiveDirectoryIterator(WPP_CACHE_DIR, FilesystemIterator::SKIP_DOTS) + ); + + $count = 0; + foreach ($iterator as $file) { + if (self::isFragment($file->getPathname())) { + continue; + } + if ($file->isFile() && strtolower(pathinfo($file->getFilename(), PATHINFO_EXTENSION)) === 'html') { + $count++; + } + } + + return $count; + } + + /** @return array{html:int, css:int, js:int, total:int} byte sizes, block fragments excluded */ + public function stats(): array + { + $out = ['html' => 0, 'css' => 0, 'js' => 0, 'total' => 0]; + if (! is_dir(WPP_CACHE_DIR)) { + return $out; + } + + $iterator = new RecursiveIteratorIterator( + new RecursiveDirectoryIterator(WPP_CACHE_DIR, FilesystemIterator::SKIP_DOTS) + ); + + foreach ($iterator as $file) { + if (! $file->isFile() || self::isFragment($file->getPathname())) { + continue; + } + $name = $file->getFilename(); + $ext = strtolower(pathinfo($name, PATHINFO_EXTENSION)); + if (in_array($ext, ['json', 'log', 'php'], true)) { + continue; + } + if ($ext === 'gz') { + $ext = strtolower(pathinfo(substr($name, 0, -3), PATHINFO_EXTENSION)); + } + + $size = (int) $file->getSize(); + $out['total'] += $size; + if (isset($out[$ext])) { + $out[$ext] += $size; + } + } + + return $out; + } +} diff --git a/src/Cache/DropinInstaller.php b/src/Cache/DropinInstaller.php new file mode 100644 index 0000000..58c3cf7 --- /dev/null +++ b/src/Cache/DropinInstaller.php @@ -0,0 +1,158 @@ +copyDropin(); + if ($copied) { + $this->setWpCache(true); + } + return $copied; + } + + /** + * wp-content/advanced-cache.php and wp-config.php are network-wide root + * files. A multisite subsite administrator has manage_options but is + * deliberately not allowed to modify files, and DISALLOW_FILE_MODS is how a + * host locks writes down entirely. + */ + public static function fileModsAllowed(): bool + { + if (defined('DISALLOW_FILE_MODS') && DISALLOW_FILE_MODS) { + return false; + } + + // No current user means WP-CLI or cron, where there is nobody to check. + return ! is_multisite() || get_current_user_id() === 0 || is_super_admin(); + } + + public function uninstall(): void + { + // Only ever remove our own drop-in, and only disable WP_CACHE when we + // were the ones serving it. Another cache plugin may own this file. + if ($this->ours()) { + @unlink($this->dest()); + $this->setWpCache(false); + } + } + + /** Installed, ours, and matching the running plugin version. */ + public function dropinInstalled(): bool + { + return $this->ours() && $this->installedVersion() === $this->version(); + } + + /** A drop-in from another plugin is present and must not be touched. */ + public function foreignDropin(): bool + { + return is_file($this->dest()) && ! $this->ours(); + } + + private function dest(): string + { + return WP_CONTENT_DIR . '/advanced-cache.php'; + } + + private function version(): string + { + return defined('WPP_VERSION') ? (string) WPP_VERSION : '0'; + } + + private function ours(): bool + { + $dest = $this->dest(); + if (! is_file($dest)) { + return false; + } + + $contents = (string) @file_get_contents($dest); + + return str_contains($contents, self::STAMP) || str_contains($contents, self::LEGACY); + } + + private function installedVersion(): ?string + { + $contents = is_file($this->dest()) ? (string) @file_get_contents($this->dest()) : ''; + return preg_match("/'" . self::STAMP . "',\s*'([^']*)'/", $contents, $m) ? $m[1] : null; + } + + private function copyDropin(): bool + { + $src = WPP_DIR . 'advanced-cache.php'; + if (! file_exists($src) || $this->foreignDropin()) { + return false; + } + + $contents = file_get_contents($src); + if ($contents === false) { + return false; + } + + // Stamp the version so a plugin update refreshes a stale copy. + $contents = str_replace(self::PLACEHOLDER, $this->version(), $contents); + + return file_put_contents($this->dest(), $contents, LOCK_EX) !== false; + } + + private function setWpCache(bool $on): void + { + $config = $this->wpConfigPath(); + if ($config === null || ! is_writable($config)) { + return; + } + + $contents = file_get_contents($config); + if ($contents === false) { + return; + } + + // Turning off only removes the line we added. A WP_CACHE define placed + // there by the host or another plugin is left alone. + $pattern = $on + ? '/^[ \t]*define\(\s*[\'"]WP_CACHE[\'"]\s*,.*?\);.*$\n?/m' + : '/^[ \t]*define\(\s*[\'"]WP_CACHE[\'"]\s*,.*?\);[ \t]*' . preg_quote(self::MARKER, '/') . '.*$\n?/m'; + + $contents = preg_replace($pattern, '', $contents); + + if ($on && $contents !== null) { + $line = "define( 'WP_CACHE', true ); " . self::MARKER . "\n"; + $contents = preg_replace('/^<\?php\s*\n/', " open buffer frames (supports nesting) */ + private array $stack = []; + + /** @var array, styles:list}> queue snapshots taken on a block miss */ + private array $pending = []; + + public function __construct( + private SettingsService $settings, + private FragmentStore $store + ) { + } + + public function register(): void + { + add_shortcode('wpp_cache', [$this, 'shortcode']); + add_filter('pre_render_block', [$this, 'preRenderBlock'], 10, 2); + add_filter('render_block', [$this, 'renderBlock'], 10, 2); + } + + /** + * Returning a string here stops WordPress from rendering the block and its + * inner blocks at all. + * + * @param string|null $pre + * @param array $block + * @return string|null + */ + public function preRenderBlock($pre, $block) + { + if (($block['blockName'] ?? '') !== 'wpp/cache' || $this->skip()) { + return $pre; + } + + $identity = $this->blockIdentity($block); + $cached = $this->store->get($identity); + if ($cached === null) { + $this->pending[$identity] = $this->assetQueue(); + return $pre; + } + + // Short-circuiting here skips WP_Block::render(), which is where inner + // blocks enqueue their view scripts and styles, so replay them by hand. + [$html, $assets] = $this->decode($cached); + $this->enqueueAssets($assets); + + return $html; + } + + /** + * Only runs on a miss: render_block does not fire when preRenderBlock returned content. + * + * @param string $content + * @param array $block + */ + public function renderBlock($content, $block): string + { + if (($block['blockName'] ?? '') !== 'wpp/cache' || $this->skip()) { + return $content; + } + + $identity = $this->blockIdentity($block); + $before = $this->pending[$identity] ?? null; + unset($this->pending[$identity]); + + $assets = $before === null ? ['scripts' => [], 'styles' => []] : $this->assetsAdded($before); + + $this->store->set( + $identity, + $this->encode($content, $assets), + $this->resolveTtl($this->blockOpts($block)) + ); + + return $content; + } + + public function enabled(): bool + { + return ! empty($this->settings->get('cache')['block_cache_enabled']); + } + + /** + * False on a hit (cached HTML is echoed, skip rendering); true otherwise (render, then call end()). + * + * @param array $opts + */ + public function start(string $key, array $opts = []): bool + { + if ($this->skip()) { + return true; + } + + $identity = $this->identity($key, $opts); + $cached = $this->store->get($identity); + if ($cached !== null) { + echo $cached; + return false; + } + + ob_start(); + $this->stack[] = [ + 'identity' => $identity, + 'ttl' => $this->resolveTtl($opts), + 'level' => ob_get_level(), + ]; + return true; + } + + public function end(): void + { + if ($this->stack === []) { + return; + } + $frame = array_pop($this->stack); + + // Code inside the region can close our buffer (ob_end_flush is common in + // older plugins). Grabbing whatever is innermost would then steal the + // page buffer and flush a truncated page into the page cache. + if (ob_get_level() !== $frame['level']) { + return; + } + + $html = (string) ob_get_clean(); + $this->store->set($frame['identity'], $html, $frame['ttl']); + echo $html; + } + + /** @param array $opts */ + public function wrap(string $key, array $opts, callable $callback): string + { + if ($this->skip()) { + ob_start(); + $callback(); + return (string) ob_get_clean(); + } + + $identity = $this->identity($key, $opts); + $cached = $this->store->get($identity); + if ($cached !== null) { + return $cached; + } + + ob_start(); + $callback(); + $html = (string) ob_get_clean(); + $this->store->set($identity, $html, $this->resolveTtl($opts)); + + return $html; + } + + public function shortcode(mixed $atts, ?string $content = null): string + { + $atts = shortcode_atts([ + 'key' => '', + 'ttl' => 0, + 'vary_url' => '1', + 'vary_role' => '0', + 'vary_device' => '0', + 'vary_loggedin' => '0', + ], is_array($atts) ? $atts : [], 'wpp_cache'); + + $content = (string) $content; + $opts = [ + 'ttl' => (int) $atts['ttl'], + 'vary_url' => $this->boolAtt($atts['vary_url']), + 'vary_role' => $this->boolAtt($atts['vary_role']), + 'vary_device' => $this->boolAtt($atts['vary_device']), + 'vary_loggedin' => $this->boolAtt($atts['vary_loggedin']), + ]; + $key = $atts['key'] !== '' ? (string) $atts['key'] : 'sc_' . md5($content); + + if ($this->skip()) { + return do_shortcode($content); + } + + $identity = $this->identity($key, $opts); + $cached = $this->store->get($identity); + if ($cached !== null) { + return $cached; + } + + $rendered = do_shortcode($content); + $this->store->set($identity, $rendered, $this->resolveTtl($opts)); + + return $rendered; + } + + /** @param array $opts */ + public function identity(string $key, array $opts): string + { + $parts = ['k=' . $key]; + + if ($opts['vary_url'] ?? true) { + $parts[] = 'u=' . $this->requestPath(); + } + + // Not opt-in: a logged-in render carries nonces and account-specific + // markup, and a shared entry leaks it in whichever direction fills first. + $loggedIn = is_user_logged_in(); + $parts[] = 'l=' . ($loggedIn ? '1' : '0'); + + if ($loggedIn || ! empty($opts['vary_role'])) { + $parts[] = 'r=' . $this->currentRole(); + } + if (! empty($opts['vary_device'])) { + $parts[] = 'd=' . (wp_is_mobile() ? 'm' : 'd'); + } + + return implode('|', $parts); + } + + /** Tracking params are dropped so ?utm_* variants cannot mint endless entries. */ + private function requestPath(): string + { + $uri = (string) ($_SERVER['REQUEST_URI'] ?? '/'); + $path = (string) (parse_url($uri, PHP_URL_PATH) ?: '/'); + $query = CacheStore::strippedQuery((string) parse_url($uri, PHP_URL_QUERY)); + + return $query !== '' ? $path . '?' . $query : $path; + } + + /** @param array $block */ + private function blockIdentity(array $block): string + { + $key = 'block:' . md5(serialize_block($block)); + + // The serialized source is identical for every iteration of a Query + // Loop, so without the loop's post the first item is replayed for all. + $postId = $this->contextPostId($block); + if ($postId > 0) { + $key .= ':p' . $postId; + } + + return $this->identity($key, $this->blockOpts($block)); + } + + /** @param array $block */ + private function contextPostId(array $block): int + { + $context = $block['context']['postId'] ?? null; + if ($context !== null) { + return (int) $context; + } + + return function_exists('get_the_ID') ? (int) get_the_ID() : 0; + } + + /** + * @param array $block + * @return array + */ + private function blockOpts(array $block): array + { + $attrs = $block['attrs'] ?? []; + return [ + 'ttl' => (int) ($attrs['ttl'] ?? 0), + 'vary_url' => $attrs['varyUrl'] ?? true, + 'vary_loggedin' => ! empty($attrs['varyLoggedin']), + 'vary_role' => ! empty($attrs['varyRole']), + 'vary_device' => ! empty($attrs['varyDevice']), + ]; + } + + private function skip(): bool + { + if (! $this->enabled()) { + return true; + } + if (is_admin() || wp_doing_ajax() || (defined('DOING_CRON') && DOING_CRON)) { + return true; + } + return ! empty($_POST); + } + + /** @param array $opts */ + private function resolveTtl(array $opts): int + { + $ttl = (int) ($opts['ttl'] ?? 0); + if ($ttl > 0) { + return $ttl; + } + $default = (int) ($this->settings->get('cache')['block_cache_ttl'] ?? 0); + return $default > 0 ? $default : 3600; + } + + private function currentRole(): string + { + if (! is_user_logged_in()) { + return 'anon'; + } + $user = wp_get_current_user(); + return $user->roles[0] ?? 'none'; + } + + private function boolAtt(mixed $value): bool + { + return filter_var($value, FILTER_VALIDATE_BOOLEAN); + } + + /** @return array{scripts:list, styles:list} */ + private function assetQueue(): array + { + return [ + 'scripts' => isset($GLOBALS['wp_scripts']->queue) ? array_values((array) $GLOBALS['wp_scripts']->queue) : [], + 'styles' => isset($GLOBALS['wp_styles']->queue) ? array_values((array) $GLOBALS['wp_styles']->queue) : [], + ]; + } + + /** + * @param array{scripts:list, styles:list} $before + * @return array{scripts:list, styles:list} + */ + private function assetsAdded(array $before): array + { + $now = $this->assetQueue(); + + return [ + 'scripts' => array_values(array_diff($now['scripts'], $before['scripts'])), + 'styles' => array_values(array_diff($now['styles'], $before['styles'])), + ]; + } + + /** @param array $assets */ + private function enqueueAssets(array $assets): void + { + foreach ((array) ($assets['scripts'] ?? []) as $handle) { + wp_enqueue_script((string) $handle); + } + foreach ((array) ($assets['styles'] ?? []) as $handle) { + wp_enqueue_style((string) $handle); + } + } + + /** @param array{scripts:list, styles:list} $assets */ + private function encode(string $html, array $assets): string + { + if (($assets['scripts'] ?? []) === [] && ($assets['styles'] ?? []) === []) { + return $html; + } + + return self::ASSETS_MARK . (string) wp_json_encode($assets) . "\x00" . $html; + } + + /** @return array{0:string, 1:array} */ + private function decode(string $raw): array + { + if (! str_starts_with($raw, self::ASSETS_MARK)) { + return [$raw, []]; + } + + $start = strlen(self::ASSETS_MARK); + $end = strpos($raw, "\x00", $start); + if ($end === false) { + return [$raw, []]; + } + + $assets = json_decode(substr($raw, $start, $end - $start), true); + + return [substr($raw, $end + 1), is_array($assets) ? $assets : []]; + } +} diff --git a/src/Cache/FragmentStore.php b/src/Cache/FragmentStore.php new file mode 100644 index 0000000..2d8a943 --- /dev/null +++ b/src/Cache/FragmentStore.php @@ -0,0 +1,210 @@ +key($identity); + + if ($this->usesObjectCache()) { + $value = wp_cache_get($key, self::GROUP); + return is_string($value) ? $value : null; + } + + return $this->diskGet($key); + } + + public function set(string $identity, string $html, int $ttl): void + { + $key = $this->key($identity); + $ttl = max(0, $ttl); + + if ($this->usesObjectCache()) { + wp_cache_set($key, $html, self::GROUP, $ttl); + return; + } + + $this->diskSet($key, $html, $ttl); + } + + public function flush(): void + { + update_option(self::GEN_OPTION, $this->generation() + 1, true); + $this->deleteDir($this->dir()); + } + + /** @return array{count:int, bytes:int} disk fragments only */ + public function stats(): array + { + $out = ['count' => 0, 'bytes' => 0]; + $dir = $this->dir(); + if (! is_dir($dir)) { + return $out; + } + + $iterator = new \RecursiveIteratorIterator( + new \RecursiveDirectoryIterator($dir, \FilesystemIterator::SKIP_DOTS) + ); + foreach ($iterator as $file) { + if ($file->isFile() && strtolower($file->getExtension()) === 'html') { + $out['count']++; + $out['bytes'] += (int) $file->getSize(); + } + } + + return $out; + } + + private function generation(): int + { + return (int) get_option(self::GEN_OPTION, 0); + } + + private function key(string $identity): string + { + return md5($this->generation() . '|' . $identity); + } + + /** Deny direct HTTP access to stored fragments. */ + private function protect(): void + { + $dir = $this->dir(); + + $index = $dir . 'index.php'; + if (! is_file($index)) { + @file_put_contents($index, "\nRequire all denied\n\n\nOrder allow,deny\nDeny from all\n\n", LOCK_EX); + } + } + + private function dir(): string + { + return WPP_CACHE_DIR . self::SUBDIR; + } + + private function fileFor(string $key): string + { + return $this->dir() . substr($key, 0, 2) . '/' . $key . '.html'; + } + + private function diskGet(string $key): ?string + { + $file = $this->fileFor($key); + if (! is_file($file)) { + return null; + } + + $raw = file_get_contents($file); + if ($raw === false) { + return null; + } + + $nl = strpos($raw, "\n"); + if ($nl === false) { + return null; + } + + $expiry = (int) substr($raw, 0, $nl); + if ($expiry !== 0 && $expiry < time()) { + @unlink($file); + return null; + } + + return substr($raw, $nl + 1); + } + + private function diskSet(string $key, string $html, int $ttl): void + { + $file = $this->fileFor($key); + $dir = dirname($file); + if (! is_dir($dir) && ! wp_mkdir_p($dir)) { + return; + } + + // Fragments are rendered page sections and may hold content the visitor + // was not meant to see, so the directory must not be browsable. + $this->protect(); + + // Identities carry the request URL, so an anonymous visitor can mint + // unlimited distinct entries. Refuse rather than exhaust inodes. + if (! is_file($file) && $this->shardFull($dir)) { + return; + } + + $expiry = $ttl > 0 ? time() + $ttl : 0; + + // Readers take no lock, so the entry has to appear whole or not at all. + $tmp = $file . '.' . getmypid() . uniqid('', false) . '.tmp'; + if (file_put_contents($tmp, $expiry . "\n" . $html) === false || ! @rename($tmp, $file)) { + @unlink($tmp); + } + } + + /** Sweeps expired entries before reporting a shard as full. */ + private function shardFull(string $dir): bool + { + $files = glob(rtrim($dir, '/') . '/*.html'); + if (! is_array($files) || count($files) < self::MAX_PER_SHARD) { + return false; + } + + $now = time(); + $live = 0; + foreach ($files as $file) { + $handle = @fopen($file, 'r'); + if ($handle === false) { + $live++; + continue; + } + $expiry = (int) fgets($handle); + fclose($handle); + if ($expiry !== 0 && $expiry < $now) { + @unlink($file); + continue; + } + $live++; + } + + return $live >= self::MAX_PER_SHARD; + } + + private function deleteDir(string $dir): void + { + $items = glob(rtrim($dir, '/') . '/*'); + if ($items === false) { + return; + } + foreach ($items as $item) { + if (is_dir($item)) { + $this->deleteDir($item); + @rmdir($item); + } else { + @unlink($item); + } + } + } +} diff --git a/src/Cache/ObjectCacheInstaller.php b/src/Cache/ObjectCacheInstaller.php new file mode 100644 index 0000000..f1daa24 --- /dev/null +++ b/src/Cache/ObjectCacheInstaller.php @@ -0,0 +1,52 @@ +foreignDropin() || ! DropinInstaller::fileModsAllowed()) { + return false; + } + + $src = WPP_DIR . 'object-cache.php'; + $dest = WP_CONTENT_DIR . '/object-cache.php'; + return file_exists($src) ? (bool) @copy($src, $dest) : false; + } + + public function uninstall(): void + { + if ($this->installed()) { + @unlink(WP_CONTENT_DIR . '/object-cache.php'); + } + } + + public function installed(): bool + { + $dest = WP_CONTENT_DIR . '/object-cache.php'; + return is_file($dest) && str_contains((string) @file_get_contents($dest), self::MARKER); + } + + /** True when an object-cache.php from another source is present. */ + public function foreignDropin(): bool + { + $dest = WP_CONTENT_DIR . '/object-cache.php'; + return is_file($dest) && ! str_contains((string) @file_get_contents($dest), self::MARKER); + } +} diff --git a/src/Cache/RuntimeSettings.php b/src/Cache/RuntimeSettings.php new file mode 100644 index 0000000..cb796db --- /dev/null +++ b/src/Cache/RuntimeSettings.php @@ -0,0 +1,137 @@ +file(); + if (! is_file($file)) { + return false; + } + + $data = json_decode((string) file_get_contents($file), true); + + return is_array($data) && ($data['version'] ?? null) === $this->version(); + } + + private function version(): string + { + return defined('WPP_VERSION') ? (string) WPP_VERSION : '0'; + } + + public function file(): string + { + $home = (string) home_url(); + $host = CacheStore::sanitizeHost((string) parse_url($home, PHP_URL_HOST)); + + return WPP_CACHE_DIR . $host . self::pathKey((string) parse_url($home, PHP_URL_PATH)) . '.json'; + } + + /** + * Sites in a subdirectory network share a host and each has its own settings, + * so the path goes into the filename: without it every site in the network + * overwrites the same config and the last one to save owns them all. + * + * Mirrored by wpp_dropin_path_key() in advanced-cache.php. + */ + public static function pathKey(string $path): string + { + $key = ''; + foreach (array_slice(array_values(array_filter(explode('/', $path), 'strlen')), 0, 3) as $segment) { + $key .= '~' . preg_replace('/[^a-z0-9\-_]/', '-', strtolower($segment)); + } + + return $key; + } + + public function write(): void + { + if (! is_dir(WPP_CACHE_DIR)) { + wp_mkdir_p(WPP_CACHE_DIR); + } + $this->guard(); + + $cache = $this->settings->get('cache'); + + // An emptied "Clear cache after" field stores '', and an expiry of 0 + // means "never stale", which would freeze every cached page for good. + $expire = (int) ($cache['clear_time'] ?? 0) * (int) ($cache['clear_unit'] ?? 0); + if ($expire <= 0) { + $expire = self::FALLBACK_EXPIRE; + } + + $permalinks = (string) get_option('permalink_structure', ''); + + $data = [ + 'version' => $this->version(), + 'enabled' => (bool) ($cache['enabled'] ?? false), + 'disabled' => (bool) get_option('wpp_disabled', false), + 'mobile' => (bool) ($cache['mobile'] ?? false), + 'expire' => $expire, + 'permalinks' => (bool) $permalinks, + 'trailing_slash' => str_ends_with($permalinks, '/'), + 'exclude' => array_values((array) ($cache['exclude_urls'] ?? [])), + 'user_agents' => array_values((array) ($cache['exclude_user_agents'] ?? [])), + 'cache_query_strings' => (bool) ($cache['cache_query_strings'] ?? false), + 'search_bots' => (bool) ($cache['exclude_search_bots'] ?? false), + ]; + + file_put_contents($this->file(), (string) wp_json_encode($data), LOCK_EX); + } + + /** + * This config lists the URLs the admin deliberately keeps out of the cache, + * and the log next to it records every cached request, so neither may be + * readable over HTTP. + */ + private function guard(): void + { + $index = WPP_CACHE_DIR . 'index.php'; + if (! is_file($index)) { + file_put_contents($index, "', + '', + 'Require all denied', + '', + '', + 'Order allow,deny', + 'Deny from all', + '', + '', + '', + ])); + } +} diff --git a/src/Cli/CliCommands.php b/src/Cli/CliCommands.php new file mode 100644 index 0000000..2735b19 --- /dev/null +++ b/src/Cli/CliCommands.php @@ -0,0 +1,71 @@ +] + */ +final class CliCommands +{ + /** Clear the page cache. */ + public function flush(array $args, array $assoc): void + { + $keep = ! empty((new SettingsService())->get('cache')['keep_assets']); + (new CacheStore())->clear($keep); + WP_CLI::success('WP Performance cache cleared.'); + } + + /** Flush the block (fragment) cache. */ + public function flushBlocks(array $args, array $assoc): void + { + (new FragmentStore())->flush(); + WP_CLI::success('WP Performance block cache flushed.'); + } + + /** Enable WP Performance. */ + public function enable(array $args, array $assoc): void + { + update_option('wpp_disabled', false); + (new RuntimeSettings(new SettingsService()))->write(); + WP_CLI::success('WP Performance enabled.'); + } + + /** Temporarily disable WP Performance. */ + public function disable(array $args, array $assoc): void + { + update_option('wpp_disabled', true); + (new RuntimeSettings(new SettingsService()))->write(); + WP_CLI::success('WP Performance disabled.'); + } + + /** + * Run database cleanup. + * + * ## OPTIONS + * + * [] + * : One of all, trash, spam, revisions, transients, autodrafts, cron. Defaults to all. + */ + public function cleanup(array $args, array $assoc): void + { + $type = $args[0] ?? 'all'; + $valid = ['all', 'trash', 'spam', 'revisions', 'transients', 'autodrafts', 'cron']; + + if (! in_array($type, $valid, true)) { + WP_CLI::error('Invalid type. Use one of: ' . implode(', ', $valid)); + return; + } + + (new DatabaseService())->clear($type); + WP_CLI::success("Database cleanup ({$type}) complete."); + } +} diff --git a/src/Core/CoreModule.php b/src/Core/CoreModule.php new file mode 100644 index 0000000..5462cc7 --- /dev/null +++ b/src/Core/CoreModule.php @@ -0,0 +1,201 @@ +bind(SettingsService::class, static fn (): SettingsService => new SettingsService()); + $container->bind(DatabaseService::class, static fn (): DatabaseService => new DatabaseService()); + $container->bind(CacheStore::class, static fn (): CacheStore => new CacheStore()); + $container->bind(FragmentStore::class, static fn (): FragmentStore => new FragmentStore()); + $container->bind( + FragmentCache::class, + static fn (Container $c): FragmentCache => new FragmentCache( + $c->get(SettingsService::class), + $c->get(FragmentStore::class) + ) + ); + $container->bind( + RuntimeSettings::class, + static fn (Container $c): RuntimeSettings => new RuntimeSettings($c->get(SettingsService::class)) + ); + $container->bind(Minifier::class, static fn (): Minifier => new Minifier()); + $container->bind(HtmlOptimizer::class, static fn (): HtmlOptimizer => new HtmlOptimizer()); + $container->bind(Collection::class, static fn (): Collection => new Collection()); + $container->bind(ImageService::class, static fn (): ImageService => new ImageService()); + $container->bind(ImageConverter::class, static fn (): ImageConverter => new ImageConverter()); + $container->bind(ServerRules::class, static fn (): ServerRules => new ServerRules()); + $container->bind( + Preloader::class, + static fn (Container $c): Preloader => new Preloader($c->get(SettingsService::class)) + ); + $container->bind(FontHost::class, static fn (): FontHost => new FontHost()); + $container->bind(AssetParser::class, static fn (Container $c): AssetParser => new AssetParser( + $c->get(SettingsService::class), + $c->get(Minifier::class), + $c->get(HtmlOptimizer::class), + $c->get(Collection::class), + $c->get(FontHost::class) + )); + + $settings = $container->get(SettingsService::class); + $store = $container->get(CacheStore::class); + + $history = new SettingsHistory($settings); + $history->register(); + + $logger = new Logger($settings); + $logger->register(); + + $fragmentStore = $container->get(FragmentStore::class); + $container->get(FragmentCache::class)->register(); + add_action('wpp.cache.after_clear', static function () use ($settings, $fragmentStore): void { + // The purge deletes the directory's .htaccess along with the cache. + Plugin::protectCacheDir(); + + if (! empty($settings->get('cache')['block_cache_flush_on_clear'])) { + $fragmentStore->flush(); + } + }); + + add_action('init', static function (): void { + $asset = WPP_DIR . 'build/blocks/cache/index.asset.php'; + if (! file_exists($asset)) { + return; + } + $data = require $asset; + wp_register_script( + 'wpp-cache-block', + WPP_URL . 'build/blocks/cache/index.js', + $data['dependencies'], + $data['version'], + true + ); + wp_set_script_translations('wpp-cache-block', 'wpp', WPP_DIR . 'languages'); + register_block_type('wpp/cache', ['editor_script' => 'wpp-cache-block']); + }); + + (new RestProvider( + new SettingsController($settings), + new DatabaseController($container->get(DatabaseService::class)), + new CacheController($store, $settings, $fragmentStore), + new FilesController($container->get(Collection::class), $store), + new ToolsController($settings, new Presets(), $history, $logger), + new ImageController($container->get(ImageService::class), $container->get(ImageConverter::class)), + new ServerController($container->get(ServerRules::class), $settings), + new OverviewController($store, $settings, $container->get(ServerRules::class), $fragmentStore), + ))->register(); + + (new CacheInvalidation($settings, $store, $container->get(RuntimeSettings::class), $fragmentStore))->register(); + (new MediaHooks($settings, $container->get(ImageService::class), $container->get(ImageConverter::class)))->register(); + (new CronHooks($settings, $container->get(DatabaseService::class), $container->get(Preloader::class)))->register(); + + $serverRules = $container->get(ServerRules::class); + add_action('wpp.settings.updated', static function (string $group) use ($serverRules, $settings): void { + if ($group === 'cache') { + $serverRules->apply($settings->get('cache')); + } + if ($group === 'tools') { + $objectCache = new ObjectCacheInstaller(); + $want = ! empty($settings->get('tools')['object_cache']) && $objectCache->available(); + if ($want && ! $objectCache->installed()) { + // Turn the setting back off if another drop-in owns the file, + // so the toggle never reads ON while nothing was installed. + if (! $objectCache->install()) { + $settings->update('tools', ['object_cache' => false]); + } + } elseif (! $want && $objectCache->installed()) { + $objectCache->uninstall(); + } + } + }, 10, 1); + + if (is_admin()) { + (new AdminMenu())->register(); + (new AdminAssets($settings))->register(); + (new Metabox())->register(); + (new CompatibilityNotice())->register(); + + // Migrate legacy options. The activation hook does not fire on a plugin + // update (WordPress reactivates silently), so an existing user who simply + // updates would never be migrated by activation alone. Run it here too, + // flag-gated so it is a no-op after the first pass. + add_action('admin_init', static function () use ($settings): void { + (new Migration($settings))->maybeRun(); + }); + + // Self-heal: activation only runs once, so restore anything the + // drop-in needs if it went missing. Without the runtime file the + // drop-in bails and page caching stops without any visible sign. + Plugin::protectCacheDir(); + + $dropin = new DropinInstaller(); + $runtime = $container->get(RuntimeSettings::class); + if (! defined('WP_CACHE') || ! $dropin->dropinInstalled()) { + $dropin->install(); + $runtime->write(); + } elseif (! $runtime->written()) { + $runtime->write(); + } + } else { + (new PageCache($settings, $store))->register(); + (new Optimizer($container->get(AssetParser::class)))->register(); + } + } +} diff --git a/src/Cron/CronHooks.php b/src/Cron/CronHooks.php new file mode 100644 index 0000000..53cf2fd --- /dev/null +++ b/src/Cron/CronHooks.php @@ -0,0 +1,120 @@ + 'addSchedules']; + } + + protected function actions(): array + { + return [ + 'init' => 'sync', + self::PRELOAD => 'runPreload', + self::DB => 'runDbCleanup', + 'wpp.settings.updated' => ['onSettingsUpdated', 10, 1], + ]; + } + + /** @param array $schedules */ + public function addSchedules(array $schedules): array + { + $schedules['wpp_weekly'] = ['interval' => WEEK_IN_SECONDS, 'display' => __('Once weekly', 'wpp')]; + $schedules['wpp_monthly'] = ['interval' => MONTH_IN_SECONDS, 'display' => __('Once monthly', 'wpp')]; + return $schedules; + } + + public function sync(): void + { + $sitemaps = array_filter((array) $this->settings->get('cache')['sitemaps']); + if ($sitemaps !== [] && ! wp_next_scheduled(self::PRELOAD)) { + wp_schedule_event(time() + 300, 'hourly', self::PRELOAD); + } elseif ($sitemaps === [] && wp_next_scheduled(self::PRELOAD)) { + wp_clear_scheduled_hook(self::PRELOAD); + } + + $recurrence = $this->recurrence((string) ($this->settings->get('database')['frequency'] ?? 'none')); + $current = wp_get_schedule(self::DB); + + if ($recurrence !== null && $current !== $recurrence) { + wp_clear_scheduled_hook(self::DB); + wp_schedule_event(time() + HOUR_IN_SECONDS, $recurrence, self::DB); + $this->updateNextRun(); + } elseif ($recurrence === null && $current !== false) { + wp_clear_scheduled_hook(self::DB); + delete_option('wpp_db_cleanup_next'); + } + } + + public function onSettingsUpdated(string $group): void + { + if ($group === 'cache' || $group === 'database') { + $this->sync(); + } + } + + public function runPreload(): void + { + $this->preloader->run(); + } + + public function runDbCleanup(): void + { + $db = $this->settings->get('database'); + $map = [ + 'cleanup_trash' => 'trash', + 'cleanup_spam' => 'spam', + 'cleanup_revisions' => 'revisions', + 'cleanup_transients' => 'transients', + 'cleanup_autodrafts' => 'autodrafts', + 'cleanup_cron' => 'cron', + ]; + foreach ($map as $flag => $type) { + if (! empty($db[$flag])) { + $this->database->clear($type); + } + } + $this->updateNextRun(); + } + + private function recurrence(string $frequency): ?string + { + return match ($frequency) { + 'daily' => 'daily', + 'weekly' => 'wpp_weekly', + 'monthly' => 'wpp_monthly', + default => null, + }; + } + + private function updateNextRun(): void + { + $next = wp_next_scheduled(self::DB); + if ($next) { + update_option('wpp_db_cleanup_next', $next, false); + } + } +} diff --git a/src/Cron/Preloader.php b/src/Cron/Preloader.php new file mode 100644 index 0000000..68d6e54 --- /dev/null +++ b/src/Cron/Preloader.php @@ -0,0 +1,92 @@ +settings->get('cache')['sitemaps']); + if ($sitemaps === []) { + return; + } + + $pages = []; + $children = []; + + foreach ($sitemaps as $sitemap) { + $body = $this->fetch((string) $sitemap); + if ($body === '') { + continue; + } + // The URLs admins configure are usually indexes (wp-sitemap.xml, + // sitemap_index.xml), whose entries are further sitemaps. + if (stripos($body, 'locations($body)); + } else { + $pages = array_merge($pages, $this->locations($body)); + } + } + + $children = array_slice(array_values(array_unique($children)), 0, self::MAX_INDEXED); + foreach ($children as $child) { + if (count($pages) >= self::MAX_URLS) { + break; + } + $body = $this->fetch($child); + if ($body !== '') { + $pages = array_merge($pages, $this->locations($body)); + } + } + + $pages = array_slice(array_values(array_unique($pages)), 0, self::MAX_URLS); + foreach ($pages as $url) { + wp_remote_get($url, ['timeout' => 5, 'blocking' => false, 'reject_unsafe_urls' => true]); + } + } + + private function fetch(string $url): string + { + $response = wp_remote_get($url, ['timeout' => 10, 'reject_unsafe_urls' => true]); + return is_wp_error($response) ? '' : (string) wp_remote_retrieve_body($response); + } + + /** + * Sitemap bodies are remote input, so only locations on this site are kept: + * anything else would let a third-party sitemap aim requests at hosts the + * site can reach but the internet cannot. + * + * @return list + */ + private function locations(string $body): array + { + if (! preg_match_all('#\s*(.*?)\s*#i', $body, $matches)) { + return []; + } + + $host = strtolower((string) wp_parse_url(home_url(), PHP_URL_HOST)); + $out = []; + foreach ($matches[1] as $loc) { + $loc = trim((string) $loc); + if ($loc !== '' && strtolower((string) wp_parse_url($loc, PHP_URL_HOST)) === $host) { + $out[] = $loc; + } + } + + return $out; + } +} diff --git a/src/Database/DatabaseService.php b/src/Database/DatabaseService.php new file mode 100644 index 0000000..51f7d3d --- /dev/null +++ b/src/Database/DatabaseService.php @@ -0,0 +1,188 @@ + */ + public function counts(): array + { + return [ + 'trash' => $this->trashCount(), + 'spam' => $this->spamCount(), + 'revisions' => $this->revisionsCount(), + 'transients' => $this->transientsCount(), + 'autodrafts' => $this->autoDraftsCount(), + 'cron' => $this->cronCount(), + ]; + } + + public function clear(string $type): void + { + match ($type) { + 'trash' => $this->clearTrash(), + 'spam' => $this->clearSpam(), + 'revisions' => $this->clearRevisions(), + 'transients' => $this->clearTransients(), + 'autodrafts' => $this->clearAutoDrafts(), + 'cron' => $this->clearCron(), + 'all' => $this->clearAll(), + default => null, + }; + + do_action('wpp.db.cleaned', $type); + } + + public function clearAll(): void + { + $this->clearTrash(); + $this->clearSpam(); + $this->clearRevisions(); + $this->clearTransients(); + $this->clearAutoDrafts(); + $this->clearCron(); + } + + private function revisionsCount(): int + { + global $wpdb; + return (int) $wpdb->get_var("SELECT COUNT(*) FROM {$wpdb->posts} WHERE post_type = 'revision'"); + } + + private function clearRevisions(): void + { + global $wpdb; + $wpdb->query("DELETE FROM {$wpdb->posts} WHERE post_type = 'revision'"); + } + + private function autoDraftsCount(): int + { + global $wpdb; + return (int) $wpdb->get_var("SELECT COUNT(*) FROM {$wpdb->posts} WHERE post_status = 'auto-draft'"); + } + + private function clearAutoDrafts(): void + { + global $wpdb; + $wpdb->query("DELETE FROM {$wpdb->posts} WHERE post_status = 'auto-draft'"); + } + + private function trashCount(): int + { + global $wpdb; + return (int) $wpdb->get_var("SELECT COUNT(*) FROM {$wpdb->posts} WHERE post_status = 'trash'"); + } + + private function clearTrash(): void + { + global $wpdb; + $wpdb->query("DELETE FROM {$wpdb->posts} WHERE post_status = 'trash'"); + } + + private function spamCount(): int + { + global $wpdb; + return (int) $wpdb->get_var("SELECT COUNT(*) FROM {$wpdb->comments} WHERE comment_approved IN ('spam', 'trash')"); + } + + private function clearSpam(): void + { + global $wpdb; + $wpdb->query("DELETE FROM {$wpdb->comments} WHERE comment_approved IN ('spam', 'trash')"); + } + + /** Value rows only: an expiring transient also stores a _timeout_ row. */ + private function transientsCount(): int + { + global $wpdb; + return (int) $wpdb->get_var( + $wpdb->prepare( + "SELECT COUNT(*) FROM {$wpdb->options} + WHERE (option_name LIKE %s OR option_name LIKE %s) + AND option_name NOT LIKE %s + AND option_name NOT LIKE %s", + $wpdb->esc_like('_transient_') . '%', + $wpdb->esc_like('_site_transient_') . '%', + $wpdb->esc_like('_transient_timeout_') . '%', + $wpdb->esc_like('_site_transient_timeout_') . '%' + ) + ); + } + + /** + * Expired transients only. Deleting every match would drop live caches and + * non-expiring transients that other plugins rely on. + */ + private function clearTransients(): void + { + global $wpdb; + $expired = (array) $wpdb->get_col( + $wpdb->prepare( + "SELECT option_name FROM {$wpdb->options} + WHERE (option_name LIKE %s OR option_name LIKE %s) + AND option_value < %d", + $wpdb->esc_like('_transient_timeout_') . '%', + $wpdb->esc_like('_site_transient_timeout_') . '%', + time() + ) + ); + + $names = []; + foreach ($expired as $timeout) { + $timeout = (string) $timeout; + $names[] = $timeout; + $names[] = str_starts_with($timeout, '_site_transient_timeout_') + ? '_site_transient_' . substr($timeout, 24) + : '_transient_' . substr($timeout, 19); + } + + foreach (array_chunk($names, 200) as $chunk) { + $placeholders = implode(', ', array_fill(0, count($chunk), '%s')); + $wpdb->query( + $wpdb->prepare( + "DELETE FROM {$wpdb->options} WHERE option_name IN ({$placeholders})", + ...$chunk + ) + ); + } + } + + private function cronCount(): int + { + $count = 0; + foreach ((array) _get_cron_array() as $hooks) { + if (! is_array($hooks)) { + continue; + } + foreach ($hooks as $hook => $events) { + if (! has_action((string) $hook)) { + $count += is_array($events) ? count($events) : 0; + } + } + } + return $count; + } + + private function clearCron(): void + { + foreach ((array) _get_cron_array() as $timestamp => $hooks) { + if (! is_array($hooks)) { + continue; + } + foreach ($hooks as $hook => $events) { + if (has_action((string) $hook) || ! is_array($events)) { + continue; + } + foreach ($events as $event) { + wp_unschedule_event($timestamp, (string) $hook, $event['args'] ?? []); + } + } + } + } +} diff --git a/src/Foundation/Container/Container.php b/src/Foundation/Container/Container.php new file mode 100644 index 0000000..3cb93e0 --- /dev/null +++ b/src/Foundation/Container/Container.php @@ -0,0 +1,61 @@ + */ + private array $bindings = []; + + /** @var array */ + private array $instances = []; + + /** Factory receives the container so it can resolve collaborators. */ + public function bind(string $id, Closure $factory): void + { + $this->bindings[$id] = $factory; + unset($this->instances[$id]); + } + + /** Register an already-constructed instance. */ + public function instance(string $id, object $instance): void + { + $this->instances[$id] = $instance; + } + + public function has(string $id): bool + { + return isset($this->bindings[$id]) || isset($this->instances[$id]); + } + + /** + * @template T of object + * @param class-string|string $id + * @return T|object + */ + public function get(string $id): object + { + if (isset($this->instances[$id])) { + return $this->instances[$id]; + } + + if (! isset($this->bindings[$id])) { + throw new RuntimeException("WP Performance container: no binding registered for {$id}"); + } + + $instance = ($this->bindings[$id])($this); + $this->instances[$id] = $instance; + + return $instance; + } +} diff --git a/src/Foundation/Helpers/View.php b/src/Foundation/Helpers/View.php new file mode 100644 index 0000000..76ad51f --- /dev/null +++ b/src/Foundation/Helpers/View.php @@ -0,0 +1,62 @@ + + */ + protected function actions(): array + { + return []; + } + + /** @return array */ + protected function filters(): array + { + return []; + } + + public function register(): void + { + foreach ($this->actions() as $hook => $spec) { + [$method, $priority, $args] = $this->normalize($spec); + add_action($hook, [$this, $method], $priority, $args); + } + + foreach ($this->filters() as $hook => $spec) { + [$method, $priority, $args] = $this->normalize($spec); + add_filter($hook, [$this, $method], $priority, $args); + } + } + + /** Normalise a hook spec to [method, priority, accepted_args]. */ + private function normalize(string|array $spec): array + { + if (is_string($spec)) { + return [$spec, 10, 1]; + } + return [$spec[0], $spec[1] ?? 10, $spec[2] ?? 1]; + } +} diff --git a/src/Foundation/Modules/Module.php b/src/Foundation/Modules/Module.php new file mode 100644 index 0000000..23df6dc --- /dev/null +++ b/src/Foundation/Modules/Module.php @@ -0,0 +1,21 @@ + */ + private array $modules = []; + + /** @var array */ + private array $booted = []; + + public function __construct(private Container $container) + { + } + + public function register(Module $module): void + { + $id = $module->id(); + + if (isset($this->modules[$id])) { + throw new RuntimeException("WP Performance module '{$id}' is already registered."); + } + + $this->modules[$id] = $module; + } + + public function get(string $id): ?Module + { + return $this->modules[$id] ?? null; + } + + /** @return array */ + public function all(): array + { + return $this->modules; + } + + public function bootAll(): void + { + foreach ($this->modules as $id => $module) { + if ($this->booted[$id] ?? false) { + continue; + } + $module->boot($this->container); + $this->booted[$id] = true; + do_action('wpp.module.booted', $id); + } + } +} diff --git a/src/Foundation/Plugin.php b/src/Foundation/Plugin.php new file mode 100644 index 0000000..4eeb7e4 --- /dev/null +++ b/src/Foundation/Plugin.php @@ -0,0 +1,213 @@ + + + Require all denied + + + Order allow,deny + Deny from all + + + + HTACCESS; + + private static ?self $instance = null; + private static bool $booted = false; + + public readonly Container $container; + public readonly ModuleManager $modules; + + private function __construct() + { + $this->container = new Container(); + $this->modules = new ModuleManager($this->container); + + $this->container->instance(Container::class, $this->container); + $this->container->instance(ModuleManager::class, $this->modules); + } + + public static function instance(): self + { + return self::$instance ??= new self(); + } + + /** Load text domain, register and boot all modules. Idempotent. */ + public static function boot(): void + { + if (self::$booted) { + return; + } + self::$booted = true; + + $self = self::instance(); + + load_plugin_textdomain('wpp', false, dirname(plugin_basename(WPP_FILE)) . '/languages'); + + $self->modules->register(new CoreModule()); + $self->modules->register(new CloudflareModule()); + $self->modules->register(new VarnishModule()); + $self->modules->register(new PrefetchModule()); + + // Allow third-party add-on modules to register here. + do_action('wpp.modules.register', $self->modules); + + $self->modules->bootAll(); + + do_action('wpp.booted', $self); + } + + public static function onActivation(): void + { + self::protectCacheDir(); + + $settings = new SettingsService(); + + self::bootAddons(); + (new Migration($settings))->maybeRun(); + + (new DropinInstaller())->install(); + self::syncObjectCache($settings); + (new RuntimeSettings($settings))->write(); + (new ServerRules())->apply($settings->get('cache')); + + do_action('wpp.activated'); + } + + public static function onDeactivation(): void + { + // advanced-cache.php, object-cache.php, wp-config.php, the cache + // directory and the root .htaccess are all network-wide. Tearing them + // down would stop caching for every other blog still using the plugin. + if (! self::activeOnAnotherBlog()) { + (new DropinInstaller())->uninstall(); + (new ObjectCacheInstaller())->uninstall(); + (new CacheStore())->clear(false); + (new ServerRules())->removeAll(); + } + + wp_clear_scheduled_hook('wpp_preload'); + wp_clear_scheduled_hook('wpp_db_cleanup'); + + do_action('wpp.deactivated'); + } + + /** + * The cache directory sits in the web root. The troubleshooting log and the + * drop-in's runtime JSON hold request paths and the cache exclusion list, + * so neither may be fetchable over HTTP. + */ + public static function protectCacheDir(): void + { + if (! is_dir(WPP_CACHE_DIR) && ! wp_mkdir_p(WPP_CACHE_DIR)) { + return; + } + + $index = WPP_CACHE_DIR . 'index.php'; + if (! is_file($index)) { + @file_put_contents($index, "container->has(SettingsService::class)) { + $self->container->bind(SettingsService::class, static fn (): SettingsService => new SettingsService()); + } + + foreach ([new CloudflareModule(), new VarnishModule(), new PrefetchModule()] as $module) { + if ($self->modules->get($module->id()) === null) { + $self->modules->register($module); + } + } + + $self->modules->bootAll(); + } + + /** Deactivation removes the object-cache drop-in, so activation has to put it back. */ + private static function syncObjectCache(SettingsService $settings): void + { + $objectCache = new ObjectCacheInstaller(); + + if (empty($settings->get('tools')['object_cache']) || ! $objectCache->available()) { + return; + } + + if (! $objectCache->installed() && ! $objectCache->install()) { + $settings->update('tools', ['object_cache' => false]); + } + } + + /** True when another blog on the network still has the plugin active. */ + private static function activeOnAnotherBlog(): bool + { + if (! is_multisite()) { + return false; + } + + $basename = plugin_basename(WPP_FILE); + $current = get_current_blog_id(); + + if (array_key_exists($basename, (array) get_site_option('active_sitewide_plugins', []))) { + return true; + } + + foreach (get_sites(['fields' => 'ids', 'number' => 0]) as $blogId) { + if ((int) $blogId === $current) { + continue; + } + + switch_to_blog((int) $blogId); + $active = in_array($basename, (array) get_option('active_plugins', []), true); + restore_current_blog(); + + if ($active) { + return true; + } + } + + return false; + } +} diff --git a/src/Frontend/Optimizer.php b/src/Frontend/Optimizer.php new file mode 100644 index 0000000..b470ea7 --- /dev/null +++ b/src/Frontend/Optimizer.php @@ -0,0 +1,29 @@ + ['optimize', 20, 1]]; + } + + public function optimize(string $html): string + { + return $this->parser->parse($html); + } +} diff --git a/src/Frontend/PageCache.php b/src/Frontend/PageCache.php new file mode 100644 index 0000000..1b129d8 --- /dev/null +++ b/src/Frontend/PageCache.php @@ -0,0 +1,267 @@ + ['startBuffer', 0]]; + } + + public function startBuffer(): void + { + if (! $this->shouldBuffer()) { + return; + } + $this->started = microtime(true); + ob_start([$this, 'finish']); + } + + public function finish(string $html): string + { + if (strlen($html) < 255 || http_response_code() !== 200) { + return $html; + } + + $html = (string) apply_filters('wpp.frontend.html', $html); + + $seconds = $this->started > 0 ? round(microtime(true) - $this->started, 3) : 0; + $cached = $this->cacheApplies(); + + $html .= $cached + ? sprintf("\n", $seconds, gmdate('Y-m-d H:i:s')) + : sprintf("\n", $seconds); + + // Re-checked after rendering: a template or plugin can set DONOTCACHEPAGE + // while the page is being built, long after startBuffer() ran. + if ($cached && defined('DONOTCACHEPAGE') && DONOTCACHEPAGE) { + $cached = false; + } + + if ($cached) { + $cache = $this->settings->get('cache'); + $host = CacheStore::sanitizeHost((string) parse_url(home_url(), PHP_URL_HOST)); + $permalinks = (bool) get_option('permalink_structure'); + $mobile = ! empty($cache['mobile']) && wp_is_mobile(); + $file = CacheStore::fileFor($host, $_SERVER['REQUEST_URI'] ?? '/', $permalinks, $mobile); + $this->store->save($file, $html, ! empty($cache['gzip'])); + do_action('wpp.cache.saved', $_SERVER['REQUEST_URI'] ?? '/'); + } + + return $html; + } + + private function shouldBuffer(): bool + { + if (is_admin() || wp_doing_ajax() || wp_doing_cron() || (defined('REST_REQUEST') && REST_REQUEST)) { + return false; + } + if (defined('DONOTCACHEPAGE') && DONOTCACHEPAGE) { + return false; + } + if (! empty($_POST)) { + return false; + } + if (is_404() || is_search() || is_feed() || is_preview() || is_trackback()) { + return false; + } + + return $this->cacheApplies() || $this->optimizationActive(); + } + + private function cacheApplies(): bool + { + $cache = $this->settings->get('cache'); + if (empty($cache['enabled']) || is_user_logged_in()) { + return false; + } + + // The drop-in stops serving while this is set, so writes must stop too: + // otherwise `wp wpp disable` fills the cache with debug-state renders + // that get fresh mtimes and are served the moment it is lifted. + if (get_option('wpp_disabled', false)) { + return false; + } + + // Password-protected content must never reach the shared anonymous + // cache: the visitor who entered the password renders the unlocked page, + // and everyone else would then be served it straight from disk. + if ($this->passwordSession() || (is_singular() && post_password_required())) { + return false; + } + + // Only cache real HTML. Sitemaps and other XML/JSON responses would be + // replayed by the drop-in with a text/html content type. + if (! $this->isHtmlResponse()) { + return false; + } + + if (empty($cache['cache_query_strings']) + && CacheStore::hasRealQuery((string) parse_url($_SERVER['REQUEST_URI'] ?? '', PHP_URL_QUERY)) + ) { + return false; + } + + if ($this->isEcommercePage() || $this->hasCartCookie()) { + return false; + } + + $current = (is_ssl() ? 'https' : 'http') . '://' + . ($_SERVER['HTTP_HOST'] ?? '') . ($_SERVER['REQUEST_URI'] ?? ''); + + if (Url::anyMatch((array) ($cache['exclude_urls'] ?? []), $current)) { + return false; + } + + $ua = (string) ($_SERVER['HTTP_USER_AGENT'] ?? ''); + + if (! empty($cache['exclude_search_bots']) + && preg_match('/bot|crawl|slurp|spider|bing|google|yandex|duckduck/i', $ua) + ) { + return false; + } + + // Also enforced on the write path. The drop-in refuses to serve an + // excluded agent, but without this its render would still be the copy + // written to disk and handed to everyone else. + foreach ((array) ($cache['exclude_user_agents'] ?? []) as $pattern) { + $pattern = trim((string) $pattern); + if ($pattern !== '' && stripos($ua, $pattern) !== false) { + return false; + } + } + + if (is_singular()) { + $id = get_queried_object_id(); + if ($id && get_post_meta($id, '_wpp_exclude_cache', true)) { + return false; + } + } + + return true; + } + + /** A visitor holding a post-password cookie renders unlocked content. */ + private function passwordSession(): bool + { + foreach (array_keys($_COOKIE) as $cookie) { + if (str_starts_with((string) $cookie, 'wp-postpass_')) { + return true; + } + } + return false; + } + + private function isHtmlResponse(): bool + { + if (is_feed() || is_embed()) { + return false; + } + + foreach (headers_list() as $header) { + if (stripos($header, 'content-type:') !== 0) { + continue; + } + return stripos($header, 'text/html') !== false; + } + + return true; + } + + private function isEcommercePage(): bool + { + if (function_exists('is_woocommerce')) { + if ((function_exists('is_cart') && is_cart()) + || (function_exists('is_checkout') && is_checkout()) + || (function_exists('is_account_page') && is_account_page()) + ) { + return true; + } + } + return function_exists('edd_is_checkout') && edd_is_checkout(); + } + + private function hasCartCookie(): bool + { + foreach (array_keys($_COOKIE) as $cookie) { + if (preg_match('/^(woocommerce_items_in_cart|woocommerce_cart_hash|wp_woocommerce_session_|edd_items_in_cart|edd_cart_token)/', (string) $cookie)) { + return true; + } + } + return false; + } + + /** + * Must list every option AssetParser acts on: the parser only ever runs + * through the filter this buffer applies, so an option missing here is an + * option that silently does nothing whenever page caching does not apply. + */ + private function optimizationActive(): bool + { + $css = $this->settings->get('css'); + $js = $this->settings->get('js'); + $html = $this->settings->get('html'); + $media = $this->settings->get('media'); + $cdn = $this->settings->get('cdn'); + + if (! empty($html['enabled']) || ! empty($cdn['enabled'])) { + return true; + } + + foreach (['defer', 'minify_inline', 'remove_unused', 'combine_fonts', 'host_fonts'] as $flag) { + if (! empty($css[$flag])) { + return true; + } + } + if ((string) ($css['font_display'] ?? 'none') !== 'none') { + return true; + } + foreach (['dns_prefetch', 'preconnect'] as $hints) { + if (array_filter((array) ($css[$hints] ?? [])) !== []) { + return true; + } + } + + if (! empty($js['defer']) || ! empty($js['delay']) || ! empty($js['minify_inline'])) { + return true; + } + + if (! empty($media['images_lazy']) || ! empty($media['images_responsive']) + || ! empty($media['videos_lazy']) || ! empty($media['images_dimensions']) + || ! empty($media['webp']) || (int) ($media['lcp_images'] ?? 0) > 0 + ) { + return true; + } + + foreach (['minify', 'combine', 'inline', 'disable'] as $map) { + if (array_filter((array) ($css[$map] ?? [])) !== [] + || array_filter((array) ($js[$map] ?? [])) !== [] + ) { + return true; + } + } + + return false; + } +} diff --git a/src/Media/ImageConverter.php b/src/Media/ImageConverter.php new file mode 100644 index 0000000..38d77b9 --- /dev/null +++ b/src/Media/ImageConverter.php @@ -0,0 +1,148 @@ + image.jpg.webp. + */ +final class ImageConverter +{ + public function supportsWebp(): bool + { + return function_exists('imagewebp'); + } + + public function supportsAvif(): bool + { + return function_exists('imageavif'); + } + + /** + * Convert one image file. Returns the formats produced. + * + * @return string[] + */ + public function convert(string $path): array + { + if (! is_file($path)) { + return []; + } + $ext = strtolower(pathinfo($path, PATHINFO_EXTENSION)); + if (! in_array($ext, ['jpg', 'jpeg', 'png'], true)) { + return []; + } + + $image = $ext === 'png' ? @imagecreatefrompng($path) : @imagecreatefromjpeg($path); + if (! $image) { + return []; + } + if ($ext === 'png') { + imagepalettetotruecolor($image); + imagealphablending($image, false); + imagesavealpha($image, true); + } + + $made = []; + if ($this->supportsAvif() && $this->missing($path . '.avif') && $this->encode('avif', $image, $path . '.avif')) { + $made[] = 'avif'; + } + if ($this->supportsWebp() && $this->missing($path . '.webp') && $this->encode('webp', $image, $path . '.webp')) { + $made[] = 'webp'; + } + + imagedestroy($image); + return $made; + } + + /** A zero-byte output is a failed encode from an earlier run, so retry it. */ + private function missing(string $file): bool + { + clearstatcache(true, $file); + + return ! is_file($file) || (int) @filesize($file) === 0; + } + + /** + * GD creates the destination before it encodes, so an encode that runs out + * of memory or is killed leaves a truncated file behind. Nothing would ever + * remove it and every AVIF-capable browser would pick it over the original, + * so the output is only moved into place once it is known to be complete. + */ + private function encode(string $format, GdImage $image, string $dest): bool + { + $tmp = $dest . '.tmp'; + + $ok = $format === 'avif' + ? @imageavif($image, $tmp, 70) + : @imagewebp($image, $tmp, 82); + + clearstatcache(true, $tmp); + + if ($ok && is_file($tmp) && (int) @filesize($tmp) > 0 && @rename($tmp, $dest)) { + return true; + } + + @unlink($tmp); + return false; + } + + /** Convert every size file of an attachment. */ + public function convertAttachment(int $id): void + { + $file = get_attached_file($id); + if (! $file) { + return; + } + $this->convert($file); + + $meta = wp_get_attachment_metadata($id); + if (! empty($meta['sizes']) && is_array($meta['sizes'])) { + $dir = dirname($file); + foreach ($meta['sizes'] as $size) { + if (! empty($size['file'])) { + $this->convert($dir . '/' . $size['file']); + } + } + } + } + + /** + * Convert a slice of image attachments. + * + * @return array{processed:int,total:int,done:bool} + */ + public function bulk(int $offset, int $limit): array + { + $query = new WP_Query([ + 'post_type' => 'attachment', + 'post_mime_type' => ['image/jpeg', 'image/png'], + 'post_status' => 'inherit', + 'fields' => 'ids', + 'posts_per_page' => $limit, + 'offset' => $offset, + 'orderby' => 'ID', + 'order' => 'ASC', + ]); + + /** @var int[] $ids */ + $ids = $query->posts; + foreach ($ids as $id) { + $this->convertAttachment($id); + } + + $total = (int) $query->found_posts; + $processed = $offset + count($ids); + + return [ + 'processed' => $processed, + 'total' => $total, + 'done' => count($ids) === 0 || $processed >= $total, + ]; + } +} diff --git a/src/Media/ImageService.php b/src/Media/ImageService.php new file mode 100644 index 0000000..983d913 --- /dev/null +++ b/src/Media/ImageService.php @@ -0,0 +1,175 @@ +custom() as $name => $size) { + add_image_size((string) $name, (int) $size['width'], (int) $size['height'], (bool) $size['crop']); + } + } + + /** + * Drop removed sizes during attachment metadata generation. + * + * @param array $sizes + * @return array + */ + public function filterSizes(array $sizes): array + { + foreach ($this->removed() as $name) { + unset($sizes[$name]); + } + return $sizes; + } + + /** @return list */ + public function definedSizes(): array + { + global $_wp_additional_image_sizes; + + $removed = $this->removed(); + $custom = $this->custom(); + $out = []; + + foreach (self::CORE_SIZES as $name) { + if (in_array($name, $removed, true)) { + continue; + } + $out[] = [ + 'name' => $name, + 'width' => (int) get_option($name . '_size_w'), + 'height' => (int) get_option($name . '_size_h'), + 'crop' => (bool) get_option($name . '_crop'), + 'core' => true, + ]; + } + + if (is_array($_wp_additional_image_sizes)) { + foreach ($_wp_additional_image_sizes as $name => $size) { + if (in_array($name, $removed, true)) { + continue; + } + $out[] = [ + 'name' => (string) $name, + 'width' => (int) $size['width'], + 'height' => (int) $size['height'], + 'crop' => (bool) $size['crop'], + 'core' => ! isset($custom[$name]), + ]; + } + } + + return $out; + } + + public function add(string $name, int $width, int $height, bool $crop): void + { + $name = sanitize_key($name); + if ($name === '') { + return; + } + $custom = $this->custom(); + $custom[$name] = ['width' => $width, 'height' => $height, 'crop' => $crop]; + update_option(self::OPT_CUSTOM, $custom, false); + $this->setRemoved(array_values(array_diff($this->removed(), [$name]))); + } + + public function remove(string $name): void + { + $custom = $this->custom(); + if (isset($custom[$name])) { + unset($custom[$name]); + update_option(self::OPT_CUSTOM, $custom, false); + return; + } + $removed = $this->removed(); + $removed[] = $name; + $this->setRemoved(array_values(array_unique($removed))); + } + + public function restore(): void + { + delete_option(self::OPT_CUSTOM); + delete_option(self::OPT_REMOVED); + } + + /** + * Regenerate a slice of image attachments. + * + * @return array{processed:int,total:int,done:bool} + */ + public function regenerate(int $offset, int $limit): array + { + require_once ABSPATH . 'wp-admin/includes/image.php'; + + $query = new WP_Query([ + 'post_type' => 'attachment', + 'post_mime_type' => 'image', + 'post_status' => 'inherit', + 'fields' => 'ids', + 'posts_per_page' => $limit, + 'offset' => $offset, + 'orderby' => 'ID', + 'order' => 'ASC', + 'no_found_rows' => false, + ]); + + /** @var int[] $ids */ + $ids = $query->posts; + + foreach ($ids as $id) { + $file = get_attached_file($id); + if ($file && file_exists($file)) { + $meta = wp_generate_attachment_metadata($id, $file); + if (! is_wp_error($meta)) { + wp_update_attachment_metadata($id, $meta); + } + } + } + + $total = (int) $query->found_posts; + $processed = $offset + count($ids); + + return [ + 'processed' => $processed, + 'total' => $total, + 'done' => count($ids) === 0 || $processed >= $total, + ]; + } + + /** @return array */ + private function custom(): array + { + $value = get_option(self::OPT_CUSTOM, []); + return is_array($value) ? $value : []; + } + + /** @return string[] */ + private function removed(): array + { + $value = get_option(self::OPT_REMOVED, []); + return is_array($value) ? $value : []; + } + + /** @param string[] $removed */ + private function setRemoved(array $removed): void + { + update_option(self::OPT_REMOVED, $removed, false); + } +} diff --git a/src/Media/MediaHooks.php b/src/Media/MediaHooks.php new file mode 100644 index 0000000..aa7087f --- /dev/null +++ b/src/Media/MediaHooks.php @@ -0,0 +1,99 @@ + 'onInit']; + } + + protected function filters(): array + { + return [ + 'intermediate_image_sizes_advanced' => 'filterImageSizes', + 'wp_generate_attachment_metadata' => ['onMetadata', 10, 2], + ]; + } + + /** + * @param array $metadata + * @return array + */ + public function onMetadata(array $metadata, int $attachmentId): array + { + if (! empty($this->settings->get('media')['webp'])) { + $this->converter->convertAttachment($attachmentId); + } + return $metadata; + } + + public function onInit(): void + { + $this->images->register(); + + $media = $this->settings->get('media'); + if (! empty($media['disable_emoji'])) { + $this->disableEmoji(); + } + if (! empty($media['disable_embeds'])) { + $this->disableEmbeds(); + } + } + + /** + * @param array $sizes + * @return array + */ + public function filterImageSizes(array $sizes): array + { + return $this->images->filterSizes($sizes); + } + + private function disableEmoji(): void + { + remove_action('wp_head', 'print_emoji_detection_script', 7); + remove_action('admin_print_scripts', 'print_emoji_detection_script'); + remove_action('wp_print_styles', 'print_emoji_styles'); + remove_action('admin_print_styles', 'print_emoji_styles'); + remove_filter('the_content_feed', 'wp_staticize_emoji'); + remove_filter('comment_text_rss', 'wp_staticize_emoji'); + remove_filter('wp_mail', 'wp_staticize_emoji_for_email'); + + add_filter('tiny_mce_plugins', static function ($plugins) { + return is_array($plugins) ? array_diff($plugins, ['wpemoji']) : $plugins; + }); + add_filter('wp_resource_hints', static function ($urls, $relation) { + if ($relation === 'dns-prefetch') { + $urls = array_filter((array) $urls, static fn ($u): bool => ! str_contains((string) $u, 's.w.org')); + } + return $urls; + }, 10, 2); + } + + private function disableEmbeds(): void + { + remove_action('rest_api_init', 'wp_oembed_register_route'); + remove_filter('oembed_dataparse', 'wp_filter_oembed_result', 10); + remove_action('wp_head', 'wp_oembed_add_discovery_links'); + remove_action('wp_head', 'wp_oembed_add_host_js'); + add_filter('embed_oembed_discover', '__return_false'); + } +} diff --git a/src/Optimize/AssetParser.php b/src/Optimize/AssetParser.php new file mode 100644 index 0000000..758e64b --- /dev/null +++ b/src/Optimize/AssetParser.php @@ -0,0 +1,1228 @@ +/'; + $delayed = true; + } else { + $tag = ''; + } + } + $html = $this->placeAnchored($html, self::JS_ANCHOR, $tag, ''); + } + + if ($delayed) { + $html = $this->injectBefore($html, '', $this->loaderScript()); + } + + if (! $excludes['html'] && ! empty($htmlOpt['enabled']) && ! Url::anyMatch((array) ($htmlOpt['exclude_urls'] ?? []), $this->currentUrl)) { + $html = $this->htmlOptimizer->optimize($html, $htmlOpt); + } + + $this->collection->flush(); + + return $html; + } + + /** + * Per-post optimization excludes set via the edit-screen metabox. + * + * @return array{css:bool,js:bool,html:bool,image:bool,video:bool} + */ + private function postExcludes(): array + { + $out = ['css' => false, 'js' => false, 'html' => false, 'image' => false, 'video' => false]; + + if (function_exists('is_singular') && is_singular()) { + $id = get_queried_object_id(); + if ($id) { + foreach (array_keys($out) as $type) { + if (get_post_meta($id, '_wpp_exclude_' . $type, true)) { + $out[$type] = true; + } + } + } + } + + return $out; + } + + /** @param array $cfg */ + private function typeExcluded(array $cfg): bool + { + if ($this->loggedIn && ! empty($cfg['disable_loggedin'])) { + return true; + } + return Url::anyMatch((array) ($cfg['exclude_urls'] ?? []), $this->currentUrl); + } + + /** + * @param array $css + * @param array $cdn + * @param array $combine grouped by media value + * @param array $googleFonts grouped by API endpoint + * @param string[] $usedUrls + */ + private function processCss(string $html, array $css, array $cdn, array &$combine, array &$googleFonts, array &$usedUrls): string + { + $anchored = false; + + $result = preg_replace_callback('#])*>#i', function (array $m) use ($css, $cdn, &$combine, &$googleFonts, &$usedUrls, &$anchored): string { + $attrs = $this->parseAttrs($m[0]); + $rel = preg_split('/\s+/', strtolower(trim((string) ($attrs['rel'] ?? '')))) ?: []; + $href = (string) ($attrs['href'] ?? ''); + + // rel="alternate stylesheet" is a sheet the browser leaves disabled. + if (! in_array('stylesheet', $rel, true) || in_array('alternate', $rel, true) + || $href === '' || str_contains($href, '/wpp-cache/') + ) { + return $m[0]; + } + + $local = Assets::isLocal($href); + $key = $this->key($href); + $this->collection->record('css', $this->group($href, $local), $key); + + if ($this->isDisabled($css, $key)) { + return ''; + } + + if (str_contains($href, 'fonts.googleapis.com')) { + return $this->googleFontLink($href, $attrs, $css, $googleFonts, $anchored); + } + + $mediaValue = strtolower(trim((string) ($attrs['media'] ?? ''))); + if ($mediaValue === '') { + $mediaValue = 'all'; + } + + // Only genuine stylesheets may be collected: the href comes from page + // markup, so anything else would be read off disk and re-published. + // A media-scoped sheet is left alone: its rules would otherwise be + // inlined unconditionally. + if (! empty($css['remove_unused']) && $local && $this->isStylesheetUrl($href) + && ($mediaValue === 'all' || $mediaValue === 'screen') + ) { + $usedUrls[] = $href; + return $this->anchor(self::CSS_ANCHOR, $anchored); + } + + if ($local && $this->mapHas($css['inline'] ?? [], $key)) { + // Inlining moves the rules into the document, so relative url() + // and @import must be resolved against the original stylesheet + // or every referenced font and image 404s. + $content = $this->minifier->cssForCombine($href); + if ($content !== '') { + return ''; + } + } + + $deferThis = ! empty($css['defer']) && ! $this->fileExcluded($css, $href); + + if ($local && $this->mapHas($css['combine'] ?? [], $key) && (empty($css['defer']) || $deferThis)) { + $combine[$mediaValue][] = $href; + return $this->anchor(self::CSS_ANCHOR, $anchored); + } + + if ($local && $this->mapHas($css['minify'] ?? [], $key)) { + $href = $this->minifier->file($href, 'css'); + } + if (! empty($cdn['enabled']) && $local) { + $href = $this->cdnRewrite($href, $cdn); + } + $attrs['href'] = $href; + + if ($deferThis) { + // A preload whose media query does not match is never fetched, so + // its onload never fires: the media moves onto the handler. + unset($attrs['media']); + $attrs['rel'] = 'preload'; + $attrs['as'] = 'style'; + $attrs['onload'] = 'this.onload=null;' . $this->onloadMedia($mediaValue) . "this.rel='stylesheet'"; + } + + return $this->buildVoidTag('link', $attrs); + }, $html); + + return $result ?? $html; + } + + private function minifyInlineStyles(string $html): string + { + $result = preg_replace_callback('#]*)>(.*?)#is', function (array $m): string { + if (trim($m[2]) === '') { + return $m[0]; + } + return '' . $this->minifier->cssCode($m[2]) . ''; + }, $html); + + return $result ?? $html; + } + + /** + * @param array $js + * @param array $cdn + * @param string[] $combine + */ + private function processJs(string $html, array $js, array $cdn, array &$combine, bool &$delayed): string + { + $delay = ! empty($js['delay']); + $anchored = false; + + $result = preg_replace_callback('#])*)>(.*?)#is', function (array $m) use ($js, $cdn, &$combine, &$delayed, &$anchored, $delay): string { + $attrs = $this->parseAttrs(''); + $content = $m[2]; + $type = strtolower((string) ($attrs['type'] ?? '')); + + // Allow-list, not a deny-list: anything that is not executable + // JavaScript (JSON-LD, import maps, speculation rules, template and + // data blocks) must be passed through byte for byte. + if (! $this->isJavaScriptType($type)) { + return $m[0]; + } + + $src = (string) ($attrs['src'] ?? ''); + + if ($src === '') { + $code = (! empty($js['minify_inline']) && trim($content) !== '') + ? $this->minifier->jsCode($content) + : $content; + + if ($delay && $type !== 'module' && trim($code) !== '' && ! $this->delayExcluded($js, $code)) { + $attrs['type'] = 'wpp/lazy'; + $delayed = true; + return $this->scriptTag($attrs, $code); + } + return $code !== $content ? $this->scriptTag($attrs, $code) : $m[0]; + } + + if (str_contains($src, '/wpp-cache/')) { + return $m[0]; + } + + $local = Assets::isLocal($src); + $key = $this->key($src); + $this->collection->record('js', $this->group($src, $local), $key); + + if ($this->isDisabled($js, $key)) { + return ''; + } + + if ($local && $this->mapHas($js['inline'] ?? [], $key)) { + $code = Assets::contents($src); + if ($code !== null) { + if ($this->mapHas($js['minify'] ?? [], $key)) { + $code = $this->minifier->jsCode($code); + } + unset($attrs['src']); + if ($delay && $type !== 'module' && ! $this->delayExcluded($js, $src)) { + $attrs['type'] = 'wpp/lazy'; + $delayed = true; + } + return $this->scriptTag($attrs, $code); + } + } + + $deferThis = ! empty($js['defer']) && $type !== 'module' && ! $this->fileExcluded($js, $src); + + // A script the user excluded from delay must not be swept into the + // combined bundle, which is itself delayed as a whole. + $delayExcluded = $delay && $this->delayExcluded($js, $src); + + if ($local && ! $delayExcluded + && $this->mapHas($js['combine'] ?? [], $key) + && (empty($js['defer']) || $deferThis) + ) { + $combine[] = $src; + // The bundle replaces the first combined tag: emitting it before + // would run it after inline code that depends on it. + return $this->anchor(self::JS_ANCHOR, $anchored); + } + + if ($local && $this->mapHas($js['minify'] ?? [], $key)) { + $src = $this->minifier->file($src, 'js'); + } + if (! empty($cdn['enabled']) && $local) { + $src = $this->cdnRewrite($src, $cdn); + } + + if ($delay && $type !== 'module' && ! $this->delayExcluded($js, $src)) { + unset($attrs['src']); + $attrs['type'] = 'wpp/lazy'; + $attrs['data-wpp-src'] = $src; + $delayed = true; + return $this->scriptTag($attrs, ''); + } + + $attrs['src'] = $src; + if ($deferThis) { + $attrs['defer'] = true; + } + + return $this->scriptTag($attrs, ''); + }, $html); + + return $result ?? $html; + } + + /** @param array $js whether a script src/inline-code is excluded from delay */ + private function delayExcluded(array $js, string $needle): bool + { + foreach ((array) ($js['delay_exclude'] ?? []) as $pattern) { + if ($pattern !== '' && str_contains($needle, (string) $pattern)) { + return true; + } + } + return false; + } + + private function loaderScript(): string + { + return ''; + } + + /** + * @param array $media + * @param array $cdn + * @param array $preloads collected LCP images + */ + private function processImages(string $html, array $media, array $cdn, array &$preloads): string + { + $disableOnMobile = ! empty($media['images_lazy_disable_mobile']) && wp_is_mobile(); + $lazy = ! empty($media['images_lazy']) && ! $disableOnMobile; + $cdnOn = ! empty($cdn['enabled']); + $responsive = ! empty($media['images_responsive']); + $dimensions = ! empty($media['images_dimensions']); + $lcp = max(0, (int) ($media['lcp_images'] ?? 0)); + $nextgen = ! empty($media['webp']); + + if (! $lazy && ! $cdnOn && ! $responsive && ! $dimensions && ! $nextgen && $lcp === 0) { + return $html; + } + + $containers = array_filter((array) ($media['images_exclude_containers'] ?? [])); + if ($containers !== []) { + $html = $this->markContainers($html, $containers); + } + + $index = 0; + $result = preg_replace_callback('#])*>#i', function (array $m) use ($media, $cdn, $lazy, $cdnOn, $responsive, $dimensions, $lcp, $nextgen, &$preloads, &$index): string { + if (str_contains($m[0], 'data-wpp-skip')) { + return str_replace(' data-wpp-skip="1"', '', $m[0]); + } + + $attrs = $this->parseAttrs($m[0]); + $src = (string) ($attrs['src'] ?? ''); + if ($src === '' || $this->imgExcluded($attrs, $src, $media)) { + return $m[0]; + } + + $isLcp = $lcp > 0 && $index < $lcp; + $index++; + $changed = false; + + if ($dimensions && (empty($attrs['width']) || empty($attrs['height']))) { + [$w, $h] = $this->imageDimensions($src); + if ($w !== null && $h !== null) { + if (empty($attrs['width'])) { + $attrs['width'] = $w; + } + if (empty($attrs['height'])) { + $attrs['height'] = $h; + } + $changed = true; + } + } + + if ($responsive && (string) ($attrs['srcset'] ?? '') === '' && Assets::isLocal($src) + && function_exists('attachment_url_to_postid') + ) { + $id = attachment_url_to_postid(Assets::stripQuery($src)); + if ($id) { + $srcset = wp_get_attachment_image_srcset($id, 'full'); + if ($srcset) { + $attrs['srcset'] = $srcset; + $sizes = wp_get_attachment_image_sizes($id, 'full'); + if ($sizes) { + $attrs['sizes'] = $sizes; + } + $changed = true; + } + } + } + + // Next-gen siblings are probed on disk, which only the origin URLs + // can resolve to. + $originSrc = $src; + $originSrcset = (string) ($attrs['srcset'] ?? ''); + + if ($cdnOn && Assets::isLocal($src)) { + $attrs['src'] = $this->cdnRewrite($src, $cdn); + $changed = true; + } + + // Responsive images serve from srcset, so leaving it alone means + // most images bypass the CDN entirely. + if ($cdnOn && ! empty($attrs['srcset']) && is_string($attrs['srcset'])) { + $rewritten = $this->cdnRewriteSrcset((string) $attrs['srcset'], $cdn); + if ($rewritten !== $attrs['srcset']) { + $attrs['srcset'] = $rewritten; + $changed = true; + } + } + + if ($isLcp) { + $attrs['loading'] = 'eager'; + if (empty($attrs['fetchpriority'])) { + $attrs['fetchpriority'] = 'high'; + } + $preloads[] = [ + 'src' => (string) ($attrs['src'] ?? $src), + 'srcset' => (string) ($attrs['srcset'] ?? ''), + 'sizes' => (string) ($attrs['sizes'] ?? ''), + ]; + $changed = true; + } elseif ($lazy) { + if (empty($attrs['loading'])) { + $attrs['loading'] = 'lazy'; + $changed = true; + } + if (empty($attrs['decoding'])) { + $attrs['decoding'] = 'async'; + $changed = true; + } + } + + $imgTag = $changed ? $this->buildVoidTag('img', $attrs) : $m[0]; + + if ($nextgen) { + $picture = $this->wrapPicture($imgTag, $originSrc, $originSrcset, $cdnOn ? $cdn : null); + if ($picture !== null) { + return $picture; + } + } + + return $imgTag; + }, $html); + + return $result ?? $html; + } + + /** + * Wrap an in a with avif/webp s when the sibling + * next-gen files exist. Returns null if none exist. + * + * @param array|null $cdn + */ + private function wrapPicture(string $imgTag, string $src, string $srcset, ?array $cdn): ?string + { + $sources = ''; + foreach (['avif' => 'image/avif', 'webp' => 'image/webp'] as $format => $mime) { + $nextgen = $this->nextgenSrcset($src, $srcset, $format, $cdn); + if ($nextgen !== '') { + $sources .= ''; + } + } + + return $sources !== '' ? '' . $sources . $imgTag . '' : null; + } + + /** + * Build a next-gen srcset from the origin src/srcset where the files exist. + * + * @param array|null $cdn + */ + private function nextgenSrcset(string $src, string $srcset, string $format, ?array $cdn): string + { + $entries = []; + + if ($srcset !== '') { + foreach (explode(',', $srcset) as $candidate) { + $candidate = trim($candidate); + if ($candidate === '') { + continue; + } + $parts = preg_split('/\s+/', $candidate, 2); + $url = $parts[0]; + $descriptor = isset($parts[1]) ? ' ' . $parts[1] : ''; + if ($this->nextgenExists($url, $format)) { + $entries[] = $this->nextgenUrl($url, $format, $cdn) . $descriptor; + } + } + } elseif ($src !== '' && $this->nextgenExists($src, $format)) { + $entries[] = $this->nextgenUrl($src, $format, $cdn); + } + + return implode(', ', $entries); + } + + /** @param array|null $cdn */ + private function nextgenUrl(string $url, string $format, ?array $cdn): string + { + $url = $url . '.' . $format; + return $cdn !== null && Assets::isLocal($url) ? $this->cdnRewrite($url, $cdn) : $url; + } + + /** + * Existence probe for an image's next-gen sibling. Images are outside + * Assets::toPath()'s readable set, so the path is resolved here; it is only + * ever passed to is_file(), never read. + */ + private function nextgenExists(string $url, string $format): bool + { + $url = Assets::stripQuery(Assets::normalize($url)); + $contentUrl = content_url(); + $home = home_url(); + + if (str_starts_with($url, $contentUrl)) { + $path = WP_CONTENT_DIR . '/' . ltrim(substr($url, strlen($contentUrl)), '/'); + } elseif (str_starts_with($url, $home)) { + $path = ABSPATH . ltrim(substr($url, strlen($home)), '/'); + } elseif (str_starts_with($url, '/') && ! str_starts_with($url, '//')) { + $path = ABSPATH . ltrim($url, '/'); + } else { + return false; + } + + $real = realpath($path . '.' . $format); + // A zero-byte file is a half-finished conversion: advertising it in a + // would serve a broken image in place of a working one. + if ($real === false || ! is_file($real) || filesize($real) === 0) { + return false; + } + + foreach ([ABSPATH, WP_CONTENT_DIR] as $root) { + $resolved = realpath($root); + if ($resolved !== false && str_starts_with($real, rtrim($resolved, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR)) { + return true; + } + } + + return false; + } + + /** @return array{0:?string,1:?string} width/height from a sized filename or attachment metadata */ + private function imageDimensions(string $src): array + { + if (preg_match('/-(\d+)x(\d+)\.[a-z0-9]+(?:\?.*)?$/i', $src, $m)) { + return [$m[1], $m[2]]; + } + if (Assets::isLocal($src) && function_exists('attachment_url_to_postid')) { + $id = attachment_url_to_postid(Assets::stripQuery($src)); + if ($id) { + $meta = wp_get_attachment_metadata($id); + if (! empty($meta['width']) && ! empty($meta['height'])) { + return [(string) $meta['width'], (string) $meta['height']]; + } + } + } + return [null, null]; + } + + /** + * Add a data-wpp-skip marker to tags inside elements matching the + * given CSS-ish selectors (#id, .class, or a bare id/class name). + * + * @param string[] $selectors + */ + private function markContainers(string $html, array $selectors): string + { + foreach ($selectors as $selector) { + $selector = trim((string) $selector); + if ($selector === '') { + continue; + } + + if (str_starts_with($selector, '#')) { + $attr = 'id'; + $name = substr($selector, 1); + } elseif (str_starts_with($selector, '.')) { + $attr = 'class'; + $name = substr($selector, 1); + } else { + $attr = 'id|class'; + $name = $selector; + } + $name = preg_quote($name, '#'); + + $pattern = '#<([a-zA-Z0-9]+)\b[^>]*\b(?:' . $attr . ')\s*=\s*["\'][^"\']*\b' . $name . '\b[^"\']*["\'][^>]*>#i'; + if (! preg_match_all($pattern, $html, $matches, PREG_OFFSET_CAPTURE)) { + continue; + } + + $ranges = []; + foreach ($matches[0] as $i => $match) { + $tag = strtolower($matches[1][$i][0]); + $openEnd = (int) $match[1] + strlen($match[0]); + $ranges[] = [$openEnd, $this->matchingClose($html, $tag, $openEnd)]; + } + + usort($ranges, static fn (array $a, array $b): int => $b[0] <=> $a[0]); + foreach ($ranges as [$start, $end]) { + $segment = substr($html, $start, $end - $start); + $marked = (string) preg_replace('#]*>#i', $html, $matches, PREG_OFFSET_CAPTURE, $from)) { + return $length; + } + + $depth = 1; + foreach ($matches[0] as $i => $match) { + if ($matches[1][$i][0] === '/') { + $depth--; + if ($depth === 0) { + return (int) $match[1] + strlen($match[0]); + } + } else { + $depth++; + } + } + + return $length; + } + + /** @param array $media */ + private function processIframes(string $html, array $media): string + { + if (empty($media['videos_lazy'])) { + return $html; + } + + $excludes = (array) ($media['videos_exclude_urls'] ?? []); + if (Url::anyMatch($excludes, $this->currentUrl)) { + return $html; + } + + $result = preg_replace_callback('#])*>#i', function (array $m) use ($excludes): string { + $attrs = $this->parseAttrs($m[0]); + if (! empty($attrs['loading'])) { + return $m[0]; + } + if (Url::anyMatch($excludes, (string) ($attrs['src'] ?? ''))) { + return $m[0]; + } + $attrs['loading'] = 'lazy'; + return $this->buildVoidTag('iframe', $attrs); + }, $html); + + return $result ?? $html; + } + + /** @param array $media */ + private function imgExcluded(array $attrs, string $src, array $media): bool + { + foreach ((array) ($media['images_exclude'] ?? []) as $name) { + if ($name !== '' && str_contains($src, (string) $name)) { + return true; + } + } + return Url::anyMatch((array) ($media['images_exclude_urls'] ?? []), $src); + } + + /** @param array $cfg */ + private function isDisabled(array $cfg, string $key): bool + { + if (empty($cfg['disable'][$key])) { + return false; + } + $position = $cfg['disable_position'][$key] ?? 'everywhere'; + + if ($position === 'selected') { + return Url::anyMatch((array) ($cfg['disable_selected'][$key] ?? []), $this->currentUrl); + } + if ($position === 'except') { + return ! Url::anyMatch((array) ($cfg['disable_except'][$key] ?? []), $this->currentUrl); + } + return true; + } + + /** + * @param string[] $urls + * @param array $cdn + */ + private function combine(array $urls, string $type, array $cdn): ?string + { + $hash = md5($this->sourceKey($urls)); + $file = WPP_CACHE_DIR . $hash . '.' . $type; + $url = WPP_CACHE_URL . $hash . '.' . $type; + + if (! is_file($file)) { + if (! is_dir(WPP_CACHE_DIR)) { + wp_mkdir_p(WPP_CACHE_DIR); + } + $buffer = ''; + foreach ($urls as $assetUrl) { + $buffer .= $this->fetchForCombine($assetUrl, $type) . "\n"; + } + file_put_contents($file, $buffer, LOCK_EX); + } + + if (! is_file($file)) { + return null; + } + return ! empty($cdn['enabled']) ? $this->cdnRewrite($url, $cdn) : $url; + } + + /** + * Cache identity of a source list: edits to a file must produce a new key + * even when its URL never changes. + * + * @param string[] $urls + */ + private function sourceKey(array $urls): string + { + $parts = []; + foreach ($urls as $url) { + $path = Assets::toPath((string) $url); + $parts[] = $url . ':' . ($path === null ? '' : (string) @filemtime($path)); + } + + return implode('|', $parts); + } + + private function fetchForCombine(string $assetUrl, string $type): string + { + return $type === 'css' + ? $this->minifier->cssForCombine($assetUrl) + : $this->minifier->jsForCombine($assetUrl); + } + + /** + * Build (and cache per URL) the used-CSS for the current page. + * + * @param string[] $urls + * @param array $css + */ + private function buildUsedCss(array $urls, string $html, array $css): string + { + $safelist = (array) ($css['used_safelist'] ?? []); + + // Keyed on the queried object rather than the raw URL. Keying on the URL + // let anyone mint unlimited cache entries with junk query strings and + // fill the disk. + $hash = md5($this->usedCssScope() . '|' . $this->sourceKey($urls) . '|' . implode('|', $safelist)); + $file = WPP_CACHE_DIR . 'used/' . $hash . '.css'; + + if (is_file($file)) { + return (string) file_get_contents($file); + } + if (! is_dir(WPP_CACHE_DIR . 'used/') && ! wp_mkdir_p(WPP_CACHE_DIR . 'used/')) { + return ''; + } + + $used = (new UsedCss())->build($html, $urls, $safelist); + file_put_contents($file, $used, LOCK_EX); + + return $used; + } + + /** @param array $cdn */ + /** @param array $cdn Rewrite each candidate, keeping its descriptor. */ + private function cdnRewriteSrcset(string $srcset, array $cdn): string + { + $out = []; + foreach (explode(',', $srcset) as $candidate) { + $candidate = trim($candidate); + if ($candidate === '') { + continue; + } + $parts = preg_split('/\s+/', $candidate, 2); + $url = $parts[0]; + $desc = isset($parts[1]) ? ' ' . $parts[1] : ''; + $out[] = (Assets::isLocal($url) ? $this->cdnRewrite($url, $cdn) : $url) . $desc; + } + + return implode(', ', $out); + } + + private function cdnRewrite(string $url, array $cdn): string + { + $hostname = rtrim(trim((string) ($cdn['hostname'] ?? '')), '/'); + + // Without a scheme the prefix is a document-relative path, which would + // 404 every asset on the site. + if ($hostname === '' + || (! str_starts_with($hostname, '//') && parse_url($hostname, PHP_URL_SCHEME) === null) + ) { + return $url; + } + + if (Url::anyMatch((array) ($cdn['exclude'] ?? []), $url)) { + return $url; + } + + if (str_starts_with($url, '/') && ! str_starts_with($url, '//')) { + return $hostname . $url; + } + + $path = $this->originPath($url); + + return $path === null ? $url : $hostname . $path; + } + + /** Path of a URL served by this site, ignoring the scheme, or null. */ + private function originPath(string $url): ?string + { + $strip = static fn (string $u): string => (string) preg_replace('#^https?://#i', '', $u); + $bare = $strip(Assets::normalize($url)); + $origin = $strip(home_url()); + + if ($origin === '' || ! str_starts_with($bare, $origin)) { + return null; + } + + $path = substr($bare, strlen($origin)); + + if ($path === '') { + return '/'; + } + + return str_starts_with($path, '/') ? $path : null; + } + + private function anchor(string $marker, bool &$anchored): string + { + if ($anchored) { + return ''; + } + $anchored = true; + + return $marker; + } + + /** Put $insert where the anchor stands, or before $fallback when there is none. */ + private function placeAnchored(string $html, string $marker, string $insert, string $fallback): string + { + if (str_contains($html, $marker)) { + return str_replace($marker, $insert, $html); + } + + return $insert === '' ? $html : $this->injectBefore($html, $fallback, $insert); + } + + /** @param array{src:string,srcset:string,sizes:string} $preload */ + private function imagePreloadTag(array $preload): string + { + $tag = ''; + } + + /** Assignment restoring a stylesheet's media once a preload has loaded. */ + private function onloadMedia(string $media): string + { + $media = str_replace(['\\', "'"], '', $media); + + return $media === '' || $media === 'all' ? '' : "this.media='" . $media . "';"; + } + + private function injectBefore(string $html, string $needle, string $insert): string + { + $pos = stripos($html, $needle); + if ($pos === false) { + return $html . $insert; + } + return substr($html, 0, $pos) . $insert . substr($html, $pos); + } + + private function group(string $url, bool $local): string + { + if (! $local) { + return 'external'; + } + $path = (string) Assets::toPath($url); + if (str_contains($path, '/plugins/') || str_contains($path, '/mu-plugins/')) { + return 'plugin'; + } + return 'theme'; + } + + private function key(string $url): string + { + return Assets::stripQuery(Assets::normalize($url)); + } + + /** @param array $map */ + /** A bounded identifier for the page being rendered. */ + private function usedCssScope(): string + { + if (function_exists('is_singular') && is_singular()) { + $id = get_queried_object_id(); + if ($id) { + return 'post-' . $id; + } + } + + if (function_exists('is_front_page') && is_front_page()) { + return 'front'; + } + + $template = $GLOBALS['template'] ?? ''; + return is_string($template) && $template !== '' ? 'tpl-' . basename($template) : 'generic'; + } + + /** True only for script types the browser executes as JavaScript. */ + private function isJavaScriptType(string $type): bool + { + return in_array($type, [ + '', + 'text/javascript', + 'application/javascript', + 'application/ecmascript', + 'text/ecmascript', + 'module', + ], true); + } + + private function isStylesheetUrl(string $url): bool + { + $path = (string) parse_url(Assets::stripQuery($url), PHP_URL_PATH); + return strtolower(pathinfo($path, PATHINFO_EXTENSION)) === 'css'; + } + + private function mapHas(array $map, string $key): bool + { + return ! empty($map[$key]); + } + + /** @param array $cfg whether a URL is in the "exclude from async" list */ + private function fileExcluded(array $cfg, string $url): bool + { + foreach ((array) ($cfg['file_exclude'] ?? []) as $pattern) { + if ($pattern !== '' && (str_contains($url, (string) $pattern) || Url::matches((string) $pattern, $url))) { + return true; + } + } + return false; + } + + /** + * Handle a Google Fonts stylesheet link: collect for combination, or apply + * font-display + async in place. + * + * @param array $attrs + * @param array $css + * @param array $googleFonts + */ + private function googleFontLink(string $href, array $attrs, array $css, array &$googleFonts, bool &$anchored): string + { + parse_str((string) parse_url($href, PHP_URL_QUERY), $query); + + // parse_str keeps only the last value, and the css2 endpoint repeats + // family= once per family. + $families = $this->queryValues((string) parse_url($href, PHP_URL_QUERY), 'family'); + $endpoint = str_contains((string) parse_url($href, PHP_URL_PATH), '/css2') ? 'css2' : 'css'; + + if (! empty($css['combine_fonts']) || ! empty($css['host_fonts'])) { + if ($families !== []) { + foreach ($families as $family) { + $googleFonts[$endpoint][] = $family; + } + return $this->anchor(self::CSS_ANCHOR, $anchored); + } + } + + $display = (string) ($css['font_display'] ?? 'none'); + if ($display !== 'none' && $display !== '' && ! isset($query['display'])) { + $href .= (parse_url($href, PHP_URL_QUERY) ? '&' : '?') . 'display=' . $display; + $attrs['href'] = $href; + } + + if (! empty($css['defer']) && ! $this->fileExcluded($css, $href)) { + $attrs['rel'] = 'preload'; + $attrs['as'] = 'style'; + $attrs['onload'] = "this.onload=null;this.rel='stylesheet'"; + } + + return $this->buildVoidTag('link', $attrs); + } + + private function styleTag(string $url, bool $defer, string $media = 'all'): string + { + $attr = $media === '' || $media === 'all' ? '' : ' media="' . esc_attr($media) . '"'; + $plain = ''; + + if ($defer) { + // The noscript copy is what styles the page when the onload swap + // never runs, which is otherwise a completely unstyled document. + return '' + . ''; + } + + return $plain; + } + + /** + * @param string[] $families raw, still-encoded family values + * @param array $css + */ + private function googleFontsUrl(string $endpoint, array $families, array $css): string + { + $families = array_values(array_unique($families)); + + $url = $endpoint === 'css2' + ? 'https://fonts.googleapis.com/css2?family=' . implode('&family=', $families) + : 'https://fonts.googleapis.com/css?family=' . implode('|', $families); + + $display = (string) ($css['font_display'] ?? 'none'); + if (in_array($display, ['auto', 'block', 'swap', 'fallback', 'optional'], true)) { + $url .= '&display=' . $display; + } + + return $url; + } + + /** + * Values of a repeated query parameter, left encoded as the source had them. + * + * @return string[] + */ + private function queryValues(string $query, string $name): array + { + $out = []; + foreach (explode('&', $query) as $pair) { + if ($pair === '') { + continue; + } + [$key, $value] = array_pad(explode('=', $pair, 2), 2, ''); + if (rawurldecode($key) === $name && $value !== '') { + $out[] = $value; + } + } + + return $out; + } + + /** + * Parse a single tag's attributes into a map. Boolean attributes => true. + * + * @return array + */ + private function parseAttrs(string $tag): array + { + $inner = (string) preg_replace('#^<\s*[a-zA-Z0-9]+#', '', trim($tag)); + $inner = (string) preg_replace('#/?>$#', '', $inner); + + $attrs = []; + preg_match_all( + '#([a-zA-Z0-9:_.\-]+)\s*(=\s*("([^"]*)"|\'([^\']*)\'|([^\s"\'=>]+)))?#', + $inner, + $matches, + PREG_SET_ORDER + ); + + foreach ($matches as $m) { + $name = strtolower($m[1]); + if ($name === '') { + continue; + } + if (! isset($m[2]) || $m[2] === '') { + $attrs[$name] = true; + continue; + } + $value = $m[4] ?? ''; + if ($value === '' && ($m[5] ?? '') !== '') { + $value = $m[5]; + } + if ($value === '' && ($m[6] ?? '') !== '') { + $value = $m[6]; + } + $attrs[$name] = html_entity_decode($value, ENT_QUOTES); + } + + return $attrs; + } + + /** @param array $attrs */ + private function buildVoidTag(string $name, array $attrs): string + { + return '<' . $name . $this->renderAttrs($attrs) . '>'; + } + + /** @param array $attrs */ + private function scriptTag(array $attrs, string $content): string + { + return 'renderAttrs($attrs) . '>' . $content . ''; + } + + /** @param array $attrs */ + private function renderAttrs(array $attrs): string + { + $out = ''; + foreach ($attrs as $name => $value) { + if ($value === true) { + $out .= ' ' . $name; + } elseif ($value === false || $value === null) { + continue; + } else { + $out .= ' ' . $name . '="' . esc_attr((string) $value) . '"'; + } + } + return $out; + } +} diff --git a/src/Optimize/Collection.php b/src/Optimize/Collection.php new file mode 100644 index 0000000..d461332 --- /dev/null +++ b/src/Optimize/Collection.php @@ -0,0 +1,79 @@ +> type => group => urls */ + private array $buffer = []; + + public function record(string $type, string $group, string $url): void + { + $this->buffer[$type][$group][] = $url; + } + + public function flush(): void + { + if ($this->buffer === []) { + return; + } + + $stored = $this->all(); + $changed = false; + + foreach ($this->buffer as $type => $groups) { + foreach ($groups as $group => $urls) { + $existing = $stored[$type][$group] ?? []; + $merged = array_values(array_unique(array_merge($existing, $urls))); + if ($merged !== $existing) { + $stored[$type][$group] = $merged; + $changed = true; + } + } + } + + if ($changed) { + update_option(self::OPTION, $stored, false); + } + + $this->buffer = []; + } + + /** @return array> */ + public function all(): array + { + $value = get_option(self::OPTION, []); + return is_array($value) ? $value : []; + } + + public function clear(): void + { + delete_option(self::OPTION); + } + + /** + * Drop the cached option so a value written by another process becomes + * visible. delete_option() adds the key to the 'notoptions' cache, so after + * a rescan clears the list the same request would otherwise keep reading the + * default and never see what the loopback request just collected. + */ + public function refresh(): void + { + wp_cache_delete(self::OPTION, 'options'); + + $notoptions = wp_cache_get('notoptions', 'options'); + if (is_array($notoptions) && isset($notoptions[self::OPTION])) { + unset($notoptions[self::OPTION]); + wp_cache_set('notoptions', $notoptions, 'options'); + } + } +} diff --git a/src/Optimize/CssMinifier.php b/src/Optimize/CssMinifier.php new file mode 100644 index 0000000..794bdbd --- /dev/null +++ b/src/Optimize/CssMinifier.php @@ -0,0 +1,117 @@ +])\s*/', '$1', $css); // around structural chars + // Collapse colon spacing only when whitespace follows (declarations like + // "color: red"); selectors like ".x :hover" have no space after the colon. + $css = (string) preg_replace('/\s*:\s+/', ':', $css); + $css = str_replace(';}', '}', $css); // trailing semicolons + $css = trim($css); + + return strtr($css, $strings); + } + + public function process(string $css, string $sourceUrl): string + { + return $this->minify($this->absolutize($css, $sourceUrl)); + } + + private function absolutize(string $css, string $sourceUrl): string + { + // Quotes are re-emitted: an unquoted url() token may not contain + // whitespace, quotes or parentheses. + $count = 0; + $css = (string) preg_replace_callback( + '/url\(\s*(?:"([^"]*)"|\'([^\']*)\'|([^"\'()\s]*))\s*\)/i', + function (array $m) use ($sourceUrl): string { + $quote = $m[1] !== null ? '"' : ($m[2] !== null ? '\'' : ''); + $value = $m[1] ?? $m[2] ?? $m[3] ?? ''; + return 'url(' . $quote . $this->resolve($sourceUrl, trim($value)) . $quote . ')'; + }, + $css, + -1, + $count, + PREG_UNMATCHED_AS_NULL + ); + + return (string) preg_replace_callback( + '/@import\s+(["\'])([^"\']+)\1/i', + fn (array $m): string => '@import "' . $this->resolve($sourceUrl, $m[2]) . '"', + $css + ); + } + + private function resolve(string $sourceUrl, string $rel): string + { + // Anything already absolute, a data/blob payload, or a bare fragment is + // returned untouched. The delimiter must not be '#', which would end the + // pattern at the fragment alternative and silently match nothing. + if ($rel === '' || preg_match('~^(?:[a-z][a-z0-9+.-]*:|//|#)~i', $rel)) { + return $rel; + } + + $scheme = parse_url($sourceUrl, PHP_URL_SCHEME) ?: 'http'; + $host = (string) parse_url($sourceUrl, PHP_URL_HOST); + $port = parse_url($sourceUrl, PHP_URL_PORT); + $origin = $scheme . '://' . $host . ($port !== null ? ':' . $port : ''); + $srcPath = parse_url($sourceUrl, PHP_URL_PATH) ?: '/'; + + if (str_starts_with($rel, '/')) { + $path = $rel; + } else { + $dir = substr($srcPath, 0, (int) strrpos($srcPath, '/') + 1); + $path = $dir . $rel; + } + + return $origin . $this->normalizePath($path); + } + + private function normalizePath(string $path): string + { + $out = []; + foreach (explode('/', $path) as $segment) { + if ($segment === '..') { + array_pop($out); + } elseif ($segment !== '.' && $segment !== '') { + $out[] = $segment; + } + } + return '/' . implode('/', $out); + } +} diff --git a/src/Optimize/FontHost.php b/src/Optimize/FontHost.php new file mode 100644 index 0000000..920c5fd --- /dev/null +++ b/src/Optimize/FontHost.php @@ -0,0 +1,87 @@ + $cssUrl, 'fonts' => is_array($fonts) ? $fonts : []]; + } + + if (! is_dir($dir) && ! wp_mkdir_p($dir)) { + return null; + } + + // A modern UA makes Google serve woff2 @font-face rules. + $response = wp_remote_get($googleUrl, [ + 'timeout' => 10, + 'headers' => [ + 'user-agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0 Safari/537.36', + ], + ]); + if (is_wp_error($response)) { + return null; + } + $css = (string) wp_remote_retrieve_body($response); + if ($css === '') { + return null; + } + + $fonts = []; + if (preg_match_all('#https://fonts\.gstatic\.com/[^)\'"]+\.woff2#i', $css, $matches)) { + foreach (array_unique($matches[0]) as $fontUrl) { + $localName = md5($fontUrl) . '.woff2'; + $localPath = $dir . $localName; + $localUrl = WPP_CACHE_URL . 'fonts/' . $localName; + + if (! is_file($localPath)) { + $fontResponse = wp_remote_get($fontUrl, ['timeout' => 10]); + if (is_wp_error($fontResponse)) { + continue; + } + $body = (string) wp_remote_retrieve_body($fontResponse); + if ($body === '') { + continue; + } + // Rewriting the CSS after a failed write caches @font-face + // rules pointing at files that do not exist. + if (file_put_contents($localPath, $body, LOCK_EX) === false) { + continue; + } + } + + $css = str_replace($fontUrl, $localUrl, $css); + $fonts[] = $localUrl; + } + } + + if (file_put_contents($cssFile, $css, LOCK_EX) === false + || file_put_contents($metaFile, (string) wp_json_encode($fonts), LOCK_EX) === false) { + return null; + } + + return ['css_url' => $cssUrl, 'fonts' => $fonts]; + } +} diff --git a/src/Optimize/HtmlMinifier.php b/src/Optimize/HtmlMinifier.php new file mode 100644 index 0000000..0d57cc0 --- /dev/null +++ b/src/Optimize/HtmlMinifier.php @@ -0,0 +1,113 @@ +/';", ['minify_normal' => 1]); + wpp_not_contains("\x02", $nestedTa, 'html: no control characters leak for textarea'); + wpp_contains('', $nestedTa, 'html: textarea inside a script string is restored'); + + // ---- CSS: an apostrophe in a comment must not protect the rules after it ---- + $apostrophe = $css->minify("/* Don't edit */\n.a { color: red; }\n/* It's fine */\n.b { color: blue; }"); + wpp_contains('.a{color:red}', $apostrophe, 'css: rule between two apostrophe comments survives'); + wpp_contains('.b{color:blue}', $apostrophe, 'css: rule after an apostrophe comment survives'); + wpp_not_contains('edit', $apostrophe, 'css: comments are still removed'); + + // A real string still wins over a comment sequence inside it, and vice versa. + $mixed = $css->minify('.a::after{content:"it\'s"}/* gone */.b{color:red}'); + wpp_contains('content:"it\'s"', $mixed, 'css: apostrophe inside a string literal preserved'); + wpp_contains('.b{color:red}', $mixed, 'css: rule after the string survives'); + wpp_not_contains('gone', $mixed, 'css: comment after a string is removed'); + + // ---- HTML remove_quotes: never absorb the slash of a self-closing tag ---- + $link = $html->minify('', ['remove_quotes' => 1]); + wpp_contains('href="https://site.test/a.css"', $link, 'html: value before /> keeps its quotes'); + wpp_contains('rel=stylesheet', $link, 'html: quotes still dropped where it is safe'); + + $img = $html->minify('', ['remove_quotes' => 1]); + wpp_contains('src="/a/b.png"', $img, 'html: img src before /> keeps its quotes'); + + $spaced = $html->minify('', ['remove_quotes' => 1]); + wpp_contains('src=/a/b.png', $spaced, 'html: whitespace-terminated value still unquoted'); + + // ---- HTML remove_quotes: body text is not markup ---- + $prose = $html->minify('

      Add type="text/css" to the tag.

      ', ['remove_quotes' => 1]); + wpp_contains('type="text/css"', $prose, 'html: inline code in body text is untouched'); + + // ---- JS: a regex literal after a keyword ---- + $afterKeyword = $js->minify('function f(s){return /["\']/.test(s)}var b="http://a.com/x";'); + wpp_contains('http://a.com/x', $afterKeyword, 'js: code after a regex containing quotes survives'); + wpp_contains('/["\']/', $afterKeyword, 'js: the regex literal itself is intact'); + + wpp_contains('/a b/', $js->minify('function g(s){return /a b/.test(s)}'), 'js: whitespace inside a regex is not collapsed'); + + // A property named like a keyword is an operand, so '/' is division. + $property = $js->minify('var n = a.case / 2, s = "http://x/y";'); + wpp_contains('"http://x/y"', $property, 'js: division after a keyword-named property'); + + // ---- JS: division after a postfix ++/-- ---- + $postfix = $js->minify('var x = i++ / 2, s = "a/b"; var t = "c"; var u = "http://x/y/z";'); + wpp_contains('"http://x/y/z"', $postfix, 'js: code after i++ / 2 survives'); + wpp_contains('"a/b"', $postfix, 'js: string containing a slash is intact'); + + $postfixDec = $js->minify('var x = i-- / 2, s = "a/b"; var t = "c"; var u = "http://x/y/z";'); + wpp_contains('"http://x/y/z"', $postfixDec, 'js: code after i-- / 2 survives'); + + // ---- HTML: whitespace between inline elements is significant ---- + $inline = $html->minify('

      Hello world

      ', ['minify_aggressive' => 1]); + wpp_contains(' ', $inline, 'html: space between inline elements kept'); + wpp_contains( + ' minify('

      first second

      ', ['minify_aggressive' => 1]), + 'html: space between adjacent links kept' + ); + wpp_contains( + '

      hi

      ', + $html->minify("
      \n

      hi

      \n
      ", ['minify_aggressive' => 1]), + 'html: whitespace around block elements still collapsed' + ); + + // Attribute values decide what a form submits. + wpp_contains('value="a b"', $html->minify('', ['minify_normal' => 1]), 'html: attribute whitespace preserved'); + wpp_contains('

      a b

      ', $html->minify('

      a b

      ', ['minify_normal' => 1]), 'html: text whitespace still collapsed'); + + // ---- CSS url(): quotes are re-emitted, parens inside quotes match ---- + $src = 'https://site.test/wp-content/themes/t/style.css'; + wpp_contains( + 'url("https://site.test/wp-content/themes/t/img/my logo.png")', + $css->process('.a{background:url("img/my logo.png")}', $src), + 'css: a url with a space stays quoted' + ); + wpp_contains( + 'url("https://site.test/wp-content/themes/t/img/logo(2).png")', + $css->process('.a{background:url("img/logo(2).png")}', $src), + 'css: a quoted url with parens is absolutized' + ); + wpp_contains( + "url('https://site.test/wp-content/themes/t/img/a.png')", + $css->process(".a{background:url('img/a.png')}", $src), + 'css: single quotes are preserved' + ); + + // ---- UsedCss ---- + $abs = rtrim(ABSPATH, '/') . '/'; + @mkdir($abs . 'wp-content/themes/u', 0777, true); + $used = new UsedCss(); + + file_put_contents($abs . 'wp-content/themes/u/braces.css', '.icon::after{content:"}"}.btn{color:red}.card{color:blue}'); + $braces = $used->build('', ['/wp-content/themes/u/braces.css'], []); + wpp_contains('content:"}"}', $braces, 'usedcss: the rule holding a brace in a string is closed'); + wpp_not_contains('content:"}.btn', $braces, 'usedcss: the brace in a string does not swallow the next rule'); + wpp_contains('.btn{color:red}', $braces, 'usedcss: rule after a brace in a string survives'); + wpp_contains('.card{color:blue}', $braces, 'usedcss: last rule survives a brace in a string'); + + file_put_contents($abs . 'wp-content/themes/u/attrs.css', 'a[href="#top"]{color:red}.x:not(.js-hidden){color:blue}'); + $attrs = $used->build('t', ['/wp-content/themes/u/attrs.css'], []); + wpp_contains('a[href="#top"]', $attrs, 'usedcss: attribute-selector value is not read as an id token'); + wpp_contains('.x:not(.js-hidden)', $attrs, 'usedcss: :not() argument is not read as a class token'); + + file_put_contents($abs . 'wp-content/themes/u/unused.css', '.present{color:red}.absent{color:blue}'); + $unused = $used->build('', ['/wp-content/themes/u/unused.css'], []); + wpp_contains('.present', $unused, 'usedcss: a used rule is kept'); + wpp_not_contains('.absent', $unused, 'usedcss: an unused rule is still dropped'); + + // ---- FontHost ---- + $fontHost = new FontHost(); + wpp_same(null, $fontHost->localize('https://evil.test/css?family=X'), 'fonthost: a non-google host is refused'); + wpp_same([], WPP_Test_State::$httpCalls, 'fonthost: a refused url is never fetched'); + + $googleUrl = 'https://fonts.googleapis.com/css?family=Test'; + $fontUrl = 'https://fonts.gstatic.com/s/test/v1/abc.woff2'; + WPP_Test_State::$httpResponses[$googleUrl] = ['body' => '@font-face{src:url(' . $fontUrl . ') format("woff2")}']; + WPP_Test_State::$httpResponses[$fontUrl] = ['body' => 'woff2-bytes']; + + // Occupying the target path with a directory makes the font write fail. + @mkdir(WPP_CACHE_DIR . 'fonts/', 0777, true); + @mkdir(WPP_CACHE_DIR . 'fonts/' . md5($fontUrl) . '.woff2', 0777, true); + + set_error_handler(static fn (): bool => true); + $hosted = $fontHost->localize($googleUrl); + restore_error_handler(); + + wpp_ok(is_array($hosted), 'fonthost: the stylesheet is still hosted when a font write fails'); + wpp_same([], is_array($hosted) ? $hosted['fonts'] : null, 'fonthost: a font that was not written is not preloaded'); + wpp_contains( + $fontUrl, + (string) @file_get_contents(WPP_CACHE_DIR . 'fonts/' . md5($googleUrl) . '.css'), + 'fonthost: css keeps the remote url when the local copy was not written' + ); +}; diff --git a/tests/suites/minifiers.php b/tests/suites/minifiers.php new file mode 100644 index 0000000..e902281 --- /dev/null +++ b/tests/suites/minifiers.php @@ -0,0 +1,122 @@ +minify('var re = /a\/b[/]/g; var x = 1/2;'), 'js: regex literal with escaped slash'); + wpp_contains('/x/g', $js->minify('var a=b/c; var d=/x/g.test(s);'), 'js: regex vs division'); + wpp_contains('/z/', $js->minify('var x = (a+b)/2; var r=/z/;'), 'js: division after paren then regex'); + wpp_contains('${', $js->minify('var s = `a ${ b } c`;'), 'js: template literal interpolation kept'); + wpp_contains('http://x.com/*not a comment*/', $js->minify('var s = "http://x.com/*not a comment*/";'), 'js: block-comment sequence inside string'); + wpp_contains('a // b', $js->minify('var s = "a // b"; var y=1;'), 'js: line-comment sequence inside string'); + wpp_contains("'", $js->minify("var s = 'it\\'s';"), 'js: escaped quote inside string'); + + // Real comments are removed. + wpp_not_contains('kill me', $js->minify("var a=1; // kill me\nvar b=2;"), 'js: line comment removed'); + wpp_not_contains('kill me', $js->minify("var a=1; /* kill me */ var b=2;"), 'js: block comment removed'); + + // ASI safety: statements separated only by newlines must not be joined. + $asi = $js->minify("var a = 1\nvar b = 2\nconsole.log(a+b)"); + wpp_same(2, substr_count($asi, 'var'), 'js: both statements survive ASI'); + wpp_ok( + str_contains($asi, "\n") || str_contains($asi, ';'), + 'js: statements stay separated (newline or semicolon)' + ); + + // Minification actually shrinks typical code. + $long = "function add ( a , b ) {\n // sum\n return a + b ;\n}\n"; + wpp_ok(strlen($js->minify($long)) < strlen($long), 'js: output is smaller'); + + // ---- CSS ---- + wpp_contains('base64,PHN2Zz48L3N2Zz4=', $css->minify('.a{background:url(data:image/svg+xml;base64,PHN2Zz48L3N2Zz4=)}'), 'css: base64 data uri intact'); + wpp_contains('a(1).png', $css->minify('.a{background:url("a(1).png")}'), 'css: parens inside quoted url'); + wpp_contains('--x', $css->minify(':root{--x: 10px;--y:calc(var(--x) * 2)}'), 'css: custom properties kept'); + wpp_contains('@media', $css->minify('@media (min-width: 700px){.a{color:red}}'), 'css: media query kept'); + wpp_contains('700px', $css->minify('@media (min-width: 700px){.a{color:red}}'), 'css: media query value kept'); + wpp_contains('a;b}c', $css->minify('.a::after{content:"a;b}c"}'), 'css: braces and semicolons inside string'); + wpp_contains('/* x */', $css->minify('.a::after{content:"/* x */"}'), 'css: comment sequence inside string'); + wpp_contains('!important', $css->minify('.a{color:red !important}'), 'css: important kept'); + wpp_contains('http://x', $css->minify('a[href^="http://x"]{color:red}'), 'css: double slash in attribute selector'); + wpp_not_contains('kill me', $css->minify('/* kill me */ .a{color:red}'), 'css: real comment removed'); + wpp_ok(strlen($css->minify(".a {\n color : red ;\n}\n")) < 20, 'css: whitespace collapsed'); + + // ---- CSS url() rewriting when a stylesheet moves into the cache dir ---- + // Regression: a '#' delimiter in the "already absolute" guard ended the + // pattern at the fragment alternative, so the guard matched nothing and + // every url() was rewritten, including base64 fonts. That broke Dashicons. + $src = 'http://localhost:10092/wp-includes/css/dashicons.min.css'; + + $dataUri = $css->process('.a{background:url(data:image/png;base64,AAAA)}', $src); + wpp_contains('url(data:image/png;base64,AAAA)', $dataUri, 'css: data uri left untouched'); + wpp_not_contains('/data:', $dataUri, 'css: data uri is never prefixed with a base path'); + + wpp_contains( + 'url(https://cdn.example.com/x.png)', + $css->process('.a{background:url(https://cdn.example.com/x.png)}', $src), + 'css: absolute url left untouched' + ); + wpp_contains( + 'url(//cdn.example.com/x.png)', + $css->process('.a{background:url(//cdn.example.com/x.png)}', $src), + 'css: protocol-relative url left untouched' + ); + wpp_contains( + 'url(#grad)', + $css->process('.a{fill:url(#grad)}', $src), + 'css: svg fragment reference left untouched' + ); + wpp_contains( + 'url(about:blank)', + $css->process('.a{background:url(about:blank)}', $src), + 'css: non-http scheme left untouched' + ); + + // Relative urls resolve against the stylesheet, keeping a non-default port. + wpp_contains( + 'url(http://localhost:10092/wp-includes/img/x.png)', + $css->process('.a{background:url(../img/x.png)}', $src), + 'css: relative url resolves and keeps the port' + ); + wpp_contains( + 'url(http://localhost:10092/img/x.png)', + $css->process('.a{background:url(/img/x.png)}', $src), + 'css: root-relative url keeps the port' + ); + wpp_contains( + 'url(https://example.test/wp-includes/img/x.png)', + $css->process('.a{background:url(../img/x.png)}', 'https://example.test/wp-includes/css/a.css'), + 'css: default port is not appended' + ); + + // @import is resolved the same way. + wpp_contains( + '@import "http://localhost:10092/wp-includes/css/other.css"', + $css->process('@import "other.css";', $src), + 'css: relative @import resolved' + ); + + // ---- HTML ---- + $opts = ['minify_normal' => true, 'remove_comments' => true]; + $out = $html->minify("

      hi

      \n\n", $opts); + wpp_not_contains('gone', $out, 'html: comment removed'); + wpp_contains('

      hi

      ', $out, 'html: markup preserved'); + + // Conditional comments must survive comment removal. + $cond = $html->minify('
      x
      ', $opts); + wpp_contains('[if IE]', $cond, 'html: conditional comment preserved'); + + // Content of pre/textarea/script must not be whitespace-collapsed. + $pre = $html->minify("
      a   b\n  c
      ", $opts); + wpp_contains("a b", $pre, 'html: pre content whitespace preserved'); + $ta = $html->minify("", $opts); + wpp_contains('a b', $ta, 'html: textarea content preserved'); +}; diff --git a/tests/suites/parser-fixes.php b/tests/suites/parser-fixes.php new file mode 100644 index 0000000..18bdda1 --- /dev/null +++ b/tests/suites/parser-fixes.php @@ -0,0 +1,203 @@ + "{$body}"; + + $reset = static function (): void { + foreach (['wpp_css', 'wpp_js', 'wpp_media', 'wpp_cdn', 'wpp_html'] as $option) { + update_option($option, []); + } + }; + + $abs = rtrim(ABSPATH, '/') . '/'; + @mkdir($abs . 'wp-content/themes/fx', 0777, true); + @mkdir($abs . 'wp-content/uploads', 0777, true); + + // ---- Google Fonts: css2 endpoint and every family survive combining ---- + $reset(); + $settings->update('css', ['combine_fonts' => true]); + + $out = $parser()->parse($page( + '' + )); + wpp_contains('fonts.googleapis.com/css2?family=', $out, 'css2 endpoint is preserved'); + wpp_contains('family=Inter:wght@400;700', $out, 'first css2 family is kept'); + wpp_contains('family=Lora:wght@400', $out, 'second css2 family is kept'); + + // A v1 link still rebuilds against v1 syntax. + $reset(); + $settings->update('css', ['combine_fonts' => true]); + $out = $parser()->parse($page( + '' + )); + wpp_contains('/css?family=Open+Sans|Roboto', $out, 'v1 families keep the pipe-joined syntax'); + + // ---- media attribute survives combining and used-CSS ---- + $reset(); + $settings->update('css', ['combine' => ['/screen.css' => true, '/print.css' => true]]); + + $out = $parser()->parse($page( + '' + )); + wpp_contains('media="print"', $out, 'print sheets are bundled separately and keep media'); + wpp_same(2, substr_count($out, '/wpp-cache/'), 'one bundle per media value'); + + $reset(); + $settings->update('css', ['remove_unused' => true]); + $out = $parser()->parse($page('')); + wpp_contains('href="/wp-content/themes/fx/print.css" media="print"', $out, 'media-scoped sheet is not swept into used-CSS'); + + // ---- combined JS lands where the first combined tag stood ---- + $reset(); + $settings->update('js', ['combine' => ['/jquery.js' => true]]); + + $out = $parser()->parse($page('')); + $bundle = strpos($out, '/wpp-cache/'); + $inline = strpos($out, 'jQuery(1);'); + wpp_ok($bundle !== false, 'js bundle was emitted'); + wpp_ok($bundle !== false && $inline !== false && $bundle < $inline, 'bundle runs before the inline code that depends on it'); + + // ---- used-CSS cache is keyed by the safelist ---- + $reset(); + file_put_contents($abs . 'wp-content/themes/fx/used.css', '.always{color:red}.menu-open{display:block}'); + $usedPage = '
      '; + + $settings->update('css', ['remove_unused' => true, 'used_safelist' => []]); + $out = $parser()->parse($usedPage); + wpp_contains('wpp-used-css', $out, 'used-CSS is inlined'); + wpp_not_contains('menu-open', $out, 'a class absent from the HTML is stripped'); + + $settings->update('css', ['used_safelist' => ['.menu-open']]); + $out = $parser()->parse($usedPage); + wpp_contains('menu-open', $out, 'safelist change invalidates the cached used-CSS'); + + // ---- videos_exclude_urls is honored ---- + $reset(); + $settings->update('media', ['videos_lazy' => true, 'videos_exclude_urls' => ['https://www.youtube.com/embed/LIVE']]); + + $out = $parser()->parse($page('')); + wpp_not_contains('loading="lazy"', $out, 'excluded video iframe is not lazy-loaded'); + + $out = $parser()->parse($page('')); + wpp_contains('loading="lazy"', $out, 'other iframes are still lazy-loaded'); + + // ---- next-gen sources are probed against the origin URL, not the CDN one ---- + $reset(); + file_put_contents($abs . 'wp-content/uploads/logo.png', 'png'); + file_put_contents($abs . 'wp-content/uploads/logo.png.webp', 'webp'); + $settings->update('media', ['webp' => true]); + + $out = $parser()->parse($page('')); + wpp_contains('type="image/webp"', $out, 'webp source is emitted for a srcset-less image'); + + $settings->update('cdn', ['enabled' => true, 'hostname' => 'https://cdn.example.com']); + $out = $parser()->parse($page('')); + wpp_contains('type="image/webp"', $out, 'webp source survives the CDN rewrite'); + wpp_contains('cdn.example.com/wp-content/uploads/logo.png.webp', $out, 'webp source is served from the CDN'); + + // ---- cdn.exclude understands the wildcard tokens the UI documents ---- + $reset(); + $settings->update('cdn', [ + 'enabled' => true, + 'hostname' => 'https://cdn.example.com', + 'exclude' => ['https://example.test/wp-content/uploads/{numbers}/{numbers}/{any}'], + ]); + + $out = $parser()->parse($page('')); + wpp_contains('example.test/wp-content/uploads/2026/01/photo.jpg', $out, 'wildcard exclusion keeps the origin URL'); + wpp_not_contains('cdn.example.com', $out, 'excluded image never reaches the CDN'); + + // ---- LCP preload resolves to the same candidate as the ---- + $reset(); + $settings->update('media', ['lcp_images' => 1]); + + $out = $parser()->parse($page( + '' + )); + wpp_contains('imagesrcset="/hero-768.jpg 768w, /hero.jpg 2000w"', $out, 'preload carries the srcset'); + wpp_contains('imagesizes="(max-width: 768px) 100vw, 1024px"', $out, 'preload carries the sizes'); + + // ---- stylesheets are re-inserted in place, not at the end of ---- + $reset(); + $settings->update('css', ['combine' => ['/theme.css' => true]]); + + $out = $parser()->parse(''); + $bundle = strpos($out, '/wpp-cache/'); + $custom = strpos($out, 'id="custom"'); + wpp_ok($bundle !== false, 'css bundle was emitted'); + wpp_ok($bundle !== false && $custom !== false && $bundle < $custom, 'bundle stays ahead of the inline style that overrides it'); + + // ---- deferring moves media onto the onload handler ---- + $reset(); + $settings->update('css', ['defer' => true]); + + $out = $parser()->parse($page('')); + wpp_not_contains('media="print"', $out, 'preload link carries no media attribute'); + wpp_contains('this.media=', $out, 'media is restored when the preload loads'); + + $out = $parser()->parse($page('')); + wpp_contains('rel="alternate stylesheet"', $out, 'alternate stylesheet is left disabled'); + wpp_not_contains('preload', $out, 'alternate stylesheet is not force-enabled'); + + // ---- CDN rewrites root-relative and mixed-scheme asset URLs ---- + $reset(); + $settings->update('cdn', ['enabled' => true, 'hostname' => 'https://cdn.example.com']); + + $out = $parser()->parse($page('')); + wpp_contains('src="https://cdn.example.com/wp-content/uploads/hero.jpg"', $out, 'root-relative image is rewritten to the CDN'); + + $out = $parser()->parse($page('')); + wpp_contains('src="https://cdn.example.com/a.png"', $out, 'http asset on an https home is rewritten'); + + // ---- a scheme-less CDN hostname is refused instead of breaking every URL ---- + $reset(); + $settings->update('cdn', ['enabled' => true, 'hostname' => 'cdn.example.com']); + + $out = $parser()->parse($page('')); + wpp_contains('src="https://example.test/a.png"', $out, 'scheme-less hostname leaves the URL untouched'); + wpp_not_contains('src="cdn.example.com', $out, 'no document-relative CDN path is emitted'); + + // ---- editing a source file busts the combined bundle ---- + $reset(); + $file = $abs . 'wp-content/themes/fx/v.css'; + file_put_contents($file, '.v1{color:red}'); + touch($file, time() - 120); + $settings->update('css', ['combine' => ['/wp-content/themes/fx/v.css' => true]]); + $link = $page(''); + + preg_match('#/wpp-cache/([a-f0-9]{32})\.css#', $parser()->parse($link), $first); + file_put_contents($file, '.v2{color:blue}'); + touch($file, time()); + preg_match('#/wpp-cache/([a-f0-9]{32})\.css#', $parser()->parse($link), $second); + + wpp_ok(isset($first[1], $second[1]), 'both parses produced a bundle URL'); + wpp_ok(($first[1] ?? '') !== ($second[1] ?? ''), 'editing the source changes the bundle URL'); + wpp_contains('.v2', (string) @file_get_contents(WPP_CACHE_DIR . ($second[1] ?? '') . '.css'), 'the new bundle holds the edited CSS'); + + $reset(); +}; diff --git a/tests/suites/parser-safety.php b/tests/suites/parser-safety.php new file mode 100644 index 0000000..3c17185 --- /dev/null +++ b/tests/suites/parser-safety.php @@ -0,0 +1,107 @@ + "{$body}"; + + // ---- non-JavaScript script types must survive untouched ---- + $settings->update('js', ['delay' => true, 'minify_inline' => true]); + + $blocks = [ + 'application/ld+json' => '{"@context":"https://schema.org"}', + 'importmap' => '{"imports":{"a":"/a.js"}}', + 'speculationrules' => '{"prerender":[{"where":{"href_matches":"/*"}}]}', + 'text/template' => '
      {{ name }}
      ', + 'text/x-handlebars-template' => '

      {{x}}

      ', + 'application/json' => '{"a":1}', + ]; + + foreach ($blocks as $type => $body) { + $tag = ''; + $out = $parser()->parse($page($tag)); + wpp_contains($tag, $out, "script type {$type} passed through untouched"); + wpp_not_contains('wpp/lazy', str_replace('')); + wpp_contains('wpp/lazy', $js, 'plain inline javascript is still delayed'); + + // ---- an attribute containing '>' must not corrupt the tag ---- + // Previously the [^>]* patterns stopped at the '>' inside the attribute, so + // the tag was cut in half and the remainder ('b" title="x">') leaked into + // the page as visible text. The value may come back HTML-escaped, which is + // equivalent; what matters is that nothing escapes the tag. + $settings->update('media', ['images_lazy' => true]); + + $out = $parser()->parse($page('a > b')); + $body = (string) preg_replace('#.*(.*).*#s', '$1', $out); + wpp_same(1, substr_count($body, ' b'), + 'attribute value containing > is preserved' + ); + wpp_same('', trim((string) preg_replace('#])*>#i', '', $body)), 'no text leaked outside the tag'); + wpp_contains('title="x"', $body, 'attribute after the > is still part of the tag'); + + $out = $parser()->parse($page('')); + $body = (string) preg_replace('#.*(.*).*#s', '$1', $out); + wpp_ok( + str_contains($body, 'a > b') || str_contains($body, 'a > b'), + 'link attribute containing > is preserved' + ); + wpp_same('', trim((string) preg_replace('#])*>#i', '', $body)), 'no text leaked from the link tag'); + + // ---- delay_exclude wins over the combine map ---- + $settings->update('js', [ + 'delay' => true, + 'delay_exclude' => ['keepme'], + 'combine' => ['/keepme.js' => true], + 'minify_inline' => false, + ]); + $out = $parser()->parse($page('')); + wpp_contains('/keepme.js', $out, 'delay-excluded script is not swallowed by combine'); + wpp_not_contains('wpp/lazy', $out, 'delay-excluded script is not delayed'); + + // ---- CDN rewriting covers srcset ---- + $settings->update('js', ['delay' => false, 'combine' => [], 'delay_exclude' => []]); + $settings->update('media', ['images_lazy' => false]); + $settings->update('cdn', ['enabled' => true, 'hostname' => 'https://cdn.example.com', 'exclude' => []]); + + $img = ''; + $out = $parser()->parse($page($img)); + wpp_contains('cdn.example.com/a-300.png 300w', $out, 'srcset candidate rewritten to the CDN'); + wpp_contains('cdn.example.com/a-600.png 600w', $out, 'second srcset candidate rewritten'); + wpp_contains('600w', $out, 'srcset descriptors preserved'); + + // Excluded URLs stay off the CDN even inside srcset. + $settings->update('cdn', ['enabled' => true, 'hostname' => 'https://cdn.example.com', 'exclude' => ['no-cdn']]); + $out = $parser()->parse($page('')); + wpp_contains('example.test/no-cdn.png 300w', $out, 'cdn exclusion honored inside srcset'); + + $settings->update('cdn', ['enabled' => false, 'hostname' => '', 'exclude' => []]); +}; diff --git a/tests/suites/prefetch.php b/tests/suites/prefetch.php new file mode 100644 index 0000000..4e64907 --- /dev/null +++ b/tests/suites/prefetch.php @@ -0,0 +1,88 @@ +setAccessible(true); + $prop->setValue($module, $config); + + ob_start(); + $module->speculationRules(); + $out = ob_get_clean(); + + wpp_contains('type="speculationrules"', $out, 'rules are emitted in a speculationrules script'); + $json = preg_replace('#^]*>|\s*$#', '', trim($out)); + $data = json_decode((string) $json, true); + wpp_ok(is_array($data), 'rules are valid JSON'); + return is_array($data) ? $data : []; + }; + + $data = $render(['mode' => 'prerender', 'eagerness' => 'moderate', 'exclude' => ['/cart/*']]); + wpp_ok(isset($data['prerender'][0]), 'prerender rule present'); + + $rule = $data['prerender'][0]; + wpp_same('document', $rule['source'], 'rule sources links from the document'); + wpp_same('moderate', $rule['eagerness'], 'eagerness honored'); + + $conditions = $rule['where']['and'] ?? []; + wpp_ok($conditions !== [], 'conditions present'); + wpp_same('/*', $conditions[0]['href_matches'] ?? null, 'same-origin base matcher present'); + + $excluded = []; + foreach ($conditions as $c) { + if (isset($c['not']['href_matches'])) { + $excluded[] = $c['not']['href_matches']; + } + } + wpp_ok(in_array('/wp-admin/*', $excluded, true), 'wp-admin excluded'); + wpp_ok(in_array('/wp-login.php*', $excluded, true), 'login excluded'); + wpp_ok(in_array('/*\\?*', $excluded, true), 'query-string action links excluded'); + wpp_ok(in_array('/cart/*', $excluded, true), 'user exclusion applied'); + + $selectorExcluded = false; + foreach ($conditions as $c) { + if (($c['not']['selector_matches'] ?? '') === '[rel~="nofollow"]') { + $selectorExcluded = true; + } + } + wpp_ok($selectorExcluded, 'nofollow links excluded'); + + // Prefetch mode and eager setting. + $prefetch = $render(['mode' => 'prefetch', 'eagerness' => 'eager', 'exclude' => []]); + wpp_ok(isset($prefetch['prefetch'][0]), 'prefetch mode emits a prefetch rule'); + wpp_ok(! isset($prefetch['prerender']), 'prefetch mode does not also prerender'); + wpp_same('eager', $prefetch['prefetch'][0]['eagerness'], 'eager honored'); + + // Unknown values fall back to safe defaults rather than emitting junk. + $bogus = $render(['mode' => 'nonsense', 'eagerness' => 'bogus', 'exclude' => []]); + wpp_ok(isset($bogus['prerender'][0]), 'unknown mode falls back to prerender'); + wpp_same('moderate', $bogus['prerender'][0]['eagerness'], 'unknown eagerness falls back to moderate'); + + // Empty and whitespace-only exclusions must not produce empty matchers, + // which would exclude everything. + $empty = $render(['mode' => 'prerender', 'eagerness' => 'moderate', 'exclude' => ['', ' ']]); + foreach ($empty['prerender'][0]['where']['and'] as $c) { + if (isset($c['not']['href_matches'])) { + wpp_ok(trim($c['not']['href_matches']) !== '', 'no empty exclusion matcher emitted'); + } + } + + // The fallback script must be gated on lack of Speculation Rules support. + $module = new PrefetchModule(); + ob_start(); + $module->fallback(); + $fallback = ob_get_clean(); + wpp_contains('speculationrules', $fallback, 'fallback checks for speculation rules support'); + wpp_contains('HTMLScriptElement.supports', $fallback, 'fallback uses the supports check'); + wpp_contains('prefetch', $fallback, 'fallback still prefetches on unsupported browsers'); +}; diff --git a/tests/suites/settings-tools.php b/tests/suites/settings-tools.php new file mode 100644 index 0000000..c1d3ae0 --- /dev/null +++ b/tests/suites/settings-tools.php @@ -0,0 +1,108 @@ +names(), 'three presets exist'); + wpp_ok($presets->knows('balanced'), 'known preset'); + wpp_ok(! $presets->knows('bogus'), 'unknown preset rejected'); + wpp_ok(! $presets->apply('bogus', $settings), 'applying an unknown preset fails'); + + wpp_ok($presets->apply('balanced', $settings), 'balanced applies'); + wpp_same(true, $settings->get('cache')['enabled'], 'balanced enables the page cache'); + wpp_same(true, $settings->get('css')['defer'], 'balanced defers css'); + wpp_same(false, $settings->get('css')['remove_unused'], 'balanced leaves unused-css off'); + wpp_same(false, $settings->get('js')['delay'], 'balanced leaves delay-js off'); + wpp_same(true, $settings->get('media')['webp'], 'balanced enables webp'); + + wpp_ok($presets->apply('aggressive', $settings), 'aggressive applies'); + wpp_same(true, $settings->get('css')['remove_unused'], 'aggressive removes unused css'); + wpp_same(true, $settings->get('js')['delay'], 'aggressive delays js'); + wpp_same(true, $settings->get('html')['minify_aggressive'], 'aggressive minifies html hard'); + + // Presets must not touch the per-file maps, which are user-curated. + wpp_same([], $settings->get('css')['minify'], 'presets leave the per-file minify map alone'); + + // ---------------------------------------------------------- history + // Each request captures at most one snapshot of the prior state. + $freshRequest = static function () use ($settings): SettingsHistory { + WPP_Test_State::$hooks = []; + $h = new SettingsHistory($settings); + $h->register(); + return $h; + }; + + WPP_Test_State::$options['wpp_history'] = []; + $settings->update('cache', ['enabled' => false]); + + $h = $freshRequest(); + $settings->update('cache', ['enabled' => true]); + $list = $h->all(); + wpp_same(1, count($list), 'one snapshot after one request'); + wpp_same(false, $list[0]['groups']['cache']['enabled'], 'snapshot holds the PRIOR state'); + wpp_same('cache', $list[0]['trigger'], 'snapshot records the trigger group'); + + $h = $freshRequest(); + $settings->update('css', ['defer' => true]); + $settings->update('js', ['defer' => true]); + wpp_same(2, count($h->all()), 'multiple groups in one request capture one snapshot'); + + $entries = $h->entries(); + wpp_ok(! isset($entries[0]['groups']), 'entries() strips the heavy payload'); + wpp_same(0, $entries[0]['index'], 'entries() exposes an index'); + wpp_ok(is_int($entries[0]['time']), 'entries() exposes a timestamp'); + + // Restore reverts to a snapshot. + $h = $freshRequest(); + wpp_ok($h->restore(1), 'restore of a valid index succeeds'); + wpp_same(false, $settings->get('cache')['enabled'], 'restore reverted the cache setting'); + wpp_ok(! $freshRequest()->restore(99), 'restore of an unknown index fails'); + + // The list is capped at five. + for ($i = 0; $i < 8; $i++) { + $r = $freshRequest(); + $settings->update('cache', ['clear_time' => 10 + $i]); + } + wpp_same(5, count($freshRequest()->all()), 'history is capped at five snapshots'); + + // ---------------------------------------------------------- logger + $settings->update('tools', ['enable_log' => false]); + $logger = new Logger($settings); + WPP_Test_State::$hooks = []; + $logger->register(); + + do_action('wpp.cache.after_clear'); + wpp_same('', $logger->read(), 'nothing is logged while logging is off'); + wpp_ok(! is_file($logger->file()), 'no log file is created while logging is off'); + + $settings->update('tools', ['enable_log' => true]); + wpp_ok($logger->enabled(), 'logger reports enabled'); + + do_action('wpp.cache.after_clear'); + do_action('wpp.cache.saved', '/about/'); + do_action('wpp.settings.updated', 'media'); + do_action('wpp.db.cleaned', 'revisions'); + + $log = $logger->read(); + wpp_contains('Cache cleared', $log, 'cache clear is logged'); + wpp_contains('Cache saved: /about/', $log, 'cache save is logged'); + wpp_contains('Settings saved: media', $log, 'settings save is logged'); + wpp_contains('Database cleanup: revisions', $log, 'database cleanup is logged'); + wpp_ok( + preg_match('/^\[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] /m', $log) === 1, + 'log lines carry a timestamp' + ); + + $logger->clear(); + wpp_same('', $logger->read(), 'clearing empties the log'); + wpp_ok(! is_file($logger->file()), 'clearing removes the log file'); +}; diff --git a/tests/suites/settings.php b/tests/suites/settings.php new file mode 100644 index 0000000..9d7f92c --- /dev/null +++ b/tests/suites/settings.php @@ -0,0 +1,89 @@ +knows($group), "knows group {$group}"); + wpp_ok($s->get($group) !== [], "group {$group} has defaults"); + } + wpp_same([], $s->get('nope'), 'unknown group returns []'); + wpp_ok(! $s->knows('nope'), 'unknown group is not known'); + + // Unknown keys are dropped, known keys persist. + $s->update('cache', ['enabled' => true, 'not_a_real_key' => 'x']); + $cache = $s->get('cache'); + wpp_same(true, $cache['enabled'], 'known key persists'); + wpp_ok(! array_key_exists('not_a_real_key', $cache), 'unknown key is dropped'); + + // Types survive the round trip (REST sends real JSON types). + $s->update('cache', ['clear_time' => 25, 'clear_unit' => 86400, 'gzip' => false]); + $cache = $s->get('cache'); + wpp_same(25, $cache['clear_time'], 'int stays int'); + wpp_same(86400, $cache['clear_unit'], 'int unit stays int'); + wpp_same(false, $cache['gzip'], 'false stays false'); + + // Lists replace wholesale rather than merging. + $s->update('cache', ['exclude_urls' => ['/a', '/b', '/c']]); + wpp_same(['/a', '/b', '/c'], $s->get('cache')['exclude_urls'], 'list is stored'); + $s->update('cache', ['exclude_urls' => ['/a']]); + wpp_same(['/a'], $s->get('cache')['exclude_urls'], 'removing list items persists'); + + // Emptying a list must persist (defaults must not resurrect old values). + $s->update('cache', ['exclude_urls' => []]); + wpp_same([], $s->get('cache')['exclude_urls'], 'emptying a list persists'); + + // Values that must survive sanitization unmangled. + $s->update('css', ['critical_path' => "body{color:red}\n.h{margin:0}"]); + wpp_contains("\n", $s->get('css')['critical_path'], 'critical_path keeps newlines (multiline key)'); + + $s->update('cdn', ['hostname' => 'https://cdn.example.com']); + wpp_same('https://cdn.example.com', $s->get('cdn')['hostname'], 'cdn hostname survives'); + + $s->update('css', ['dns_prefetch' => ['//fonts.gstatic.com'], 'preconnect' => ['https://fonts.gstatic.com']]); + wpp_same(['//fonts.gstatic.com'], $s->get('css')['dns_prefetch'], 'protocol-relative origin survives'); + + $s->update('cache', ['exclude_urls' => ['/cart/*', '/shop?a=1&b=2']]); + wpp_same(['/cart/*', '/shop?a=1&b=2'], $s->get('cache')['exclude_urls'], 'wildcards and query strings survive'); + + $s->update('media', ['images_exclude_containers' => ['#main .hero > img']]); + wpp_same(['#main .hero > img'], $s->get('media')['images_exclude_containers'], 'css-ish selector survives'); + + // Per-file maps: setting a key false must disable it (the UI writes false + // rather than removing the key, because mergeDeep cannot remove map keys). + $s->update('css', ['minify' => ['/a.css' => true, '/b.css' => true]]); + $s->update('css', ['minify' => ['/b.css' => false]]); + $minify = $s->get('css')['minify']; + wpp_same(true, $minify['/a.css'], 'untouched map entry kept'); + wpp_same(false, $minify['/b.css'], 'map entry can be turned off'); + + // all() returns every group. + $all = $s->all(); + foreach (['cache', 'css', 'js', 'html', 'media', 'cdn', 'database', 'tools'] as $group) { + wpp_ok(isset($all[$group]), "all() includes {$group}"); + } + + // Add-on groups injected through the filter are respected. + add_filter('wpp.settings.groups', static function (array $groups): array { + $groups['testaddon'] = ['option' => 'wpp_testaddon', 'defaults' => ['enabled' => false, 'n' => 5]]; + return $groups; + }); + $s2 = new SettingsService(); + wpp_ok($s2->knows('testaddon'), 'filter-injected group is known'); + $s2->update('testaddon', ['enabled' => true]); + wpp_same(true, $s2->get('testaddon')['enabled'], 'filter-injected group persists'); + wpp_same(5, $s2->get('testaddon')['n'], 'filter-injected default retained'); + + // The update event fires with the group id. + $seen = []; + add_action('wpp.settings.updated', static function ($group) use (&$seen): void { + $seen[] = $group; + }); + $s->update('html', ['enabled' => true]); + wpp_ok(in_array('html', $seen, true), 'wpp.settings.updated fires with group'); +}; diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 index 0000000..0395755 --- /dev/null +++ b/webpack.config.js @@ -0,0 +1,15 @@ +const path = require( 'path' ); +const defaultConfig = require( '@wordpress/scripts/config/webpack.config' ); + +module.exports = { + ...defaultConfig, + entry: { + 'admin/app': path.resolve( __dirname, 'assets/admin/app/index.jsx' ), + 'blocks/cache': path.resolve( __dirname, 'assets/blocks/cache/index.js' ), + }, + output: { + ...defaultConfig.output, + path: path.resolve( __dirname, 'build' ), + filename: '[name]/index.js', + }, +}; diff --git a/wp-performance.php b/wp-performance.php index 70caa99..ab73f94 100644 --- a/wp-performance.php +++ b/wp-performance.php @@ -1,42 +1,48 @@ -run(); \ No newline at end of file +require __DIR__ . '/vendor/autoload.php'; +require __DIR__ . '/inc/fragment-helpers.php'; + +define('WPP_VERSION', '2.0.0'); +define('WPP_FILE', __FILE__); +define('WPP_DIR', plugin_dir_path(__FILE__)); +define('WPP_URL', plugin_dir_url(__FILE__)); +define('WPP_SLUG', 'wp-performance'); +define('WPP_CACHE_DIR', trailingslashit(WP_CONTENT_DIR) . 'cache/wpp-cache/'); +define('WPP_CACHE_URL', trailingslashit(WP_CONTENT_URL) . 'cache/wpp-cache/'); + +register_activation_hook(__FILE__, [Plugin::class, 'onActivation']); +register_deactivation_hook(__FILE__, [Plugin::class, 'onDeactivation']); + +add_action('plugins_loaded', static function (): void { + Plugin::boot(); + + if (defined('WP_CLI') && WP_CLI) { + $cli = new WPP\Cli\CliCommands(); + WP_CLI::add_command('wpp flush', [$cli, 'flush']); + WP_CLI::add_command('wpp flush-blocks', [$cli, 'flushBlocks']); + WP_CLI::add_command('wpp enable', [$cli, 'enable']); + WP_CLI::add_command('wpp disable', [$cli, 'disable']); + WP_CLI::add_command('wpp cleanup', [$cli, 'cleanup']); + } +}); From 78a1ed2b7f25f745cbd97c0f5e7f10dc1efd9b5a Mon Sep 17 00:00:00 2001 From: alaca Date: Tue, 18 Aug 2026 14:50:16 +0200 Subject: [PATCH 2/4] Align the Requires at least header with readme.txt WordPress enforces the plugin header at activation and WordPress.org reads readme.txt, so a mismatch lets a site activate a version the readme says is unsupported. --- wp-performance.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wp-performance.php b/wp-performance.php index ab73f94..b0ebe70 100644 --- a/wp-performance.php +++ b/wp-performance.php @@ -3,7 +3,7 @@ * Plugin Name: WP Performance * Description: WP Performance Optimizer - cache & performance plugin. * Version: 2.0.0 - * Requires at least: 6.0 + * Requires at least: 6.9 * Requires PHP: 8.1 * Author: Ante Laca * License: GPL-2.0-or-later From 6042317066daa3747709f45c7621626b375ae442 Mon Sep 17 00:00:00 2001 From: alaca Date: Tue, 18 Aug 2026 15:12:08 +0200 Subject: [PATCH 3/4] Make cache directory files unreadable over HTTP The cache directory sits in the web root and the .htaccess rules there are ignored by nginx, so the runtime config, the troubleshooting log and cached fragments were all fetchable directly. The config lists the URLs an admin deliberately excluded, the log records every cached request path, and a fragment can hold markup rendered for a logged in visitor. Those three now carry a .php extension and a leading exit guard, so a direct request returns nothing whatever the server config says. Files written by an earlier release are removed on the first admin request after an update, but only once the refreshed drop-in is confirmed installed, since deleting the config a stale drop-in still reads would stop page caching outright. Also fixes the fragment expiry sweep, which read the guard line as the timestamp and so treated every entry as permanent. --- advanced-cache.php | 20 +++-- src/Cache/FragmentStore.php | 16 ++-- src/Cache/RuntimeSettings.php | 21 ++++- src/Core/CoreModule.php | 12 +++ src/Foundation/Plugin.php | 26 ++++++- src/Support/Logger.php | 26 +++++-- tests/suites/cache-paths.php | 4 +- tests/suites/cache-serving.php | 8 +- tests/suites/dropin-fixes.php | 28 +++---- tests/suites/fragment-cache.php | 2 +- tests/suites/frontend-fixes.php | 6 +- tests/suites/webroot-exposure.php | 123 ++++++++++++++++++++++++++++++ 12 files changed, 250 insertions(+), 42 deletions(-) create mode 100644 tests/suites/webroot-exposure.php diff --git a/advanced-cache.php b/advanced-cache.php index 02b036d..367b9b0 100644 --- a/advanced-cache.php +++ b/advanced-cache.php @@ -65,15 +65,21 @@ function wpp_dropin_conf(string $cacheDir, string $host, string $requestUri): st $segments = array_slice(array_values(array_filter(explode('/', $path), 'strlen')), 0, 3); for ($i = count($segments); $i > 0; $i--) { - $file = $cacheDir . $host . wpp_dropin_path_key(array_slice($segments, 0, $i)) . '.json'; + $base = $cacheDir . $host . wpp_dropin_path_key(array_slice($segments, 0, $i)); + foreach ([$base . '.json.php', $base . '.json'] as $file) { + if (is_file($file)) { + return $file; + } + } + } + + foreach ([$cacheDir . $host . '.json.php', $cacheDir . $host . '.json'] as $file) { if (is_file($file)) { return $file; } } - $file = $cacheDir . $host . '.json'; - - return is_file($file) ? $file : ''; + return ''; } } @@ -207,7 +213,11 @@ function wpp_dropin_file(string $cacheDir, string $host, string $requestUri, boo return; } -$wpp_settings = json_decode((string) file_get_contents($wpp_conf), true); +$wpp_raw = (string) file_get_contents($wpp_conf); +if (strncmp($wpp_raw, 'isFile() && strtolower($file->getExtension()) === 'html') { + if ($file->isFile() && str_ends_with($file->getFilename(), '.html.php')) { $out['count']++; $out['bytes'] += (int) $file->getSize(); } @@ -108,7 +108,7 @@ private function dir(): string private function fileFor(string $key): string { - return $this->dir() . substr($key, 0, 2) . '/' . $key . '.html'; + return $this->dir() . substr($key, 0, 2) . '/' . $key . '.html.php'; } private function diskGet(string $key): ?string @@ -123,6 +123,9 @@ private function diskGet(string $key): ?string return null; } + $raw = RuntimeSettings::payload($raw); + $raw = ltrim($raw, "\n"); + $nl = strpos($raw, "\n"); if ($nl === false) { return null; @@ -156,10 +159,11 @@ private function diskSet(string $key, string $html, int $ttl): void } $expiry = $ttl > 0 ? time() + $ttl : 0; + $body = RuntimeSettings::GUARD . $expiry . "\n" . $html; // Readers take no lock, so the entry has to appear whole or not at all. $tmp = $file . '.' . getmypid() . uniqid('', false) . '.tmp'; - if (file_put_contents($tmp, $expiry . "\n" . $html) === false || ! @rename($tmp, $file)) { + if (file_put_contents($tmp, $body) === false || ! @rename($tmp, $file)) { @unlink($tmp); } } @@ -167,7 +171,7 @@ private function diskSet(string $key, string $html, int $ttl): void /** Sweeps expired entries before reporting a shard as full. */ private function shardFull(string $dir): bool { - $files = glob(rtrim($dir, '/') . '/*.html'); + $files = glob(rtrim($dir, '/') . '/*.html.php'); if (! is_array($files) || count($files) < self::MAX_PER_SHARD) { return false; } @@ -180,7 +184,9 @@ private function shardFull(string $dir): bool $live++; continue; } - $expiry = (int) fgets($handle); + // First line is the exit guard, so the expiry is on the second. + $first = (string) fgets($handle); + $expiry = str_starts_with($first, 'version(); } + /** Contents with the guard prefix removed. */ + public static function payload(string $contents): string + { + return str_starts_with($contents, '\n"; + public function file(): string { $home = (string) home_url(); $host = CacheStore::sanitizeHost((string) parse_url($home, PHP_URL_HOST)); - return WPP_CACHE_DIR . $host . self::pathKey((string) parse_url($home, PHP_URL_PATH)) . '.json'; + return WPP_CACHE_DIR . $host . self::pathKey((string) parse_url($home, PHP_URL_PATH)) . '.json.php'; } /** @@ -100,7 +113,7 @@ public function write(): void 'search_bots' => (bool) ($cache['exclude_search_bots'] ?? false), ]; - file_put_contents($this->file(), (string) wp_json_encode($data), LOCK_EX); + file_put_contents($this->file(), self::GUARD . (string) wp_json_encode($data), LOCK_EX); } /** @@ -122,7 +135,7 @@ private function guard(): void file_put_contents($htaccess, implode("\n", [ 'Options -Indexes', - '', + '', '', 'Require all denied', '', diff --git a/src/Core/CoreModule.php b/src/Core/CoreModule.php index 5462cc7..7419871 100644 --- a/src/Core/CoreModule.php +++ b/src/Core/CoreModule.php @@ -187,11 +187,23 @@ public function boot(Container $container): void $dropin = new DropinInstaller(); $runtime = $container->get(RuntimeSettings::class); + // Both files are version stamped, so a rewrite here means this is the + // first admin request after an update. + $updated = false; if (! defined('WP_CACHE') || ! $dropin->dropinInstalled()) { $dropin->install(); $runtime->write(); + $updated = true; } elseif (! $runtime->written()) { $runtime->write(); + $updated = true; + } + + // Deleting the pre-guard config would stop page caching outright if + // the drop-in still reading it could not be refreshed, so this waits + // for confirmation that the installed one looks for the new name. + if ($updated && $dropin->dropinInstalled()) { + Plugin::purgeUnguarded(); } } else { (new PageCache($settings, $store))->register(); diff --git a/src/Foundation/Plugin.php b/src/Foundation/Plugin.php index 4eeb7e4..fbbed36 100644 --- a/src/Foundation/Plugin.php +++ b/src/Foundation/Plugin.php @@ -25,7 +25,7 @@ final class Plugin { private const HTACCESS = <<<'HTACCESS' Options -Indexes - + Require all denied @@ -140,6 +140,30 @@ public static function protectCacheDir(): void } } + /** + * Earlier releases wrote the runtime config, the log and cached fragments + * without a .php extension or an exit guard, so on nginx they were readable + * over HTTP. A cache clear preserves json/log, so nothing else removes them. + */ + public static function purgeUnguarded(): void + { + if (! is_dir(WPP_CACHE_DIR)) { + return; + } + + $stale = array_merge( + glob(WPP_CACHE_DIR . '*wpp.log') ?: [], + glob(WPP_CACHE_DIR . '*.json') ?: [], + glob(WPP_CACHE_DIR . 'fragments/*/*.html') ?: [] + ); + + foreach ($stale as $file) { + if (is_file($file)) { + @unlink($file); + } + } + } + /** * Activation runs after plugins_loaded, so boot() never fired and the add-on * modules have not registered their settings groups. Migrating without them diff --git a/src/Support/Logger.php b/src/Support/Logger.php index 62d21a6..354e433 100644 --- a/src/Support/Logger.php +++ b/src/Support/Logger.php @@ -5,6 +5,7 @@ namespace WPP\Support; use WPP\Foundation\Plugin; +use WPP\Cache\RuntimeSettings; use WPP\Settings\SettingsService; /** @@ -35,8 +36,8 @@ public function enabled(): bool public function file(): string { $name = (function_exists('is_multisite') && is_multisite()) - ? get_current_blog_id() . '_wpp.log' - : 'wpp.log'; + ? get_current_blog_id() . '_wpp.log.php' + : 'wpp.log.php'; return WPP_CACHE_DIR . $name; } @@ -53,6 +54,9 @@ public function log(string $message): void } $line = sprintf('[%s] %s%s', current_time('mysql'), $message, PHP_EOL); + if (! is_file($this->file())) { + $line = RuntimeSettings::GUARD . $line; + } file_put_contents($this->file(), $line, FILE_APPEND | LOCK_EX); $this->trim(); @@ -61,7 +65,10 @@ public function log(string $message): void public function read(): string { $file = $this->file(); - return is_file($file) ? (string) file_get_contents($file) : ''; + + return is_file($file) + ? ltrim(RuntimeSettings::payload((string) file_get_contents($file)), "\n") + : ''; } public function clear(): void @@ -75,16 +82,25 @@ public function clear(): void private function trim(): void { $file = $this->file(); + + // The append above just changed the size and PHP serves a cached stat, + // so the check below is only correct as long as something evicts the + // entry first. Do not leave that to the caller. + clearstatcache(true, $file); + if (! is_file($file) || (int) filesize($file) <= self::MAX_BYTES) { return; } - $contents = (string) file_get_contents($file); + // Trimming from the front would take the guard with it and leave a + // plain-text log the web server would happily serve. + $contents = ltrim(RuntimeSettings::payload((string) file_get_contents($file)), "\n"); $contents = substr($contents, -self::MAX_BYTES); $cut = strpos($contents, PHP_EOL); if ($cut !== false) { $contents = substr($contents, $cut + 1); } - file_put_contents($file, $contents, LOCK_EX); + + file_put_contents($file, RuntimeSettings::GUARD . $contents, LOCK_EX); } } diff --git a/tests/suites/cache-paths.php b/tests/suites/cache-paths.php index 6a305d5..90370b3 100644 --- a/tests/suites/cache-paths.php +++ b/tests/suites/cache-paths.php @@ -106,7 +106,9 @@ $runtime->write(); wpp_ok($runtime->written(), 'runtime file is rewritten'); - $data = json_decode((string) file_get_contents($runtime->file()), true); + $raw = (string) file_get_contents($runtime->file()); + wpp_contains('write(); - $data = json_decode((string) file_get_contents($runtime->file()), true); + $raw = (string) file_get_contents($runtime->file()); + wpp_contains('written(), 'a freshly written runtime file is current'); - $stale = json_decode((string) file_get_contents($runtime->file()), true); + $stale = json_decode(WPP\Cache\RuntimeSettings::payload((string) file_get_contents($runtime->file())), true); $stale['version'] = '1.0.0'; - file_put_contents($runtime->file(), (string) json_encode($stale)); + file_put_contents($runtime->file(), WPP\Cache\RuntimeSettings::GUARD . (string) json_encode($stale)); wpp_ok(! $runtime->written(), 'a runtime file from an older version counts as needing a rewrite'); $runtime->write(); wpp_ok($runtime->written(), 'rewriting brings it up to date'); diff --git a/tests/suites/dropin-fixes.php b/tests/suites/dropin-fixes.php index 83b3af1..b4ad311 100644 --- a/tests/suites/dropin-fixes.php +++ b/tests/suites/dropin-fixes.php @@ -37,14 +37,14 @@ // ---- one runtime config per site, not per host ---- // Sites in a subdirectory network share a host and would otherwise overwrite // each other's cache settings. - file_put_contents($dir . 'example.test.json', '{"site":"main"}'); - file_put_contents($dir . 'example.test~shop.json', '{"site":"shop"}'); - - wpp_same($dir . 'example.test.json', wpp_dropin_conf($dir, 'example.test', '/'), 'the front page uses the main site config'); - wpp_same($dir . 'example.test.json', wpp_dropin_conf($dir, 'example.test', '/about/'), 'a main-site path uses the main site config'); - wpp_same($dir . 'example.test~shop.json', wpp_dropin_conf($dir, 'example.test', '/shop/'), 'a subsite uses its own config'); - wpp_same($dir . 'example.test~shop.json', wpp_dropin_conf($dir, 'example.test', '/shop/cart/?x=1'), 'a path inside a subsite uses the subsite config'); - wpp_same($dir . 'example.test.json', wpp_dropin_conf($dir, 'example.test', '/shopping/'), 'a path that only shares a prefix is not the subsite'); + file_put_contents($dir . 'example.test.json.php', '{"site":"main"}'); + file_put_contents($dir . 'example.test~shop.json.php', '{"site":"shop"}'); + + wpp_same($dir . 'example.test.json.php', wpp_dropin_conf($dir, 'example.test', '/'), 'the front page uses the main site config'); + wpp_same($dir . 'example.test.json.php', wpp_dropin_conf($dir, 'example.test', '/about/'), 'a main-site path uses the main site config'); + wpp_same($dir . 'example.test~shop.json.php', wpp_dropin_conf($dir, 'example.test', '/shop/'), 'a subsite uses its own config'); + wpp_same($dir . 'example.test~shop.json.php', wpp_dropin_conf($dir, 'example.test', '/shop/cart/?x=1'), 'a path inside a subsite uses the subsite config'); + wpp_same($dir . 'example.test.json.php', wpp_dropin_conf($dir, 'example.test', '/shopping/'), 'a path that only shares a prefix is not the subsite'); wpp_same('', wpp_dropin_conf($dir, 'other.test', '/'), 'an unknown host resolves to no config'); wpp_same('', RuntimeSettings::pathKey('/'), 'the main site keeps the host-only filename'); @@ -52,12 +52,12 @@ wpp_ok(RuntimeSettings::pathKey('/shop/') !== RuntimeSettings::pathKey('/blog/'), 'two subsites on one host get different files'); foreach (['/shop/', '/a/b/', '/Shop/'] as $sitePath) { - $file = $dir . 'example.test' . RuntimeSettings::pathKey($sitePath) . '.json'; + $file = $dir . 'example.test' . RuntimeSettings::pathKey($sitePath) . '.json.php'; file_put_contents($file, '{}'); wpp_same($file, wpp_dropin_conf($dir, 'example.test', $sitePath . 'page/'), "the reader finds the file the writer named for {$sitePath}"); @unlink($file); } - wpp_same($dir . 'example.test.json', $runtime->file(), 'a single-site install keeps the host-only config path'); + wpp_same($dir . 'example.test.json.php', $runtime->file(), 'a single-site install keeps the host-only config path'); // ---- mobile bucket must match wp_is_mobile(), which picks what gets written ---- $mobileCases = [ @@ -105,20 +105,20 @@ update_option('permalink_structure', '/%postname%/'); update_option('wpp_cache', ['enabled' => true, 'clear_time' => 10, 'clear_unit' => 60]); $runtime->write(); - $data = json_decode((string) file_get_contents($runtime->file()), true); + $data = json_decode(WPP\Cache\RuntimeSettings::payload((string) file_get_contents($runtime->file())), true); wpp_same(true, $data['trailing_slash'], 'the drop-in learns the site uses trailing slashes'); wpp_same(600, $data['expire'], 'a configured expiry is written through untouched'); update_option('permalink_structure', '/%postname%'); $runtime->write(); - $data = json_decode((string) file_get_contents($runtime->file()), true); + $data = json_decode(WPP\Cache\RuntimeSettings::payload((string) file_get_contents($runtime->file())), true); wpp_same(false, $data['trailing_slash'], 'and when it does not'); // An emptied "Clear cache after" box stores '', and expire 0 means the // drop-in never considers a page stale again. update_option('wpp_cache', ['enabled' => true, 'clear_time' => '', 'clear_unit' => 3600]); $runtime->write(); - $data = json_decode((string) file_get_contents($runtime->file()), true); + $data = json_decode(WPP\Cache\RuntimeSettings::payload((string) file_get_contents($runtime->file())), true); wpp_ok($data['expire'] > 0, 'an emptied expiry field cannot switch expiry off'); // ---- the cache directory is inside the web root ---- @@ -179,5 +179,5 @@ @unlink($fragment); @rmdir($dir . 'fragments/ab'); @rmdir($dir . 'fragments'); - @unlink($dir . 'example.test~shop.json'); + @unlink($dir . 'example.test~shop.json.php'); }; diff --git a/tests/suites/fragment-cache.php b/tests/suites/fragment-cache.php index 10e727a..00fb67e 100644 --- a/tests/suites/fragment-cache.php +++ b/tests/suites/fragment-cache.php @@ -25,7 +25,7 @@ $store->set('id3', 'TEMP', 100); $gen = (int) get_option('wpp_fragment_gen', 0); $key = md5($gen . '|id3'); - $file = WPP_CACHE_DIR . 'fragments/' . substr($key, 0, 2) . '/' . $key . '.html'; + $file = WPP_CACHE_DIR . 'fragments/' . substr($key, 0, 2) . '/' . $key . '.html.php'; wpp_ok(is_file($file), 'disk: fragment file written'); file_put_contents($file, (time() - 10) . "\nTEMP"); wpp_same(null, $store->get('id3'), 'disk: expired fragment is a miss'); diff --git a/tests/suites/frontend-fixes.php b/tests/suites/frontend-fixes.php index f108e4c..14fb5b6 100644 --- a/tests/suites/frontend-fixes.php +++ b/tests/suites/frontend-fixes.php @@ -254,7 +254,7 @@ function wp_enqueue_style($handle, ...$rest): void $store->set('atomic', 'A', 60); $gen = (int) get_option('wpp_fragment_gen', 0); $key = md5($gen . '|atomic'); - $file = WPP_CACHE_DIR . 'fragments/' . substr($key, 0, 2) . '/' . $key . '.html'; + $file = WPP_CACHE_DIR . 'fragments/' . substr($key, 0, 2) . '/' . $key . '.html.php'; clearstatcache(); $first = fileinode($file); $store->set('atomic', 'BBBBBBBB', 60); @@ -268,13 +268,13 @@ function wp_enqueue_style($handle, ...$rest): void $fullDir = WPP_CACHE_DIR . 'fragments/' . substr($fullKey, 0, 2); wp_mkdir_p($fullDir); for ($i = 0; $i < $max; $i++) { - file_put_contents($fullDir . '/filler' . $i . '.html', "0\nX"); + file_put_contents($fullDir . '/filler' . $i . '.html.php', "0\nX"); } $store->set('shard-probe', 'OVERFLOW', 60); wpp_same(null, $store->get('shard-probe'), 'a full shard refuses new fragments'); - foreach ((array) glob($fullDir . '/filler*.html') as $filler) { + foreach ((array) glob($fullDir . '/filler*.html.php') as $filler) { file_put_contents((string) $filler, (time() - 10) . "\nX"); } $store->set('shard-probe', 'ROOM', 60); diff --git a/tests/suites/webroot-exposure.php b/tests/suites/webroot-exposure.php new file mode 100644 index 0000000..1802562 --- /dev/null +++ b/tests/suites/webroot-exposure.php @@ -0,0 +1,123 @@ +.json + * and wpp.log both returned 200 with their real contents on nginx. + */ +return static function (): void { + $settings = new SettingsService(); + $guarded = static fn (string $file): bool => is_file($file) + && str_starts_with((string) file_get_contents($file), 'update('cache', ['enabled' => true, 'exclude_urls' => ['/secret-admin-path/']]); + $runtime = new RuntimeSettings($settings); + $runtime->write(); + + $file = $runtime->file(); + wpp_contains('.php', $file, 'runtime config is named so a web server will not serve it raw'); + wpp_ok($guarded($file), 'runtime config starts with a php exit guard'); + wpp_ok($runtime->written(), 'a guarded runtime config still reads back as current'); + + $data = json_decode(RuntimeSettings::payload((string) file_get_contents($file)), true); + wpp_ok(is_array($data), 'the payload behind the guard is still valid json'); + wpp_same(['/secret-admin-path/'], $data['exclude'], 'exclusion list survives the guard'); + + // Removing the pre-guard config is the purge's job, not the writer's: a + // drop-in that could not be refreshed still needs something to read. + $legacy = substr($file, 0, -4); + file_put_contents($legacy, '{"enabled":true}'); + $runtime->write(); + wpp_ok(is_file($legacy), 'writing the config does not orphan a drop-in that still reads the old name'); + + // ---- troubleshooting log ---- + $settings->update('tools', ['enable_log' => true]); + $logger = new Logger($settings); + $logger->clear(); + $logger->log('Cache saved: /a-visitor-path/'); + + wpp_contains('.php', $logger->file(), 'log is named so a web server will not serve it raw'); + wpp_ok($guarded($logger->file()), 'log starts with a php exit guard'); + wpp_contains('Cache saved: /a-visitor-path/', $logger->read(), 'log reads back without the guard'); + wpp_not_contains('read(), 'the guard is not shown in the admin log viewer'); + + // Appending must not add a second guard. + $logger->log('Second line'); + wpp_same(1, substr_count((string) file_get_contents($logger->file()), 'read(), 'appended line is readable'); + + // Rotation trims from the front, which would take the guard with it. + $big = str_repeat("[2026-01-01 00:00:00] filler line to force rotation\n", 24000); + wpp_ok(strlen($big) > 1048576, 'the appended filler pushes the log over the cap'); + + file_put_contents($logger->file(), $big, FILE_APPEND); + $logger->log('After rotation'); + clearstatcache(true, $logger->file()); + wpp_ok(filesize($logger->file()) <= 1048576 + 512, 'rotation brings the log back under the cap'); + wpp_ok($guarded($logger->file()), 'rotation re-applies the guard instead of stripping it'); + wpp_contains('After rotation', $logger->read(), 'rotation keeps the newest entries'); + + // ---- cached fragments, which can hold logged-in markup ---- + $store = new FragmentStore(); + $store->set('exposure', '

      members only

      ', 60); + + $found = glob(WPP_CACHE_DIR . 'fragments/*/*') ?: []; + wpp_ok($found !== [], 'a fragment was written to disk'); + foreach ($found as $fragment) { + wpp_contains('.php', $fragment, 'fragment is named so a web server will not serve it raw'); + wpp_ok($guarded($fragment), 'fragment starts with a php exit guard'); + } + wpp_same('

      members only

      ', $store->get('exposure'), 'fragment still round trips behind the guard'); + + // Guarding must not break expiry or the stats the dashboard reports. + $store->set('expiring', '

      x

      ', 60); + wpp_ok($store->stats()['count'] > 0, 'guarded fragments are still counted'); + $store->flush(); + wpp_same(null, $store->get('exposure'), 'flush still invalidates'); + + // Expiry lives on the second line now, and a reader that took the guard for + // the expiry would read 0 (never expires) and stop sweeping stale entries. + // The sweep only runs for the shard being written to, so the stale entries + // have to share a shard with the fragment that triggers it. + $store->set('sweeper', '

      fresh

      ', 60); + $probe = glob(WPP_CACHE_DIR . 'fragments/*/*.html.php') ?: []; + $shard = dirname($probe[0]) . '/'; + unlink($probe[0]); + + for ($i = 0; $i < 205; $i++) { + file_put_contents($shard . str_pad((string) $i, 32, 'a') . '.html.php', RuntimeSettings::GUARD . (time() - 60) . "\nstale"); + } + $store->set('sweeper', '

      fresh

      ', 60); + wpp_ok(count(glob($shard . '*.html.php') ?: []) < 205, 'expired fragments are still swept behind the guard'); + wpp_same('

      fresh

      ', $store->get('sweeper'), 'the fragment that triggered the sweep was stored'); + + // ---- files an older release left unguarded ---- + $legacyLog = WPP_CACHE_DIR . 'wpp.log'; + $legacyCfg = WPP_CACHE_DIR . 'oldhost.json'; + $legacyFrg = WPP_CACHE_DIR . 'fragments/cd/' . str_repeat('c', 32) . '.html'; + wp_mkdir_p(dirname($legacyFrg)); + file_put_contents($legacyLog, "[2026-01-01 00:00:00] Cache saved: /a-visitor-path/\n"); + file_put_contents($legacyCfg, '{"exclude":["/secret-admin-path/"]}'); + file_put_contents($legacyFrg, "0\n

      members only

      "); + + WPP\Foundation\Plugin::purgeUnguarded(); + + wpp_ok(! is_file($legacyLog), 'an unguarded log from an older release is removed'); + wpp_ok(! is_file($legacyCfg), 'an unguarded runtime config from an older release is removed'); + wpp_ok(! is_file($legacyFrg), 'an unguarded fragment from an older release is removed'); + wpp_ok(is_file($logger->file()), 'the purge leaves the current guarded log alone'); + + $settings->update('tools', ['enable_log' => false]); +}; From 09a9bda895ca41fcb34040d5f25676208345edee Mon Sep 17 00:00:00 2001 From: alaca Date: Tue, 18 Aug 2026 18:36:35 +0200 Subject: [PATCH 4/4] Fix upgrade path, cache isolation and asset pipeline defects The worst one made the whole release inert for existing users: the 1.x loader in wp-content/advanced-cache.php was classified as another plugin's drop-in, so install() refused to touch it and 2.0's cache engine was never installed. The abandoned 1.x loader kept running against a settings file 2.0 does not write. Data leaks, each reproduced before fixing: - A returning commenter's render, which core prefills with their name, email and URL, was written to the shared anonymous page cache. The drop-in already refused to serve those visitors; only the writer had no matching check. - The block cache had no per-user vary, so one logged-in visitor's markup, nonce included, was served to another with the same role. - Disk fragments were not namespaced per blog, so multisite sites served each other's cached block HTML. Multisite lifecycle: network deactivation left the drop-in, WP_CACHE, the cache and the server rules in place; deactivating one blog kept its pages being served; one blog's cache clear purged the whole network. Asset pipeline: a bundle built from unreadable sources was written once and then served for good, after the original tags had already been removed; relative url() and @import broke when the stylesheet URL had no host; @import was emitted after other rules, so browsers discarded it; next-gen sources advertised width descriptors with no sizes; an img already inside a picture was wrapped again. Settings: browser_expire could not be set to 0, so "respect existing headers" was unreachable; restore points and imports merged instead of replacing, so no rule could ever be removed; v1 critical CSS was deleted rather than migrated. Also: a failed font download no longer caches a stylesheet still pointing at gstatic, a non-200 body can no longer be baked into a bundle, and the health check now says another plugin owns the drop-in instead of calling it missing. Fixes are covered by seven new suites; the whole suite is 1030 assertions. Each fix was mutation checked by reverting it and confirming the test fails. --- .github/workflows/deploy.yml | 1 - assets/blocks/cache/index.js | 6 - inc/fragment-helpers.php | 2 +- readme.txt | 2 +- src/Addons/Cloudflare/CloudflareApi.php | 27 +- src/Cache/CacheStore.php | 35 ++- src/Cache/DropinInstaller.php | 25 +- src/Cache/FragmentCache.php | 166 +++++++++-- src/Cache/FragmentStore.php | 49 +++- src/Cache/ObjectCacheInstaller.php | 53 +++- src/Cli/CliCommands.php | 11 +- src/Foundation/Plugin.php | 91 +++++- src/Frontend/PageCache.php | 20 ++ src/Media/ImageService.php | 8 + src/Optimize/AssetParser.php | 248 +++++++++++++--- src/Optimize/CssMinifier.php | 112 ++++++- src/Optimize/FontHost.php | 44 ++- src/Optimize/Minifier.php | 12 +- src/Rest/Admin/CacheController.php | 11 +- src/Rest/Admin/OverviewController.php | 4 + src/Rest/Admin/ToolsController.php | 4 +- src/Server/ServerRules.php | 59 +++- src/Settings/Migration.php | 7 +- src/Settings/SettingsHistory.php | 4 +- src/Settings/SettingsService.php | 71 ++++- tests/suites/dropins.php | 4 +- tests/suites/fix-addons.php | 168 +++++++++++ tests/suites/fix-fragment.php | 369 ++++++++++++++++++++++++ tests/suites/fix-lifecycle.php | 326 +++++++++++++++++++++ tests/suites/fix-pagecache.php | 136 +++++++++ tests/suites/fix-parser.php | 282 ++++++++++++++++++ tests/suites/fix-settings.php | 193 +++++++++++++ tests/suites/fix-wiring.php | 101 +++++++ tests/suites/fragment-cache.php | 2 +- tests/suites/minifier-fixes.php | 13 +- tests/suites/parser-fixes.php | 8 +- 36 files changed, 2522 insertions(+), 152 deletions(-) create mode 100644 tests/suites/fix-addons.php create mode 100644 tests/suites/fix-fragment.php create mode 100644 tests/suites/fix-lifecycle.php create mode 100644 tests/suites/fix-pagecache.php create mode 100644 tests/suites/fix-parser.php create mode 100644 tests/suites/fix-settings.php create mode 100644 tests/suites/fix-wiring.php diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index d774738..5abdabf 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -70,4 +70,3 @@ jobs: SVN_PASSWORD: ${{ secrets.SVN_PASSWORD }} SLUG: wp-performance ASSETS_DIR: .wordpress-org - BUILD_DIR: . diff --git a/assets/blocks/cache/index.js b/assets/blocks/cache/index.js index bce0d71..1418568 100644 --- a/assets/blocks/cache/index.js +++ b/assets/blocks/cache/index.js @@ -14,7 +14,6 @@ registerBlockType( 'wpp/cache', { attributes: { ttl: { type: 'number', default: 0 }, varyUrl: { type: 'boolean', default: true }, - varyLoggedin: { type: 'boolean', default: false }, varyRole: { type: 'boolean', default: false }, varyDevice: { type: 'boolean', default: false }, }, @@ -40,11 +39,6 @@ registerBlockType( 'wpp/cache', { checked={ attributes.varyUrl } onChange={ ( v ) => setAttributes( { varyUrl: v } ) } /> - setAttributes( { varyLoggedin: v } ) } - /> $opts ttl, vary_url, vary_role, vary_device, vary_loggedin + * @param array $opts ttl, vary_url, vary_role, vary_device */ function wpp_cache_start(string $key, array $opts = []): bool { diff --git a/readme.txt b/readme.txt index 1cc7d8d..53ea2f1 100644 --- a/readme.txt +++ b/readme.txt @@ -3,7 +3,7 @@ Contributors: alaca Donate link: https://profiles.wordpress.org/alaca Tags: cache, performance, page speed, optimization, core web vitals Requires at least: 6.9 -Tested up to: 7.1 +Tested up to: 7.0 Requires PHP: 8.1 Stable tag: 2.0.0 License: GPLv2 or later diff --git a/src/Addons/Cloudflare/CloudflareApi.php b/src/Addons/Cloudflare/CloudflareApi.php index 8ab4ce1..3401d19 100644 --- a/src/Addons/Cloudflare/CloudflareApi.php +++ b/src/Addons/Cloudflare/CloudflareApi.php @@ -11,6 +11,10 @@ final class CloudflareApi { private const BASE = 'https://api.cloudflare.com/client/v4'; + /** Seconds the whole zone-settings push may spend, and the cap per call. */ + private const PUSH_BUDGET = 10; + private const PUSH_TIMEOUT = 5; + public function __construct( private string $email, private string $key, @@ -36,6 +40,10 @@ public function purgeUrls(array $urls): array /** * Push the plugin's CF settings to the zone. * + * This runs inside the settings-save request, so the whole push is held to + * one budget: a zone that stops answering costs the admin a report, not a + * request that PHP kills after the options have already been written. + * * @param array $cfg * @return array setting id => error message, empty when every push succeeded */ @@ -50,9 +58,18 @@ public function applyAll(array $cfg, bool $withDevMode = true): array $values['rocket_loader'] = ! empty($cfg['rocket_loader']) ? 'on' : 'off'; $values['brotli'] = ! empty($cfg['brotli']) ? 'on' : 'off'; + $budget = (float) apply_filters('wpp.cloudflare.push_budget', self::PUSH_BUDGET); + $deadline = microtime(true) + $budget; + $failed = []; foreach ($values as $id => $value) { - $result = $this->setting($id, $value); + $timeout = (int) min(self::PUSH_TIMEOUT, floor($deadline - microtime(true))); + if ($timeout < 1) { + $failed[$id] = __('Cloudflare did not answer in time, so this setting was not applied.', 'wpp'); + continue; + } + + $result = $this->setting($id, $value, $timeout); if (empty($result['success'])) { $messages = self::errorMessages((array) ($result['errors'] ?? [])); $failed[$id] = $messages[0] ?? __('Unknown Cloudflare error.', 'wpp'); @@ -85,16 +102,16 @@ public static function errorMessages(array $errors): array return array_values(array_filter($out)); } - private function setting(string $id, mixed $value): array + private function setting(string $id, mixed $value, int $timeout): array { - return $this->request('PATCH', "/zones/{$this->zone}/settings/{$id}", ['value' => $value]); + return $this->request('PATCH', "/zones/{$this->zone}/settings/{$id}", ['value' => $value], $timeout); } - private function request(string $method, string $path, ?array $body = null): array + private function request(string $method, string $path, ?array $body = null, int $timeout = 15): array { $args = [ 'method' => $method, - 'timeout' => 15, + 'timeout' => $timeout, 'headers' => [ 'X-Auth-Email' => $this->email, 'X-Auth-Key' => $this->key, diff --git a/src/Cache/CacheStore.php b/src/Cache/CacheStore.php index 0f5ffb1..d8218e7 100644 --- a/src/Cache/CacheStore.php +++ b/src/Cache/CacheStore.php @@ -137,8 +137,15 @@ private function writeAtomic(string $file, string $contents): bool return true; } - /** Delete cached pages. Keeps json/log (drop-in config + log) and, optionally, css/js. */ - public function clear(bool $keepAssets = false): void + /** + * Delete cached pages. Keeps json/log (drop-in config + log) and, optionally, css/js. + * + * On a network every blog writes into one cache directory, so a purge + * started on one site is limited to that site's pages: the generated assets + * at the root are shared, and the other blogs' pages are not this blog's to + * throw away. $network is the network-wide flush a super admin asks for. + */ + public function clear(bool $keepAssets = false, bool $network = false): void { if (! is_dir(WPP_CACHE_DIR)) { return; @@ -153,11 +160,33 @@ public function clear(bool $keepAssets = false): void } // Block-cache fragments belong to the after_clear listener, which honours // block_cache_flush_on_clear; deleting them here ignores that setting. - $this->deleteContents(WPP_CACHE_DIR, $keep, self::fragmentsDir()); + $this->deleteContents(self::scope($network), $keep, self::fragmentsDir()); do_action('wpp.cache.after_clear'); } + /** Cache subtree a purge may delete from. */ + private static function scope(bool $network): string + { + if ($network || ! is_multisite()) { + return WPP_CACHE_DIR; + } + + $home = (string) home_url(); + $path = '/' . trim((string) parse_url($home, PHP_URL_PATH), '/'); + if ($path !== '/') { + $path .= '/'; + } + + // Without permalinks every page is a flat md5 file in the host + // directory, so the site path is not part of the layout to scope by. + if (! get_option('permalink_structure', '')) { + $path = '/'; + } + + return WPP_CACHE_DIR . self::sanitizeHost((string) parse_url($home, PHP_URL_HOST)) . $path; + } + public function clearAll(): void { if (! is_dir(WPP_CACHE_DIR)) { diff --git a/src/Cache/DropinInstaller.php b/src/Cache/DropinInstaller.php index 58c3cf7..a9368fd 100644 --- a/src/Cache/DropinInstaller.php +++ b/src/Cache/DropinInstaller.php @@ -14,8 +14,18 @@ final class DropinInstaller private const STAMP = 'WPP_ADVANCED_CACHE'; private const PLACEHOLDER = '@wpp-version@'; - /** Copies installed before the version stamp existed are still ours. */ - private const LEGACY = 'WP Performance advanced-cache.php drop-in'; + /** + * Copies installed before the version stamp existed are still ours, and so + * is the 1.x loader an updating site still has in wp-content: mistaking it + * for a third-party drop-in blocks the install forever and leaves 1.x + * serving pages that 2.0 writes. + */ + private const LEGACY = [ + 'WP Performance advanced-cache.php drop-in', + 'WP Performance Optimizer - Cache loader', + '_wpp_get_cache_file', + '_wpp_get_site_settings', + ]; public function install(): bool { @@ -86,8 +96,17 @@ private function ours(): bool } $contents = (string) @file_get_contents($dest); + if (str_contains($contents, self::STAMP)) { + return true; + } + + foreach (self::LEGACY as $marker) { + if (str_contains($contents, $marker)) { + return true; + } + } - return str_contains($contents, self::STAMP) || str_contains($contents, self::LEGACY); + return false; } private function installedVersion(): ?string diff --git a/src/Cache/FragmentCache.php b/src/Cache/FragmentCache.php index 4db7ef8..a4194b1 100644 --- a/src/Cache/FragmentCache.php +++ b/src/Cache/FragmentCache.php @@ -15,7 +15,7 @@ final class FragmentCache /** @var list open buffer frames (supports nesting) */ private array $stack = []; - /** @var array, styles:list}> queue snapshots taken on a block miss */ + /** @var array> asset snapshots taken on a block miss */ private array $pending = []; public function __construct( @@ -76,7 +76,7 @@ public function renderBlock($content, $block): string $before = $this->pending[$identity] ?? null; unset($this->pending[$identity]); - $assets = $before === null ? ['scripts' => [], 'styles' => []] : $this->assetsAdded($before); + $assets = $before === null ? [] : $this->assetsAdded($before); $this->store->set( $identity, @@ -164,21 +164,19 @@ public function wrap(string $key, array $opts, callable $callback): string public function shortcode(mixed $atts, ?string $content = null): string { $atts = shortcode_atts([ - 'key' => '', - 'ttl' => 0, - 'vary_url' => '1', - 'vary_role' => '0', - 'vary_device' => '0', - 'vary_loggedin' => '0', + 'key' => '', + 'ttl' => 0, + 'vary_url' => '1', + 'vary_role' => '0', + 'vary_device' => '0', ], is_array($atts) ? $atts : [], 'wpp_cache'); $content = (string) $content; $opts = [ - 'ttl' => (int) $atts['ttl'], - 'vary_url' => $this->boolAtt($atts['vary_url']), - 'vary_role' => $this->boolAtt($atts['vary_role']), - 'vary_device' => $this->boolAtt($atts['vary_device']), - 'vary_loggedin' => $this->boolAtt($atts['vary_loggedin']), + 'ttl' => (int) $atts['ttl'], + 'vary_url' => $this->boolAtt($atts['vary_url']), + 'vary_role' => $this->boolAtt($atts['vary_role']), + 'vary_device' => $this->boolAtt($atts['vary_device']), ]; $key = $atts['key'] !== '' ? (string) $atts['key'] : 'sc_' . md5($content); @@ -209,8 +207,12 @@ public function identity(string $key, array $opts): string // Not opt-in: a logged-in render carries nonces and account-specific // markup, and a shared entry leaks it in whichever direction fills first. + // A role bucket is not enough - two subscribers are two people. $loggedIn = is_user_logged_in(); $parts[] = 'l=' . ($loggedIn ? '1' : '0'); + if ($loggedIn) { + $parts[] = 'uid=' . get_current_user_id(); + } if ($loggedIn || ! empty($opts['vary_role'])) { $parts[] = 'r=' . $this->currentRole(); @@ -266,11 +268,10 @@ private function blockOpts(array $block): array { $attrs = $block['attrs'] ?? []; return [ - 'ttl' => (int) ($attrs['ttl'] ?? 0), - 'vary_url' => $attrs['varyUrl'] ?? true, - 'vary_loggedin' => ! empty($attrs['varyLoggedin']), - 'vary_role' => ! empty($attrs['varyRole']), - 'vary_device' => ! empty($attrs['varyDevice']), + 'ttl' => (int) ($attrs['ttl'] ?? 0), + 'vary_url' => $attrs['varyUrl'] ?? true, + 'vary_role' => ! empty($attrs['varyRole']), + 'vary_device' => ! empty($attrs['varyDevice']), ]; } @@ -310,18 +311,76 @@ private function boolAtt(mixed $value): bool return filter_var($value, FILTER_VALIDATE_BOOLEAN); } - /** @return array{scripts:list, styles:list} */ + /** @return array */ private function assetQueue(): array { return [ 'scripts' => isset($GLOBALS['wp_scripts']->queue) ? array_values((array) $GLOBALS['wp_scripts']->queue) : [], 'styles' => isset($GLOBALS['wp_styles']->queue) ? array_values((array) $GLOBALS['wp_styles']->queue) : [], + 'inline' => $this->inlineStyles(), + 'rules' => $this->supportRules(), ]; } /** - * @param array{scripts:list, styles:list} $before - * @return array{scripts:list, styles:list} + * Inline CSS attached to registered handles, which the queue diff cannot see. + * + * @return array> + */ + private function inlineStyles(): array + { + $styles = $GLOBALS['wp_styles'] ?? null; + if (! is_object($styles) || ! isset($styles->registered) || ! is_array($styles->registered)) { + return []; + } + + $out = []; + foreach ($styles->registered as $handle => $item) { + $after = is_object($item) ? ($item->extra['after'] ?? null) : null; + if (is_array($after) && $after !== []) { + $out[(string) $handle] = array_values(array_filter($after, 'is_string')); + } + } + + return $out; + } + + /** + * Layout, elements, duotone and block-style-variation CSS lands in the style + * engine's block-supports store during render_block, not in a handle queue. + * + * @return array}> + */ + private function supportRules(): array + { + if (! class_exists('WP_Style_Engine_CSS_Rules_Store')) { + return []; + } + + $store = \WP_Style_Engine_CSS_Rules_Store::get_store('block-supports'); + if (! is_object($store)) { + return []; + } + + $out = []; + foreach ($store->get_all_rules() as $key => $rule) { + $declarations = $rule->get_declarations(); + if (is_object($declarations)) { + $declarations = $declarations->get_declarations(); + } + $out[(string) $key] = [ + 'selector' => (string) $rule->get_selector(), + 'rules_group' => method_exists($rule, 'get_rules_group') ? (string) $rule->get_rules_group() : '', + 'declarations' => array_map('strval', (array) $declarations), + ]; + } + + return $out; + } + + /** + * @param array $before + * @return array */ private function assetsAdded(array $before): array { @@ -330,9 +389,60 @@ private function assetsAdded(array $before): array return [ 'scripts' => array_values(array_diff($now['scripts'], $before['scripts'])), 'styles' => array_values(array_diff($now['styles'], $before['styles'])), + 'inline' => $this->inlineAdded($before['inline'] ?? [], $now['inline']), + 'rules' => $this->rulesAdded($before['rules'] ?? [], $now['rules']), ]; } + /** + * @param array> $before + * @param array> $now + * @return array> + */ + private function inlineAdded(array $before, array $now): array + { + $out = []; + foreach ($now as $handle => $items) { + $added = array_values(array_diff($items, $before[$handle] ?? [])); + if ($added !== []) { + $out[$handle] = $added; + } + } + + return $out; + } + + /** + * Rules are merged into whatever object already holds the selector, so the + * diff has to run per declaration rather than per selector. + * + * @param array> $before + * @param array> $now + * @return array> + */ + private function rulesAdded(array $before, array $now): array + { + $out = []; + foreach ($now as $key => $rule) { + $was = (array) ($before[$key]['declarations'] ?? []); + $added = []; + foreach ((array) $rule['declarations'] as $property => $value) { + if (($was[$property] ?? null) !== $value) { + $added[$property] = $value; + } + } + if ($added !== []) { + $out[$key] = [ + 'selector' => $rule['selector'], + 'rules_group' => $rule['rules_group'], + 'declarations' => $added, + ]; + } + } + + return $out; + } + /** @param array $assets */ private function enqueueAssets(array $assets): void { @@ -342,12 +452,22 @@ private function enqueueAssets(array $assets): void foreach ((array) ($assets['styles'] ?? []) as $handle) { wp_enqueue_style((string) $handle); } + foreach ((array) ($assets['inline'] ?? []) as $handle => $items) { + foreach ((array) $items as $css) { + wp_add_inline_style((string) $handle, (string) $css); + } + } + + $rules = (array) ($assets['rules'] ?? []); + if ($rules !== [] && function_exists('wp_style_engine_get_stylesheet_from_css_rules')) { + wp_style_engine_get_stylesheet_from_css_rules(array_values($rules), ['context' => 'block-supports']); + } } - /** @param array{scripts:list, styles:list} $assets */ + /** @param array $assets */ private function encode(string $html, array $assets): string { - if (($assets['scripts'] ?? []) === [] && ($assets['styles'] ?? []) === []) { + if (array_filter($assets) === []) { return $html; } diff --git a/src/Cache/FragmentStore.php b/src/Cache/FragmentStore.php index 56064b1..88d1959 100644 --- a/src/Cache/FragmentStore.php +++ b/src/Cache/FragmentStore.php @@ -50,7 +50,18 @@ public function set(string $identity, string $html, int $ttl): void public function flush(): void { update_option(self::GEN_OPTION, $this->generation() + 1, true); - $this->deleteDir($this->dir()); + + $scope = $this->siteScope(); + if ($scope === '') { + $this->deleteDir($this->dir()); + return; + } + + // Sibling blogs keep their own generation counter, so wiping the shared + // tree would leave them serving entries they can no longer invalidate. + foreach (glob($this->dir() . '*/' . $scope . '-*.html.php') ?: [] as $file) { + @unlink($file); + } } /** @return array{count:int, bytes:int} disk fragments only */ @@ -62,14 +73,20 @@ public function stats(): array return $out; } + $scope = $this->siteScope(); $iterator = new \RecursiveIteratorIterator( new \RecursiveDirectoryIterator($dir, \FilesystemIterator::SKIP_DOTS) ); foreach ($iterator as $file) { - if ($file->isFile() && str_ends_with($file->getFilename(), '.html.php')) { - $out['count']++; - $out['bytes'] += (int) $file->getSize(); + $name = $file->getFilename(); + if (! $file->isFile() || ! str_ends_with($name, '.html.php')) { + continue; + } + if ($scope !== '' && ! str_starts_with($name, $scope . '-')) { + continue; } + $out['count']++; + $out['bytes'] += (int) $file->getSize(); } return $out; @@ -80,9 +97,26 @@ private function generation(): int return (int) get_option(self::GEN_OPTION, 0); } + /** + * Namespace for the current blog, empty off a network. + * + * Every blog shares one fragments/ tree and one identity format, so without + * this two sites running the same theme resolve to the same file. + */ + private function siteScope(): string + { + if (! function_exists('is_multisite') || ! is_multisite()) { + return ''; + } + + return 's' . get_current_blog_id(); + } + private function key(string $identity): string { - return md5($this->generation() . '|' . $identity); + $scope = $this->siteScope(); + + return md5($this->generation() . '|' . ($scope !== '' ? $scope . '|' : '') . $identity); } /** Deny direct HTTP access to stored fragments. */ @@ -106,9 +140,12 @@ private function dir(): string return WPP_CACHE_DIR . self::SUBDIR; } + /** The blog prefix keeps flush() and stats() able to tell one blog's files from another's. */ private function fileFor(string $key): string { - return $this->dir() . substr($key, 0, 2) . '/' . $key . '.html.php'; + $scope = $this->siteScope(); + + return $this->dir() . substr($key, 0, 2) . '/' . ($scope !== '' ? $scope . '-' : '') . $key . '.html.php'; } private function diskGet(string $key): ?string diff --git a/src/Cache/ObjectCacheInstaller.php b/src/Cache/ObjectCacheInstaller.php index f1daa24..327b283 100644 --- a/src/Cache/ObjectCacheInstaller.php +++ b/src/Cache/ObjectCacheInstaller.php @@ -11,6 +11,7 @@ final class ObjectCacheInstaller { private const MARKER = 'WPP_Object_Cache'; + private const STAMP = 'WPP_OBJECT_CACHE'; public function available(): bool { @@ -25,28 +26,64 @@ public function install(): bool return false; } - $src = WPP_DIR . 'object-cache.php'; - $dest = WP_CONTENT_DIR . '/object-cache.php'; - return file_exists($src) ? (bool) @copy($src, $dest) : false; + $src = WPP_DIR . 'object-cache.php'; + if (! file_exists($src)) { + return false; + } + + $contents = @file_get_contents($src); + if ($contents === false) { + return false; + } + + return @file_put_contents($this->dest(), $this->stamp($contents), LOCK_EX) !== false; } public function uninstall(): void { if ($this->installed()) { - @unlink(WP_CONTENT_DIR . '/object-cache.php'); + @unlink($this->dest()); } } public function installed(): bool { - $dest = WP_CONTENT_DIR . '/object-cache.php'; - return is_file($dest) && str_contains((string) @file_get_contents($dest), self::MARKER); + return is_file($this->dest()) && str_contains((string) @file_get_contents($this->dest()), self::MARKER); + } + + /** Installed, ours, and matching the running plugin version. */ + public function objectCacheInstalled(): bool + { + return $this->installed() && $this->installedVersion() === $this->version(); } /** True when an object-cache.php from another source is present. */ public function foreignDropin(): bool { - $dest = WP_CONTENT_DIR . '/object-cache.php'; - return is_file($dest) && ! str_contains((string) @file_get_contents($dest), self::MARKER); + return is_file($this->dest()) && ! str_contains((string) @file_get_contents($this->dest()), self::MARKER); + } + + private function dest(): string + { + return WP_CONTENT_DIR . '/object-cache.php'; + } + + private function version(): string + { + return defined('WPP_VERSION') ? (string) WPP_VERSION : '0'; + } + + private function installedVersion(): ?string + { + $contents = is_file($this->dest()) ? (string) @file_get_contents($this->dest()) : ''; + return preg_match("/'" . self::STAMP . "',\s*'([^']*)'/", $contents, $m) ? $m[1] : null; + } + + /** The stamp is what tells a copy left by an earlier release from a current one. */ + private function stamp(string $contents): string + { + $define = "version() . "');\n"; + + return preg_replace('/^<\?php\s*\n/', $define, $contents, 1) ?? $contents; } } diff --git a/src/Cli/CliCommands.php b/src/Cli/CliCommands.php index 2735b19..e95e907 100644 --- a/src/Cli/CliCommands.php +++ b/src/Cli/CliCommands.php @@ -16,12 +16,15 @@ */ final class CliCommands { - /** Clear the page cache. */ + /** Clear the page cache. Pass --network to flush every blog. */ public function flush(array $args, array $assoc): void { - $keep = ! empty((new SettingsService())->get('cache')['keep_assets']); - (new CacheStore())->clear($keep); - WP_CLI::success('WP Performance cache cleared.'); + $keep = ! empty((new SettingsService())->get('cache')['keep_assets']); + $network = ! empty($assoc['network']); + (new CacheStore())->clear($keep, $network); + WP_CLI::success($network + ? 'WP Performance cache cleared for the whole network.' + : 'WP Performance cache cleared.'); } /** Flush the block (fragment) cache. */ diff --git a/src/Foundation/Plugin.php b/src/Foundation/Plugin.php index fbbed36..1330ca9 100644 --- a/src/Foundation/Plugin.php +++ b/src/Foundation/Plugin.php @@ -17,6 +17,7 @@ use WPP\Foundation\Modules\ModuleManager; use WPP\Server\ServerRules; use WPP\Settings\SettingsService; +use WPP\Support\Logger; /** * Plugin singleton. Owns the Container and ModuleManager and runs the boot pipeline. @@ -79,6 +80,13 @@ public static function boot(): void $self->modules->bootAll(); + // The activation hook does not fire on a plugin update, so a copy of + // object-cache.php left by an earlier release would otherwise stay in + // wp-content untouched for good. + add_action('admin_init', static function (): void { + self::syncObjectCache(new SettingsService()); + }); + do_action('wpp.booted', $self); } @@ -91,24 +99,45 @@ public static function onActivation(): void self::bootAddons(); (new Migration($settings))->maybeRun(); - (new DropinInstaller())->install(); + $dropin = new DropinInstaller(); + $dropin->install(); self::syncObjectCache($settings); (new RuntimeSettings($settings))->write(); (new ServerRules())->apply($settings->get('cache')); + // Deleting the pre-guard files would strand a drop-in that still reads + // them, so this waits for confirmation that ours is the one installed. + if ($dropin->dropinInstalled()) { + self::purgeUnguarded(); + } + do_action('wpp.activated'); } - public static function onDeactivation(): void + /** @param bool $networkWide as register_deactivation_hook passes it */ + public static function onDeactivation(bool $networkWide = false): void { + // Whatever happens to the shared files, this blog has to stop being + // served from cache. The stored settings are left alone so that + // reactivating restores them. + self::disableRuntime(new RuntimeSettings(new SettingsService())); + // advanced-cache.php, object-cache.php, wp-config.php, the cache // directory and the root .htaccess are all network-wide. Tearing them // down would stop caching for every other blog still using the plugin. - if (! self::activeOnAnotherBlog()) { + // + // A network deactivation leaves no blog with the plugin active, and + // WordPress writes active_sitewide_plugins only after this hook has + // run, so the sitewide check cannot answer for it. + if ($networkWide || ! self::activeOnAnotherBlog()) { (new DropinInstaller())->uninstall(); (new ObjectCacheInstaller())->uninstall(); - (new CacheStore())->clear(false); + (new CacheStore())->clear(false, true); (new ServerRules())->removeAll(); + } else { + // Only this blog's pages: the assets and the other blogs' pages + // belong to the sites still running the plugin. + (new CacheStore())->clear(true); } wp_clear_scheduled_hook('wpp_preload'); @@ -117,6 +146,15 @@ public static function onDeactivation(): void do_action('wpp.deactivated'); } + /** Flip the file the drop-in reads without touching the stored settings. */ + private static function disableRuntime(RuntimeSettings $runtime): void + { + $file = $runtime->file(); + if (is_file($file)) { + @file_put_contents($file, RuntimeSettings::GUARD . (string) wp_json_encode(['enabled' => false]), LOCK_EX); + } + } + /** * The cache directory sits in the web root. The troubleshooting log and the * drop-in's runtime JSON hold request paths and the cache exclusion list, @@ -152,8 +190,7 @@ public static function purgeUnguarded(): void } $stale = array_merge( - glob(WPP_CACHE_DIR . '*wpp.log') ?: [], - glob(WPP_CACHE_DIR . '*.json') ?: [], + self::unguardedFiles(), glob(WPP_CACHE_DIR . 'fragments/*/*.html') ?: [] ); @@ -164,6 +201,33 @@ public static function purgeUnguarded(): void } } + /** + * Every blog on a network writes its config and its log into one directory, + * so a wildcard would delete files belonging to sites whose own drop-in has + * not been refreshed yet, leaving them reading another site's config or + * nothing at all. A single site owns everything in there. + * + * @return list + */ + private static function unguardedFiles(): array + { + if (! is_multisite()) { + return array_merge( + glob(WPP_CACHE_DIR . '*wpp.log') ?: [], + glob(WPP_CACHE_DIR . '*.json') ?: [] + ); + } + + $settings = new SettingsService(); + $host = CacheStore::sanitizeHost((string) parse_url((string) home_url(), PHP_URL_HOST)); + + return [ + substr((new RuntimeSettings($settings))->file(), 0, -4), + substr((new Logger($settings))->file(), 0, -4), + WPP_CACHE_DIR . $host . '.settings.json', + ]; + } + /** * Activation runs after plugins_loaded, so boot() never fired and the add-on * modules have not registered their settings groups. Migrating without them @@ -190,8 +254,11 @@ private static function bootAddons(): void $self->modules->bootAll(); } - /** Deactivation removes the object-cache drop-in, so activation has to put it back. */ - private static function syncObjectCache(SettingsService $settings): void + /** + * Put the object-cache drop-in back after a deactivation removed it, and + * refresh a copy an earlier release installed. + */ + public static function syncObjectCache(SettingsService $settings): void { $objectCache = new ObjectCacheInstaller(); @@ -199,7 +266,13 @@ private static function syncObjectCache(SettingsService $settings): void return; } - if (! $objectCache->installed() && ! $objectCache->install()) { + if ($objectCache->objectCacheInstalled() || $objectCache->install()) { + return; + } + + // A failed refresh of a copy that still works must not switch the + // toggle off; only nothing of ours on disk means the toggle is lying. + if (! $objectCache->installed()) { $settings->update('tools', ['object_cache' => false]); } } diff --git a/src/Frontend/PageCache.php b/src/Frontend/PageCache.php index 1b129d8..476b550 100644 --- a/src/Frontend/PageCache.php +++ b/src/Frontend/PageCache.php @@ -111,6 +111,15 @@ private function cacheApplies(): bool return false; } + // Core prefills the comment form from these cookies, so a commenter's + // render carries their name, email and URL, plus the moderation notices + // on their own pending comments. The drop-in refuses to serve cache to + // that session; without the same check here it is that session's render + // the drop-in then hands to everyone else. + if ($this->commenterSession()) { + return false; + } + // Only cache real HTML. Sitemaps and other XML/JSON responses would be // replayed by the drop-in with a text/html content type. if (! $this->isHtmlResponse()) { @@ -173,6 +182,17 @@ private function passwordSession(): bool return false; } + /** A visitor holding comment-author cookies renders a personalised page. */ + private function commenterSession(): bool + { + foreach (array_keys($_COOKIE) as $cookie) { + if (str_starts_with((string) $cookie, 'comment_author_')) { + return true; + } + } + return false; + } + private function isHtmlResponse(): bool { if (is_feed() || is_embed()) { diff --git a/src/Media/ImageService.php b/src/Media/ImageService.php index 983d913..2c743a4 100644 --- a/src/Media/ImageService.php +++ b/src/Media/ImageService.php @@ -88,6 +88,10 @@ public function add(string $name, int $width, int $height, bool $crop): void $custom[$name] = ['width' => $width, 'height' => $height, 'crop' => $crop]; update_option(self::OPT_CUSTOM, $custom, false); $this->setRemoved(array_values(array_diff($this->removed(), [$name]))); + + // $_wp_additional_image_sizes is filled once, on init, so the rest of + // this request - definedSizes() included - only sees the change here. + add_image_size($name, $width, $height, $crop); } public function remove(string $name): void @@ -96,6 +100,7 @@ public function remove(string $name): void if (isset($custom[$name])) { unset($custom[$name]); update_option(self::OPT_CUSTOM, $custom, false); + remove_image_size($name); return; } $removed = $this->removed(); @@ -105,6 +110,9 @@ public function remove(string $name): void public function restore(): void { + foreach (array_keys($this->custom()) as $name) { + remove_image_size((string) $name); + } delete_option(self::OPT_CUSTOM); delete_option(self::OPT_REMOVED); } diff --git a/src/Optimize/AssetParser.php b/src/Optimize/AssetParser.php index 758e64b..2fd2c05 100644 --- a/src/Optimize/AssetParser.php +++ b/src/Optimize/AssetParser.php @@ -74,6 +74,12 @@ public function parse(string $html): string $hintTags[] = '' . ''; + } else { + // The originals already stood down for the anchor, so a + // bundle that could not be built has to hand them back. + foreach ($usedUrls as $usedUrl) { + $styleTags[] = $this->styleTag($usedUrl, true); + } } } } @@ -99,6 +105,10 @@ public function parse(string $html): string $url = $this->combine($urls, 'css', $cdn); if ($url !== null) { $styleTags[] = $this->styleTag($url, $deferCss, (string) $mediaValue); + continue; + } + foreach ($urls as $original) { + $styleTags[] = $this->styleTag($original, $deferCss, (string) $mediaValue); } } foreach ($googleFonts as $endpoint => $families) { @@ -145,6 +155,10 @@ public function parse(string $html): string } else { $tag = ''; } + } else { + foreach ($combineJs as $original) { + $tag .= ''; + } } $html = $this->placeAnchored($html, self::JS_ANCHOR, $tag, ''); } @@ -271,12 +285,20 @@ private function processCss(string $html, array $css, array $cdn, array &$combin $attrs['href'] = $href; if ($deferThis) { + // The noscript copy is what styles the page when the onload swap + // never runs. Its id is dropped so the two never collide. + $fallback = $attrs; + unset($fallback['id']); + // A preload whose media query does not match is never fetched, so // its onload never fires: the media moves onto the handler. unset($attrs['media']); $attrs['rel'] = 'preload'; $attrs['as'] = 'style'; $attrs['onload'] = 'this.onload=null;' . $this->onloadMedia($mediaValue) . "this.rel='stylesheet'"; + + return $this->buildVoidTag('link', $attrs) + . ''; } return $this->buildVoidTag('link', $attrs); @@ -430,10 +452,16 @@ private function loaderScript(): string /** * @param array $media * @param array $cdn - * @param array $preloads collected LCP images + * @param array $preloads collected LCP images */ private function processImages(string $html, array $media, array $cdn, array &$preloads): string { + // The page-URL control, matching the video one: the by-name/by-src + // control is images_exclude. + if (Url::anyMatch((array) ($media['images_exclude_urls'] ?? []), $this->currentUrl)) { + return $html; + } + $disableOnMobile = ! empty($media['images_lazy_disable_mobile']) && wp_is_mobile(); $lazy = ! empty($media['images_lazy']) && ! $disableOnMobile; $cdnOn = ! empty($cdn['enabled']); @@ -450,9 +478,17 @@ private function processImages(string $html, array $media, array $cdn, array &$p if ($containers !== []) { $html = $this->markContainers($html, $containers); } + if ($nextgen) { + $html = $this->markPictureImages($html); + } $index = 0; $result = preg_replace_callback('#])*>#i', function (array $m) use ($media, $cdn, $lazy, $cdnOn, $responsive, $dimensions, $lcp, $nextgen, &$preloads, &$index): string { + $inPicture = str_contains($m[0], 'data-wpp-picture="1"'); + if ($inPicture) { + $m[0] = str_replace(' data-wpp-picture="1"', '', $m[0]); + } + if (str_contains($m[0], 'data-wpp-skip')) { return str_replace(' data-wpp-skip="1"', '', $m[0]); } @@ -522,11 +558,6 @@ private function processImages(string $html, array $media, array $cdn, array &$p if (empty($attrs['fetchpriority'])) { $attrs['fetchpriority'] = 'high'; } - $preloads[] = [ - 'src' => (string) ($attrs['src'] ?? $src), - 'srcset' => (string) ($attrs['srcset'] ?? ''), - 'sizes' => (string) ($attrs['sizes'] ?? ''), - ]; $changed = true; } elseif ($lazy) { if (empty($attrs['loading'])) { @@ -541,40 +572,86 @@ private function processImages(string $html, array $media, array $cdn, array &$p $imgTag = $changed ? $this->buildVoidTag('img', $attrs) : $m[0]; - if ($nextgen) { - $picture = $this->wrapPicture($imgTag, $originSrc, $originSrcset, $cdnOn ? $cdn : null); - if ($picture !== null) { - return $picture; - } + // An that already sits in a only ever sees that + // picture's own s, so wrapping it again disables them. + $sources = $nextgen && ! $inPicture + ? $this->nextgenSources($originSrc, $originSrcset, (string) ($attrs['sizes'] ?? ''), $cdnOn ? $cdn : null) + : []; + + if ($isLcp) { + $preloads[] = $this->preloadFor($sources, $attrs, $src); } - return $imgTag; + return $sources === [] ? $imgTag : $this->wrapPicture($imgTag, $sources); }, $html); return $result ?? $html; } /** - * Wrap an in a with avif/webp s when the sibling - * next-gen files exist. Returns null if none exist. + * Mark every that already lives inside a . + */ + private function markPictureImages(string $html): string + { + if (stripos($html, '])*>.*?#is', + static fn (array $m): string => (string) preg_replace('# $sources + */ + private function wrapPicture(string $imgTag, array $sources): string + { + $tags = ''; + foreach ($sources as $source) { + $tags .= ''; + } + + return '' . $tags . $imgTag . ''; + } + + /** + * The avif/webp s whose sibling files all exist, best format first. * * @param array|null $cdn + * @return list */ - private function wrapPicture(string $imgTag, string $src, string $srcset, ?array $cdn): ?string + private function nextgenSources(string $src, string $srcset, string $sizes, ?array $cdn): array { - $sources = ''; + $sources = []; foreach (['avif' => 'image/avif', 'webp' => 'image/webp'] as $format => $mime) { $nextgen = $this->nextgenSrcset($src, $srcset, $format, $cdn); - if ($nextgen !== '') { - $sources .= ''; + if ($nextgen === '') { + continue; } + $sources[] = [ + 'srcset' => $nextgen, + // A without sizes defaults to a source size of 100vw, + // so width descriptors would resolve to a larger candidate than + // the itself picks. + 'sizes' => $this->hasWidthDescriptor($nextgen) ? $sizes : '', + 'type' => $mime, + ]; } - return $sources !== '' ? '' . $sources . $imgTag . '' : null; + return $sources; } /** - * Build a next-gen srcset from the origin src/srcset where the files exist. + * Build a next-gen srcset from the origin src/srcset. Empty unless every + * candidate has a sibling: a partial set would let the browser pick a small + * next-gen file for a slot the original srcset covered. * * @param array|null $cdn */ @@ -591,9 +668,10 @@ private function nextgenSrcset(string $src, string $srcset, string $format, ?arr $parts = preg_split('/\s+/', $candidate, 2); $url = $parts[0]; $descriptor = isset($parts[1]) ? ' ' . $parts[1] : ''; - if ($this->nextgenExists($url, $format)) { - $entries[] = $this->nextgenUrl($url, $format, $cdn) . $descriptor; + if (! $this->nextgenExists($url, $format)) { + return ''; } + $entries[] = $this->nextgenUrl($url, $format, $cdn) . $descriptor; } } elseif ($src !== '' && $this->nextgenExists($src, $format)) { $entries[] = $this->nextgenUrl($src, $format, $cdn); @@ -602,11 +680,57 @@ private function nextgenSrcset(string $src, string $srcset, string $format, ?arr return implode(', ', $entries); } + private function hasWidthDescriptor(string $srcset): bool + { + return (bool) preg_match('/\s\d+w\s*(?:,|$)/', $srcset); + } + + /** + * The LCP preload for one image: whatever the browser will actually decode, + * which is the first when a was emitted. + * + * @param list $sources + * @param array $attrs + * @return array{src:string,srcset:string,sizes:string,type:string} + */ + private function preloadFor(array $sources, array $attrs, string $src): array + { + if ($sources === []) { + return [ + 'src' => (string) ($attrs['src'] ?? $src), + 'srcset' => (string) ($attrs['srcset'] ?? ''), + 'sizes' => (string) ($attrs['sizes'] ?? ''), + 'type' => '', + ]; + } + + $first = $sources[0]; + $lead = $this->firstCandidate($first['srcset']); + + return [ + 'src' => $lead, + 'srcset' => $lead === $first['srcset'] ? '' : $first['srcset'], + 'sizes' => $first['sizes'], + 'type' => $first['type'], + ]; + } + + /** The URL of a srcset's first candidate, without its descriptor. */ + private function firstCandidate(string $srcset): string + { + $parts = preg_split('/\s+/', trim(explode(',', $srcset, 2)[0]), 2) ?: []; + + return (string) ($parts[0] ?? ''); + } + /** @param array|null $cdn */ private function nextgenUrl(string $url, string $format, ?array $cdn): string { - $url = $url . '.' . $format; - return $cdn !== null && Assets::isLocal($url) ? $this->cdnRewrite($url, $cdn) : $url; + $pos = strpos($url, '?'); + $query = $pos === false ? '' : substr($url, $pos); + $base = ($pos === false ? $url : substr($url, 0, $pos)) . '.' . $format; + + return ($cdn !== null && Assets::isLocal($base) ? $this->cdnRewrite($base, $cdn) : $base) . $query; } /** @@ -771,7 +895,7 @@ private function imgExcluded(array $attrs, string $src, array $media): bool return true; } } - return Url::anyMatch((array) ($media['images_exclude_urls'] ?? []), $src); + return false; } /** @param array $cfg */ @@ -801,21 +925,67 @@ private function combine(array $urls, string $type, array $cdn): ?string $file = WPP_CACHE_DIR . $hash . '.' . $type; $url = WPP_CACHE_URL . $hash . '.' . $type; + // The cache key is the source list, so an artifact written from a failed + // read would be re-served for as long as the sources keep their mtime. + if (is_file($file) && filesize($file) === 0) { + @unlink($file); + } + if (! is_file($file)) { - if (! is_dir(WPP_CACHE_DIR)) { - wp_mkdir_p(WPP_CACHE_DIR); + $buffer = $this->combineSources($urls, $type); + if ($buffer === null || ! $this->writeAtomic($file, $buffer)) { + return null; } - $buffer = ''; - foreach ($urls as $assetUrl) { - $buffer .= $this->fetchForCombine($assetUrl, $type) . "\n"; + } + + return ! empty($cdn['enabled']) ? $this->cdnRewrite($url, $cdn) : $url; + } + + /** + * Concatenate the sources, or null when any of them could not be read. + * + * @param string[] $urls + */ + private function combineSources(array $urls, string $type): ?string + { + $buffer = ''; + foreach ($urls as $assetUrl) { + $piece = $this->fetchForCombine($assetUrl, $type); + if ($this->fetchFailed($piece, $assetUrl)) { + return null; } - file_put_contents($file, $buffer, LOCK_EX); + $buffer .= $piece . "\n"; } - if (! is_file($file)) { - return null; + return $type === 'css' ? CssMinifier::hoistAtRules($buffer) : $buffer; + } + + /** An empty result is a failed read unless the source file is itself empty. */ + private function fetchFailed(string $piece, string $url): bool + { + if (trim($piece, " \t\r\n;") !== '') { + return false; } - return ! empty($cdn['enabled']) ? $this->cdnRewrite($url, $cdn) : $url; + $path = Assets::toPath($url); + + return $path === null || (int) @filesize($path) > 0; + } + + /** Write through a temp file so a partial write is never published. */ + private function writeAtomic(string $file, string $contents): bool + { + $dir = dirname($file); + if (! is_dir($dir) && ! wp_mkdir_p($dir)) { + return false; + } + + $tmp = $file . '.' . getmypid() . '.tmp'; + if (file_put_contents($tmp, $contents, LOCK_EX) !== strlen($contents) || ! rename($tmp, $file)) { + @unlink($tmp); + return false; + } + + return true; } /** @@ -865,7 +1035,7 @@ private function buildUsedCss(array $urls, string $html, array $css): string return ''; } - $used = (new UsedCss())->build($html, $urls, $safelist); + $used = CssMinifier::hoistAtRules((new UsedCss())->build($html, $urls, $safelist)); file_put_contents($file, $used, LOCK_EX); return $used; @@ -955,11 +1125,17 @@ private function placeAnchored(string $html, string $marker, string $insert, str return $insert === '' ? $html : $this->injectBefore($html, $fallback, $insert); } - /** @param array{src:string,srcset:string,sizes:string} $preload */ + /** @param array{src:string,srcset:string,sizes:string,type:string} $preload */ private function imagePreloadTag(array $preload): string { $tag = ' source it will select and skip a format it cannot decode. + if ($preload['type'] !== '') { + $tag .= ' type="' . esc_attr($preload['type']) . '"'; + } + // Without the candidate list the browser preloads the src and then // downloads a different candidate for the element itself. if ($preload['srcset'] !== '') { diff --git a/src/Optimize/CssMinifier.php b/src/Optimize/CssMinifier.php index 794bdbd..f2281c1 100644 --- a/src/Optimize/CssMinifier.php +++ b/src/Optimize/CssMinifier.php @@ -4,6 +4,8 @@ namespace WPP\Optimize; +use WPP\Support\Assets; + /** * Conservative CSS minifier with no external dependencies. * @@ -52,6 +54,88 @@ public function process(string $css, string $sourceUrl): string return $this->minify($this->absolutize($css, $sourceUrl)); } + /** + * Move @charset and top-level @import to the front of a stylesheet. An + * @import preceded by any other rule is invalid and the browser drops it, + * which is what concatenating stylesheets produces on its own. + */ + public static function hoistAtRules(string $css): string + { + if (stripos($css, '@import') === false && stripos($css, '@charset') === false) { + return $css; + } + + $charset = ''; + $imports = ''; + $rest = ''; + + foreach (self::topLevelStatements($css) as $statement) { + $head = ltrim($statement); + if (preg_match('/^@import\b/i', $head)) { + $imports .= $head; + } elseif (preg_match('/^@charset\b/i', $head)) { + // Only the first @charset is ever honored. + if ($charset === '') { + $charset = $head; + } + } else { + $rest .= $statement; + } + } + + return $charset . $imports . $rest; + } + + /** + * Split CSS into top-level statements, brace- and quote-aware. + * + * @return string[] + */ + private static function topLevelStatements(string $css): array + { + $statements = []; + $length = strlen($css); + $depth = 0; + $start = 0; + $quote = ''; + + for ($i = 0; $i < $length; $i++) { + $char = $css[$i]; + + if ($quote !== '') { + if ($char === '\\') { + $i++; + } elseif ($char === $quote) { + $quote = ''; + } + continue; + } + + if ($char === '"' || $char === '\'') { + $quote = $char; + } elseif ($char === '{') { + $depth++; + } elseif ($char === '}') { + $depth--; + if ($depth <= 0) { + $statements[] = substr($css, $start, $i - $start + 1); + $start = $i + 1; + $depth = 0; + } + } elseif ($char === ';' && $depth === 0) { + $statements[] = substr($css, $start, $i - $start + 1); + $start = $i + 1; + } + } + + $tail = substr($css, $start); + if (trim($tail) !== '') { + $statements[] = $tail; + } + + return $statements; + } + private function absolutize(string $css, string $sourceUrl): string { // Quotes are re-emitted: an unquoted url() token may not contain @@ -86,11 +170,29 @@ private function resolve(string $sourceUrl, string $rel): string return $rel; } - $scheme = parse_url($sourceUrl, PHP_URL_SCHEME) ?: 'http'; - $host = (string) parse_url($sourceUrl, PHP_URL_HOST); - $port = parse_url($sourceUrl, PHP_URL_PORT); - $origin = $scheme . '://' . $host . ($port !== null ? ':' . $port : ''); - $srcPath = parse_url($sourceUrl, PHP_URL_PATH) ?: '/'; + $source = Assets::normalize($sourceUrl); + $scheme = (string) parse_url($source, PHP_URL_SCHEME); + $host = (string) parse_url($source, PHP_URL_HOST); + $port = parse_url($source, PHP_URL_PORT); + + // A root-relative stylesheet href carries no origin of its own, and an + // empty authority ("http:///path") is parsed by browsers as the host + // being the first path segment, so every reference would 404. + if ($host === '') { + $home = home_url(); + $scheme = (string) parse_url($home, PHP_URL_SCHEME); + $host = (string) parse_url($home, PHP_URL_HOST); + $port = parse_url($home, PHP_URL_PORT); + } + if ($host === '') { + return $rel; + } + + $origin = ($scheme === '' ? 'http' : $scheme) . '://' . $host . ($port !== null ? ':' . $port : ''); + $srcPath = (string) parse_url($source, PHP_URL_PATH); + if ($srcPath === '' || $srcPath[0] !== '/') { + $srcPath = '/' . $srcPath; + } if (str_starts_with($rel, '/')) { $path = $rel; diff --git a/src/Optimize/FontHost.php b/src/Optimize/FontHost.php index 920c5fd..c507c16 100644 --- a/src/Optimize/FontHost.php +++ b/src/Optimize/FontHost.php @@ -10,6 +10,9 @@ */ final class FontHost { + /** Seconds a failed download suppresses the next attempt for. */ + private const RETRY_AFTER = 300; + /** * @return array{css_url: string, fonts: string[]}|null */ @@ -24,12 +27,21 @@ public function localize(string $googleUrl): ?array $cssFile = $dir . $hash . '.css'; $cssUrl = WPP_CACHE_URL . 'fonts/' . $hash . '.css'; $metaFile = $dir . $hash . '.json'; + // .php so a cache purge, which runs on every post update, does not drop + // the failure record and reopen the stall it exists to prevent. + $failFile = $dir . $hash . '.fail.php'; if (is_file($cssFile) && is_file($metaFile)) { $fonts = json_decode((string) file_get_contents($metaFile), true); return ['css_url' => $cssUrl, 'fonts' => is_array($fonts) ? $fonts : []]; } + // localize() runs inside the output buffer of every uncached front-end + // request, so an unreachable endpoint must not be retried each time. + if (is_file($failFile) && (time() - (int) @filemtime($failFile)) < self::RETRY_AFTER) { + return null; + } + if (! is_dir($dir) && ! wp_mkdir_p($dir)) { return null; } @@ -42,14 +54,15 @@ public function localize(string $googleUrl): ?array ], ]); if (is_wp_error($response)) { - return null; + return $this->fail($failFile); } $css = (string) wp_remote_retrieve_body($response); if ($css === '') { - return null; + return $this->fail($failFile); } - $fonts = []; + $fonts = []; + $complete = true; if (preg_match_all('#https://fonts\.gstatic\.com/[^)\'"]+\.woff2#i', $css, $matches)) { foreach (array_unique($matches[0]) as $fontUrl) { $localName = md5($fontUrl) . '.woff2'; @@ -59,15 +72,18 @@ public function localize(string $googleUrl): ?array if (! is_file($localPath)) { $fontResponse = wp_remote_get($fontUrl, ['timeout' => 10]); if (is_wp_error($fontResponse)) { + $complete = false; continue; } $body = (string) wp_remote_retrieve_body($fontResponse); if ($body === '') { + $complete = false; continue; } // Rewriting the CSS after a failed write caches @font-face // rules pointing at files that do not exist. if (file_put_contents($localPath, $body, LOCK_EX) === false) { + $complete = false; continue; } } @@ -77,11 +93,31 @@ public function localize(string $googleUrl): ?array } } + // Caching a partial rewrite is permanent: the short-circuit above would + // keep serving faces straight from fonts.gstatic.com for good. + if (! $complete) { + return $this->fail($failFile); + } + if (file_put_contents($cssFile, $css, LOCK_EX) === false || file_put_contents($metaFile, (string) wp_json_encode($fonts), LOCK_EX) === false) { - return null; + return $this->fail($failFile); } + @unlink($failFile); + return ['css_url' => $cssUrl, 'fonts' => $fonts]; } + + /** Records the failure so the next requests fall back without a round trip. */ + private function fail(string $failFile): ?array + { + if (! is_file($failFile)) { + @file_put_contents($failFile, "\n", LOCK_EX); + return null; + } + @touch($failFile); + + return null; + } } diff --git a/src/Optimize/Minifier.php b/src/Optimize/Minifier.php index 19370e3..92fbc10 100644 --- a/src/Optimize/Minifier.php +++ b/src/Optimize/Minifier.php @@ -87,6 +87,16 @@ private function read(string $url): string return $content; } $response = wp_remote_get($url, ['timeout' => 5]); - return is_wp_error($response) ? '' : (string) wp_remote_retrieve_body($response); + if (is_wp_error($response)) { + return ''; + } + + // A 404 still has a body, and baking an error page into a bundle is + // indistinguishable from a successful fetch once it is cached. + if ((int) wp_remote_retrieve_response_code($response) !== 200) { + return ''; + } + + return (string) wp_remote_retrieve_body($response); } } diff --git a/src/Rest/Admin/CacheController.php b/src/Rest/Admin/CacheController.php index 7ac3221..6d77ae3 100644 --- a/src/Rest/Admin/CacheController.php +++ b/src/Rest/Admin/CacheController.php @@ -4,6 +4,7 @@ namespace WPP\Rest\Admin; +use WP_REST_Request; use WP_REST_Response; use WP_REST_Server; use WPP\Cache\CacheStore; @@ -63,10 +64,16 @@ public function stats(): WP_REST_Response return new WP_REST_Response($this->store->stats(), 200); } - public function clear(): WP_REST_Response + public function clear(WP_REST_Request $request): WP_REST_Response { $keep = ! empty($this->settings->get('cache')['keep_assets']); - $this->store->clear($keep); + + // Only a super admin from Network Admin may reach past their own blog. + $network = ! empty($request->get_param('network')) + && function_exists('is_multisite') && is_multisite() + && current_user_can('manage_network_options'); + + $this->store->clear($keep, $network); return new WP_REST_Response($this->store->stats(), 200); } diff --git a/src/Rest/Admin/OverviewController.php b/src/Rest/Admin/OverviewController.php index 5b35578..c8f9604 100644 --- a/src/Rest/Admin/OverviewController.php +++ b/src/Rest/Admin/OverviewController.php @@ -124,6 +124,10 @@ private function health(): array $checks[] = $this->check('page_cache', __('Page cache', 'wpp'), 'warn', __('Page caching is turned off.', 'wpp')); } elseif ($dropinOk) { $checks[] = $this->check('page_cache', __('Page cache', 'wpp'), 'good', __('Page caching is active and serving cached pages.', 'wpp')); + } elseif ($dropin->foreignDropin()) { + // Nothing the admin can change in this plugin will fix it, so saying + // the file is "missing" sends them looking in the wrong place. + $checks[] = $this->check('page_cache', __('Page cache', 'wpp'), 'bad', __('Another plugin owns advanced-cache.php, so page caching cannot start. Remove that plugin or its drop-in first.', 'wpp')); } else { $checks[] = $this->check('page_cache', __('Page cache', 'wpp'), 'bad', __('The advanced-cache.php drop-in or WP_CACHE constant is missing.', 'wpp')); } diff --git a/src/Rest/Admin/ToolsController.php b/src/Rest/Admin/ToolsController.php index 43947e0..d4b0537 100644 --- a/src/Rest/Admin/ToolsController.php +++ b/src/Rest/Admin/ToolsController.php @@ -107,8 +107,10 @@ public function import(WP_REST_Request $request): WP_REST_Response $data = $request->get_json_params(); if (is_array($data)) { foreach ($data as $group => $values) { + // An import is the whole configuration, so rules the target site + // has and the file does not have to be cleared, not merged. if (is_string($group) && is_array($values) && $this->settings->knows($group)) { - $this->settings->update($group, $values); + $this->settings->replace($group, $values); } } } diff --git a/src/Server/ServerRules.php b/src/Server/ServerRules.php index cfbb454..ea25574 100644 --- a/src/Server/ServerRules.php +++ b/src/Server/ServerRules.php @@ -4,6 +4,8 @@ namespace WPP\Server; +use WPP\Cache\DropinInstaller; + /** * Generates browser-cache (expires) and gzip rules. On Apache they are written * into .htaccess; on nginx they are returned as text for manual paste. @@ -32,7 +34,10 @@ public function serverType(): string /** @param array $cache write/refresh .htaccess blocks (Apache only). */ public function apply(array $cache): void { - if ($this->serverType() !== 'apache') { + // ABSPATH/.htaccess is a network-wide root file, so it sits behind the + // same boundary as the drop-ins: not a subsite administrator's to write, + // and off limits entirely under DISALLOW_FILE_MODS. + if (! DropinInstaller::fileModsAllowed() || $this->serverType() !== 'apache') { return; } $file = $this->htaccessPath(); @@ -45,6 +50,9 @@ public function apply(array $cache): void public function removeAll(): void { + if (! DropinInstaller::fileModsAllowed()) { + return; + } $file = $this->htaccessPath(); if ($file === null) { return; @@ -74,19 +82,52 @@ public function nginxRules(array $cache): string } if (! empty($cache['enabled'])) { - $lines[] = '# Serve the WP Performance page cache (optional, bypasses PHP):'; - $lines[] = 'set $wpp_cache "";'; - $lines[] = 'if ($request_method = GET) { set $wpp_cache "C"; }'; - $lines[] = 'if ($query_string != "") { set $wpp_cache ""; }'; - $lines[] = 'if ($http_cookie ~* "wordpress_logged_in_|wp-postpass_|comment_author_") { set $wpp_cache ""; }'; - $lines[] = 'set $wpp_file "/wp-content/cache/wpp-cache/$host$request_uri/index.html";'; - $lines[] = 'if (-f $document_root$wpp_file) { set $wpp_cache "${wpp_cache}F"; }'; - $lines[] = 'if ($wpp_cache = "CF") { rewrite ^ $wpp_file last; }'; + foreach ($this->pageCacheLines($cache) as $line) { + $lines[] = $line; + } } return trim(implode("\n", $lines)); } + /** + * A rewrite here answers before PHP runs, so it is only offered where the + * static file is the same answer the drop-in would have given. + * + * @param array $cache + * @return list + */ + private function pageCacheLines(array $cache): array + { + if (! empty($cache['mobile'])) { + return [ + '# Page cache serving is left to PHP while the mobile cache is on: nginx', + '# would answer phones with the desktop copy, and the mobile variant is only', + '# ever written by a request that reaches WordPress.', + ]; + } + + if (! get_option('permalink_structure')) { + return [ + '# Page cache serving is left to PHP: with plain permalinks the cached file', + '# is named after a hash of the URL, which nginx cannot build.', + ]; + } + + return [ + '# Serve the WP Performance page cache (optional, bypasses PHP).', + '# nginx cannot compare file age, so a page matched here is served whatever its', + '# age: the configured expiry only applies to requests that reach PHP.', + 'set $wpp_cache "";', + 'if ($request_method = GET) { set $wpp_cache "C"; }', + 'if ($query_string != "") { set $wpp_cache ""; }', + 'if ($http_cookie ~* "wordpress_logged_in_|wp-postpass_|comment_author_") { set $wpp_cache ""; }', + 'set $wpp_file "/wp-content/cache/wpp-cache/$host$request_uri/index.html";', + 'if (-f $document_root$wpp_file) { set $wpp_cache "${wpp_cache}F"; }', + 'if ($wpp_cache = "CF") { rewrite ^ $wpp_file last; }', + ]; + } + private function expiresBlock(): string { $out = ["", "ExpiresActive On"]; diff --git a/src/Settings/Migration.php b/src/Settings/Migration.php index 0077afd..69f528b 100644 --- a/src/Settings/Migration.php +++ b/src/Settings/Migration.php @@ -128,6 +128,7 @@ public function run(): array $this->migrateGroup('css', [ 'minify_inline' => ['css_minify_inline', 'bool'], 'defer' => ['css_defer', 'bool'], + 'critical_path' => ['css_custom_path_def', 'string'], 'combine_fonts' => ['css_combine_fonts', 'bool'], 'font_display' => ['css_font_display', 'string'], 'disable_loggedin' => ['css_disable_loggedin', 'bool'], @@ -322,8 +323,10 @@ private function migrateImageSizes(): void private function deleteOldOptions(): void { // Keys whose option name collides with a new group/feature option and now - // holds migrated data, so they must NOT be deleted. - $keep = ['cache', 'cdn', 'image_sizes', 'image_sizes_remove']; + // holds migrated data, so they must NOT be deleted. db_cleanup_next is the + // same option name v2 reads for the next scheduled cleanup, and nothing + // rewrites it while the recurrence is unchanged. + $keep = ['cache', 'cdn', 'image_sizes', 'image_sizes_remove', 'db_cleanup_next']; $old = self::LEGACY_UNGROUPED; foreach (self::LEGACY_KEYS as $group => $keys) { diff --git a/src/Settings/SettingsHistory.php b/src/Settings/SettingsHistory.php index 23d2294..cb1928c 100644 --- a/src/Settings/SettingsHistory.php +++ b/src/Settings/SettingsHistory.php @@ -64,8 +64,10 @@ public function restore(int $index): bool } foreach ($list[$index]['groups'] as $group => $values) { + // replace(), not update(): a snapshot is the whole state, so a rule + // added after it has to disappear rather than merge back in. if (is_string($group) && is_array($values) && $this->settings->knows($group)) { - $this->settings->update($group, $values); + $this->settings->replace($group, $values); } } diff --git a/src/Settings/SettingsService.php b/src/Settings/SettingsService.php index 5df74e1..f308991 100644 --- a/src/Settings/SettingsService.php +++ b/src/Settings/SettingsService.php @@ -171,8 +171,13 @@ final class SettingsService 'used_safelist', 'dns_prefetch', 'preconnect', + 'disable_selected', + 'disable_except', ]; + /** Numeric keys where zero is a choice the UI offers, not an emptied field. */ + private const ZERO_ALLOWED_KEYS = ['browser_expire']; + /** * All groups: core + add-on (via filter). * @@ -228,21 +233,60 @@ public function update(string $group, array $partial): array } $cfg = $groups[$group]; + $clean = $this->clean($cfg['defaults'], $partial); + + return $this->write($group, $cfg, $this->mergeDeep($this->get($group), $clean)); + } + + /** + * Write a whole group: keys the payload omits fall back to the group + * defaults. Restoring a snapshot and importing a configuration both have to + * remove settings, which merging into the current value cannot do. + * + * @param array $values + * @return array the new value + */ + public function replace(string $group, array $values): array + { + $groups = $this->groups(); + if (! isset($groups[$group])) { + return []; + } + + $cfg = $groups[$group]; + $clean = $this->clean($cfg['defaults'], $values); + + return $this->write($group, $cfg, $this->mergeDeep($cfg['defaults'], $clean)); + } - // Whitelist to known top-level keys, then sanitize. + /** + * Whitelist a payload to the group's known top-level keys, then sanitize. + * + * @param array $defaults + * @param array $values + * @return array + */ + private function clean(array $defaults, array $values): array + { $clean = []; - foreach ($partial as $key => $value) { - if (! array_key_exists($key, $cfg['defaults'])) { + foreach ($values as $key => $value) { + if (! array_key_exists($key, $defaults)) { continue; } - $clean[$key] = is_int($cfg['defaults'][$key]) - ? $this->numeric($value, $cfg['defaults'][$key]) + $clean[$key] = is_int($defaults[$key]) + ? $this->numeric($key, $value, $defaults[$key]) : $this->sanitize($key, $value); } + return $clean; + } - $current = $this->get($group); - $next = $this->mergeDeep($current, $clean); - + /** + * @param array{option: string, defaults: array} $cfg + * @param array $next + * @return array + */ + private function write(string $group, array $cfg, array $next): array + { // Fired before the write so listeners (e.g. settings history) can capture // the full prior state as a restore point. do_action('wpp.settings.updating', $group); @@ -292,7 +336,7 @@ private function isAssoc(array $arr): bool * number field arrives as '', and a string there reaches the drop-in as a * cache lifetime of zero. */ - private function numeric(mixed $value, int $default): int + private function numeric(string $key, mixed $value, int $default): int { if (is_bool($value) || is_array($value) || $value === null || $value === '') { return $default; @@ -300,8 +344,13 @@ private function numeric(mixed $value, int $default): int $number = (int) $value; - // A positive default means zero is not a legal value for that setting. - return ($number <= 0 && $default > 0) ? $default : max(0, $number); + // A positive default means zero is not a legal value for that setting, + // unless the setting itself offers zero as an option. + if ($number <= 0 && $default > 0 && ! in_array($key, self::ZERO_ALLOWED_KEYS, true)) { + return $default; + } + + return max(0, $number); } /** diff --git a/tests/suites/dropins.php b/tests/suites/dropins.php index f4ce0af..3d3c4e0 100644 --- a/tests/suites/dropins.php +++ b/tests/suites/dropins.php @@ -43,8 +43,8 @@ wpp_ok($dropin->install(), 'stale copy is refreshed'); wpp_contains(WPP_VERSION, (string) file_get_contents($advanced), 'refreshed to the current version'); - // ---- a pre-stamp copy from an older release is still recognised as ours ---- - file_put_contents($advanced, "foreignDropin(), 'a pre-stamp copy of ours is not treated as foreign'); wpp_ok(! $dropin->dropinInstalled(), 'a pre-stamp copy counts as needing a refresh'); wpp_ok($dropin->install(), 'a pre-stamp copy is upgraded in place'); diff --git a/tests/suites/fix-addons.php b/tests/suites/fix-addons.php new file mode 100644 index 0000000..53f18b5 --- /dev/null +++ b/tests/suites/fix-addons.php @@ -0,0 +1,168 @@ + (int) $width, + 'height' => (int) $height, + 'crop' => $crop, + ]; + } +} + +if (! function_exists('remove_image_size')) { + function remove_image_size($name): bool + { + if (! isset($GLOBALS['_wp_additional_image_sizes'][(string) $name])) { + return false; + } + unset($GLOBALS['_wp_additional_image_sizes'][(string) $name]); + return true; + } +} + +/** + * Regressions for the add-on findings: locally hosted fonts, custom image + * sizes, and the Cloudflare zone-settings push. + */ +return static function (): void { + $fontsDir = WPP_CACHE_DIR . 'fonts/'; + $purge = static function () use ($fontsDir): void { + foreach (glob($fontsDir . '*') ?: [] as $file) { + @unlink($file); + } + }; + $cached = static fn (string $cssUrl): string => (string) file_get_contents( + str_replace(WPP_CACHE_URL, WPP_CACHE_DIR, $cssUrl) + ); + + // ---- A font that could not be stored locally is never cached as hosted --- + + $purge(); + $inter = 'https://fonts.googleapis.com/css2?family=Inter:wght@400;700'; + $stylesheet = '@font-face{font-family:Inter;font-weight:400;' + . 'src:url(https://fonts.gstatic.com/s/inter/a.woff2) format("woff2");}' + . '@font-face{font-family:Inter;font-weight:700;' + . 'src:url(https://fonts.gstatic.com/s/inter/b.woff2) format("woff2");}'; + + WPP_Test_State::$httpResponses = [ + $inter => ['response' => ['code' => 200], 'body' => $stylesheet], + 'https://fonts.gstatic.com/s/inter/a.woff2' => ['response' => ['code' => 200], 'body' => 'woff2-a'], + ]; + + $fontHost = new FontHost(); + wpp_same(null, $fontHost->localize($inter), 'a stylesheet whose fonts failed is not reported as hosted'); + wpp_same([], glob($fontsDir . '*.css') ?: [], 'a stylesheet still pointing at Google is not cached'); + + // A purge clears the failure record, so the next render tries again. + $purge(); + WPP_Test_State::$httpResponses['https://fonts.gstatic.com/s/inter/b.woff2'] + = ['response' => ['code' => 200], 'body' => 'woff2-b']; + + $hosted = $fontHost->localize($inter); + wpp_ok(is_array($hosted), 'the stylesheet is localised once every font can be fetched'); + $css = $cached((string) ($hosted['css_url'] ?? '')); + wpp_not_contains('fonts.gstatic.com', $css, 'the cached stylesheet serves every face locally'); + wpp_same(2, count((array) ($hosted['fonts'] ?? [])), 'both faces are preloaded from the local copy'); + + WPP_Test_State::$httpCalls = []; + $fontHost->localize($inter); + wpp_same(0, count(WPP_Test_State::$httpCalls), 'a complete stylesheet is served from disk'); + + // ---- A failed Google Fonts fetch is not repeated on every render -------- + + $purge(); + WPP_Test_State::$httpCalls = []; + WPP_Test_State::$httpResponses = []; + + $lato = 'https://fonts.googleapis.com/css2?family=Lato'; + $fontHost->localize($lato); + $fontHost->localize($lato); + $fontHost->localize($lato); + wpp_same(1, count(WPP_Test_State::$httpCalls), 'an unreachable font endpoint is not re-fetched on every render'); + + // Purging the cache runs on every post update, so the record has to be + // named like the other files a purge keeps, and stay unservable. + $markers = glob($fontsDir . '*.php') ?: []; + wpp_same(1, count($markers), 'the failure record is kept through a cache purge'); + wpp_contains('localize($lato); + wpp_same(2, count(WPP_Test_State::$httpCalls), 'the fetch is retried once the failure record has aged out'); + $purge(); + + // ---- Image sizes: the response reflects the change that just happened --- + + $GLOBALS['_wp_additional_image_sizes'] = []; + WPP_Test_State::$options['wpp_image_sizes'] = ['hero' => ['width' => 1200, 'height' => 600, 'crop' => true]]; + + $images = new ImageService(); + $images->register(); + + $names = static fn (array $sizes): array => array_map( + static fn (array $size): string => (string) $size['name'], + $sizes + ); + + wpp_ok(in_array('hero', $names($images->definedSizes()), true), 'a stored custom size is listed'); + + $images->add('promo', 300, 200, false); + wpp_ok( + in_array('promo', $names($images->definedSizes()), true), + 'a size added in this request is in the response the table renders' + ); + + $images->remove('hero'); + $afterRemove = $names($images->definedSizes()); + wpp_ok(! in_array('hero', $afterRemove, true), 'a removed custom size leaves the response without a reload'); + wpp_ok(in_array('promo', $afterRemove, true), 'removing one size keeps the others'); + + $images->remove('thumbnail'); + wpp_ok(! in_array('thumbnail', $names($images->definedSizes()), true), 'a removed core size leaves the response'); + + $images->restore(); + $restored = $names($images->definedSizes()); + wpp_ok(in_array('thumbnail', $restored, true), 'restoring defaults brings the core sizes back'); + wpp_ok(! in_array('promo', $restored, true), 'restoring defaults drops the custom sizes from the response'); + + unset($GLOBALS['_wp_additional_image_sizes']); + + // ---- Cloudflare: a settings save cannot outlive the request ------------ + + WPP_Test_State::$httpCalls = []; + WPP_Test_State::$httpResponses = []; + + $api = new CloudflareApi('me@example.test', 'key', 'z1'); + $failed = $api->applyAll(['dev_mode' => true]); + + wpp_same(5, count(WPP_Test_State::$httpCalls), 'every zone setting is pushed when there is time for it'); + $slow = array_filter( + WPP_Test_State::$httpCalls, + static fn (array $call): bool => (float) ($call['args']['timeout'] ?? 0) > 5 + ); + wpp_same([], $slow, 'no zone setting push can block the save request for 15 seconds'); + + add_filter('wpp.cloudflare.push_budget', static fn (): int => 0); + WPP_Test_State::$httpCalls = []; + $failed = $api->applyAll(['dev_mode' => true]); + wpp_same(0, count(WPP_Test_State::$httpCalls), 'no zone setting is pushed once the time budget is spent'); + wpp_same(5, count($failed), 'settings the budget skipped are reported instead of silently dropped'); + wpp_contains('in time', (string) ($failed['brotli'] ?? ''), 'a skipped setting says why it was not applied'); + wpp_ok(isset($failed['development_mode']), 'a skipped development mode is not recorded as pushed'); + unset(WPP_Test_State::$hooks['wpp.cloudflare.push_budget']); + + WPP_Test_State::$httpCalls = []; + $api->purgeAll(); + wpp_same(15, (int) (WPP_Test_State::$httpCalls[0]['args']['timeout'] ?? 0), 'a purge keeps the full timeout'); +}; diff --git a/tests/suites/fix-fragment.php b/tests/suites/fix-fragment.php new file mode 100644 index 0000000..d284a8d --- /dev/null +++ b/tests/suites/fix-fragment.php @@ -0,0 +1,369 @@ +queue, true)) { + $GLOBALS['wp_scripts']->queue[] = $handle; + } + } +} + +if (! function_exists('wp_enqueue_style')) { + function wp_enqueue_style($handle, ...$rest): void + { + if (isset($GLOBALS['wp_styles']) && ! in_array($handle, $GLOBALS['wp_styles']->queue, true)) { + $GLOBALS['wp_styles']->queue[] = $handle; + } + } +} + +if (! function_exists('wp_add_inline_style')) { + function wp_add_inline_style($handle, $data): bool + { + $styles = $GLOBALS['wp_styles'] ?? null; + if (! is_object($styles) || ! isset($styles->registered[$handle])) { + return false; + } + $after = $styles->registered[$handle]->extra['after'] ?? []; + $after[] = $data; + $styles->registered[$handle]->extra['after'] = $after; + return true; + } +} + +// Mirrors wp-includes/style-engine/*: the block-supports store that +// wp_render_layout_support_flag and friends push their generated CSS into. +if (! class_exists('WP_Style_Engine_CSS_Declarations')) { + class WP_Style_Engine_CSS_Declarations + { + protected $declarations = []; + + public function __construct($declarations = []) + { + $this->add_declarations($declarations); + } + + public function add_declarations($declarations) + { + foreach ((array) $declarations as $property => $value) { + $this->declarations[$property] = $value; + } + return $this; + } + + public function get_declarations() + { + return $this->declarations; + } + } +} + +if (! class_exists('WP_Style_Engine_CSS_Rule')) { + class WP_Style_Engine_CSS_Rule + { + protected $selector; + protected $declarations; + protected $rules_group; + + public function __construct($selector = '', $declarations = [], $rules_group = '') + { + $this->selector = $selector; + $this->declarations = new WP_Style_Engine_CSS_Declarations(); + $this->rules_group = (string) $rules_group; + $this->add_declarations($declarations); + } + + public function add_declarations($declarations) + { + $array = is_array($declarations) ? $declarations : $declarations->get_declarations(); + $this->declarations->add_declarations($array); + return $this; + } + + public function get_declarations() + { + return $this->declarations; + } + + public function get_selector() + { + return $this->selector; + } + + public function get_rules_group() + { + return $this->rules_group; + } + } +} + +if (! class_exists('WP_Style_Engine_CSS_Rules_Store')) { + class WP_Style_Engine_CSS_Rules_Store + { + protected static $stores = []; + protected $name = ''; + protected $rules = []; + + public static function get_store($store_name = 'default') + { + if (! isset(static::$stores[$store_name])) { + static::$stores[$store_name] = new static(); + static::$stores[$store_name]->name = $store_name; + } + return static::$stores[$store_name]; + } + + public static function remove_all_stores(): void + { + static::$stores = []; + } + + public function get_all_rules() + { + return $this->rules; + } + + public function add_rule($selector, $rules_group = '') + { + $key = $rules_group !== '' ? "$rules_group $selector" : $selector; + if (empty($this->rules[$key])) { + $this->rules[$key] = new WP_Style_Engine_CSS_Rule($selector, [], $rules_group); + } + return $this->rules[$key]; + } + } +} + +if (! function_exists('wp_style_engine_get_stylesheet_from_css_rules')) { + function wp_style_engine_get_stylesheet_from_css_rules($css_rules, $options = []) + { + $context = $options['context'] ?? null; + foreach ((array) $css_rules as $rule) { + if (empty($rule['selector']) || empty($rule['declarations']) || ! is_array($rule['declarations'])) { + continue; + } + if (! empty($context)) { + WP_Style_Engine_CSS_Rules_Store::get_store($context) + ->add_rule($rule['selector'], (string) ($rule['rules_group'] ?? '')) + ->add_declarations($rule['declarations']); + } + } + return ''; + } +} + +return static function (): void { + $settings = new SettingsService(); + $settings->update('cache', ['block_cache_enabled' => true, 'block_cache_ttl' => 3600]); + + // ---------------------------------------------------------------- finding 1 + // A network shares one fragments/ tree, so a sibling blog's entry must be + // unreachable and must survive this blog's flush. + + WPP_Test_State::$multisite = true; + $store = new FragmentStore(); + $gen = (int) get_option('wpp_fragment_gen', 0); + $identity = 'k=sidebar|u=/|l=0'; + + $unscoped = md5($gen . '|' . $identity); + $siblingFile = WPP_CACHE_DIR . 'fragments/' . substr($unscoped, 0, 2) . '/' . $unscoped . '.html.php'; + wp_mkdir_p(dirname($siblingFile)); + file_put_contents($siblingFile, RuntimeSettings::GUARD . "0\n" . 'SITE A private sidebar'); + + wpp_same(null, $store->get($identity), 'network: a sibling blog fragment is not readable from this blog'); + + $store->set($identity, 'SITE B sidebar', 60); + wpp_same('SITE B sidebar', $store->get($identity), 'network: this blog reads its own fragment'); + wpp_same( + RuntimeSettings::GUARD . "0\n" . 'SITE A private sidebar', + (string) file_get_contents($siblingFile), + 'network: writing did not overwrite the sibling entry' + ); + + $scoped = md5($gen . '|s' . get_current_blog_id() . '|' . $identity); + $ownFile = WPP_CACHE_DIR . 'fragments/' . substr($scoped, 0, 2) + . '/s' . get_current_blog_id() . '-' . $scoped . '.html.php'; + wpp_ok(is_file($ownFile), 'network: the fragment key and file name carry the blog id'); + + $foreignKey = md5('another blog entry'); + $foreignFile = WPP_CACHE_DIR . 'fragments/' . substr($foreignKey, 0, 2) . '/s2-' . $foreignKey . '.html.php'; + wp_mkdir_p(dirname($foreignFile)); + file_put_contents($foreignFile, RuntimeSettings::GUARD . "0\n" . 'blog 2 fragment'); + + $store->flush(); + wpp_same(null, $store->get($identity), 'network: flush drops this blog fragments'); + wpp_ok(! is_file($ownFile), 'network: flush deletes this blog files'); + wpp_ok(is_file($foreignFile), 'network: flush leaves other blogs files in place'); + + @unlink($foreignFile); + @unlink($siblingFile); + + // Single site keeps the unscoped path the rest of the suite relies on. + WPP_Test_State::$multisite = false; + $single = new FragmentStore(); + $single->set('single-id', 'S', 60); + $singleGen = (int) get_option('wpp_fragment_gen', 0); + $singleKey = md5($singleGen . '|single-id'); + wpp_ok( + is_file(WPP_CACHE_DIR . 'fragments/' . substr($singleKey, 0, 2) . '/' . $singleKey . '.html.php'), + 'single site: the fragment path is unscoped' + ); + + // ---------------------------------------------------------------- finding 2 + // Two members with the same role must not share one entry. + + WPP_Test_State::$loggedIn = true; + WPP_Test_State::$role = 'subscriber'; + $_SERVER['REQUEST_URI'] = '/members/dashboard/'; + + $fc = new FragmentCache($settings, new FragmentStore()); + $opts = ['ttl' => 3600, 'vary_url' => true, 'vary_role' => true, 'vary_device' => true]; + + wpp_contains('uid=' . get_current_user_id(), $fc->identity('dash', $opts), 'a logged-in identity carries the user id'); + + // The entry a role-only key produces: one member fills it, the next reads it. + (new FragmentStore())->set( + 'k=dash|u=/members/dashboard/|l=1|r=subscriber|d=d', + 'Welcome back, Alice (nonce=abc123)', + 60 + ); + + ob_start(); + $miss = $fc->start('dash', $opts); + if ($miss) { + echo 'Welcome back, Bob (nonce=def456)'; + $fc->end(); + } + $served = (string) ob_get_clean(); + + wpp_ok($miss, 'another member with the same role does not hit the first member entry'); + wpp_not_contains('Alice', $served, 'no other member markup is served'); + + WPP_Test_State::$loggedIn = false; + wpp_not_contains('uid=', $fc->identity('dash', $opts), 'an anonymous identity carries no user id'); + + // Same run, two real user ids: get_current_user_id() is pinned in the shared + // bootstrap, so the two-member case runs in a child process that defines it. + $probe = WPP_TEST_TMP . 'two-members.php'; + file_put_contents($probe, <<<'PHP' +update('cache', ['block_cache_enabled' => true, 'block_cache_ttl' => 3600]); +$fc = new WPP\Cache\FragmentCache($settings, new WPP\Cache\FragmentStore()); +$opts = ['ttl' => 3600, 'vary_url' => true, 'vary_role' => true, 'vary_device' => true]; + +$GLOBALS['wpp_probe_uid'] = 11; +$aliceIdentity = $fc->identity('dash', $opts); +ob_start(); +if ($fc->start('dash', $opts)) { + echo 'Welcome back, Alice (nonce=abc123)'; + $fc->end(); +} +ob_end_clean(); + +$GLOBALS['wpp_probe_uid'] = 22; +$bobIdentity = $fc->identity('dash', $opts); +ob_start(); +$bobMiss = $fc->start('dash', $opts); +if ($bobMiss) { + echo 'Welcome back, Bob (nonce=def456)'; + $fc->end(); +} +$bobSees = (string) ob_get_clean(); + +echo json_encode([ + 'alice_identity' => $aliceIdentity, + 'bob_identity' => $bobIdentity, + 'bob_miss' => $bobMiss, + 'bob_sees' => $bobSees, +]); +PHP); + + $command = 'WPP_PROBE_BOOTSTRAP=' . escapeshellarg(WPP_TEST_ROOT . '/tests/bootstrap.php') + . ' ' . escapeshellarg(PHP_BINARY) . ' ' . escapeshellarg($probe) . ' 2>&1'; + $raw = (string) shell_exec($command); + $data = json_decode($raw, true); + + wpp_ok(is_array($data), 'two-member probe ran: ' . substr($raw, 0, 300)); + if (is_array($data)) { + wpp_ok($data['alice_identity'] !== $data['bob_identity'], 'two members with one role get different identities'); + wpp_ok($data['bob_miss'] === true, 'the second member misses the cache'); + wpp_not_contains('Alice', (string) $data['bob_sees'], 'the second member is not served the first member markup'); + wpp_contains('Bob', (string) $data['bob_sees'], 'the second member gets his own render'); + } + + // ---------------------------------------------------------------- finding 3 + // Block-support CSS must survive a hit: preRenderBlock skips the subtree, so + // nothing pushes layout/elements/duotone rules into the style engine again. + + $GLOBALS['wp_styles'] = (object) ['queue' => [], 'registered' => ['wp-block-group' => (object) ['extra' => []]]]; + $GLOBALS['wp_scripts'] = (object) ['queue' => []]; + WP_Style_Engine_CSS_Rules_Store::remove_all_stores(); + + $blockCache = new FragmentCache($settings, new FragmentStore()); + $block = [ + 'blockName' => 'wpp/cache', + 'attrs' => ['ttl' => 60], + 'innerHTML' => '
      ', + ]; + $layout = '.wp-container-core-group-is-layout-abc'; + $rendered = '
      Row
      '; + + wpp_same(null, $blockCache->preRenderBlock(null, $block), 'block miss lets WordPress render the subtree'); + + // What the Row block does while rendering. + wp_enqueue_style('wp-block-group'); + wp_add_inline_style('wp-block-group', '.wp-block-group{color:red}'); + wp_style_engine_get_stylesheet_from_css_rules( + [['selector' => $layout, 'declarations' => ['display' => 'flex', 'flex-wrap' => 'wrap']]], + ['context' => 'block-supports'] + ); + $blockCache->renderBlock($rendered, $block); + + // A later request: nothing of the first render survives in memory. + $GLOBALS['wp_styles'] = (object) ['queue' => [], 'registered' => ['wp-block-group' => (object) ['extra' => []]]]; + $GLOBALS['wp_scripts'] = (object) ['queue' => []]; + WP_Style_Engine_CSS_Rules_Store::remove_all_stores(); + + wpp_same($rendered, $blockCache->preRenderBlock(null, $block), 'block hit replays the stored markup'); + + $rules = WP_Style_Engine_CSS_Rules_Store::get_store('block-supports')->get_all_rules(); + wpp_ok(isset($rules[$layout]), 'hit: the layout rule is back in the block-supports store'); + if (isset($rules[$layout])) { + wpp_same( + ['display' => 'flex', 'flex-wrap' => 'wrap'], + $rules[$layout]->get_declarations()->get_declarations(), + 'hit: the layout declarations are intact' + ); + } + + wpp_ok(in_array('wp-block-group', $GLOBALS['wp_styles']->queue, true), 'hit: the style handle is enqueued again'); + wpp_same( + ['.wp-block-group{color:red}'], + $GLOBALS['wp_styles']->registered['wp-block-group']->extra['after'] ?? [], + 'hit: inline style data is added again' + ); + + unset($GLOBALS['wp_styles'], $GLOBALS['wp_scripts']); + WP_Style_Engine_CSS_Rules_Store::remove_all_stores(); + (new FragmentStore())->flush(); +}; diff --git a/tests/suites/fix-lifecycle.php b/tests/suites/fix-lifecycle.php new file mode 100644 index 0000000..a2eb784 --- /dev/null +++ b/tests/suites/fix-lifecycle.php @@ -0,0 +1,326 @@ +clearAll(); + @unlink($advanced); + @unlink($object); + file_put_contents($config, " + * @package WPP + */ + + if ( ! empty( $_POST ) ) { + return false; + } + + $settings = _wpp_get_site_settings(); + + function _wpp_get_cache_file( $settings ) { + return WP_CONTENT_DIR . '/cache/wpp-cache/' . $_SERVER[ 'HTTP_HOST' ]; + } + + function _wpp_get_site_settings() { + $file = WP_CONTENT_DIR . '/cache/wpp-cache/' . $_SERVER[ 'HTTP_HOST' ] . '.settings.json'; + return file_exists( $file ) ? json_decode( file_get_contents( $file ), true ) : []; + } + PHP; + + // ---------------------------------------------- 1.x drop-in is ours (finding 3) + + WPP_Test_State::reset(); + $wipe(); + file_put_contents($advanced, $legacyDropin); + + $dropin = new DropinInstaller(); + wpp_ok(! $dropin->foreignDropin(), 'the 1.x loader is recognised as our own drop-in'); + wpp_ok(! $dropin->dropinInstalled(), 'the 1.x loader counts as needing an upgrade'); + wpp_ok($dropin->install(), 'updating from 1.x installs the 2.0 drop-in'); + + $installed = (string) file_get_contents($advanced); + wpp_contains('WPP_ADVANCED_CACHE', $installed, 'the 1.x loader is replaced by the stamped drop-in'); + wpp_contains(WPP_VERSION, $installed, 'the replacement carries the running version'); + wpp_not_contains('_wpp_get_site_settings', $installed, 'no 1.x code survives the upgrade'); + wpp_ok($dropin->dropinInstalled(), 'the upgraded drop-in reports as installed'); + wpp_contains("define( 'WP_CACHE', true );", (string) file_get_contents($config), 'the upgrade owns WP_CACHE again'); + + // Each 1.x fingerprint on its own, since a site may hold a hand-edited copy. + foreach ([ + 'header' => " " " $fixture) { + file_put_contents($advanced, $fixture); + wpp_ok(! $dropin->foreignDropin(), "a 1.x drop-in identified by its {$label} is not foreign"); + wpp_ok($dropin->install(), "a 1.x drop-in identified by its {$label} is upgraded"); + } + + // Widening ownership must not start claiming another plugin's drop-in. + $foreign = "foreignDropin(), 'a third-party drop-in is still foreign'); + wpp_ok(! $dropin->install(), 'install still refuses to overwrite a third-party drop-in'); + wpp_same($foreign, (string) file_get_contents($advanced), 'the third-party drop-in is untouched'); + + // ---------------------------------------------- activation purges pre-guard files (finding 2) + + WPP_Test_State::reset(); + $wipe(); + + $legacyLog = $seed('wpp.log', "[2026-01-01 00:00:00] Cache saved: /a-visitor-path/\n"); + $legacyConfig = $seed('example.test.json', '{"enabled":true,"exclude":["/staging-only/"]}'); + $legacySettings = $seed('example.test.settings.json', '{"cache":1,"exclude":["/staging-only/"]}'); + $legacyFragment = $seed('fragments/cd/' . str_repeat('c', 32) . '.html', "0\n

      members only

      "); + + Plugin::onActivation(); + + wpp_ok(! is_file($legacyLog), 'activation removes the pre-guard log'); + wpp_ok(! is_file($legacyConfig), 'activation removes the pre-guard runtime config'); + wpp_ok(! is_file($legacySettings), 'activation removes the 1.x settings file'); + wpp_ok(! is_file($legacyFragment), 'activation removes pre-guard fragments'); + wpp_ok(is_file((new RuntimeSettings(new SettingsService()))->file()), 'activation leaves a guarded runtime config behind'); + wpp_ok((new DropinInstaller())->dropinInstalled(), 'activation installed the drop-in that reads it'); + + // A foreign drop-in blocks the install, and the purge must not run without + // one of ours in place to read the new file name. + WPP_Test_State::reset(); + $wipe(); + file_put_contents($advanced, $foreign); + $blocked = $seed('example.test.json', '{"enabled":true}'); + + Plugin::onActivation(); + wpp_ok(is_file($blocked), 'the purge is skipped while a foreign drop-in still reads the old name'); + + // ---------------------------------------------- purge is per blog (finding 1) + + WPP_Test_State::reset(); + $wipe(); + WPP_Test_State::$multisite = true; + + $mine = $seed('example.test.json', '{"enabled":true}'); + $myLog = $seed('1_wpp.log', "[2026-01-01 00:00:00] mine\n"); + $subsite = $seed('example.test~shop.json', '{"enabled":false}'); + $subLog = $seed('2_wpp.log', "[2026-01-01 00:00:00] theirs\n"); + $legacy1x = $seed('example.test.settings.json', '{"cache":1}'); + + Plugin::purgeUnguarded(); + + wpp_ok(! is_file($mine), 'the purge removes this blog pre-guard config'); + wpp_ok(! is_file($myLog), 'the purge removes this blog pre-guard log'); + wpp_ok(! is_file($legacy1x), 'the purge removes this host 1.x settings file'); + wpp_ok(is_file($subsite), 'another blog pre-guard config survives'); + wpp_ok(is_file($subLog), 'another blog pre-guard log survives'); + + // Single site owns everything in the directory, so nothing is left behind. + WPP_Test_State::reset(); + $stray = $seed('oldhost.json', '{"enabled":true}'); + Plugin::purgeUnguarded(); + wpp_ok(! is_file($stray), 'on a single site a config left by an old host name is still removed'); + + // ---------------------------------------------- clear() is per blog (finding 7) + + WPP_Test_State::reset(); + $wipe(); + WPP_Test_State::$multisite = true; + update_option('permalink_structure', '/%postname%/'); + + $minePage = $seed('example.test/about/index.html'); + $theirPage = $seed('other.test/about/index.html'); + $asset = $seed('abc123.css', 'body{}'); + $font = $seed('fonts/inter.woff2', 'font'); + + (new CacheStore())->clear(false); + + wpp_ok(! is_file($minePage), 'clearing purges this blog cached pages'); + wpp_ok(is_file($theirPage), 'clearing on one blog leaves another blog cached pages alone'); + wpp_ok(is_file($asset), 'clearing on one blog keeps the shared generated assets'); + wpp_ok(is_file($font), 'clearing on one blog keeps the shared hosted fonts'); + + // An explicit network flush still takes the whole tree. + (new CacheStore())->clear(false, true); + wpp_ok(! is_file($theirPage), 'a network flush reaches every blog'); + wpp_ok(! is_file($asset), 'a network flush drops the shared assets when assets are not kept'); + + // Single site: one blog owns the tree, so a clear still purges all of it. + WPP_Test_State::reset(); + $wipe(); + $single = $seed('example.test/about/index.html'); + $other = $seed('other.test/about/index.html'); + $keptCss = $seed('abc123.css', 'body{}'); + (new CacheStore())->clear(true); + wpp_ok(! is_file($single), 'a single site clear purges its pages'); + wpp_ok(! is_file($other), 'a single site clear purges a renamed host leftovers'); + wpp_ok(is_file($keptCss), 'keep_assets still preserves generated css'); + + // ---------------------------------------------- network deactivation (finding 4) + + WPP_Test_State::reset(); + $wipe(); + wpp_ok((new DropinInstaller())->install(), 'drop-in installed for the network deactivation case'); + + WPP_Test_State::$multisite = true; + $GLOBALS['wpp_sites'] = [1, 2]; + $GLOBALS['wpp_blog_options'] = [2 => ['active_plugins' => []]]; + // WordPress writes active_sitewide_plugins after the deactivation hook runs. + $GLOBALS['wpp_site_options'] = ['active_sitewide_plugins' => [plugin_basename(WPP_FILE) => 1234]]; + + $networkPage = $seed('other.test/about/index.html'); + + Plugin::onDeactivation(true); + + wpp_ok(! is_file($advanced), 'a network deactivation removes the drop-in'); + wpp_not_contains('WP_CACHE', (string) file_get_contents($config), 'a network deactivation removes our WP_CACHE define'); + wpp_ok(! is_file($networkPage), 'a network deactivation purges every blog cached pages'); + + // A per-blog deactivation while the network activation stands still defers. + $wipe(); + wpp_ok((new DropinInstaller())->install(), 'drop-in reinstalled'); + Plugin::onDeactivation(false); + wpp_ok(is_file($advanced), 'a single blog deactivation leaves a network activated drop-in alone'); + + $GLOBALS['wpp_site_options'] = []; + + // ---------------------------------------------- per blog deactivation (finding 5) + + WPP_Test_State::reset(); + $wipe(); + WPP_Test_State::$multisite = true; + $GLOBALS['wpp_sites'] = [1, 2]; + $GLOBALS['wpp_blog_options'] = [2 => ['active_plugins' => [plugin_basename(WPP_FILE)]]]; + $GLOBALS['wpp_site_options'] = []; + + $settings = new SettingsService(); + $settings->update('cache', ['enabled' => true]); + $runtime = new RuntimeSettings($settings); + $runtime->write(); + + wpp_ok((new DropinInstaller())->install(), 'drop-in installed for the per blog deactivation case'); + $myPage = $seed('example.test/about/index.html'); + $otherPage = $seed('other.test/about/index.html'); + + Plugin::onDeactivation(false); + + $payload = json_decode(RuntimeSettings::payload((string) file_get_contents($runtime->file())), true); + wpp_ok(is_array($payload), 'the runtime config is still valid json after deactivation'); + wpp_same(false, (bool) ($payload['enabled'] ?? false), 'deactivating a blog stops the drop-in serving that blog'); + wpp_ok(! is_file($myPage), 'deactivating a blog purges that blog cached pages'); + wpp_ok(is_file($otherPage), 'deactivating a blog leaves the other blogs cached pages alone'); + wpp_ok(is_file($advanced), 'the shared drop-in stays for the blogs still using it'); + wpp_contains('WP_CACHE', (string) file_get_contents($config), 'wp-config keeps WP_CACHE for the other blogs'); + wpp_same(true, (bool) $settings->get('cache')['enabled'], 'the stored setting is untouched, so reactivation restores it'); + + // ---------------------------------------------- object cache versioning (finding 6) + + WPP_Test_State::reset(); + $wipe(); + + $objectCache = new ObjectCacheInstaller(); + wpp_ok($objectCache->install(), 'object cache drop-in installs'); + wpp_ok($objectCache->installed(), 'the copy is recognised as ours'); + wpp_ok($objectCache->objectCacheInstalled(), 'a fresh copy matches the running version'); + wpp_contains(WPP_VERSION, (string) file_get_contents($object), 'the copy carries a version stamp'); + + // What an install updated from an earlier release has on disk. + file_put_contents($object, "installed(), 'a stale copy is still ours'); + wpp_ok(! $objectCache->objectCacheInstalled(), 'a stale copy is detected as needing a refresh'); + wpp_ok($objectCache->install(), 'a stale copy is refreshed'); + wpp_contains('wp_cache_init', (string) file_get_contents($object), 'the refresh wrote the shipped drop-in'); + wpp_ok($objectCache->objectCacheInstalled(), 'the refresh brings it to the running version'); + + if ($objectCache->available()) { + // Self-heal: an update never runs the activation hook. + file_put_contents($object, "update('tools', ['object_cache' => true]); + + Plugin::syncObjectCache($settings); + $healed = (string) file_get_contents($object); + wpp_contains('wp_cache_init', $healed, 'an update refreshes a stale object cache drop-in'); + wpp_not_contains("'1.0.0'", $healed, 'the stale version stamp is gone'); + wpp_same(true, (bool) $settings->get('tools')['object_cache'], 'the toggle stays on after a refresh'); + + // Drift: the file went away while the toggle still reads on. + @unlink($object); + Plugin::syncObjectCache($settings); + wpp_contains('wp_cache_init', (string) @file_get_contents($object), 'a drop-in removed by something else is reinstalled'); + wpp_ok($objectCache->objectCacheInstalled(), 'the reinstalled drop-in is current'); + + // A foreign drop-in cannot be replaced, so the toggle must not lie. + file_put_contents($object, "get('tools')['object_cache'], 'the toggle goes off when a foreign drop-in owns the file'); + } + + $wipe(); +}; diff --git a/tests/suites/fix-pagecache.php b/tests/suites/fix-pagecache.php new file mode 100644 index 0000000..7de4acf --- /dev/null +++ b/tests/suites/fix-pagecache.php @@ -0,0 +1,136 @@ +setAccessible(true); + + return (bool) $method->invoke($page); + }; + + $_SERVER['REQUEST_URI'] = '/hello-world/'; + $_SERVER['HTTP_HOST'] = 'example.test'; + $_COOKIE = []; + update_option('wpp_cache', ['enabled' => true]); + + wpp_ok($applies(), 'caching applies on a plain anonymous request'); + + // A commenter's render carries the name, email and URL core prefills the + // comment form with, plus their own "awaiting moderation" notices. + $_COOKIE = ['comment_author_77b70d4d' => 'Mallory Evil']; + wpp_ok(! $applies(), 'a comment_author_ cookie keeps the render out of the shared cache'); + + $_COOKIE = ['comment_author_email_77b70d4d' => 'mallory@secret.example']; + wpp_ok(! $applies(), 'a comment_author_email_ cookie keeps the render out of the shared cache'); + + $_COOKIE = ['comment_author_url_77b70d4d' => 'https://mallory.example']; + wpp_ok(! $applies(), 'a comment_author_url_ cookie keeps the render out of the shared cache'); + + // Contract: every cookie prefix the drop-in refuses to serve is a cookie + // prefix the writer must refuse to write, or the render belonging to that + // session becomes the copy handed to everyone else. + $dropin = (string) file_get_contents(WPP_TEST_ROOT . '/advanced-cache.php'); + $found = preg_match('/preg_match\(\'\/\^\(([^)]+)\)\//', $dropin, $m); + wpp_same(1, $found, 'the drop-in cookie bypass regex is readable from the drop-in'); + + foreach (explode('|', $m[1] ?? '') as $prefix) { + $prefix = str_replace('\\', '', $prefix); + if ($prefix === '') { + continue; + } + + // The writer covers this one through is_user_logged_in(), which is the + // condition the cookie stands for. + WPP_Test_State::$loggedIn = $prefix === 'wordpress_logged_in_'; + + $_COOKIE = [$prefix . 'abc123' => 'value']; + wpp_ok(! $applies(), 'writer refuses a session the drop-in refuses to serve: ' . $prefix); + } + + WPP_Test_State::$loggedIn = false; + $_COOKIE = []; + wpp_ok($applies(), 'an ordinary visitor still populates the cache'); + + // ------------------------------------------------ generated nginx rules + + $rules = new ServerRules(); + update_option('permalink_structure', '/%postname%/'); + + $desktop = $rules->nginxRules(['enabled' => true]); + wpp_contains('rewrite ^ $wpp_file last;', $desktop, 'the page cache rewrite is offered when it can be correct'); + wpp_contains('cannot compare file age', $desktop, 'the block says the expiry does not apply to it'); + + // nginx would answer a phone with the desktop file and, because PHP never + // runs, the mobile variant would never be written either. + $mobile = $rules->nginxRules(['enabled' => true, 'mobile' => true]); + wpp_not_contains('rewrite ^ $wpp_file last;', $mobile, 'no rewrite is generated while the mobile cache is on'); + wpp_not_contains('index.html', $mobile, 'no index.html path is generated while the mobile cache is on'); + wpp_contains('mobile cache', $mobile, 'the output says why the rewrite is missing'); + + // With plain permalinks the cached file is a hash of the URL, so the + // $request_uri path can never match anything on disk. + update_option('permalink_structure', ''); + $plain = $rules->nginxRules(['enabled' => true]); + wpp_not_contains('rewrite ^ $wpp_file last;', $plain, 'no rewrite is generated for plain permalinks'); + wpp_contains('plain permalinks', $plain, 'the output says why the rewrite is missing'); + + update_option('permalink_structure', '/%postname%/'); + $gzip = $rules->nginxRules(['gzip' => true, 'browser_cache' => true, 'enabled' => true, 'mobile' => true]); + wpp_contains('gzip on;', $gzip, 'gzip rules are unaffected'); + wpp_contains('expires 30d;', $gzip, 'browser cache rules are unaffected'); + + // ------------------------------------------------ root .htaccess boundary + + $_SERVER['SERVER_SOFTWARE'] = 'Apache/2.4.57'; + $htaccess = ABSPATH . '.htaccess'; + @unlink($htaccess); + + $rules->apply(['browser_cache' => true]); + wpp_ok(is_file($htaccess), 'a single site install writes the expires block'); + wpp_contains('# BEGIN WPP expire', (string) file_get_contents($htaccess), 'the block is written'); + + @unlink($htaccess); + WPP_Test_State::$multisite = true; + WPP_Test_State::$loggedIn = true; + WPP_Test_State::$role = 'administrator'; + + $rules->apply(['browser_cache' => true]); + wpp_ok(! is_file($htaccess), 'a subsite administrator does not write the network root .htaccess'); + + // Deactivating on a subsite must not strip the blocks the network relies on. + file_put_contents($htaccess, "# BEGIN WPP expire\nExpiresActive On\n# END WPP expire\n"); + $rules->removeAll(); + wpp_contains('# BEGIN WPP expire', (string) file_get_contents($htaccess), 'a subsite administrator does not strip the network root .htaccess'); + + WPP_Test_State::$role = 'superadmin'; + $rules->removeAll(); + wpp_not_contains('# BEGIN WPP expire', (string) file_get_contents($htaccess), 'a super admin still clears the blocks'); + + @unlink($htaccess); + WPP_Test_State::$multisite = false; + WPP_Test_State::$loggedIn = false; + WPP_Test_State::$role = 'subscriber'; + unset($_SERVER['SERVER_SOFTWARE']); + delete_option('permalink_structure'); +}; diff --git a/tests/suites/fix-parser.php b/tests/suites/fix-parser.php new file mode 100644 index 0000000..bfca903 --- /dev/null +++ b/tests/suites/fix-parser.php @@ -0,0 +1,282 @@ +/preload pairs. + */ +return static function (): void { + $settings = new SettingsService(); + + $parser = static function () use ($settings): AssetParser { + return new AssetParser( + $settings, + new Minifier(), + new HtmlOptimizer(), + new Collection(), + new FontHost() + ); + }; + + $page = static fn (string $body): string => "{$body}"; + + $reset = static function (): void { + foreach (['wpp_css', 'wpp_js', 'wpp_media', 'wpp_cdn', 'wpp_html'] as $option) { + update_option($option, []); + } + $_SERVER['REQUEST_URI'] = '/'; + $_SERVER['HTTP_HOST'] = 'example.test'; + }; + + $abs = rtrim(ABSPATH, '/') . '/'; + $themes = $abs . 'wp-content/themes/px/'; + $upload = $abs . 'wp-content/uploads/px/'; + @mkdir($themes, 0777, true); + @mkdir($upload, 0777, true); + + // ===================================================================== + // 1. images_exclude_urls is a page-URL control, not an image-src control + // ===================================================================== + $reset(); + $settings->update('media', ['images_lazy' => true, 'images_exclude_urls' => ['/gallery/']]); + + $_SERVER['REQUEST_URI'] = '/gallery/'; + $out = $parser()->parse($page('')); + wpp_not_contains('loading="lazy"', $out, 'an excluded page skips image rewriting entirely'); + + $_SERVER['REQUEST_URI'] = '/blog/'; + $out = $parser()->parse($page('')); + wpp_contains('loading="lazy"', $out, 'other pages are still optimized'); + + // An image-path pattern in the page-URL field must not disable the feature. + $reset(); + $settings->update('media', [ + 'images_lazy' => true, + 'images_exclude_urls' => ['https://example.test/wp-content/uploads/'], + ]); + $_SERVER['REQUEST_URI'] = '/blog/'; + $out = $parser()->parse($page('')); + wpp_contains('loading="lazy"', $out, 'an image path in the page-URL field does not exclude the image'); + + // Exclude by name still matches the src. + $reset(); + $settings->update('media', ['images_lazy' => true, 'images_exclude' => ['hero.jpg']]); + $out = $parser()->parse($page('')); + wpp_not_contains('loading="lazy"', $out, 'exclude-by-name still matches the image src'); + + // ===================================================================== + // 2. CSS url()/@import resolution against a host-less stylesheet URL + // ===================================================================== + $css = new CssMinifier(); + $sheet = '@font-face{font-family:t;src:url(../fonts/theme.woff2) format("woff2")}' + . '.hero{background:url(images/bg.jpg) no-repeat}' + . '@import "more.css";'; + + $resolved = $css->process($sheet, '/wp-content/themes/px/css/style.css'); + wpp_not_contains('http:///', $resolved, 'a host-less source url never yields an empty authority'); + wpp_contains('https://example.test/wp-content/themes/px/fonts/theme.woff2', $resolved, 'font url resolves against the site origin'); + wpp_contains('https://example.test/wp-content/themes/px/css/images/bg.jpg', $resolved, 'background url resolves against the site origin'); + wpp_contains('@import "https://example.test/wp-content/themes/px/css/more.css"', $resolved, '@import resolves against the site origin'); + + // A protocol-relative source keeps the page's scheme. + $relative = $css->process('.a{background:url(bg.png)}', '//example.test/wp-content/themes/px/style.css'); + wpp_contains('https://example.test/wp-content/themes/px/bg.png', $relative, 'protocol-relative source uses the https scheme'); + wpp_not_contains('http://example.test', $relative, 'protocol-relative source is not downgraded to http'); + + // An absolute source url is still honored verbatim. + $external = $css->process('.a{background:url(bg.png)}', 'https://cdn.example.com/t/style.css'); + wpp_contains('https://cdn.example.com/t/bg.png', $external, 'an absolute source url still wins'); + + // The same defect end to end: a minified file must not carry http:/// urls. + $reset(); + file_put_contents($themes . 'style.css', '.hero{background:url(images/bg.jpg)}'); + $settings->update('css', ['minify' => ['/wp-content/themes/px/style.css' => true]]); + $out = $parser()->parse($page('')); + preg_match('#/wpp-cache/([a-f0-9]{32})\.css#', $out, $m); + $cached = $m[1] ?? '' ? (string) file_get_contents(WPP_CACHE_DIR . $m[1] . '.css') : ''; + wpp_ok($cached !== '', 'the minified artifact was written'); + wpp_not_contains('http:///', $cached, 'the cached artifact carries no empty-authority urls'); + + // ===================================================================== + // 3. a bundle that could not be built must not swallow the source tags + // ===================================================================== + $reset(); + file_put_contents($themes . 'a.css', '.a{color:red}'); + $settings->update('css', ['combine' => [ + '/wp-content/themes/px/a.css' => true, + '/wp-content/themes/px/missing.css' => true, + ]]); + + $out = $parser()->parse($page( + '' + . '' + )); + wpp_not_contains('/wpp-cache/', $out, 'an unreadable source aborts the bundle'); + wpp_contains('/wp-content/themes/px/a.css', $out, 'the readable source keeps its own link'); + wpp_contains('/wp-content/themes/px/missing.css', $out, 'the unreadable source keeps its own link'); + + // Scripts get the same treatment. + $reset(); + file_put_contents($themes . 'a.js', 'var a=1;'); + $settings->update('js', ['combine' => [ + '/wp-content/themes/px/a.js' => true, + '/wp-content/themes/px/missing.js' => true, + ]]); + $out = $parser()->parse($page( + '' + . '' + )); + wpp_contains('/wp-content/themes/px/a.js', $out, 'the readable script keeps its own tag'); + wpp_contains('/wp-content/themes/px/missing.js', $out, 'the unreadable script keeps its own tag'); + + // A zero-byte artifact left behind is rebuilt, not re-served. + $reset(); + file_put_contents($themes . 'b.css', '.b{color:blue}'); + $settings->update('css', ['combine' => ['/wp-content/themes/px/b.css' => true]]); + $link = $page(''); + + preg_match('#/wpp-cache/([a-f0-9]{32})\.css#', $parser()->parse($link), $built); + wpp_ok(isset($built[1]), 'the bundle was built'); + $bundle = WPP_CACHE_DIR . ($built[1] ?? 'x') . '.css'; + file_put_contents($bundle, ''); + $parser()->parse($link); + wpp_contains('.b', (string) @file_get_contents($bundle), 'a zero-byte bundle is rebuilt on the next parse'); + + // ===================================================================== + // 4. @import must lead the bundle, or the browser drops it + // ===================================================================== + $reset(); + file_put_contents($themes . 'base.css', '.base{color:red}'); + file_put_contents($themes . 'child.css', '@import url("https://fonts.example.com/inter.css");.child{color:blue}'); + $settings->update('css', ['combine' => [ + '/wp-content/themes/px/base.css' => true, + '/wp-content/themes/px/child.css' => true, + ]]); + + $out = $parser()->parse($page( + '' + . '' + )); + preg_match('#/wpp-cache/([a-f0-9]{32})\.css#', $out, $m); + $bundled = isset($m[1]) ? (string) file_get_contents(WPP_CACHE_DIR . $m[1] . '.css') : ''; + wpp_ok($bundled !== '', 'the bundle was written'); + $importAt = strpos($bundled, '@import'); + $ruleAt = strpos($bundled, '.base'); + wpp_ok($importAt !== false && $ruleAt !== false && $importAt < $ruleAt, '@import leads the combined bundle'); + + // The inlined used-CSS has the same requirement. + $reset(); + file_put_contents($themes . 'u1.css', '.one{color:red}'); + file_put_contents($themes . 'u2.css', '@import url("https://fonts.example.com/inter.css");.two{color:blue}'); + $settings->update('css', ['remove_unused' => true]); + + $out = $parser()->parse( + '' + . '' + . '
      ' + ); + preg_match('##s', $out, $m); + $used = $m[1] ?? ''; + $importAt = strpos($used, '@import'); + $ruleAt = strpos($used, '.one'); + wpp_ok($used !== '', 'used-CSS was inlined'); + wpp_ok($importAt !== false && $ruleAt !== false && $importAt < $ruleAt, '@import leads the inlined used-CSS'); + + // ===================================================================== + // 5 + 10. next-gen must carry sizes and cover the whole srcset + // ===================================================================== + $reset(); + foreach (['hero-300.jpg', 'hero-1200.jpg'] as $name) { + file_put_contents($upload . $name, 'jpg'); + file_put_contents($upload . $name . '.webp', 'webp'); + } + $settings->update('media', ['webp' => true]); + + $img = ''; + $out = $parser()->parse($page($img)); + preg_match('#]*>#', $out, $m); + $source = $m[0] ?? ''; + wpp_contains('type="image/webp"', $source, 'a webp source is emitted'); + wpp_contains('sizes="(max-width: 600px) 300px, 1200px"', $source, 'the source carries the img sizes'); + + // A partial next-gen set would let the browser pick a small file for a + // slot the original srcset covered. + @unlink($upload . 'hero-1200.jpg.webp'); + $out = $parser()->parse($page($img)); + wpp_not_contains('', $out, 'and therefore no picture wrapper'); + file_put_contents($upload . 'hero-1200.jpg.webp', 'webp'); + + // ===================================================================== + // 6. an img already inside a is never wrapped again + // ===================================================================== + $reset(); + file_put_contents($upload . 'art.jpg', 'jpg'); + file_put_contents($upload . 'art.jpg.webp', 'webp'); + file_put_contents($upload . 'art-mobile.jpg', 'jpg'); + $settings->update('media', ['webp' => true, 'images_lazy' => true]); + + $out = $parser()->parse($page( + '' + . '' + )); + wpp_same(1, substr_count($out, ''), 'no nested picture is emitted'); + wpp_contains('media="(max-width:600px)"', $out, 'the page\'s own art-direction source survives'); + wpp_not_contains('data-wpp-picture', $out, 'no marker attribute leaks into the page'); + wpp_contains('loading="lazy"', $out, 'the img inside a picture is still lazy-loaded'); + + // ===================================================================== + // 7 + 11. the LCP preload must name the resource the picture will select + // ===================================================================== + $reset(); + file_put_contents($upload . 'lcp.jpg', 'jpg'); + file_put_contents($upload . 'lcp.jpg.webp', 'webp'); + $settings->update('media', ['webp' => true, 'lcp_images' => 1]); + + $out = $parser()->parse($page('')); + preg_match('#]*>#', $out, $m); + $preload = $m[0] ?? ''; + wpp_contains('href="/wp-content/uploads/px/lcp.jpg.webp"', $preload, 'the preload names the next-gen file'); + wpp_contains('type="image/webp"', $preload, 'the preload declares the next-gen type'); + + // Without a next-gen sibling the origin file is still preloaded. + $reset(); + file_put_contents($upload . 'plain.jpg', 'jpg'); + $settings->update('media', ['webp' => true, 'lcp_images' => 1]); + $out = $parser()->parse($page('')); + wpp_contains('href="/wp-content/uploads/px/plain.jpg"', $out, 'an unconverted LCP image preloads its own url'); + + // ===================================================================== + // 8. a query string must survive the next-gen extension swap + // ===================================================================== + $reset(); + $settings->update('media', ['webp' => true]); + $out = $parser()->parse($page('')); + wpp_contains('srcset="/wp-content/uploads/px/lcp.jpg.webp?ver=4.2"', $out, 'the extension is inserted before the query'); + wpp_not_contains('lcp.jpg?ver=4.2.webp', $out, 'the extension never lands inside the query string'); + + // ===================================================================== + // 9. an individually deferred stylesheet keeps a noscript fallback + // ===================================================================== + $reset(); + $settings->update('css', ['defer' => true]); + + $out = $parser()->parse($page('')); + wpp_contains('