From 4c0c9b28efeb800c879147d15912f1b2ed9096d8 Mon Sep 17 00:00:00 2001 From: ConnorYoh <40631091+ConnorYoh@users.noreply.github.com> Date: Wed, 5 Nov 2025 11:44:59 +0000 Subject: [PATCH] V2 Tauri integration (#3854) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # Description of Changes Please provide a summary of the changes, including: ## Add PDF File Association Support for Tauri App ### ๐ŸŽฏ **Features Added** - PDF file association configuration in Tauri - Command line argument detection for opened files - Automatic file loading when app is launched via "Open with" - Cross-platform support (Windows/macOS) ### ๐Ÿ”ง **Technical Changes** - Added `fileAssociations` in `tauri.conf.json` for PDF files - New `get_opened_file` Tauri command to detect file arguments - `fileOpenService` with Tauri fs plugin integration - `useOpenedFile` hook for React integration - Improved backend health logging during startup (reduced noise) ### ๐Ÿงช **Testing** See * https://v2.tauri.app/start/prerequisites/ * [DesktopApplicationDevelopmentGuide.md](DesktopApplicationDevelopmentGuide.md) ```bash # Test file association during development: cd frontend npm install cargo tauri dev --no-watch -- -- "path/to/file.pdf" ``` For production testing: 1. Build: npm run tauri build 2. Install the built app 3. Right-click PDF โ†’ "Open with" โ†’ Stirling-PDF ๐Ÿš€ User Experience - Users can now double-click PDF files to open them directly in Stirling-PDF - Files automatically load in the viewer when opened via file association - Seamless integration with OS file handling --- ## Checklist ### General - [ ] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [ ] I have read the [Stirling-PDF Developer Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md) (if applicable) - [ ] I have read the [How to add new languages to Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md) (if applicable) - [ ] I have performed a self-review of my own code - [ ] My changes generate no new warnings ### Documentation - [ ] I have updated relevant docs on [Stirling-PDF's doc repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/) (if functionality has heavily changed) - [ ] I have read the section [Add New Translation Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md#add-new-translation-tags) (for new translation tags only) ### UI Changes (if applicable) - [ ] Screenshots or videos demonstrating the UI changes are attached (e.g., as comments or direct attachments in the PR) ### Testing (if applicable) - [ ] I have tested my changes locally. Refer to the [Testing Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md#6-testing) for more details. --------- Co-authored-by: Connor Yoh Co-authored-by: James Brunton Co-authored-by: James Brunton --- .github/config/dependency-review-config.yml | 1 + .github/workflows/dependency-review.yml | 2 + .github/workflows/tauri-build.yml | 334 + DeveloperGuide.md | 30 +- app/core/build.gradle | 1 - .../software/SPDF/SPDFApplication.java | 7 + .../SPDF/config/TauriProcessMonitor.java | 157 + .../software/SPDF/config/WebMvcConfig.java | 48 +- docker/frontend/entrypoint.sh | 2 +- frontend/README.md | 56 + frontend/eslint.config.mjs | 1 + frontend/package-lock.json | 2853 +++++---- frontend/package.json | 10 +- .../public/locales/en-GB/translation.json | 5 + frontend/src-tauri/.gitignore | 5 + frontend/src-tauri/Cargo.lock | 5686 +++++++++++++++++ frontend/src-tauri/Cargo.toml | 35 + frontend/src-tauri/build.rs | 3 + frontend/src-tauri/capabilities/default.json | 15 + frontend/src-tauri/icons/128x128.png | Bin 0 -> 9419 bytes frontend/src-tauri/icons/128x128@2x.png | Bin 0 -> 19937 bytes frontend/src-tauri/icons/16x16.png | Bin 0 -> 829 bytes frontend/src-tauri/icons/192x192.png | Bin 0 -> 4161 bytes frontend/src-tauri/icons/32x32.png | Bin 0 -> 1972 bytes frontend/src-tauri/icons/64x64.png | Bin 0 -> 4484 bytes .../src-tauri/icons/Square107x107Logo.png | Bin 0 -> 7771 bytes .../src-tauri/icons/Square142x142Logo.png | Bin 0 -> 10631 bytes .../src-tauri/icons/Square150x150Logo.png | Bin 0 -> 11218 bytes .../src-tauri/icons/Square284x284Logo.png | Bin 0 -> 23078 bytes frontend/src-tauri/icons/Square30x30Logo.png | Bin 0 -> 1866 bytes .../src-tauri/icons/Square310x310Logo.png | Bin 0 -> 25392 bytes frontend/src-tauri/icons/Square44x44Logo.png | Bin 0 -> 2935 bytes frontend/src-tauri/icons/Square71x71Logo.png | Bin 0 -> 5040 bytes frontend/src-tauri/icons/Square89x89Logo.png | Bin 0 -> 6430 bytes frontend/src-tauri/icons/StoreLogo.png | Bin 0 -> 3342 bytes .../icons/android-chrome-192x192.png | Bin 0 -> 4161 bytes .../icons/android-chrome-512x512.png | Bin 0 -> 9419 bytes .../icons/android/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3285 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 0 -> 12297 bytes .../android/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 3285 bytes .../icons/android/mipmap-mdpi/ic_launcher.png | Bin 0 -> 3153 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 0 -> 7915 bytes .../android/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 3153 bytes .../android/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 6916 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 0 -> 17073 bytes .../mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 6916 bytes .../android/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 10841 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 0 -> 26793 bytes .../mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 10841 bytes .../android/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 14981 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 0 -> 36416 bytes .../mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 14981 bytes frontend/src-tauri/icons/icon.icns | Bin 0 -> 224299 bytes frontend/src-tauri/icons/icon.ico | Bin 0 -> 32371 bytes frontend/src-tauri/icons/icon.png | Bin 0 -> 19631 bytes frontend/src-tauri/icons/icon_orig.png | Bin 0 -> 8860 bytes .../src-tauri/icons/ios/AppIcon-20x20@1x.png | Bin 0 -> 1052 bytes .../icons/ios/AppIcon-20x20@2x-1.png | Bin 0 -> 2433 bytes .../src-tauri/icons/ios/AppIcon-20x20@2x.png | Bin 0 -> 2433 bytes .../src-tauri/icons/ios/AppIcon-20x20@3x.png | Bin 0 -> 3883 bytes .../src-tauri/icons/ios/AppIcon-29x29@1x.png | Bin 0 -> 1679 bytes .../icons/ios/AppIcon-29x29@2x-1.png | Bin 0 -> 3761 bytes .../src-tauri/icons/ios/AppIcon-29x29@2x.png | Bin 0 -> 3761 bytes .../src-tauri/icons/ios/AppIcon-29x29@3x.png | Bin 0 -> 5833 bytes .../src-tauri/icons/ios/AppIcon-40x40@1x.png | Bin 0 -> 2433 bytes .../icons/ios/AppIcon-40x40@2x-1.png | Bin 0 -> 5351 bytes .../src-tauri/icons/ios/AppIcon-40x40@2x.png | Bin 0 -> 5351 bytes .../src-tauri/icons/ios/AppIcon-40x40@3x.png | Bin 0 -> 8295 bytes .../src-tauri/icons/ios/AppIcon-512@2x.png | Bin 0 -> 113791 bytes .../src-tauri/icons/ios/AppIcon-60x60@2x.png | Bin 0 -> 8295 bytes .../src-tauri/icons/ios/AppIcon-60x60@3x.png | Bin 0 -> 12622 bytes .../src-tauri/icons/ios/AppIcon-76x76@1x.png | Bin 0 -> 5068 bytes .../src-tauri/icons/ios/AppIcon-76x76@2x.png | Bin 0 -> 10586 bytes .../icons/ios/AppIcon-83.5x83.5@2x.png | Bin 0 -> 11649 bytes frontend/src-tauri/icons/mstile-144x144.png | Bin 0 -> 3368 bytes frontend/src-tauri/icons/mstile-150x150.png | Bin 0 -> 3312 bytes frontend/src-tauri/icons/mstile-310x150.png | Bin 0 -> 3504 bytes frontend/src-tauri/icons/mstile-310x310.png | Bin 0 -> 5947 bytes frontend/src-tauri/icons/mstile-70x70.png | Bin 0 -> 2733 bytes frontend/src-tauri/icons/rainbow.svg | 1 + frontend/src-tauri/src/commands/backend.rs | 379 ++ frontend/src-tauri/src/commands/files.rs | 48 + frontend/src-tauri/src/commands/health.rs | 36 + frontend/src-tauri/src/commands/mod.rs | 7 + frontend/src-tauri/src/file_handler.rs | 189 + frontend/src-tauri/src/lib.rs | 65 + frontend/src-tauri/src/main.rs | 6 + frontend/src-tauri/src/utils/logging.rs | 90 + frontend/src-tauri/src/utils/mod.rs | 3 + frontend/src-tauri/stirling-pdf.desktop | 14 + frontend/src-tauri/tauri.conf.json | 63 + .../rightRail/RightRailFooterExtensions.tsx | 7 + .../src/core/components/shared/RightRail.tsx | 3 + .../components/shared/rightRail/RightRail.css | 3 + frontend/src/core/pages/HomePage.tsx | 9 +- .../src/core/pages/useHomePageExtensions.ts | 10 + frontend/src/core/services/apiClient.ts | 3 +- frontend/src/core/services/apiClientConfig.ts | 7 + frontend/src/desktop/auth/UseSession.tsx | 234 + frontend/src/desktop/auth/springAuthClient.ts | 437 ++ .../components/BackendHealthIndicator.tsx | 80 + .../rightRail/RightRailFooterExtensions.tsx | 23 + .../src/desktop/contexts/AppConfigContext.tsx | 135 + .../src/desktop/hooks/useBackendHealth.ts | 91 + .../desktop/hooks/useBackendInitializer.ts | 40 + .../src/desktop/hooks/useEndpointConfig.ts | 126 + frontend/src/desktop/hooks/useOpenedFile.ts | 47 + .../desktop/pages/useHomePageExtensions.ts | 26 + frontend/src/desktop/routes/Landing.tsx | 95 + .../src/desktop/services/apiClientConfig.ts | 17 + .../src/desktop/services/fileOpenService.ts | 147 + .../desktop/services/tauriBackendService.ts | 61 + frontend/tsconfig.core.json | 1 + frontend/tsconfig.desktop.json | 18 + frontend/tsconfig.json | 6 +- frontend/tsconfig.proprietary.json | 6 +- frontend/vite.config.ts | 72 +- frontend/vitest.config.ts | 79 +- scripts/build-tauri-jlink.bat | 134 + scripts/build-tauri-jlink.sh | 230 + 120 files changed, 11005 insertions(+), 1294 deletions(-) create mode 100644 .github/config/dependency-review-config.yml create mode 100644 .github/workflows/tauri-build.yml create mode 100644 app/core/src/main/java/stirling/software/SPDF/config/TauriProcessMonitor.java create mode 100644 frontend/src-tauri/.gitignore create mode 100644 frontend/src-tauri/Cargo.lock create mode 100644 frontend/src-tauri/Cargo.toml create mode 100644 frontend/src-tauri/build.rs create mode 100644 frontend/src-tauri/capabilities/default.json create mode 100644 frontend/src-tauri/icons/128x128.png create mode 100644 frontend/src-tauri/icons/128x128@2x.png create mode 100644 frontend/src-tauri/icons/16x16.png create mode 100644 frontend/src-tauri/icons/192x192.png create mode 100644 frontend/src-tauri/icons/32x32.png create mode 100644 frontend/src-tauri/icons/64x64.png create mode 100644 frontend/src-tauri/icons/Square107x107Logo.png create mode 100644 frontend/src-tauri/icons/Square142x142Logo.png create mode 100644 frontend/src-tauri/icons/Square150x150Logo.png create mode 100644 frontend/src-tauri/icons/Square284x284Logo.png create mode 100644 frontend/src-tauri/icons/Square30x30Logo.png create mode 100644 frontend/src-tauri/icons/Square310x310Logo.png create mode 100644 frontend/src-tauri/icons/Square44x44Logo.png create mode 100644 frontend/src-tauri/icons/Square71x71Logo.png create mode 100644 frontend/src-tauri/icons/Square89x89Logo.png create mode 100644 frontend/src-tauri/icons/StoreLogo.png create mode 100644 frontend/src-tauri/icons/android-chrome-192x192.png create mode 100644 frontend/src-tauri/icons/android-chrome-512x512.png create mode 100644 frontend/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png create mode 100644 frontend/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png create mode 100644 frontend/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png create mode 100644 frontend/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png create mode 100644 frontend/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png create mode 100644 frontend/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png create mode 100644 frontend/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png create mode 100644 frontend/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png create mode 100644 frontend/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png create mode 100644 frontend/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png create mode 100644 frontend/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png create mode 100644 frontend/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 frontend/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png create mode 100644 frontend/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png create mode 100644 frontend/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 frontend/src-tauri/icons/icon.icns create mode 100644 frontend/src-tauri/icons/icon.ico create mode 100644 frontend/src-tauri/icons/icon.png create mode 100644 frontend/src-tauri/icons/icon_orig.png create mode 100644 frontend/src-tauri/icons/ios/AppIcon-20x20@1x.png create mode 100644 frontend/src-tauri/icons/ios/AppIcon-20x20@2x-1.png create mode 100644 frontend/src-tauri/icons/ios/AppIcon-20x20@2x.png create mode 100644 frontend/src-tauri/icons/ios/AppIcon-20x20@3x.png create mode 100644 frontend/src-tauri/icons/ios/AppIcon-29x29@1x.png create mode 100644 frontend/src-tauri/icons/ios/AppIcon-29x29@2x-1.png create mode 100644 frontend/src-tauri/icons/ios/AppIcon-29x29@2x.png create mode 100644 frontend/src-tauri/icons/ios/AppIcon-29x29@3x.png create mode 100644 frontend/src-tauri/icons/ios/AppIcon-40x40@1x.png create mode 100644 frontend/src-tauri/icons/ios/AppIcon-40x40@2x-1.png create mode 100644 frontend/src-tauri/icons/ios/AppIcon-40x40@2x.png create mode 100644 frontend/src-tauri/icons/ios/AppIcon-40x40@3x.png create mode 100644 frontend/src-tauri/icons/ios/AppIcon-512@2x.png create mode 100644 frontend/src-tauri/icons/ios/AppIcon-60x60@2x.png create mode 100644 frontend/src-tauri/icons/ios/AppIcon-60x60@3x.png create mode 100644 frontend/src-tauri/icons/ios/AppIcon-76x76@1x.png create mode 100644 frontend/src-tauri/icons/ios/AppIcon-76x76@2x.png create mode 100644 frontend/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png create mode 100644 frontend/src-tauri/icons/mstile-144x144.png create mode 100644 frontend/src-tauri/icons/mstile-150x150.png create mode 100644 frontend/src-tauri/icons/mstile-310x150.png create mode 100644 frontend/src-tauri/icons/mstile-310x310.png create mode 100644 frontend/src-tauri/icons/mstile-70x70.png create mode 100644 frontend/src-tauri/icons/rainbow.svg create mode 100644 frontend/src-tauri/src/commands/backend.rs create mode 100644 frontend/src-tauri/src/commands/files.rs create mode 100644 frontend/src-tauri/src/commands/health.rs create mode 100644 frontend/src-tauri/src/commands/mod.rs create mode 100644 frontend/src-tauri/src/file_handler.rs create mode 100644 frontend/src-tauri/src/lib.rs create mode 100644 frontend/src-tauri/src/main.rs create mode 100644 frontend/src-tauri/src/utils/logging.rs create mode 100644 frontend/src-tauri/src/utils/mod.rs create mode 100644 frontend/src-tauri/stirling-pdf.desktop create mode 100644 frontend/src-tauri/tauri.conf.json create mode 100644 frontend/src/core/components/rightRail/RightRailFooterExtensions.tsx create mode 100644 frontend/src/core/pages/useHomePageExtensions.ts create mode 100644 frontend/src/core/services/apiClientConfig.ts create mode 100644 frontend/src/desktop/auth/UseSession.tsx create mode 100644 frontend/src/desktop/auth/springAuthClient.ts create mode 100644 frontend/src/desktop/components/BackendHealthIndicator.tsx create mode 100644 frontend/src/desktop/components/rightRail/RightRailFooterExtensions.tsx create mode 100644 frontend/src/desktop/contexts/AppConfigContext.tsx create mode 100644 frontend/src/desktop/hooks/useBackendHealth.ts create mode 100644 frontend/src/desktop/hooks/useBackendInitializer.ts create mode 100644 frontend/src/desktop/hooks/useEndpointConfig.ts create mode 100644 frontend/src/desktop/hooks/useOpenedFile.ts create mode 100644 frontend/src/desktop/pages/useHomePageExtensions.ts create mode 100644 frontend/src/desktop/routes/Landing.tsx create mode 100644 frontend/src/desktop/services/apiClientConfig.ts create mode 100644 frontend/src/desktop/services/fileOpenService.ts create mode 100644 frontend/src/desktop/services/tauriBackendService.ts create mode 100644 frontend/tsconfig.desktop.json create mode 100644 scripts/build-tauri-jlink.bat create mode 100755 scripts/build-tauri-jlink.sh diff --git a/.github/config/dependency-review-config.yml b/.github/config/dependency-review-config.yml new file mode 100644 index 0000000000..5df58cdb9a --- /dev/null +++ b/.github/config/dependency-review-config.yml @@ -0,0 +1 @@ +allow-ghsas: GHSA-wrw7-89jp-8q8g \ No newline at end of file diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml index b2a66c2b6e..a35b32c15c 100644 --- a/.github/workflows/dependency-review.yml +++ b/.github/workflows/dependency-review.yml @@ -25,3 +25,5 @@ jobs: uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - name: "Dependency Review" uses: actions/dependency-review-action@56339e523c0409420f6c2c9a2f4292bbb3c07dd3 # v4.8.0 + with: + config-file: './.github/config/dependency-review-config.yml' diff --git a/.github/workflows/tauri-build.yml b/.github/workflows/tauri-build.yml new file mode 100644 index 0000000000..d56c462d05 --- /dev/null +++ b/.github/workflows/tauri-build.yml @@ -0,0 +1,334 @@ +name: Build Tauri Applications + +on: + workflow_dispatch: + inputs: + platform: + description: "Platform to build (windows, macos, linux, or all)" + required: true + default: "all" + type: choice + options: + - all + - windows + - macos + - linux + pull_request: + branches: [main, V2] + paths: + - 'frontend/src-tauri/**' + - 'frontend/src/**' + - 'frontend/package.json' + - 'frontend/package-lock.json' + - '.github/workflows/tauri-build.yml' + push: + branches: [main, V2] + paths: + - 'frontend/src-tauri/**' + - 'frontend/src/**' + - 'frontend/package.json' + - 'frontend/package-lock.json' + - '.github/workflows/tauri-build.yml' + +permissions: + contents: read + +jobs: + determine-matrix: + runs-on: ubuntu-latest + outputs: + matrix: ${{ steps.set-matrix.outputs.matrix }} + steps: + - name: Determine build matrix + id: set-matrix + run: | + if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then + case "${{ github.event.inputs.platform }}" in + "windows") + echo 'matrix={"include":[{"platform":"windows-latest","args":"--target x86_64-pc-windows-msvc","name":"windows-x86_64"}]}' >> $GITHUB_OUTPUT + ;; + # "macos") + # echo 'matrix={"include":[{"platform":"macos-latest","args":"--target aarch64-apple-darwin","name":"macos-aarch64"},{"platform":"macos-13","args":"--target x86_64-apple-darwin","name":"macos-x86_64"}]}' >> $GITHUB_OUTPUT + # ;; + "linux") + echo 'matrix={"include":[{"platform":"ubuntu-22.04","args":"","name":"linux-x86_64"}]}' >> $GITHUB_OUTPUT + ;; + *) + echo 'matrix={"include":[{"platform":"windows-latest","args":"--target x86_64-pc-windows-msvc","name":"windows-x86_64"},{"platform":"ubuntu-22.04","args":"","name":"linux-x86_64"}]}' >> $GITHUB_OUTPUT + # Disabled Mac builds: {"platform":"macos-latest","args":"--target aarch64-apple-darwin","name":"macos-aarch64"},{"platform":"macos-13","args":"--target x86_64-apple-darwin","name":"macos-x86_64"} + ;; + esac + else + # For PR/push events, build all platforms + echo 'matrix={"include":[{"platform":"windows-latest","args":"--target x86_64-pc-windows-msvc","name":"windows-x86_64"},{"platform":"ubuntu-22.04","args":"","name":"linux-x86_64"}]}' >> $GITHUB_OUTPUT + # Disabled Mac builds: {"platform":"macos-latest","args":"--target aarch64-apple-darwin","name":"macos-aarch64"},{"platform":"macos-13","args":"--target x86_64-apple-darwin","name":"macos-x86_64"} + fi + + build: + needs: determine-matrix + strategy: + fail-fast: false + matrix: ${{ fromJson(needs.determine-matrix.outputs.matrix) }} + runs-on: ${{ matrix.platform }} + steps: + - name: Harden Runner + uses: step-security/harden-runner@002fdce3c6a235733a90a27c80493a3241e56863 # v2.12.1 + with: + egress-policy: audit + + - name: Checkout repository + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + + - name: Install dependencies (ubuntu only) + if: matrix.platform == 'ubuntu-22.04' + run: | + sudo apt-get update + sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf libjavascriptcoregtk-4.0-dev libsoup2.4-dev libjavascriptcoregtk-4.1-dev libsoup-3.0-dev + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: 'npm' + cache-dependency-path: frontend/package-lock.json + + - name: Setup Rust + uses: dtolnay/rust-toolchain@stable + with: + toolchain: stable + targets: ${{ (matrix.platform == 'macos-latest' || matrix.platform == 'macos-13') && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }} + + + + - name: Set up JDK 21 + uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1 + with: + java-version: "21" + distribution: "temurin" + + - name: Build Java backend with JLink + working-directory: ./ + shell: bash + run: | + chmod +x ./gradlew + echo "๐Ÿ”ง Building Stirling-PDF JAR..." + # STIRLING_PDF_DESKTOP_UI=false ./gradlew clean bootJar --no-daemon + ./gradlew clean build -x spotlessApply -x spotlessCheck -x test -x sonarqube + + # Find the built JAR + STIRLING_JAR=$(ls app/core/build/libs/stirling-pdf-*.jar | head -n 1) + echo "โœ… Built JAR: $STIRLING_JAR" + + # Create Tauri directories + mkdir -p ./frontend/src-tauri/libs + mkdir -p ./frontend/src-tauri/runtime + + # Copy JAR to Tauri libs + cp "$STIRLING_JAR" ./frontend/src-tauri/libs/ + echo "โœ… JAR copied to Tauri libs" + + # Analyze JAR dependencies for jlink modules + echo "๐Ÿ” Analyzing JAR dependencies..." + if command -v jdeps &> /dev/null; then + DETECTED_MODULES=$(jdeps --print-module-deps --ignore-missing-deps "$STIRLING_JAR" 2>/dev/null || echo "") + if [ -n "$DETECTED_MODULES" ]; then + echo "๐Ÿ“‹ jdeps detected modules: $DETECTED_MODULES" + MODULES="$DETECTED_MODULES,java.compiler,java.instrument,java.management,java.naming,java.net.http,java.prefs,java.rmi,java.scripting,java.security.jgss,java.security.sasl,java.sql,java.transaction.xa,java.xml.crypto,jdk.crypto.ec,jdk.crypto.cryptoki,jdk.unsupported" + else + echo "โš ๏ธ jdeps analysis failed, using predefined modules" + MODULES="java.base,java.compiler,java.desktop,java.instrument,java.logging,java.management,java.naming,java.net.http,java.prefs,java.rmi,java.scripting,java.security.jgss,java.security.sasl,java.sql,java.transaction.xa,java.xml,java.xml.crypto,jdk.crypto.ec,jdk.crypto.cryptoki,jdk.unsupported" + fi + else + echo "โš ๏ธ jdeps not available, using predefined modules" + MODULES="java.base,java.compiler,java.desktop,java.instrument,java.logging,java.management,java.naming,java.net.http,java.prefs,java.rmi,java.scripting,java.security.jgss,java.security.sasl,java.sql,java.transaction.xa,java.xml,java.xml.crypto,jdk.crypto.ec,jdk.crypto.cryptoki,jdk.unsupported" + fi + + # Create custom JRE with jlink (always rebuild) + echo "๐Ÿ”ง Creating custom JRE with jlink..." + echo "๐Ÿ“‹ Using modules: $MODULES" + + # Remove any existing JRE + rm -rf ./frontend/src-tauri/runtime/jre + + # Create the custom JRE + jlink \ + --add-modules "$MODULES" \ + --strip-debug \ + --compress=2 \ + --no-header-files \ + --no-man-pages \ + --output ./frontend/src-tauri/runtime/jre + + if [ ! -d "./frontend/src-tauri/runtime/jre" ]; then + echo "โŒ Failed to create JLink runtime" + exit 1 + fi + + # Test the bundled runtime + if [ -f "./frontend/src-tauri/runtime/jre/bin/java" ]; then + RUNTIME_VERSION=$(./frontend/src-tauri/runtime/jre/bin/java --version 2>&1 | head -n 1) + echo "โœ… Custom JRE created successfully: $RUNTIME_VERSION" + else + echo "โŒ Custom JRE executable not found" + exit 1 + fi + + # Calculate runtime size + RUNTIME_SIZE=$(du -sh ./frontend/src-tauri/runtime/jre | cut -f1) + echo "๐Ÿ“Š Custom JRE size: $RUNTIME_SIZE" + env: + DISABLE_ADDITIONAL_FEATURES: true + + - name: Install frontend dependencies + working-directory: ./frontend + run: npm install + + # Disabled Mac builds - Import Apple Developer Certificate + # - name: Import Apple Developer Certificate + # if: matrix.platform == 'macos-latest' || matrix.platform == 'macos-13' + # env: + # APPLE_ID: ${{ secrets.APPLE_ID }} + # APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} + # APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }} + # APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} + # KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} + # run: | + # echo "Importing Apple Developer Certificate..." + # echo $APPLE_CERTIFICATE | base64 --decode > certificate.p12 + # security create-keychain -p "$KEYCHAIN_PASSWORD" build.keychain + # security default-keychain -s build.keychain + # security unlock-keychain -p "$KEYCHAIN_PASSWORD" build.keychain + # security set-keychain-settings -t 3600 -u build.keychain + # security import certificate.p12 -k build.keychain -P "$APPLE_CERTIFICATE_PASSWORD" -T /usr/bin/codesign + # security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k "$KEYCHAIN_PASSWORD" build.keychain + # security find-identity -v -p codesigning build.keychain + # - name: Verify Certificate + # if: matrix.platform == 'macos-latest' || matrix.platform == 'macos-13' + # run: | + # echo "Verifying Apple Developer Certificate..." + # CERT_INFO=$(security find-identity -v -p codesigning build.keychain | grep "Developer ID Application") + # echo "Certificate Info: $CERT_INFO" + # CERT_ID=$(echo "$CERT_INFO" | awk -F'"' '{print $2}') + # echo "Certificate ID: $CERT_ID" + # echo "CERT_ID=$CERT_ID" >> $GITHUB_ENV + # echo "Certificate imported." + + # - name: Check DMG creation dependencies (macOS only) + # if: matrix.platform == 'macos-latest' || matrix.platform == 'macos-13' + # run: | + # echo "๐Ÿ” Checking DMG creation dependencies on ${{ matrix.platform }}..." + # echo "hdiutil version: $(hdiutil --version || echo 'NOT FOUND')" + # echo "create-dmg availability: $(which create-dmg || echo 'NOT FOUND')" + # echo "Available disk space: $(df -h /tmp | tail -1)" + # echo "macOS version: $(sw_vers -productVersion)" + # echo "Available tools:" + # ls -la /usr/bin/hd* || echo "No hd* tools found" + + - name: Build Tauri app + uses: tauri-apps/tauri-action@v0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }} + APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} + APPLE_SIGNING_IDENTITY: ${{ env.CERT_ID }} + APPLE_ID: ${{ secrets.APPLE_ID }} + APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} + APPLE_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} + APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} + APPIMAGETOOL_SIGN_PASSPHRASE: ${{ secrets.APPIMAGETOOL_SIGN_PASSPHRASE }} + SIGN: 1 + CI: true + with: + projectPath: ./frontend + tauriScript: npx tauri + args: ${{ matrix.args }} + + - name: Rename artifacts + shell: bash + run: | + mkdir -p ./dist + cd ./frontend/src-tauri/target + + # Find and rename artifacts based on platform + if [ "${{ matrix.platform }}" = "windows-latest" ]; then + find . -name "*.exe" -exec cp {} "../../../dist/Stirling-PDF-${{ matrix.name }}.exe" \; + find . -name "*.msi" -exec cp {} "../../../dist/Stirling-PDF-${{ matrix.name }}.msi" \; + # Disabled Mac builds + # elif [ "${{ matrix.platform }}" = "macos-latest" ] || [ "${{ matrix.platform }}" = "macos-13" ]; then + # find . -name "*.dmg" -exec cp {} "../../../dist/Stirling-PDF-${{ matrix.name }}.dmg" \; + # find . -name "*.app" -exec cp -r {} "../../../dist/Stirling-PDF-${{ matrix.name }}.app" \; + else + find . -name "*.deb" -exec cp {} "../../../dist/Stirling-PDF-${{ matrix.name }}.deb" \; + find . -name "*.AppImage" -exec cp {} "../../../dist/Stirling-PDF-${{ matrix.name }}.AppImage" \; + fi + + - name: Upload artifacts + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + with: + name: Stirling-PDF-${{ matrix.name }} + path: ./dist/* + retention-days: 7 + + - name: Verify build artifacts + shell: bash + run: | + cd ./frontend/src-tauri/target + + # Check for expected artifacts based on platform + if [ "${{ matrix.platform }}" = "windows-latest" ]; then + echo "Checking for Windows artifacts..." + find . -name "*.exe" -o -name "*.msi" | head -5 + if [ $(find . -name "*.exe" | wc -l) -eq 0 ]; then + echo "โŒ No Windows executable found" + exit 1 + fi + # Disabled Mac builds + # elif [ "${{ matrix.platform }}" = "macos-latest" ] || [ "${{ matrix.platform }}" = "macos-13" ]; then + # echo "Checking for macOS artifacts..." + # find . -name "*.dmg" -o -name "*.app" | head -5 + # if [ $(find . -name "*.dmg" -o -name "*.app" | wc -l) -eq 0 ]; then + # echo "โŒ No macOS artifacts found" + # exit 1 + # fi + else + echo "Checking for Linux artifacts..." + find . -name "*.deb" -o -name "*.AppImage" | head -5 + if [ $(find . -name "*.deb" -o -name "*.AppImage" | wc -l) -eq 0 ]; then + echo "โŒ No Linux artifacts found" + exit 1 + fi + fi + + echo "โœ… Build artifacts found for ${{ matrix.name }}" + + - name: Test artifact sizes + shell: bash + run: | + cd ./frontend/src-tauri/target + echo "Artifact sizes for ${{ matrix.name }}:" + find . -name "*.exe" -o -name "*.dmg" -o -name "*.deb" -o -name "*.AppImage" -o -name "*.msi" | while read file; do + if [ -f "$file" ]; then + size=$(stat -c%s "$file" 2>/dev/null || stat -f%z "$file" 2>/dev/null || echo "unknown") + echo "$file: $size bytes" + # Check if file is suspiciously small (less than 1MB) + if [ "$size" != "unknown" ] && [ "$size" -lt 1048576 ]; then + echo "โš ๏ธ Warning: $file is smaller than 1MB" + fi + fi + done + + report: + needs: build + runs-on: ubuntu-latest + if: always() + steps: + - name: Report build results + run: | + if [ "${{ needs.build.result }}" = "success" ]; then + echo "โœ… All Tauri builds completed successfully!" + echo "Artifacts are ready for distribution." + else + echo "โŒ Some Tauri builds failed." + echo "Please check the logs and fix any issues." + exit 1 + fi \ No newline at end of file diff --git a/DeveloperGuide.md b/DeveloperGuide.md index 0728a1cdce..06eef471c2 100644 --- a/DeveloperGuide.md +++ b/DeveloperGuide.md @@ -32,6 +32,12 @@ This guide focuses on developing for Stirling 2.0, including both the React fron - Docker for containerization - Gradle for build management +**Desktop Application (Tauri):** +- Tauri for cross-platform desktop app packaging +- Rust backend for system integration +- PDF file association support +- Self-contained JRE bundling with JLink + **Legacy (reference only during development):** - Thymeleaf templates (being completely replaced in 2.0) @@ -44,6 +50,8 @@ This guide focuses on developing for Stirling 2.0, including both the React fron - Java JDK 17 or later (JDK 21 recommended) - Node.js 18+ and npm (required for frontend development) - Gradle 7.0 or later (Included within the repo) +- Rust and Cargo (required for Tauri desktop app development) +- Tauri CLI (install with `cargo install tauri-cli`) ### Setup Steps @@ -95,6 +103,10 @@ Stirling 2.0 uses client-side file storage: ### Legacy Code Reference The existing Thymeleaf templates remain in the codebase during development as reference material but will be completely removed for the 2.0 release. +### Tauri Desktop App Development +Stirling-PDF can be packaged as a cross-platform desktop application using Tauri with PDF file association support and bundled JRE. +See [the frontend README](frontend/README.md#tauri) for build instructions. + ## 5. Project Structure ```bash @@ -109,6 +121,12 @@ Stirling-PDF/ โ”‚ โ”‚ โ”œโ”€โ”€ services/ # API and utility services โ”‚ โ”‚ โ”œโ”€โ”€ types/ # TypeScript type definitions โ”‚ โ”‚ โ””โ”€โ”€ utils/ # Utility functions +โ”‚ โ”œโ”€โ”€ src-tauri/ # Tauri desktop app configuration +โ”‚ โ”‚ โ”œโ”€โ”€ src/ # Rust backend code +โ”‚ โ”‚ โ”œโ”€โ”€ libs/ # JAR files (generated by build scripts) +โ”‚ โ”‚ โ”œโ”€โ”€ runtime/ # Bundled JRE (generated by build scripts) +โ”‚ โ”‚ โ”œโ”€โ”€ Cargo.toml # Rust dependencies +โ”‚ โ”‚ โ””โ”€โ”€ tauri.conf.json # Tauri configuration โ”‚ โ”œโ”€โ”€ public/ โ”‚ โ”‚ โ””โ”€โ”€ locales/ # Internationalization files (JSON) โ”‚ โ”œโ”€โ”€ package.json # Frontend dependencies @@ -392,23 +410,23 @@ For Stirling 2.0, new features are built as React components instead of Thymelea // frontend/src/tools/NewTool.tsx import { useState } from 'react'; import { Button, FileInput, Container } from '@mantine/core'; - + interface NewToolProps { params: Record; updateParams: (updates: Record) => void; } - + export default function NewTool({ params, updateParams }: NewToolProps) { const [files, setFiles] = useState([]); - + const handleProcess = async () => { // Process files using API or client-side logic }; - + return ( - diff --git a/app/core/build.gradle b/app/core/build.gradle index 59b007a3a4..d31125a263 100644 --- a/app/core/build.gradle +++ b/app/core/build.gradle @@ -41,7 +41,6 @@ dependencies { if (System.getenv('STIRLING_PDF_DESKTOP_UI') != 'false' || (project.hasProperty('STIRLING_PDF_DESKTOP_UI') && project.getProperty('STIRLING_PDF_DESKTOP_UI') != 'false')) { - implementation 'me.friwi:jcefmaven:132.3.1' implementation 'org.openjfx:javafx-controls:21' implementation 'org.openjfx:javafx-swing:21' } diff --git a/app/core/src/main/java/stirling/software/SPDF/SPDFApplication.java b/app/core/src/main/java/stirling/software/SPDF/SPDFApplication.java index 4a05b4f15a..587bc992e0 100644 --- a/app/core/src/main/java/stirling/software/SPDF/SPDFApplication.java +++ b/app/core/src/main/java/stirling/software/SPDF/SPDFApplication.java @@ -144,6 +144,13 @@ public class SPDFApplication { serverPortStatic = serverPort; String url = baseUrl + ":" + getStaticPort() + contextPath; + // Log Tauri mode information + if (Boolean.parseBoolean(System.getProperty("STIRLING_PDF_TAURI_MODE", "false"))) { + String parentPid = System.getenv("TAURI_PARENT_PID"); + log.info( + "Running in Tauri mode. Parent process PID: {}", + parentPid != null ? parentPid : "not set"); + } // Desktop UI initialization removed - webBrowser dependency eliminated // Keep backwards compatibility for STIRLING_PDF_DESKTOP_UI system property if (Boolean.parseBoolean(System.getProperty("STIRLING_PDF_DESKTOP_UI", "false"))) { diff --git a/app/core/src/main/java/stirling/software/SPDF/config/TauriProcessMonitor.java b/app/core/src/main/java/stirling/software/SPDF/config/TauriProcessMonitor.java new file mode 100644 index 0000000000..a3feded742 --- /dev/null +++ b/app/core/src/main/java/stirling/software/SPDF/config/TauriProcessMonitor.java @@ -0,0 +1,157 @@ +package stirling.software.SPDF.config; + +import java.lang.management.ManagementFactory; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ConfigurableApplicationContext; +import org.springframework.stereotype.Component; + +import jakarta.annotation.PostConstruct; +import jakarta.annotation.PreDestroy; + +/** + * Monitor for Tauri parent process to detect orphaned Java backend processes. When running in Tauri + * mode, this component periodically checks if the parent Tauri process is still alive. If the + * parent process terminates unexpectedly, this will trigger a graceful shutdown of the Java backend + * to prevent orphaned processes. + */ +@Component +@ConditionalOnProperty(name = "STIRLING_PDF_TAURI_MODE", havingValue = "true") +public class TauriProcessMonitor { + + private static final Logger logger = LoggerFactory.getLogger(TauriProcessMonitor.class); + + private final ApplicationContext applicationContext; + private String parentProcessId; + private ScheduledExecutorService scheduler; + private volatile boolean monitoring = false; + + public TauriProcessMonitor(ApplicationContext applicationContext) { + this.applicationContext = applicationContext; + } + + @PostConstruct + public void init() { + parentProcessId = System.getenv("TAURI_PARENT_PID"); + + if (parentProcessId != null && !parentProcessId.trim().isEmpty()) { + logger.info("Tauri mode detected. Parent process ID: {}", parentProcessId); + startMonitoring(); + } else { + logger.warn( + "TAURI_PARENT_PID environment variable not found. Tauri process monitoring disabled."); + } + } + + private void startMonitoring() { + scheduler = + Executors.newSingleThreadScheduledExecutor( + r -> { + Thread t = new Thread(r, "tauri-process-monitor"); + t.setDaemon(true); + return t; + }); + + monitoring = true; + + // Check every 5 seconds + scheduler.scheduleAtFixedRate(this::checkParentProcess, 5, 5, TimeUnit.SECONDS); + + logger.info("Started monitoring parent Tauri process (PID: {})", parentProcessId); + } + + private void checkParentProcess() { + if (!monitoring) { + return; + } + + try { + if (!isProcessAlive(parentProcessId)) { + logger.warn( + "Parent Tauri process (PID: {}) is no longer alive. Initiating graceful shutdown...", + parentProcessId); + initiateGracefulShutdown(); + } + } catch (Exception e) { + logger.error("Error checking parent process status", e); + } + } + + private boolean isProcessAlive(String pid) { + try { + long processId = Long.parseLong(pid); + + // Check if process exists using ProcessHandle (Java 9+) + return ProcessHandle.of(processId).isPresent(); + + } catch (NumberFormatException e) { + logger.error("Invalid parent process ID format: {}", pid); + return false; + } catch (Exception e) { + logger.error("Error checking if process {} is alive", pid, e); + return false; + } + } + + private void initiateGracefulShutdown() { + monitoring = false; + + logger.info("Orphaned Java backend detected. Shutting down gracefully..."); + + // Shutdown asynchronously to avoid blocking the monitor thread + CompletableFuture.runAsync( + () -> { + try { + // Give a small delay to ensure logging completes + Thread.sleep(1000); + + if (applicationContext instanceof ConfigurableApplicationContext) { + ((ConfigurableApplicationContext) applicationContext).close(); + } else { + // Fallback to system exit + logger.warn( + "Unable to shutdown Spring context gracefully, using System.exit"); + System.exit(0); + } + } catch (Exception e) { + logger.error("Error during graceful shutdown", e); + System.exit(1); + } + }); + } + + @PreDestroy + public void cleanup() { + monitoring = false; + + if (scheduler != null && !scheduler.isShutdown()) { + logger.info("Shutting down Tauri process monitor"); + scheduler.shutdown(); + + try { + if (!scheduler.awaitTermination(2, TimeUnit.SECONDS)) { + scheduler.shutdownNow(); + } + } catch (InterruptedException e) { + scheduler.shutdownNow(); + Thread.currentThread().interrupt(); + } + } + } + + /** Get the current Java process ID for logging/debugging purposes */ + public static String getCurrentProcessId() { + try { + return ManagementFactory.getRuntimeMXBean().getName().split("@")[0]; + } catch (Exception e) { + return "unknown"; + } + } +} diff --git a/app/core/src/main/java/stirling/software/SPDF/config/WebMvcConfig.java b/app/core/src/main/java/stirling/software/SPDF/config/WebMvcConfig.java index 4dba703005..0823c29e9b 100644 --- a/app/core/src/main/java/stirling/software/SPDF/config/WebMvcConfig.java +++ b/app/core/src/main/java/stirling/software/SPDF/config/WebMvcConfig.java @@ -1,5 +1,7 @@ package stirling.software.SPDF.config; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; @@ -16,6 +18,8 @@ public class WebMvcConfig implements WebMvcConfigurer { private final EndpointInterceptor endpointInterceptor; private final ApplicationProperties applicationProperties; + private static final Logger logger = LoggerFactory.getLogger(WebMvcConfig.class); + @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(endpointInterceptor); @@ -23,10 +27,34 @@ public class WebMvcConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { - // Only configure CORS if allowed origins are specified - if (applicationProperties.getSystem() != null - && applicationProperties.getSystem().getCorsAllowedOrigins() != null - && !applicationProperties.getSystem().getCorsAllowedOrigins().isEmpty()) { + // Check if running in Tauri mode + boolean isTauriMode = + Boolean.parseBoolean(System.getProperty("STIRLING_PDF_TAURI_MODE", "false")); + + // Check if user has configured custom origins + boolean hasConfiguredOrigins = + applicationProperties.getSystem() != null + && applicationProperties.getSystem().getCorsAllowedOrigins() != null + && !applicationProperties.getSystem().getCorsAllowedOrigins().isEmpty(); + + if (isTauriMode) { + // Automatically enable CORS for Tauri desktop app + // Tauri v1 uses tauri://localhost, v2 uses http(s)://tauri.localhost + logger.info("Tauri mode detected - enabling CORS for Tauri protocols (v1 and v2)"); + registry.addMapping("/**") + .allowedOrigins( + "tauri://localhost", + "http://tauri.localhost", + "https://tauri.localhost") + .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS", "PATCH") + .allowedHeaders("*") + .allowCredentials(true) + .maxAge(3600); + } else if (hasConfiguredOrigins) { + // Use user-configured origins + logger.info( + "Configuring CORS with allowed origins: {}", + applicationProperties.getSystem().getCorsAllowedOrigins()); String[] allowedOrigins = applicationProperties @@ -41,15 +69,7 @@ public class WebMvcConfig implements WebMvcConfigurer { .allowCredentials(true) .maxAge(3600); } - // If no origins are configured, CORS is not enabled (secure by default) + // If no origins are configured and not in Tauri mode, CORS is not enabled (secure by + // default) } - - // @Override - // public void addResourceHandlers(ResourceHandlerRegistry registry) { - // // Handler for external static resources - DISABLED in backend-only mode - // registry.addResourceHandler("/**") - // .addResourceLocations( - // "file:" + InstallationPathConfig.getStaticPath(), "classpath:/static/"); - // // .setCachePeriod(0); // Optional: disable caching - // } } diff --git a/docker/frontend/entrypoint.sh b/docker/frontend/entrypoint.sh index a812729692..224955c4a8 100644 --- a/docker/frontend/entrypoint.sh +++ b/docker/frontend/entrypoint.sh @@ -7,4 +7,4 @@ VITE_API_BASE_URL=${VITE_API_BASE_URL:-"http://backend:8080"} sed -i "s|\${VITE_API_BASE_URL}|${VITE_API_BASE_URL}|g" /etc/nginx/nginx.conf # Start nginx -exec nginx -g "daemon off;" \ No newline at end of file +exec nginx -g "daemon off;" diff --git a/frontend/README.md b/frontend/README.md index 115fcca84a..68746b8f10 100644 --- a/frontend/README.md +++ b/frontend/README.md @@ -72,3 +72,59 @@ This section has moved here: [https://facebook.github.io/create-react-app/docs/d ### `npm run build` fails to minify This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify) + + +## Tauri +In order to run Tauri, you first have to build the Java backend for Tauri to use. + +**macOS/Linux:** + +From the root of the repo, run: + +```bash +./gradlew clean build +./scripts/build-tauri-jlink.sh +``` + +**Windows** + +From the root of the repo, run: + +```batch +gradlew clean build +scripts\build-tauri-jlink.bat +``` + +### Testing the Bundled Runtime + +Before building the full Tauri app, you can test the bundled runtime: + +**macOS/Linux:** +```bash +./frontend/src-tauri/runtime/launch-stirling.sh +``` + +**Windows:** +```cmd +frontend\src-tauri\runtime\launch-stirling.bat +``` + +This will start Stirling-PDF using the bundled JRE, accessible at http://localhost:8080 + +### Dev +To run Tauri in development. Use the command in the `frontend` folder: + +```bash +npm run tauri-dev +``` + +This will run the gradle runboot command and the tauri dev command concurrently, starting the app once both are stable. + +### Build +To build a deployment of the Tauri app. Use this command in the `frontend` folder: + +```bash +npm run tauri-build +``` + +This will bundle the backend and frontend into one executable for each target. Targets can be set within the `tauri.conf.json` file. diff --git a/frontend/eslint.config.mjs b/frontend/eslint.config.mjs index 89928251b4..63d2312206 100644 --- a/frontend/eslint.config.mjs +++ b/frontend/eslint.config.mjs @@ -21,6 +21,7 @@ export default defineConfig( 'dist', 'node_modules', 'public', + 'src-tauri', ], }, eslint.configs.recommended, diff --git a/frontend/package-lock.json b/frontend/package-lock.json index c884272c4b..db900aeea9 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -40,6 +40,8 @@ "@reactour/tour": "^3.8.0", "@tailwindcss/postcss": "^4.1.13", "@tanstack/react-virtual": "^3.13.12", + "@tauri-apps/api": "^2.5.0", + "@tauri-apps/plugin-fs": "^2.4.0", "autoprefixer": "^10.4.21", "axios": "^1.12.2", "globals": "^16.4.0", @@ -64,6 +66,7 @@ "@iconify-json/material-symbols": "^1.2.37", "@iconify/utils": "^3.0.2", "@playwright/test": "^1.55.0", + "@tauri-apps/cli": "^2.5.0", "@testing-library/dom": "^10.4.1", "@testing-library/jest-dom": "^6.8.0", "@testing-library/react": "^16.3.0", @@ -146,9 +149,9 @@ } }, "node_modules/@antfu/utils": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-9.2.1.tgz", - "integrity": "sha512-TMilPqXyii1AsiEii6l6ubRzbo76p6oshUSYPaKsmXDavyMLqjzVDkcp3pHp5ELMUNJHATcEOGxKTTsX9yYhGg==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-9.3.0.tgz", + "integrity": "sha512-9hFT4RauhcUzqOE4f1+frMKLZrgNog5b06I7VmZQV1BkvwvqrbC8EBZf3L1eEL2AKb6rNKjER0sEvJiSP1FXEA==", "dev": true, "license": "MIT", "funding": { @@ -156,30 +159,31 @@ } }, "node_modules/@asamuzakjp/css-color": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-4.0.4.tgz", - "integrity": "sha512-cKjSKvWGmAziQWbCouOsFwb14mp1betm8Y7Fn+yglDMUUu3r9DCbJ9iJbeFDenLMqFbIMC0pQP8K+B8LAxX3OQ==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-4.0.5.tgz", + "integrity": "sha512-lMrXidNhPGsDjytDy11Vwlb6OIGrT3CmLg3VWNFyWkLWtijKl7xjvForlh8vuj0SHGjgl4qZEQzUmYTeQA2JFQ==", "dev": true, "license": "MIT", "dependencies": { "@csstools/css-calc": "^2.1.4", - "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-color-parser": "^3.1.0", "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4", - "lru-cache": "^11.1.0" + "lru-cache": "^11.2.1" } }, "node_modules/@asamuzakjp/dom-selector": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-6.5.5.tgz", - "integrity": "sha512-kI2MX9pmImjxWT8nxDZY+MuN6r1jJGe7WxizEbsAEPB/zxfW5wYLIiPG1v3UKgEOOP8EsDkp0ZL99oRFAdPM8g==", + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-6.7.3.tgz", + "integrity": "sha512-kiGFeY+Hxf5KbPpjRLf+ffWbkos1aGo8MBfd91oxS3O57RgU3XhZrt/6UzoVF9VMpWbC3v87SRc9jxGrc9qHtQ==", "dev": true, "license": "MIT", "dependencies": { "@asamuzakjp/nwsapi": "^2.3.9", "bidi-js": "^1.0.3", "css-tree": "^3.1.0", - "is-potential-custom-element-name": "^1.0.1" + "is-potential-custom-element-name": "^1.0.1", + "lru-cache": "^11.2.2" } }, "node_modules/@asamuzakjp/nwsapi": { @@ -215,13 +219,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", - "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", + "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.28.3", - "@babel/types": "^7.28.2", + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" @@ -262,21 +266,21 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.4.tgz", - "integrity": "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", "license": "MIT", "dependencies": { - "@babel/types": "^7.28.4" + "@babel/types": "^7.28.5" }, "bin": { "parser": "bin/babel-parser.js" @@ -309,17 +313,17 @@ } }, "node_modules/@babel/traverse": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.4.tgz", - "integrity": "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", + "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", + "@babel/generator": "^7.28.5", "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.4", + "@babel/parser": "^7.28.5", "@babel/template": "^7.27.2", - "@babel/types": "^7.28.4", + "@babel/types": "^7.28.5", "debug": "^4.3.1" }, "engines": { @@ -327,13 +331,13 @@ } }, "node_modules/@babel/types": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.4.tgz", - "integrity": "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1" + "@babel/helper-validator-identifier": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -502,63 +506,65 @@ } }, "node_modules/@embedpdf/core": { - "version": "1.3.14", - "resolved": "https://registry.npmjs.org/@embedpdf/core/-/core-1.3.14.tgz", - "integrity": "sha512-lE/vfhA53CxamaCfGWEibrEPr+JeZT42QCF+cOELUwv4+Zt6b+IE6+4wsznx/8wjjJYwllXJ3GJ/un1UzTqARw==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@embedpdf/core/-/core-1.4.1.tgz", + "integrity": "sha512-TGpxn2CvAKRnOJWJ3bsK+dKBiCp75ehxftRUmv7wAmPomhnG5XrDfoWJungvO+zbbqAwso6PocdeXINVt3hlAw==", "license": "MIT", "dependencies": { - "@embedpdf/engines": "1.3.14", - "@embedpdf/models": "1.3.14" + "@embedpdf/engines": "1.4.1", + "@embedpdf/models": "1.4.1" }, "peerDependencies": { "preact": "^10.26.4", "react": ">=16.8.0", "react-dom": ">=16.8.0", + "svelte": ">=5 <6", "vue": ">=3.2.0" } }, "node_modules/@embedpdf/engines": { - "version": "1.3.14", - "resolved": "https://registry.npmjs.org/@embedpdf/engines/-/engines-1.3.14.tgz", - "integrity": "sha512-+/FPW2gAzj2lQYvsMH/Oj9+MEXgkyEuyYDC+HFkltTuXvmiP2S/3BD0YslZDX9K4BzcmMxnWB+BiQpNJokbDVg==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@embedpdf/engines/-/engines-1.4.1.tgz", + "integrity": "sha512-yugIb5OwTI/1VnAaEvSYxAd2DvYBPkV/D7wytagyaOq98o3sqzcY2Q9zHt+LhnawA5KKG1e/FDPjCd4qm8gsvg==", "license": "MIT", "dependencies": { - "@embedpdf/models": "1.3.14", - "@embedpdf/pdfium": "1.3.14" + "@embedpdf/models": "1.4.1", + "@embedpdf/pdfium": "1.4.1" }, "peerDependencies": { "preact": "^10.26.4", "react": ">=16.8.0", "react-dom": ">=16.8.0", + "svelte": ">=5 <6", "vue": ">=3.2.0" } }, "node_modules/@embedpdf/models": { - "version": "1.3.14", - "resolved": "https://registry.npmjs.org/@embedpdf/models/-/models-1.3.14.tgz", - "integrity": "sha512-BujY4bmr8b2DQdoZkOge03SzoRVoWxzfIQATLSPPtp4WiFh1U4BPp6cADlGuCwGkp6zBcH/aM4h8PwwA75d/eg==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@embedpdf/models/-/models-1.4.1.tgz", + "integrity": "sha512-2nTg8Q1qpplBvspZJXMCZOA+/OILpfdNRPddlplxZXY/Upx0rzKXx/e6pXWW7AuOgtfGneT4h9tMs3A595/PdQ==", "license": "MIT" }, "node_modules/@embedpdf/pdfium": { - "version": "1.3.14", - "resolved": "https://registry.npmjs.org/@embedpdf/pdfium/-/pdfium-1.3.14.tgz", - "integrity": "sha512-TQMZabXzHmzvvfPwopubFcYgQuYV7POvMgjICYu3Pgfn3sgr+UdIUh3aNXR/COcl3q8sXPMFQ2GDuyOHR9QQnA==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@embedpdf/pdfium/-/pdfium-1.4.1.tgz", + "integrity": "sha512-BekKEK4UNCwzj7xOffKn6WpL0FQHxq+mTj2iGI3N7OwAX2J/BO2G+rDOB+lvojQG+Dkpg8uqm427ZKJDRyLgVQ==", "license": "MIT" }, "node_modules/@embedpdf/plugin-annotation": { - "version": "1.3.14", - "resolved": "https://registry.npmjs.org/@embedpdf/plugin-annotation/-/plugin-annotation-1.3.14.tgz", - "integrity": "sha512-JJYqEWwUKCdBZsXCDq/CW96p3pVLn8N+XZ4W3OyL7djI2fvYC9x6ys9m82vwlSathAVOxk1D7xXiY8AzJQVF0Q==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@embedpdf/plugin-annotation/-/plugin-annotation-1.4.1.tgz", + "integrity": "sha512-d4HibNy6ecyDqx2Y2R8VjaqppSdjNofAJmU6VenOd88wn080sAUqvnkeVJ6ehJH5BoND4ymQrcAkcbVeYK0myA==", "license": "MIT", "dependencies": { - "@embedpdf/models": "1.3.14", - "@embedpdf/utils": "1.3.14" + "@embedpdf/models": "1.4.1", + "@embedpdf/utils": "1.4.1" }, "peerDependencies": { - "@embedpdf/core": "1.3.14", - "@embedpdf/plugin-history": "1.3.14", - "@embedpdf/plugin-interaction-manager": "1.3.14", - "@embedpdf/plugin-selection": "1.3.14", + "@embedpdf/core": "1.4.1", + "@embedpdf/plugin-history": "1.4.1", + "@embedpdf/plugin-interaction-manager": "1.4.1", + "@embedpdf/plugin-selection": "1.4.1", "preact": "^10.26.4", "react": ">=16.8.0", "react-dom": ">=16.8.0", @@ -566,31 +572,32 @@ } }, "node_modules/@embedpdf/plugin-export": { - "version": "1.3.14", - "resolved": "https://registry.npmjs.org/@embedpdf/plugin-export/-/plugin-export-1.3.14.tgz", - "integrity": "sha512-fMGp2YxvI4uTRIViUKxfnJts2Jw/vktEM45XUNGNSjT/kAW6znVNgdceYjpK++xU8CGs2grAQ1i5UvMd3aRNDA==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@embedpdf/plugin-export/-/plugin-export-1.4.1.tgz", + "integrity": "sha512-g89fREFM/zkt2Ai2Q5dWwDkhXgC/JmVyUniaMgm1fTG/MZ0Z05E7f34DUzX/CKcJyVjxEgl6tojBTMeUbm15bA==", "license": "MIT", "dependencies": { - "@embedpdf/models": "1.3.14" + "@embedpdf/models": "1.4.1" }, "peerDependencies": { - "@embedpdf/core": "1.3.14", + "@embedpdf/core": "1.4.1", "preact": "^10.26.4", "react": ">=16.8.0", "react-dom": ">=16.8.0", + "svelte": ">=5 <6", "vue": ">=3.2.0" } }, "node_modules/@embedpdf/plugin-history": { - "version": "1.3.14", - "resolved": "https://registry.npmjs.org/@embedpdf/plugin-history/-/plugin-history-1.3.14.tgz", - "integrity": "sha512-77hnNLp0W0FHw8lT7SeqzCgp8bOClfeOAPZdcInu/jPDhVASUGYbtE/0fkLhiaqPH7kyMirNCLif4sF6n4b5vg==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@embedpdf/plugin-history/-/plugin-history-1.4.1.tgz", + "integrity": "sha512-5WLDiNMH6tACkLGGv/lJtNsDeozOhSbrh0mjD1btHun8u7Yscu/Vf8tdJRUOsd+nULivo2nQ2NFNKu0OTbVo8w==", "license": "MIT", "dependencies": { - "@embedpdf/models": "1.3.14" + "@embedpdf/models": "1.4.1" }, "peerDependencies": { - "@embedpdf/core": "1.3.14", + "@embedpdf/core": "1.4.1", "preact": "^10.26.4", "react": ">=16.8.0", "react-dom": ">=16.8.0", @@ -598,232 +605,245 @@ } }, "node_modules/@embedpdf/plugin-interaction-manager": { - "version": "1.3.14", - "resolved": "https://registry.npmjs.org/@embedpdf/plugin-interaction-manager/-/plugin-interaction-manager-1.3.14.tgz", - "integrity": "sha512-nR0ZxNoTQtGqOHhweFh6QJ+nUJ4S4Ag1wWur6vAUAi8U95HUOfZhOEa0polZo0zR9WmmblGqRWjFM+mVSOoi1w==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@embedpdf/plugin-interaction-manager/-/plugin-interaction-manager-1.4.1.tgz", + "integrity": "sha512-Ng02S9SFIAi9JZS5rI+NXSnZZ1Yk9YYRw4MlN2pig49qOyivZdz0oScZaYxQPewo8ccJkLeghjdeWswOBW/6cA==", "license": "MIT", "dependencies": { - "@embedpdf/models": "1.3.14" + "@embedpdf/models": "1.4.1" }, "peerDependencies": { - "@embedpdf/core": "1.3.14", + "@embedpdf/core": "1.4.1", "preact": "^10.26.4", "react": ">=16.8.0", "react-dom": ">=16.8.0", + "svelte": ">=5 <6", "vue": ">=3.2.0" } }, "node_modules/@embedpdf/plugin-loader": { - "version": "1.3.14", - "resolved": "https://registry.npmjs.org/@embedpdf/plugin-loader/-/plugin-loader-1.3.14.tgz", - "integrity": "sha512-KoJX1MacEWE2DrO1OeZeG/Ehz76//u+ida/xb4r9BfwqAp5TfYlksq09cOvcF8LMW5FY4pbAL+AHKI1Hjz+HNA==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@embedpdf/plugin-loader/-/plugin-loader-1.4.1.tgz", + "integrity": "sha512-m3ZOk8JygsLxoa4cZ+0BVB5pfRWuBCg2/gPqjhoFZNKTqAFw4J6HGUrhYKg94GRYe+w1cTJl/NbTBYuU5DOrsA==", "license": "MIT", "dependencies": { - "@embedpdf/models": "1.3.14" + "@embedpdf/models": "1.4.1" }, "peerDependencies": { - "@embedpdf/core": "1.3.14", + "@embedpdf/core": "1.4.1", "preact": "^10.26.4", "react": ">=16.8.0", "react-dom": ">=16.8.0", + "svelte": ">=5 <6", "vue": ">=3.2.0" } }, "node_modules/@embedpdf/plugin-pan": { - "version": "1.3.14", - "resolved": "https://registry.npmjs.org/@embedpdf/plugin-pan/-/plugin-pan-1.3.14.tgz", - "integrity": "sha512-7EG+I5nn8yDCV8pT4x/g5mv7zJli2t3wPrh6Kt8uIpUorPHNb6J0Z67gl0uc/8rEasNzuKOuT0er46Y6/UYLzQ==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@embedpdf/plugin-pan/-/plugin-pan-1.4.1.tgz", + "integrity": "sha512-zmOZJ9dUqXiaV0F5GPf/5WTWf3jAEkiv153Tl3x8HT9Rfff+WQhV48NruCIBAy/T4jVt4aH7D1zt/B/ftvcdkA==", "license": "MIT", "dependencies": { - "@embedpdf/models": "1.3.14" + "@embedpdf/models": "1.4.1" }, "peerDependencies": { - "@embedpdf/core": "1.3.14", - "@embedpdf/plugin-interaction-manager": "1.3.14", - "@embedpdf/plugin-viewport": "1.3.14", + "@embedpdf/core": "1.4.1", + "@embedpdf/plugin-interaction-manager": "1.4.1", + "@embedpdf/plugin-viewport": "1.4.1", "preact": "^10.26.4", "react": ">=16.8.0", "react-dom": ">=16.8.0", + "svelte": ">=5 <6", "vue": ">=3.2.0" } }, "node_modules/@embedpdf/plugin-render": { - "version": "1.3.14", - "resolved": "https://registry.npmjs.org/@embedpdf/plugin-render/-/plugin-render-1.3.14.tgz", - "integrity": "sha512-IPj7GCQXJBsY++JaU+z7y+FwX5NaDBj4YYV6hsHNtSGf42Y1AdlwJzDYetivG2bA84xmk7KgD1X2Y3eIFBhjwA==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@embedpdf/plugin-render/-/plugin-render-1.4.1.tgz", + "integrity": "sha512-gKCdNKw6WBHBEpTc2DLBWIWOxzsNnaNbpfeY6C4f2Bum0EO+XW3Hl2oIx1uaRHjIhhnXso1J3QweqelsPwDGwg==", "license": "MIT", "dependencies": { - "@embedpdf/models": "1.3.14" + "@embedpdf/models": "1.4.1" }, "peerDependencies": { - "@embedpdf/core": "1.3.14", + "@embedpdf/core": "1.4.1", "preact": "^10.26.4", "react": ">=16.8.0", "react-dom": ">=16.8.0", + "svelte": ">=5 <6", "vue": ">=3.2.0" } }, "node_modules/@embedpdf/plugin-rotate": { - "version": "1.3.14", - "resolved": "https://registry.npmjs.org/@embedpdf/plugin-rotate/-/plugin-rotate-1.3.14.tgz", - "integrity": "sha512-OroEm11x/fPPXI9C0X+nm9LOjwaI0MvsToZRH+HpV60/FbQeOJvt6D8wThCDVLK95Na6A+JeYIMEu+Hiix7H+A==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@embedpdf/plugin-rotate/-/plugin-rotate-1.4.1.tgz", + "integrity": "sha512-hVzHkKwMNH3tUhxqJGsj5qTLpYZXbj6E74AEcG0w/fz5FrK7EnofPqt0gRfYmIzxnQGIh+39BRtcp8gmx8UNnw==", "license": "MIT", "dependencies": { - "@embedpdf/models": "1.3.14" + "@embedpdf/models": "1.4.1" }, "peerDependencies": { - "@embedpdf/core": "1.3.14", + "@embedpdf/core": "1.4.1", "preact": "^10.26.4", "react": ">=16.8.0", "react-dom": ">=16.8.0", + "svelte": ">=5 <6", "vue": ">=3.2.0" } }, "node_modules/@embedpdf/plugin-scroll": { - "version": "1.3.14", - "resolved": "https://registry.npmjs.org/@embedpdf/plugin-scroll/-/plugin-scroll-1.3.14.tgz", - "integrity": "sha512-fQbt7OlRMLQJMuZj/Bzh0qpRxMw1ld5Qe/OTw8N54b/plljnFA52joE7cITl3H03huWWyHS3NKOScbw7f34dog==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@embedpdf/plugin-scroll/-/plugin-scroll-1.4.1.tgz", + "integrity": "sha512-Y9O+matB4j4fLim5s/jn7qIi+lMC9vmDJRpJhiWe8bvD9oYLP2xfD/DdhFgAjRKcNhPoxC+j8q8QN5BMeGAv2Q==", "license": "MIT", "dependencies": { - "@embedpdf/models": "1.3.14" + "@embedpdf/models": "1.4.1" }, "peerDependencies": { - "@embedpdf/core": "1.3.14", - "@embedpdf/plugin-viewport": "1.3.14", + "@embedpdf/core": "1.4.1", + "@embedpdf/plugin-viewport": "1.4.1", "preact": "^10.26.4", "react": ">=16.8.0", "react-dom": ">=16.8.0", + "svelte": ">=5 <6", "vue": ">=3.2.0" } }, "node_modules/@embedpdf/plugin-search": { - "version": "1.3.14", - "resolved": "https://registry.npmjs.org/@embedpdf/plugin-search/-/plugin-search-1.3.14.tgz", - "integrity": "sha512-tlZEgR2tG+GSNnh2u1SjCxhUHfTDgcr38sE/xRK1bRLDGPZWlr6Ln7qP7JSWqeYBGni75sGrj0iZqcZbPWyJag==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@embedpdf/plugin-search/-/plugin-search-1.4.1.tgz", + "integrity": "sha512-8JG4CbOcUsLuT0vHJJ4cECmu+Yn53EokWFUVXi2Mo/XvHjhrQuWmD7+y6s/qQPEpctFYWmUCXTDAX9ynPud+2Q==", "license": "MIT", "dependencies": { - "@embedpdf/models": "1.3.14" + "@embedpdf/models": "1.4.1" }, "peerDependencies": { - "@embedpdf/core": "1.3.14", - "@embedpdf/plugin-loader": "1.3.14", + "@embedpdf/core": "1.4.1", + "@embedpdf/plugin-loader": "1.4.1", "preact": "^10.26.4", "react": ">=16.8.0", "react-dom": ">=16.8.0", + "svelte": ">=5 <6", "vue": ">=3.2.0" } }, "node_modules/@embedpdf/plugin-selection": { - "version": "1.3.14", - "resolved": "https://registry.npmjs.org/@embedpdf/plugin-selection/-/plugin-selection-1.3.14.tgz", - "integrity": "sha512-EXENuaAsse3rT6cjA1nYzyrNvoy62ojJl28wblCng6zcs3HSlGPemIQZAvaYKPUxoY608M+6nKlcMQ5neRnk/A==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@embedpdf/plugin-selection/-/plugin-selection-1.4.1.tgz", + "integrity": "sha512-lo5Ytk1PH0PrRKv6zKVupm4t02VGsqIrnSIeP6NO8Ujx0wfqEhj//sqIuO/EwfFVJD8lcQIP9UUo9y8baCrEog==", "license": "MIT", "dependencies": { - "@embedpdf/models": "1.3.14" + "@embedpdf/models": "1.4.1" }, "peerDependencies": { - "@embedpdf/core": "1.3.14", - "@embedpdf/plugin-interaction-manager": "1.3.14", - "@embedpdf/plugin-viewport": "1.3.14", + "@embedpdf/core": "1.4.1", + "@embedpdf/plugin-interaction-manager": "1.4.1", + "@embedpdf/plugin-viewport": "1.4.1", "preact": "^10.26.4", "react": ">=16.8.0", "react-dom": ">=16.8.0", + "svelte": ">=5 <6", "vue": ">=3.2.0" } }, "node_modules/@embedpdf/plugin-spread": { - "version": "1.3.14", - "resolved": "https://registry.npmjs.org/@embedpdf/plugin-spread/-/plugin-spread-1.3.14.tgz", - "integrity": "sha512-DVlk6tDgUoDRkp2S4Jc3LrRTuf4DPMlph9vywJw5z6Qpbh0vgcMnObg896/S0Eu5FgACNAj0WGcXpLrcrn5b9Q==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@embedpdf/plugin-spread/-/plugin-spread-1.4.1.tgz", + "integrity": "sha512-l+SrDVGTiiItkt2cEtzv7V/X5HhmLbYHcQ8CFobGeIKdJtzKS1Nu/JSKqg7Ki7eCNgyPL1yMNfNE92bNKYVN4w==", "license": "MIT", "dependencies": { - "@embedpdf/models": "1.3.14" + "@embedpdf/models": "1.4.1" }, "peerDependencies": { - "@embedpdf/core": "1.3.14", - "@embedpdf/plugin-loader": "1.3.14", + "@embedpdf/core": "1.4.1", + "@embedpdf/plugin-loader": "1.4.1", "preact": "^10.26.4", "react": ">=16.8.0", "react-dom": ">=16.8.0", + "svelte": ">=5 <6", "vue": ">=3.2.0" } }, "node_modules/@embedpdf/plugin-thumbnail": { - "version": "1.3.14", - "resolved": "https://registry.npmjs.org/@embedpdf/plugin-thumbnail/-/plugin-thumbnail-1.3.14.tgz", - "integrity": "sha512-cnwb5dG8Jph8XSArys1WFCQ6kK2R5FKoO0B5mDrHFv9Fcm2pKszlmZC/NDoskX4pgNUgSnwhI1X3cP37ebF9Ng==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@embedpdf/plugin-thumbnail/-/plugin-thumbnail-1.4.1.tgz", + "integrity": "sha512-bN3msjI0PovazgbPK3LyugYVTwIDo0RyBUhBaG42FgJxeY3hmFOWTPgfUH1QF7twHlySnksIvHRFYR3nViryVw==", "license": "MIT", "dependencies": { - "@embedpdf/models": "1.3.14" + "@embedpdf/models": "1.4.1" }, "peerDependencies": { - "@embedpdf/core": "1.3.14", - "@embedpdf/plugin-render": "1.3.14", + "@embedpdf/core": "1.4.1", + "@embedpdf/plugin-render": "1.4.1", "preact": "^10.26.4", "react": ">=16.8.0", "react-dom": ">=16.8.0", + "svelte": ">=5 <6", "vue": ">=3.2.0" } }, "node_modules/@embedpdf/plugin-tiling": { - "version": "1.3.14", - "resolved": "https://registry.npmjs.org/@embedpdf/plugin-tiling/-/plugin-tiling-1.3.14.tgz", - "integrity": "sha512-SaCTo2LdZwGeE6jCqkwJxvwt8YKbsI3QGxa9S7Ez+5OcBchlhHeTfLQswcErDQ3WH2p8WHtGuucAcOLrVVOm0A==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@embedpdf/plugin-tiling/-/plugin-tiling-1.4.1.tgz", + "integrity": "sha512-wgTfj5T8HV6KP61iiR63DVNrbVp8sPxTqa1Sm+2/D0jY+EPSSCmpt1/qYWiAXd1X+t78foOjCnfbo7fEMn5/pg==", "license": "MIT", "dependencies": { - "@embedpdf/models": "1.3.14" + "@embedpdf/models": "1.4.1" }, "peerDependencies": { - "@embedpdf/core": "1.3.14", - "@embedpdf/plugin-render": "1.3.14", - "@embedpdf/plugin-scroll": "1.3.14", - "@embedpdf/plugin-viewport": "1.3.14", + "@embedpdf/core": "1.4.1", + "@embedpdf/plugin-render": "1.4.1", + "@embedpdf/plugin-scroll": "1.4.1", + "@embedpdf/plugin-viewport": "1.4.1", "preact": "^10.26.4", "react": ">=16.8.0", "react-dom": ">=16.8.0", + "svelte": ">=5 <6", "vue": ">=3.2.0" } }, "node_modules/@embedpdf/plugin-viewport": { - "version": "1.3.14", - "resolved": "https://registry.npmjs.org/@embedpdf/plugin-viewport/-/plugin-viewport-1.3.14.tgz", - "integrity": "sha512-mfJ7EbbU68eKk6oFvQ4ozGJNpxUxWbjQ5Gm3uuB+Gj5/tWgBocBOX36k/9LgivEEeX7g2S0tOgyErljApmH8Vg==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@embedpdf/plugin-viewport/-/plugin-viewport-1.4.1.tgz", + "integrity": "sha512-+TgFHKPCLTBiDYe2DdsmTS37hwQgcZ3dYIc7bE0l5cp+GVwouu1h0MTmjL+90loizeWwCiu10E/zXR6hz+CUaQ==", "license": "MIT", "dependencies": { - "@embedpdf/models": "1.3.14" + "@embedpdf/models": "1.4.1" }, "peerDependencies": { - "@embedpdf/core": "1.3.14", + "@embedpdf/core": "1.4.1", "preact": "^10.26.4", "react": ">=16.8.0", "react-dom": ">=16.8.0", + "svelte": ">=5 <6", "vue": ">=3.2.0" } }, "node_modules/@embedpdf/plugin-zoom": { - "version": "1.3.14", - "resolved": "https://registry.npmjs.org/@embedpdf/plugin-zoom/-/plugin-zoom-1.3.14.tgz", - "integrity": "sha512-/N5tyMk+8OzhObrS3O9yPkcmX8EPiuTo+WaT2QCVSmIUqKnOO4AnKpHJ6Vl0uVhcuXHCMwLucZKyhJ7tRqavwg==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@embedpdf/plugin-zoom/-/plugin-zoom-1.4.1.tgz", + "integrity": "sha512-9HocmXnPZxqN06q7kyNAmLjgDHOEW8/8QfgNE3nMpRyNHIgnAjxvsWc9lApgp5ErDPG0cSDt0Cduil6nB3wSBQ==", "license": "MIT", "dependencies": { - "@embedpdf/models": "1.3.14", + "@embedpdf/models": "1.4.1", "hammerjs": "^2.0.8" }, "peerDependencies": { - "@embedpdf/core": "1.3.14", - "@embedpdf/plugin-interaction-manager": "1.3.14", - "@embedpdf/plugin-scroll": "1.3.14", - "@embedpdf/plugin-viewport": "1.3.14", + "@embedpdf/core": "1.4.1", + "@embedpdf/plugin-interaction-manager": "1.4.1", + "@embedpdf/plugin-scroll": "1.4.1", + "@embedpdf/plugin-viewport": "1.4.1", "preact": "^10.26.4", "react": ">=16.8.0", "react-dom": ">=16.8.0", + "svelte": ">=5 <6", "vue": ">=3.2.0" } }, "node_modules/@embedpdf/utils": { - "version": "1.3.14", - "resolved": "https://registry.npmjs.org/@embedpdf/utils/-/utils-1.3.14.tgz", - "integrity": "sha512-gxEJD12nageCMqAjdbicNfDQolXU3nvnV0EX96OdZITRNj0Q1tisutVYoaxcCiJu3vvIEOzipjsAnQOubbFCEA==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@embedpdf/utils/-/utils-1.4.1.tgz", + "integrity": "sha512-vvJ51Qsz3PyJWR2YvDMMpJXg4+YqdV7Vn2cusmW9sx+4EnAiBiw0HevEE+FepgFV8k+A0WbwXzmsujDIQJ7R4A==", "license": "MIT", "peerDependencies": { "preact": "^10.26.4", @@ -833,9 +853,9 @@ } }, "node_modules/@emnapi/core": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.5.0.tgz", - "integrity": "sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.6.0.tgz", + "integrity": "sha512-zq/ay+9fNIJJtJiZxdTnXS20PllcYMX3OE23ESc4HK/bdYu3cOWYVhsOhVnXALfU/uqJIxn5NBPd9z4v+SfoSg==", "license": "MIT", "optional": true, "dependencies": { @@ -851,9 +871,9 @@ "optional": true }, "node_modules/@emnapi/runtime": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.5.0.tgz", - "integrity": "sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.6.0.tgz", + "integrity": "sha512-obtUmAHTMjll499P+D9A3axeJFlhdjOWdKUNs/U6QIGT7V5RjcUW1xToAzjvmgTSQhDbYn/NwfTRoJcQ2rNBxA==", "license": "MIT", "optional": true, "dependencies": { @@ -1031,9 +1051,9 @@ "license": "MIT" }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.10.tgz", - "integrity": "sha512-0NFWnA+7l41irNuaSVlLfgNT12caWJVLzp5eAVhZ0z1qpxbockccEt3s+149rE64VUI3Ml2zt8Nv5JVc4QXTsw==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.11.tgz", + "integrity": "sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg==", "cpu": [ "ppc64" ], @@ -1048,9 +1068,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.10.tgz", - "integrity": "sha512-dQAxF1dW1C3zpeCDc5KqIYuZ1tgAdRXNoZP7vkBIRtKZPYe2xVr/d3SkirklCHudW1B45tGiUlz2pUWDfbDD4w==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.11.tgz", + "integrity": "sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg==", "cpu": [ "arm" ], @@ -1065,9 +1085,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.10.tgz", - "integrity": "sha512-LSQa7eDahypv/VO6WKohZGPSJDq5OVOo3UoFR1E4t4Gj1W7zEQMUhI+lo81H+DtB+kP+tDgBp+M4oNCwp6kffg==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.11.tgz", + "integrity": "sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ==", "cpu": [ "arm64" ], @@ -1082,9 +1102,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.10.tgz", - "integrity": "sha512-MiC9CWdPrfhibcXwr39p9ha1x0lZJ9KaVfvzA0Wxwz9ETX4v5CHfF09bx935nHlhi+MxhA63dKRRQLiVgSUtEg==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.11.tgz", + "integrity": "sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g==", "cpu": [ "x64" ], @@ -1099,9 +1119,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.10.tgz", - "integrity": "sha512-JC74bdXcQEpW9KkV326WpZZjLguSZ3DfS8wrrvPMHgQOIEIG/sPXEN/V8IssoJhbefLRcRqw6RQH2NnpdprtMA==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.11.tgz", + "integrity": "sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w==", "cpu": [ "arm64" ], @@ -1116,9 +1136,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.10.tgz", - "integrity": "sha512-tguWg1olF6DGqzws97pKZ8G2L7Ig1vjDmGTwcTuYHbuU6TTjJe5FXbgs5C1BBzHbJ2bo1m3WkQDbWO2PvamRcg==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.11.tgz", + "integrity": "sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ==", "cpu": [ "x64" ], @@ -1133,9 +1153,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.10.tgz", - "integrity": "sha512-3ZioSQSg1HT2N05YxeJWYR+Libe3bREVSdWhEEgExWaDtyFbbXWb49QgPvFH8u03vUPX10JhJPcz7s9t9+boWg==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.11.tgz", + "integrity": "sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA==", "cpu": [ "arm64" ], @@ -1150,9 +1170,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.10.tgz", - "integrity": "sha512-LLgJfHJk014Aa4anGDbh8bmI5Lk+QidDmGzuC2D+vP7mv/GeSN+H39zOf7pN5N8p059FcOfs2bVlrRr4SK9WxA==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.11.tgz", + "integrity": "sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw==", "cpu": [ "x64" ], @@ -1167,9 +1187,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.10.tgz", - "integrity": "sha512-oR31GtBTFYCqEBALI9r6WxoU/ZofZl962pouZRTEYECvNF/dtXKku8YXcJkhgK/beU+zedXfIzHijSRapJY3vg==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.11.tgz", + "integrity": "sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw==", "cpu": [ "arm" ], @@ -1184,9 +1204,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.10.tgz", - "integrity": "sha512-5luJWN6YKBsawd5f9i4+c+geYiVEw20FVW5x0v1kEMWNq8UctFjDiMATBxLvmmHA4bf7F6hTRaJgtghFr9iziQ==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.11.tgz", + "integrity": "sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA==", "cpu": [ "arm64" ], @@ -1201,9 +1221,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.10.tgz", - "integrity": "sha512-NrSCx2Kim3EnnWgS4Txn0QGt0Xipoumb6z6sUtl5bOEZIVKhzfyp/Lyw4C1DIYvzeW/5mWYPBFJU3a/8Yr75DQ==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.11.tgz", + "integrity": "sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw==", "cpu": [ "ia32" ], @@ -1218,9 +1238,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.10.tgz", - "integrity": "sha512-xoSphrd4AZda8+rUDDfD9J6FUMjrkTz8itpTITM4/xgerAZZcFW7Dv+sun7333IfKxGG8gAq+3NbfEMJfiY+Eg==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.11.tgz", + "integrity": "sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw==", "cpu": [ "loong64" ], @@ -1235,9 +1255,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.10.tgz", - "integrity": "sha512-ab6eiuCwoMmYDyTnyptoKkVS3k8fy/1Uvq7Dj5czXI6DF2GqD2ToInBI0SHOp5/X1BdZ26RKc5+qjQNGRBelRA==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.11.tgz", + "integrity": "sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ==", "cpu": [ "mips64el" ], @@ -1252,9 +1272,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.10.tgz", - "integrity": "sha512-NLinzzOgZQsGpsTkEbdJTCanwA5/wozN9dSgEl12haXJBzMTpssebuXR42bthOF3z7zXFWH1AmvWunUCkBE4EA==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.11.tgz", + "integrity": "sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw==", "cpu": [ "ppc64" ], @@ -1269,9 +1289,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.10.tgz", - "integrity": "sha512-FE557XdZDrtX8NMIeA8LBJX3dC2M8VGXwfrQWU7LB5SLOajfJIxmSdyL/gU1m64Zs9CBKvm4UAuBp5aJ8OgnrA==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.11.tgz", + "integrity": "sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww==", "cpu": [ "riscv64" ], @@ -1286,9 +1306,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.10.tgz", - "integrity": "sha512-3BBSbgzuB9ajLoVZk0mGu+EHlBwkusRmeNYdqmznmMc9zGASFjSsxgkNsqmXugpPk00gJ0JNKh/97nxmjctdew==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.11.tgz", + "integrity": "sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw==", "cpu": [ "s390x" ], @@ -1303,9 +1323,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.10.tgz", - "integrity": "sha512-QSX81KhFoZGwenVyPoberggdW1nrQZSvfVDAIUXr3WqLRZGZqWk/P4T8p2SP+de2Sr5HPcvjhcJzEiulKgnxtA==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.11.tgz", + "integrity": "sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ==", "cpu": [ "x64" ], @@ -1320,9 +1340,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.10.tgz", - "integrity": "sha512-AKQM3gfYfSW8XRk8DdMCzaLUFB15dTrZfnX8WXQoOUpUBQ+NaAFCP1kPS/ykbbGYz7rxn0WS48/81l9hFl3u4A==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.11.tgz", + "integrity": "sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg==", "cpu": [ "arm64" ], @@ -1337,9 +1357,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.10.tgz", - "integrity": "sha512-7RTytDPGU6fek/hWuN9qQpeGPBZFfB4zZgcz2VK2Z5VpdUxEI8JKYsg3JfO0n/Z1E/6l05n0unDCNc4HnhQGig==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.11.tgz", + "integrity": "sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A==", "cpu": [ "x64" ], @@ -1354,9 +1374,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.10.tgz", - "integrity": "sha512-5Se0VM9Wtq797YFn+dLimf2Zx6McttsH2olUBsDml+lm0GOCRVebRWUvDtkY4BWYv/3NgzS8b/UM3jQNh5hYyw==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.11.tgz", + "integrity": "sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg==", "cpu": [ "arm64" ], @@ -1371,9 +1391,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.10.tgz", - "integrity": "sha512-XkA4frq1TLj4bEMB+2HnI0+4RnjbuGZfet2gs/LNs5Hc7D89ZQBHQ0gL2ND6Lzu1+QVkjp3x1gIcPKzRNP8bXw==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.11.tgz", + "integrity": "sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw==", "cpu": [ "x64" ], @@ -1388,9 +1408,9 @@ } }, "node_modules/@esbuild/openharmony-arm64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.10.tgz", - "integrity": "sha512-AVTSBhTX8Y/Fz6OmIVBip9tJzZEUcY8WLh7I59+upa5/GPhh2/aM6bvOMQySspnCCHvFi79kMtdJS1w0DXAeag==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.11.tgz", + "integrity": "sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ==", "cpu": [ "arm64" ], @@ -1405,9 +1425,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.10.tgz", - "integrity": "sha512-fswk3XT0Uf2pGJmOpDB7yknqhVkJQkAQOcW/ccVOtfx05LkbWOaRAtn5SaqXypeKQra1QaEa841PgrSL9ubSPQ==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.11.tgz", + "integrity": "sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA==", "cpu": [ "x64" ], @@ -1422,9 +1442,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.10.tgz", - "integrity": "sha512-ah+9b59KDTSfpaCg6VdJoOQvKjI33nTaQr4UluQwW7aEwZQsbMCfTmfEO4VyewOxx4RaDT/xCy9ra2GPWmO7Kw==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.11.tgz", + "integrity": "sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q==", "cpu": [ "arm64" ], @@ -1439,9 +1459,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.10.tgz", - "integrity": "sha512-QHPDbKkrGO8/cz9LKVnJU22HOi4pxZnZhhA2HYHez5Pz4JeffhDjf85E57Oyco163GnzNCVkZK0b/n4Y0UHcSw==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.11.tgz", + "integrity": "sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA==", "cpu": [ "ia32" ], @@ -1456,9 +1476,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.10.tgz", - "integrity": "sha512-9KpxSVFCu0iK1owoez6aC/s/EdUQLDN3adTxGCqxMVhrPDj6bt5dbrHDXUuq+Bs2vATFBBrQS5vdQ/Ed2P+nbw==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.11.tgz", + "integrity": "sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA==", "cpu": [ "x64" ], @@ -1492,9 +1512,9 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", "dev": true, "license": "MIT", "engines": { @@ -1502,13 +1522,13 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.0.tgz", - "integrity": "sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz", + "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/object-schema": "^2.1.6", + "@eslint/object-schema": "^2.1.7", "debug": "^4.3.1", "minimatch": "^3.1.2" }, @@ -1541,19 +1561,22 @@ } }, "node_modules/@eslint/config-helpers": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.1.tgz", - "integrity": "sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.1.tgz", + "integrity": "sha512-csZAzkNhsgwb0I/UAV6/RGFTbiakPCf0ZrGmrIxQpYvGZ00PhTkSnyKNolphgIvmnJeGw6rcGVEXfTzUnFuEvw==", "dev": true, "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.16.0" + }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@eslint/core": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.2.tgz", - "integrity": "sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==", + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.16.0.tgz", + "integrity": "sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -1635,9 +1658,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.36.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.36.0.tgz", - "integrity": "sha512-uhCbYtYynH30iZErszX78U+nR3pJU3RHGQ57NXy5QupD4SBVwDeU8TNBy+MjMngc1UyIW9noKqsRqfjQTBU2dw==", + "version": "9.38.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.38.0.tgz", + "integrity": "sha512-UZ1VpFvXf9J06YG9xQBdnzU+kthors6KjhMAl6f4gH4usHyh31rUf2DLGInT8RFYIReYXNSydgPY0V2LuWgl7A==", "dev": true, "license": "MIT", "engines": { @@ -1648,9 +1671,9 @@ } }, "node_modules/@eslint/object-schema": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", - "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -1658,13 +1681,13 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.5.tgz", - "integrity": "sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.0.tgz", + "integrity": "sha512-sB5uyeq+dwCWyPi31B2gQlVlo+j5brPlWx4yZBrEaRo/nhdDE8Xke1gsGgtiBdaBTxuTkceLVuVt/pclrasb0A==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.15.2", + "@eslint/core": "^0.16.0", "levn": "^0.4.1" }, "engines": { @@ -1777,9 +1800,9 @@ } }, "node_modules/@iconify-json/material-symbols": { - "version": "1.2.37", - "resolved": "https://registry.npmjs.org/@iconify-json/material-symbols/-/material-symbols-1.2.37.tgz", - "integrity": "sha512-T9R1IUJ3CBWGTo/qJLpXTPwy9JOCJucSONXxJKIdUpOzINhFfHBg8TvUUVcFNv8qw6L4upQyptnI6iJqbxxUWw==", + "version": "1.2.43", + "resolved": "https://registry.npmjs.org/@iconify-json/material-symbols/-/material-symbols-1.2.43.tgz", + "integrity": "sha512-Atn0KzZkk96vZuSA//BEzwd9we8FUbifNIWxS9+ngPbWsZEKv1WAe+Gxle8BQjvnfIpewCP1opIeHKMxcNEmPw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -1940,18 +1963,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/@isaacs/fs-minipass": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", - "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", - "license": "ISC", - "dependencies": { - "minipass": "^7.0.4" - }, - "engines": { - "node": ">=18.0.0" - } - }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", @@ -2013,10 +2024,16 @@ "integrity": "sha512-e4psVV9Fe2eBfS9xK2rzQ9lE5xS4tARm7EJzDb6sVZy3F+EMyHJ67i0NdBVR9BRyQx7YhogMCbB6R1QwXuBxMg==", "license": "MIT" }, + "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==", + "license": "MIT" + }, "node_modules/@mantine/core": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/@mantine/core/-/core-8.3.1.tgz", - "integrity": "sha512-OYfxn9cTv+K6RZ8+Ozn/HDQXkB8Fmn+KJJt5lxyFDP9F09EHnC59Ldadv1LyUZVBGtNqz4sn6b3vBShbxwAmYw==", + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@mantine/core/-/core-8.3.5.tgz", + "integrity": "sha512-PdVNLMgOS2vFhOujRi6/VC9ic8w3UDyKX7ftwDeJ7yQT8CiepUxfbWWYpVpnq23bdWh/7fIT2Pn1EY8r8GOk7g==", "license": "MIT", "dependencies": { "@floating-ui/react": "^0.27.16", @@ -2027,46 +2044,46 @@ "type-fest": "^4.41.0" }, "peerDependencies": { - "@mantine/hooks": "8.3.1", + "@mantine/hooks": "8.3.5", "react": "^18.x || ^19.x", "react-dom": "^18.x || ^19.x" } }, "node_modules/@mantine/dates": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/@mantine/dates/-/dates-8.3.1.tgz", - "integrity": "sha512-qCGlLnrwu9eQsl+yQC/tEYgTEO8rE6hopagNpTV2/wzLBUywlL/AbtB1yHuOikQgZxXAOLfvIBWNTWUHRtTnfw==", + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@mantine/dates/-/dates-8.3.5.tgz", + "integrity": "sha512-LkIdC4eWPNQFv1BU1c52U3Z3RuA3yU1asvTgMEIQ/MdJsGK8GePwpgMH/jKQ8ba/AW9NfksdvtOJ6uIqPwjCkg==", "license": "MIT", "dependencies": { "clsx": "^2.1.1" }, "peerDependencies": { - "@mantine/core": "8.3.1", - "@mantine/hooks": "8.3.1", + "@mantine/core": "8.3.5", + "@mantine/hooks": "8.3.5", "dayjs": ">=1.0.0", "react": "^18.x || ^19.x", "react-dom": "^18.x || ^19.x" } }, "node_modules/@mantine/dropzone": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/@mantine/dropzone/-/dropzone-8.3.1.tgz", - "integrity": "sha512-jsaZhX02Uu8FDWBYNk59wWEBNO0hrayuBfRGqSjY/FQwRHZXIBgfuBsE3AIBJte6ptX+gWSR0Bhwids0LicEtg==", + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@mantine/dropzone/-/dropzone-8.3.5.tgz", + "integrity": "sha512-8eRNoEYQzUOav8Te58osGRt2vbqJO3ZORXgKALY+FhB0YGRCZYmS/gQ2T66SpyrpovY6k6OVi1ScM3wRaJrxUg==", "license": "MIT", "dependencies": { "react-dropzone": "14.3.8" }, "peerDependencies": { - "@mantine/core": "8.3.1", - "@mantine/hooks": "8.3.1", + "@mantine/core": "8.3.5", + "@mantine/hooks": "8.3.5", "react": "^18.x || ^19.x", "react-dom": "^18.x || ^19.x" } }, "node_modules/@mantine/hooks": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/@mantine/hooks/-/hooks-8.3.1.tgz", - "integrity": "sha512-lQutBS+Q0iz/cNFvdrsYassPWo3RtWcmDGJeOtKfHigLzFOhxUuLOkQgepDbMf3WcVMB/tist6Px1PQOv57JTw==", + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@mantine/hooks/-/hooks-8.3.5.tgz", + "integrity": "sha512-0Wf08eWLKi3WkKlxnV1W5vfuN6wcvAV2VbhQlOy0R9nrWorGTtonQF6qqBE3PnJFYF1/ZE+HkYZQ/Dr7DmYSMQ==", "license": "MIT", "peerDependencies": { "react": "^18.x || ^19.x" @@ -2084,9 +2101,9 @@ } }, "node_modules/@maxim_mazurok/gapi.client.drive-v3": { - "version": "0.1.20250930", - "resolved": "https://registry.npmjs.org/@maxim_mazurok/gapi.client.drive-v3/-/gapi.client.drive-v3-0.1.20250930.tgz", - "integrity": "sha512-zNR7HtaFl2Pvf8Ck2zP8cppUst7ouY2isKn7hrGf6hQ4/0ULsu19qMRSQgRb0HxBYcGjak7kGK4pZI4a2z4CWQ==", + "version": "0.1.20251021", + "resolved": "https://registry.npmjs.org/@maxim_mazurok/gapi.client.drive-v3/-/gapi.client.drive-v3-0.1.20251021.tgz", + "integrity": "sha512-bfjWWFpDm+Y5PcssNb2JzrxgtmEKfva+HTngPmsHinBH9JC7qe9OuODUtWcwKyUJE1d0DendLjOhD9m7GDLX2A==", "dev": true, "license": "MIT", "dependencies": { @@ -2095,9 +2112,9 @@ } }, "node_modules/@mui/core-downloads-tracker": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-7.3.2.tgz", - "integrity": "sha512-AOyfHjyDKVPGJJFtxOlept3EYEdLoar/RvssBTWVAvDJGIE676dLi2oT/Kx+FoVXFoA/JdV7DEMq/BVWV3KHRw==", + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-7.3.4.tgz", + "integrity": "sha512-BIktMapG3r4iXwIhYNpvk97ZfYWTreBBQTWjQKbNbzI64+ULHfYavQEX2w99aSWHS58DvXESWIgbD9adKcUOBw==", "license": "MIT", "funding": { "type": "opencollective", @@ -2105,12 +2122,12 @@ } }, "node_modules/@mui/icons-material": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-7.3.2.tgz", - "integrity": "sha512-TZWazBjWXBjR6iGcNkbKklnwodcwj0SrChCNHc9BhD9rBgET22J1eFhHsEmvSvru9+opDy3umqAimQjokhfJlQ==", + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-7.3.4.tgz", + "integrity": "sha512-9n6Xcq7molXWYb680N2Qx+FRW8oT6j/LXF5PZFH3ph9X/Rct0B/BlLAsFI7iL9ySI6LVLuQIVtrLiPT82R7OZw==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.28.3" + "@babel/runtime": "^7.28.4" }, "engines": { "node": ">=14.0.0" @@ -2120,7 +2137,7 @@ "url": "https://opencollective.com/mui-org" }, "peerDependencies": { - "@mui/material": "^7.3.2", + "@mui/material": "^7.3.4", "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", "react": "^17.0.0 || ^18.0.0 || ^19.0.0" }, @@ -2131,16 +2148,16 @@ } }, "node_modules/@mui/material": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-7.3.2.tgz", - "integrity": "sha512-qXvbnawQhqUVfH1LMgMaiytP+ZpGoYhnGl7yYq2x57GYzcFL/iPzSZ3L30tlbwEjSVKNYcbiKO8tANR1tadjUg==", + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-7.3.4.tgz", + "integrity": "sha512-gEQL9pbJZZHT7lYJBKQCS723v1MGys2IFc94COXbUIyCTWa+qC77a7hUax4Yjd5ggEm35dk4AyYABpKKWC4MLw==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.28.3", - "@mui/core-downloads-tracker": "^7.3.2", - "@mui/system": "^7.3.2", - "@mui/types": "^7.4.6", - "@mui/utils": "^7.3.2", + "@babel/runtime": "^7.28.4", + "@mui/core-downloads-tracker": "^7.3.4", + "@mui/system": "^7.3.3", + "@mui/types": "^7.4.7", + "@mui/utils": "^7.3.3", "@popperjs/core": "^2.11.8", "@types/react-transition-group": "^4.4.12", "clsx": "^2.1.1", @@ -2159,7 +2176,7 @@ "peerDependencies": { "@emotion/react": "^11.5.0", "@emotion/styled": "^11.3.0", - "@mui/material-pigment-css": "^7.3.2", + "@mui/material-pigment-css": "^7.3.3", "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", "react": "^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" @@ -2180,13 +2197,13 @@ } }, "node_modules/@mui/private-theming": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-7.3.2.tgz", - "integrity": "sha512-ha7mFoOyZGJr75xeiO9lugS3joRROjc8tG1u4P50dH0KR7bwhHznVMcYg7MouochUy0OxooJm/OOSpJ7gKcMvg==", + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-7.3.3.tgz", + "integrity": "sha512-OJM+9nj5JIyPUvsZ5ZjaeC9PfktmK+W5YaVLToLR8L0lB/DGmv1gcKE43ssNLSvpoW71Hct0necfade6+kW3zQ==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.28.3", - "@mui/utils": "^7.3.2", + "@babel/runtime": "^7.28.4", + "@mui/utils": "^7.3.3", "prop-types": "^15.8.1" }, "engines": { @@ -2207,12 +2224,12 @@ } }, "node_modules/@mui/styled-engine": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-7.3.2.tgz", - "integrity": "sha512-PkJzW+mTaek4e0nPYZ6qLnW5RGa0KN+eRTf5FA2nc7cFZTeM+qebmGibaTLrgQBy3UpcpemaqfzToBNkzuxqew==", + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-7.3.3.tgz", + "integrity": "sha512-CmFxvRJIBCEaWdilhXMw/5wFJ1+FT9f3xt+m2pPXhHPeVIbBg9MnMvNSJjdALvnQJMPw8jLhrUtXmN7QAZV2fw==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.28.3", + "@babel/runtime": "^7.28.4", "@emotion/cache": "^11.14.0", "@emotion/serialize": "^1.3.3", "@emotion/sheet": "^1.4.0", @@ -2241,16 +2258,16 @@ } }, "node_modules/@mui/system": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-7.3.2.tgz", - "integrity": "sha512-9d8JEvZW+H6cVkaZ+FK56R53vkJe3HsTpcjMUtH8v1xK6Y1TjzHdZ7Jck02mGXJsE6MQGWVs3ogRHTQmS9Q/rA==", + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-7.3.3.tgz", + "integrity": "sha512-Lqq3emZr5IzRLKaHPuMaLBDVaGvxoh6z7HMWd1RPKawBM5uMRaQ4ImsmmgXWtwJdfZux5eugfDhXJUo2mliS8Q==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.28.3", - "@mui/private-theming": "^7.3.2", - "@mui/styled-engine": "^7.3.2", - "@mui/types": "^7.4.6", - "@mui/utils": "^7.3.2", + "@babel/runtime": "^7.28.4", + "@mui/private-theming": "^7.3.3", + "@mui/styled-engine": "^7.3.3", + "@mui/types": "^7.4.7", + "@mui/utils": "^7.3.3", "clsx": "^2.1.1", "csstype": "^3.1.3", "prop-types": "^15.8.1" @@ -2281,12 +2298,12 @@ } }, "node_modules/@mui/types": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.4.6.tgz", - "integrity": "sha512-NVBbIw+4CDMMppNamVxyTccNv0WxtDb7motWDlMeSC8Oy95saj1TIZMGynPpFLePt3yOD8TskzumeqORCgRGWw==", + "version": "7.4.7", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.4.7.tgz", + "integrity": "sha512-8vVje9rdEr1rY8oIkYgP+Su5Kwl6ik7O3jQ0wl78JGSmiZhRHV+vkjooGdKD8pbtZbutXFVTWQYshu2b3sG9zw==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.28.3" + "@babel/runtime": "^7.28.4" }, "peerDependencies": { "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0" @@ -2298,13 +2315,13 @@ } }, "node_modules/@mui/utils": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-7.3.2.tgz", - "integrity": "sha512-4DMWQGenOdLnM3y/SdFQFwKsCLM+mqxzvoWp9+x2XdEzXapkznauHLiXtSohHs/mc0+5/9UACt1GdugCX2te5g==", + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-7.3.3.tgz", + "integrity": "sha512-kwNAUh7bLZ7mRz9JZ+6qfRnnxbE4Zuc+RzXnhSpRSxjTlSTj7b4JxRLXpG+MVtPVtqks5k/XC8No1Vs3x4Z2gg==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.28.3", - "@mui/types": "^7.4.6", + "@babel/runtime": "^7.28.4", + "@mui/types": "^7.4.7", "@types/prop-types": "^15.7.15", "clsx": "^2.1.1", "prop-types": "^15.8.1", @@ -2328,9 +2345,9 @@ } }, "node_modules/@napi-rs/canvas": { - "version": "0.1.80", - "resolved": "https://registry.npmjs.org/@napi-rs/canvas/-/canvas-0.1.80.tgz", - "integrity": "sha512-DxuT1ClnIPts1kQx8FBmkk4BQDTfI5kIzywAaMjQSXfNnra5UFU9PwurXrl+Je3bJ6BGsp/zmshVVFbCmyI+ww==", + "version": "0.1.81", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas/-/canvas-0.1.81.tgz", + "integrity": "sha512-ReCjd5SYI/UKx/olaQLC4GtN6wUQGjlgHXs1lvUvWGXfBMR3Fxnik3cL+OxKN5ithNdoU0/GlCrdKcQDFh2XKQ==", "license": "MIT", "optional": true, "workspaces": [ @@ -2340,22 +2357,22 @@ "node": ">= 10" }, "optionalDependencies": { - "@napi-rs/canvas-android-arm64": "0.1.80", - "@napi-rs/canvas-darwin-arm64": "0.1.80", - "@napi-rs/canvas-darwin-x64": "0.1.80", - "@napi-rs/canvas-linux-arm-gnueabihf": "0.1.80", - "@napi-rs/canvas-linux-arm64-gnu": "0.1.80", - "@napi-rs/canvas-linux-arm64-musl": "0.1.80", - "@napi-rs/canvas-linux-riscv64-gnu": "0.1.80", - "@napi-rs/canvas-linux-x64-gnu": "0.1.80", - "@napi-rs/canvas-linux-x64-musl": "0.1.80", - "@napi-rs/canvas-win32-x64-msvc": "0.1.80" + "@napi-rs/canvas-android-arm64": "0.1.81", + "@napi-rs/canvas-darwin-arm64": "0.1.81", + "@napi-rs/canvas-darwin-x64": "0.1.81", + "@napi-rs/canvas-linux-arm-gnueabihf": "0.1.81", + "@napi-rs/canvas-linux-arm64-gnu": "0.1.81", + "@napi-rs/canvas-linux-arm64-musl": "0.1.81", + "@napi-rs/canvas-linux-riscv64-gnu": "0.1.81", + "@napi-rs/canvas-linux-x64-gnu": "0.1.81", + "@napi-rs/canvas-linux-x64-musl": "0.1.81", + "@napi-rs/canvas-win32-x64-msvc": "0.1.81" } }, "node_modules/@napi-rs/canvas-android-arm64": { - "version": "0.1.80", - "resolved": "https://registry.npmjs.org/@napi-rs/canvas-android-arm64/-/canvas-android-arm64-0.1.80.tgz", - "integrity": "sha512-sk7xhN/MoXeuExlggf91pNziBxLPVUqF2CAVnB57KLG/pz7+U5TKG8eXdc3pm0d7Od0WreB6ZKLj37sX9muGOQ==", + "version": "0.1.81", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-android-arm64/-/canvas-android-arm64-0.1.81.tgz", + "integrity": "sha512-78Lz+AUi+MsWupyZjXwpwQrp1QCwncPvRZrdvrROcZ9Gq9grP7LfQZiGdR8LKyHIq3OR18mDP+JESGT15V1nXw==", "cpu": [ "arm64" ], @@ -2369,9 +2386,9 @@ } }, "node_modules/@napi-rs/canvas-darwin-arm64": { - "version": "0.1.80", - "resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-arm64/-/canvas-darwin-arm64-0.1.80.tgz", - "integrity": "sha512-O64APRTXRUiAz0P8gErkfEr3lipLJgM6pjATwavZ22ebhjYl/SUbpgM0xcWPQBNMP1n29afAC/Us5PX1vg+JNQ==", + "version": "0.1.81", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-arm64/-/canvas-darwin-arm64-0.1.81.tgz", + "integrity": "sha512-omejuKgHWKDGoh8rsgsyhm/whwxMaryTQjJTd9zD7hiB9/rzcEEJLHnzXWR5ysy4/tTjHaQotE6k2t8eodTLnA==", "cpu": [ "arm64" ], @@ -2385,9 +2402,9 @@ } }, "node_modules/@napi-rs/canvas-darwin-x64": { - "version": "0.1.80", - "resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-x64/-/canvas-darwin-x64-0.1.80.tgz", - "integrity": "sha512-FqqSU7qFce0Cp3pwnTjVkKjjOtxMqRe6lmINxpIZYaZNnVI0H5FtsaraZJ36SiTHNjZlUB69/HhxNDT1Aaa9vA==", + "version": "0.1.81", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-x64/-/canvas-darwin-x64-0.1.81.tgz", + "integrity": "sha512-EYfk+co6BElq5DXNH9PBLYDYwc4QsvIVbyrsVHsxVpn4p6Y3/s8MChgC69AGqj3vzZBQ1qx2CRCMtg5cub+XuQ==", "cpu": [ "x64" ], @@ -2401,9 +2418,9 @@ } }, "node_modules/@napi-rs/canvas-linux-arm-gnueabihf": { - "version": "0.1.80", - "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm-gnueabihf/-/canvas-linux-arm-gnueabihf-0.1.80.tgz", - "integrity": "sha512-eyWz0ddBDQc7/JbAtY4OtZ5SpK8tR4JsCYEZjCE3dI8pqoWUC8oMwYSBGCYfsx2w47cQgQCgMVRVTFiiO38hHQ==", + "version": "0.1.81", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm-gnueabihf/-/canvas-linux-arm-gnueabihf-0.1.81.tgz", + "integrity": "sha512-teh6Q74CyAcH31yLNQGR9MtXSFxlZa5CI6vvNUISI14gWIJWrhOwUAOly+KRe1aztWR0FWTVSPxM4p5y+06aow==", "cpu": [ "arm" ], @@ -2417,9 +2434,9 @@ } }, "node_modules/@napi-rs/canvas-linux-arm64-gnu": { - "version": "0.1.80", - "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-gnu/-/canvas-linux-arm64-gnu-0.1.80.tgz", - "integrity": "sha512-qwA63t8A86bnxhuA/GwOkK3jvb+XTQaTiVML0vAWoHyoZYTjNs7BzoOONDgTnNtr8/yHrq64XXzUoLqDzU+Uuw==", + "version": "0.1.81", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-gnu/-/canvas-linux-arm64-gnu-0.1.81.tgz", + "integrity": "sha512-AGEopHFYRzJOjxY+2G1RmHPRnuWvO3Qdhq7sIazlSjxb3Z6dZHg7OB/4ZimXaimPjDACm9qWa6t5bn9bhXvkcw==", "cpu": [ "arm64" ], @@ -2433,9 +2450,9 @@ } }, "node_modules/@napi-rs/canvas-linux-arm64-musl": { - "version": "0.1.80", - "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-musl/-/canvas-linux-arm64-musl-0.1.80.tgz", - "integrity": "sha512-1XbCOz/ymhj24lFaIXtWnwv/6eFHXDrjP0jYkc6iHQ9q8oXKzUX1Lc6bu+wuGiLhGh2GS/2JlfORC5ZcXimRcg==", + "version": "0.1.81", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-musl/-/canvas-linux-arm64-musl-0.1.81.tgz", + "integrity": "sha512-Bj3m1cl4GIhsigkdwOxii4g4Ump3/QhNpx85IgAlCCYXpaly6mcsWpuDYEabfIGWOWhDUNBOndaQUPfWK1czOQ==", "cpu": [ "arm64" ], @@ -2449,9 +2466,9 @@ } }, "node_modules/@napi-rs/canvas-linux-riscv64-gnu": { - "version": "0.1.80", - "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-riscv64-gnu/-/canvas-linux-riscv64-gnu-0.1.80.tgz", - "integrity": "sha512-XTzR125w5ZMs0lJcxRlS1K3P5RaZ9RmUsPtd1uGt+EfDyYMu4c6SEROYsxyatbbu/2+lPe7MPHOO/0a0x7L/gw==", + "version": "0.1.81", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-riscv64-gnu/-/canvas-linux-riscv64-gnu-0.1.81.tgz", + "integrity": "sha512-yg/5NkHykVdwPlD3XObwCa/EswkOwLHswJcI9rHrac+znHsmCSj5AMX/RTU9Z9F6lZTwL60JM2Esit33XhAMiw==", "cpu": [ "riscv64" ], @@ -2465,9 +2482,9 @@ } }, "node_modules/@napi-rs/canvas-linux-x64-gnu": { - "version": "0.1.80", - "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-gnu/-/canvas-linux-x64-gnu-0.1.80.tgz", - "integrity": "sha512-BeXAmhKg1kX3UCrJsYbdQd3hIMDH/K6HnP/pG2LuITaXhXBiNdh//TVVVVCBbJzVQaV5gK/4ZOCMrQW9mvuTqA==", + "version": "0.1.81", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-gnu/-/canvas-linux-x64-gnu-0.1.81.tgz", + "integrity": "sha512-tPfMpSEBuV5dJSKexO/UZxpOqnYTaNbG8aKa1ek8QsWu+4SJ/foWkaxscra/RUv85vepx6WWDjzBNbNJsTnO0w==", "cpu": [ "x64" ], @@ -2481,9 +2498,9 @@ } }, "node_modules/@napi-rs/canvas-linux-x64-musl": { - "version": "0.1.80", - "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-musl/-/canvas-linux-x64-musl-0.1.80.tgz", - "integrity": "sha512-x0XvZWdHbkgdgucJsRxprX/4o4sEed7qo9rCQA9ugiS9qE2QvP0RIiEugtZhfLH3cyI+jIRFJHV4Fuz+1BHHMg==", + "version": "0.1.81", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-musl/-/canvas-linux-x64-musl-0.1.81.tgz", + "integrity": "sha512-1L0xnYgzqn8Baef+inPvY4dKqdmw3KCBoe0NEDgezuBZN7MA5xElwifoG8609uNdrMtJ9J6QZarsslLRVqri7g==", "cpu": [ "x64" ], @@ -2497,9 +2514,9 @@ } }, "node_modules/@napi-rs/canvas-win32-x64-msvc": { - "version": "0.1.80", - "resolved": "https://registry.npmjs.org/@napi-rs/canvas-win32-x64-msvc/-/canvas-win32-x64-msvc-0.1.80.tgz", - "integrity": "sha512-Z8jPsM6df5V8B1HrCHB05+bDiCxjE9QA//3YrkKIdVDEwn5RKaqOxCJDRJkl48cJbylcrJbW4HxZbTte8juuPg==", + "version": "0.1.81", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-win32-x64-msvc/-/canvas-win32-x64-msvc-0.1.81.tgz", + "integrity": "sha512-57ryVbhm/z7RE9/UVcS7mrLPdlayLesy+9U0Uf6epCoeSGrs99tfieCcgZWFbIgmByQ1AZnNtFI2N6huqDLlWQ==", "cpu": [ "x64" ], @@ -2592,13 +2609,13 @@ } }, "node_modules/@playwright/test": { - "version": "1.55.0", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.55.0.tgz", - "integrity": "sha512-04IXzPwHrW69XusN/SIdDdKZBzMfOT9UNT/YiJit/xpy2VuAoB8NHc8Aplb96zsWDddLnbkPL3TsmrS04ZU2xQ==", + "version": "1.56.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.56.1.tgz", + "integrity": "sha512-vSMYtL/zOcFpvJCW71Q/OEGQb7KYBPAdKh35WNSkaZA75JlAO8ED8UN6GUNTm3drWomcbcqRPFqQbLae8yBTdg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright": "1.55.0" + "playwright": "1.56.1" }, "bin": { "playwright": "cli.js" @@ -2618,9 +2635,9 @@ } }, "node_modules/@posthog/core": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@posthog/core/-/core-1.1.0.tgz", - "integrity": "sha512-igElrcnRPJh2nWYACschjH4OwGwzSa6xVFzRDVzpnjirUivdJ8nv4hE+H31nvwE56MFhvvglfHuotnWLMcRW7w==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@posthog/core/-/core-1.4.0.tgz", + "integrity": "sha512-jmW8/I//YOHAfjzokqas+Qtc2T57Ux8d2uIJu7FLcMGxywckHsl6od59CD18jtUzKToQdjQhV6Y3429qj+KeNw==", "license": "MIT" }, "node_modules/@puppeteer/browsers": { @@ -2697,16 +2714,16 @@ } }, "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-beta.35", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.35.tgz", - "integrity": "sha512-slYrCpoxJUqzFDDNlvrOYRazQUNRvWPjXA17dAOISY3rDMxX6k8K4cj2H+hEYMHF81HO3uNd5rHVigAWRM5dSg==", + "version": "1.0.0-beta.43", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.43.tgz", + "integrity": "sha512-5Uxg7fQUCmfhax7FJke2+8B6cqgeUJUD9o2uXIKXhD+mG0mL6NObmVoi9wXEU1tY89mZKgAYA6fTbftx3q2ZPQ==", "dev": true, "license": "MIT" }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.52.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.0.tgz", - "integrity": "sha512-VxDYCDqOaR7NXzAtvRx7G1u54d2kEHopb28YH/pKzY6y0qmogP3gG7CSiWsq9WvDFxOQMpNEyjVAHZFXfH3o/A==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.5.tgz", + "integrity": "sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==", "cpu": [ "arm" ], @@ -2718,9 +2735,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.52.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.0.tgz", - "integrity": "sha512-pqDirm8koABIKvzL59YI9W9DWbRlTX7RWhN+auR8HXJxo89m4mjqbah7nJZjeKNTNYopqL+yGg+0mhCpf3xZtQ==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.5.tgz", + "integrity": "sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==", "cpu": [ "arm64" ], @@ -2732,9 +2749,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.52.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.0.tgz", - "integrity": "sha512-YCdWlY/8ltN6H78HnMsRHYlPiKvqKagBP1r+D7SSylxX+HnsgXGCmLiV3Y4nSyY9hW8qr8U9LDUx/Lo7M6MfmQ==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.5.tgz", + "integrity": "sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==", "cpu": [ "arm64" ], @@ -2746,9 +2763,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.52.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.0.tgz", - "integrity": "sha512-z4nw6y1j+OOSGzuVbSWdIp1IUks9qNw4dc7z7lWuWDKojY38VMWBlEN7F9jk5UXOkUcp97vA1N213DF+Lz8BRg==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.5.tgz", + "integrity": "sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==", "cpu": [ "x64" ], @@ -2760,9 +2777,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.52.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.0.tgz", - "integrity": "sha512-Q/dv9Yvyr5rKlK8WQJZVrp5g2SOYeZUs9u/t2f9cQ2E0gJjYB/BWoedXfUT0EcDJefi2zzVfhcOj8drWCzTviw==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.5.tgz", + "integrity": "sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==", "cpu": [ "arm64" ], @@ -2774,9 +2791,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.52.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.0.tgz", - "integrity": "sha512-kdBsLs4Uile/fbjZVvCRcKB4q64R+1mUq0Yd7oU1CMm1Av336ajIFqNFovByipciuUQjBCPMxwJhCgfG2re3rg==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.5.tgz", + "integrity": "sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==", "cpu": [ "x64" ], @@ -2788,9 +2805,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.52.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.0.tgz", - "integrity": "sha512-aL6hRwu0k7MTUESgkg7QHY6CoqPgr6gdQXRJI1/VbFlUMwsSzPGSR7sG5d+MCbYnJmJwThc2ol3nixj1fvI/zQ==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.5.tgz", + "integrity": "sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==", "cpu": [ "arm" ], @@ -2802,9 +2819,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.52.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.0.tgz", - "integrity": "sha512-BTs0M5s1EJejgIBJhCeiFo7GZZ2IXWkFGcyZhxX4+8usnIo5Mti57108vjXFIQmmJaRyDwmV59Tw64Ap1dkwMw==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.5.tgz", + "integrity": "sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==", "cpu": [ "arm" ], @@ -2816,9 +2833,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.52.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.0.tgz", - "integrity": "sha512-uj672IVOU9m08DBGvoPKPi/J8jlVgjh12C9GmjjBxCTQc3XtVmRkRKyeHSmIKQpvJ7fIm1EJieBUcnGSzDVFyw==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.5.tgz", + "integrity": "sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==", "cpu": [ "arm64" ], @@ -2830,9 +2847,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.52.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.0.tgz", - "integrity": "sha512-/+IVbeDMDCtB/HP/wiWsSzduD10SEGzIZX2945KSgZRNi4TSkjHqRJtNTVtVb8IRwhJ65ssI56krlLik+zFWkw==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.5.tgz", + "integrity": "sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==", "cpu": [ "arm64" ], @@ -2844,9 +2861,9 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.52.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.0.tgz", - "integrity": "sha512-U1vVzvSWtSMWKKrGoROPBXMh3Vwn93TA9V35PldokHGqiUbF6erSzox/5qrSMKp6SzakvyjcPiVF8yB1xKr9Pg==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.5.tgz", + "integrity": "sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA==", "cpu": [ "loong64" ], @@ -2858,9 +2875,9 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.52.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.0.tgz", - "integrity": "sha512-X/4WfuBAdQRH8cK3DYl8zC00XEE6aM472W+QCycpQJeLWVnHfkv7RyBFVaTqNUMsTgIX8ihMjCvFF9OUgeABzw==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.5.tgz", + "integrity": "sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==", "cpu": [ "ppc64" ], @@ -2872,9 +2889,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.52.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.0.tgz", - "integrity": "sha512-xIRYc58HfWDBZoLmWfWXg2Sq8VCa2iJ32B7mqfWnkx5mekekl0tMe7FHpY8I72RXEcUkaWawRvl3qA55og+cwQ==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.5.tgz", + "integrity": "sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==", "cpu": [ "riscv64" ], @@ -2886,9 +2903,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.52.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.0.tgz", - "integrity": "sha512-mbsoUey05WJIOz8U1WzNdf+6UMYGwE3fZZnQqsM22FZ3wh1N887HT6jAOjXs6CNEK3Ntu2OBsyQDXfIjouI4dw==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.5.tgz", + "integrity": "sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==", "cpu": [ "riscv64" ], @@ -2900,9 +2917,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.52.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.0.tgz", - "integrity": "sha512-qP6aP970bucEi5KKKR4AuPFd8aTx9EF6BvutvYxmZuWLJHmnq4LvBfp0U+yFDMGwJ+AIJEH5sIP+SNypauMWzg==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.5.tgz", + "integrity": "sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==", "cpu": [ "s390x" ], @@ -2914,9 +2931,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.52.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.0.tgz", - "integrity": "sha512-nmSVN+F2i1yKZ7rJNKO3G7ZzmxJgoQBQZ/6c4MuS553Grmr7WqR7LLDcYG53Z2m9409z3JLt4sCOhLdbKQ3HmA==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.5.tgz", + "integrity": "sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==", "cpu": [ "x64" ], @@ -2928,9 +2945,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.52.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.0.tgz", - "integrity": "sha512-2d0qRo33G6TfQVjaMR71P+yJVGODrt5V6+T0BDYH4EMfGgdC/2HWDVjSSFw888GSzAZUwuska3+zxNUCDco6rQ==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.5.tgz", + "integrity": "sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==", "cpu": [ "x64" ], @@ -2942,9 +2959,9 @@ ] }, "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.52.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.0.tgz", - "integrity": "sha512-A1JalX4MOaFAAyGgpO7XP5khquv/7xKzLIyLmhNrbiCxWpMlnsTYr8dnsWM7sEeotNmxvSOEL7F65j0HXFcFsw==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.5.tgz", + "integrity": "sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==", "cpu": [ "arm64" ], @@ -2956,9 +2973,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.52.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.0.tgz", - "integrity": "sha512-YQugafP/rH0eOOHGjmNgDURrpYHrIX0yuojOI8bwCyXwxC9ZdTd3vYkmddPX0oHONLXu9Rb1dDmT0VNpjkzGGw==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.5.tgz", + "integrity": "sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==", "cpu": [ "arm64" ], @@ -2970,9 +2987,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.52.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.0.tgz", - "integrity": "sha512-zYdUYhi3Qe2fndujBqL5FjAFzvNeLxtIqfzNEVKD1I7C37/chv1VxhscWSQHTNfjPCrBFQMnynwA3kpZpZ8w4A==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.5.tgz", + "integrity": "sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==", "cpu": [ "ia32" ], @@ -2984,9 +3001,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.52.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.0.tgz", - "integrity": "sha512-fGk03kQylNaCOQ96HDMeT7E2n91EqvCDd3RwvT5k+xNdFCeMGnj5b5hEgTGrQuyidqSsD3zJDQ21QIaxXqTBJw==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.5.tgz", + "integrity": "sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ==", "cpu": [ "x64" ], @@ -2998,9 +3015,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.52.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.0.tgz", - "integrity": "sha512-6iKDCVSIUQ8jPMoIV0OytRKniaYyy5EbY/RRydmLW8ZR3cEBhxbWl5ro0rkUNe0ef6sScvhbY79HrjRm8i3vDQ==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.5.tgz", + "integrity": "sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==", "cpu": [ "x64" ], @@ -3045,6 +3062,16 @@ "url": "https://github.com/sindresorhus/is?sponsor=1" } }, + "node_modules/@sveltejs/acorn-typescript": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.6.tgz", + "integrity": "sha512-4awhxtMh4cx9blePWl10HRHj8Iivtqj+2QdDCSMDzxG+XKa9+VCNupQuCuvzEhYPzZSrX+0gC+0lHA/0fFKKQQ==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "acorn": "^8.9.0" + } + }, "node_modules/@swc/core": { "version": "1.13.5", "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.13.5.tgz", @@ -3284,52 +3311,47 @@ } }, "node_modules/@tailwindcss/node": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.13.tgz", - "integrity": "sha512-eq3ouolC1oEFOAvOMOBAmfCIqZBJuvWvvYWh5h5iOYfe1HFC6+GZ6EIL0JdM3/niGRJmnrOc+8gl9/HGUaaptw==", + "version": "4.1.16", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.16.tgz", + "integrity": "sha512-BX5iaSsloNuvKNHRN3k2RcCuTEgASTo77mofW0vmeHkfrDWaoFAFvNHpEgtu0eqyypcyiBkDWzSMxJhp3AUVcw==", "license": "MIT", "dependencies": { "@jridgewell/remapping": "^2.3.4", "enhanced-resolve": "^5.18.3", - "jiti": "^2.5.1", - "lightningcss": "1.30.1", - "magic-string": "^0.30.18", + "jiti": "^2.6.1", + "lightningcss": "1.30.2", + "magic-string": "^0.30.19", "source-map-js": "^1.2.1", - "tailwindcss": "4.1.13" + "tailwindcss": "4.1.16" } }, "node_modules/@tailwindcss/oxide": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.13.tgz", - "integrity": "sha512-CPgsM1IpGRa880sMbYmG1s4xhAy3xEt1QULgTJGQmZUeNgXFR7s1YxYygmJyBGtou4SyEosGAGEeYqY7R53bIA==", - "hasInstallScript": true, + "version": "4.1.16", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.16.tgz", + "integrity": "sha512-2OSv52FRuhdlgyOQqgtQHuCgXnS8nFSYRp2tJ+4WZXKgTxqPy7SMSls8c3mPT5pkZ17SBToGM5LHEJBO7miEdg==", "license": "MIT", - "dependencies": { - "detect-libc": "^2.0.4", - "tar": "^7.4.3" - }, "engines": { "node": ">= 10" }, "optionalDependencies": { - "@tailwindcss/oxide-android-arm64": "4.1.13", - "@tailwindcss/oxide-darwin-arm64": "4.1.13", - "@tailwindcss/oxide-darwin-x64": "4.1.13", - "@tailwindcss/oxide-freebsd-x64": "4.1.13", - "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.13", - "@tailwindcss/oxide-linux-arm64-gnu": "4.1.13", - "@tailwindcss/oxide-linux-arm64-musl": "4.1.13", - "@tailwindcss/oxide-linux-x64-gnu": "4.1.13", - "@tailwindcss/oxide-linux-x64-musl": "4.1.13", - "@tailwindcss/oxide-wasm32-wasi": "4.1.13", - "@tailwindcss/oxide-win32-arm64-msvc": "4.1.13", - "@tailwindcss/oxide-win32-x64-msvc": "4.1.13" + "@tailwindcss/oxide-android-arm64": "4.1.16", + "@tailwindcss/oxide-darwin-arm64": "4.1.16", + "@tailwindcss/oxide-darwin-x64": "4.1.16", + "@tailwindcss/oxide-freebsd-x64": "4.1.16", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.16", + "@tailwindcss/oxide-linux-arm64-gnu": "4.1.16", + "@tailwindcss/oxide-linux-arm64-musl": "4.1.16", + "@tailwindcss/oxide-linux-x64-gnu": "4.1.16", + "@tailwindcss/oxide-linux-x64-musl": "4.1.16", + "@tailwindcss/oxide-wasm32-wasi": "4.1.16", + "@tailwindcss/oxide-win32-arm64-msvc": "4.1.16", + "@tailwindcss/oxide-win32-x64-msvc": "4.1.16" } }, "node_modules/@tailwindcss/oxide-android-arm64": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.13.tgz", - "integrity": "sha512-BrpTrVYyejbgGo57yc8ieE+D6VT9GOgnNdmh5Sac6+t0m+v+sKQevpFVpwX3pBrM2qKrQwJ0c5eDbtjouY/+ew==", + "version": "4.1.16", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.16.tgz", + "integrity": "sha512-8+ctzkjHgwDJ5caq9IqRSgsP70xhdhJvm+oueS/yhD5ixLhqTw9fSL1OurzMUhBwE5zK26FXLCz2f/RtkISqHA==", "cpu": [ "arm64" ], @@ -3343,9 +3365,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-arm64": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.13.tgz", - "integrity": "sha512-YP+Jksc4U0KHcu76UhRDHq9bx4qtBftp9ShK/7UGfq0wpaP96YVnnjFnj3ZFrUAjc5iECzODl/Ts0AN7ZPOANQ==", + "version": "4.1.16", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.16.tgz", + "integrity": "sha512-C3oZy5042v2FOALBZtY0JTDnGNdS6w7DxL/odvSny17ORUnaRKhyTse8xYi3yKGyfnTUOdavRCdmc8QqJYwFKA==", "cpu": [ "arm64" ], @@ -3359,9 +3381,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-x64": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.13.tgz", - "integrity": "sha512-aAJ3bbwrn/PQHDxCto9sxwQfT30PzyYJFG0u/BWZGeVXi5Hx6uuUOQEI2Fa43qvmUjTRQNZnGqe9t0Zntexeuw==", + "version": "4.1.16", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.16.tgz", + "integrity": "sha512-vjrl/1Ub9+JwU6BP0emgipGjowzYZMjbWCDqwA2Z4vCa+HBSpP4v6U2ddejcHsolsYxwL5r4bPNoamlV0xDdLg==", "cpu": [ "x64" ], @@ -3375,9 +3397,9 @@ } }, "node_modules/@tailwindcss/oxide-freebsd-x64": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.13.tgz", - "integrity": "sha512-Wt8KvASHwSXhKE/dJLCCWcTSVmBj3xhVhp/aF3RpAhGeZ3sVo7+NTfgiN8Vey/Fi8prRClDs6/f0KXPDTZE6nQ==", + "version": "4.1.16", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.16.tgz", + "integrity": "sha512-TSMpPYpQLm+aR1wW5rKuUuEruc/oOX3C7H0BTnPDn7W/eMw8W+MRMpiypKMkXZfwH8wqPIRKppuZoedTtNj2tg==", "cpu": [ "x64" ], @@ -3391,9 +3413,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.13.tgz", - "integrity": "sha512-mbVbcAsW3Gkm2MGwA93eLtWrwajz91aXZCNSkGTx/R5eb6KpKD5q8Ueckkh9YNboU8RH7jiv+ol/I7ZyQ9H7Bw==", + "version": "4.1.16", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.16.tgz", + "integrity": "sha512-p0GGfRg/w0sdsFKBjMYvvKIiKy/LNWLWgV/plR4lUgrsxFAoQBFrXkZ4C0w8IOXfslB9vHK/JGASWD2IefIpvw==", "cpu": [ "arm" ], @@ -3407,9 +3429,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.13.tgz", - "integrity": "sha512-wdtfkmpXiwej/yoAkrCP2DNzRXCALq9NVLgLELgLim1QpSfhQM5+ZxQQF8fkOiEpuNoKLp4nKZ6RC4kmeFH0HQ==", + "version": "4.1.16", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.16.tgz", + "integrity": "sha512-DoixyMmTNO19rwRPdqviTrG1rYzpxgyYJl8RgQvdAQUzxC1ToLRqtNJpU/ATURSKgIg6uerPw2feW0aS8SNr/w==", "cpu": [ "arm64" ], @@ -3423,9 +3445,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-musl": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.13.tgz", - "integrity": "sha512-hZQrmtLdhyqzXHB7mkXfq0IYbxegaqTmfa1p9MBj72WPoDD3oNOh1Lnxf6xZLY9C3OV6qiCYkO1i/LrzEdW2mg==", + "version": "4.1.16", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.16.tgz", + "integrity": "sha512-H81UXMa9hJhWhaAUca6bU2wm5RRFpuHImrwXBUvPbYb+3jo32I9VIwpOX6hms0fPmA6f2pGVlybO6qU8pF4fzQ==", "cpu": [ "arm64" ], @@ -3439,9 +3461,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-gnu": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.13.tgz", - "integrity": "sha512-uaZTYWxSXyMWDJZNY1Ul7XkJTCBRFZ5Fo6wtjrgBKzZLoJNrG+WderJwAjPzuNZOnmdrVg260DKwXCFtJ/hWRQ==", + "version": "4.1.16", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.16.tgz", + "integrity": "sha512-ZGHQxDtFC2/ruo7t99Qo2TTIvOERULPl5l0K1g0oK6b5PGqjYMga+FcY1wIUnrUxY56h28FxybtDEla+ICOyew==", "cpu": [ "x64" ], @@ -3455,9 +3477,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-musl": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.13.tgz", - "integrity": "sha512-oXiPj5mi4Hdn50v5RdnuuIms0PVPI/EG4fxAfFiIKQh5TgQgX7oSuDWntHW7WNIi/yVLAiS+CRGW4RkoGSSgVQ==", + "version": "4.1.16", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.16.tgz", + "integrity": "sha512-Oi1tAaa0rcKf1Og9MzKeINZzMLPbhxvm7rno5/zuP1WYmpiG0bEHq4AcRUiG2165/WUzvxkW4XDYCscZWbTLZw==", "cpu": [ "x64" ], @@ -3471,9 +3493,9 @@ } }, "node_modules/@tailwindcss/oxide-wasm32-wasi": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.13.tgz", - "integrity": "sha512-+LC2nNtPovtrDwBc/nqnIKYh/W2+R69FA0hgoeOn64BdCX522u19ryLh3Vf3F8W49XBcMIxSe665kwy21FkhvA==", + "version": "4.1.16", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.16.tgz", + "integrity": "sha512-B01u/b8LteGRwucIBmCQ07FVXLzImWESAIMcUU6nvFt/tYsQ6IHz8DmZ5KtvmwxD+iTYBtM1xwoGXswnlu9v0Q==", "bundleDependencies": [ "@napi-rs/wasm-runtime", "@emnapi/core", @@ -3488,21 +3510,21 @@ "license": "MIT", "optional": true, "dependencies": { - "@emnapi/core": "^1.4.5", - "@emnapi/runtime": "^1.4.5", - "@emnapi/wasi-threads": "^1.0.4", - "@napi-rs/wasm-runtime": "^0.2.12", - "@tybys/wasm-util": "^0.10.0", - "tslib": "^2.8.0" + "@emnapi/core": "^1.5.0", + "@emnapi/runtime": "^1.5.0", + "@emnapi/wasi-threads": "^1.1.0", + "@napi-rs/wasm-runtime": "^1.0.7", + "@tybys/wasm-util": "^0.10.1", + "tslib": "^2.4.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.13.tgz", - "integrity": "sha512-dziTNeQXtoQ2KBXmrjCxsuPk3F3CQ/yb7ZNZNA+UkNTeiTGgfeh+gH5Pi7mRncVgcPD2xgHvkFCh/MhZWSgyQg==", + "version": "4.1.16", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.16.tgz", + "integrity": "sha512-zX+Q8sSkGj6HKRTMJXuPvOcP8XfYON24zJBRPlszcH1Np7xuHXhWn8qfFjIujVzvH3BHU+16jBXwgpl20i+v9A==", "cpu": [ "arm64" ], @@ -3516,9 +3538,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-x64-msvc": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.13.tgz", - "integrity": "sha512-3+LKesjXydTkHk5zXX01b5KMzLV1xl2mcktBJkje7rhFUpUlYJy7IMOLqjIRQncLTa1WZZiFY/foAeB5nmaiTw==", + "version": "4.1.16", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.16.tgz", + "integrity": "sha512-m5dDFJUEejbFqP+UXVstd4W/wnxA4F61q8SoL+mqTypId2T2ZpuxosNSgowiCnLp2+Z+rivdU0AqpfgiD7yCBg==", "cpu": [ "x64" ], @@ -3532,16 +3554,16 @@ } }, "node_modules/@tailwindcss/postcss": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.1.13.tgz", - "integrity": "sha512-HLgx6YSFKJT7rJqh9oJs/TkBFhxuMOfUKSBEPYwV+t78POOBsdQ7crhZLzwcH3T0UyUuOzU/GK5pk5eKr3wCiQ==", + "version": "4.1.16", + "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.1.16.tgz", + "integrity": "sha512-Qn3SFGPXYQMKR/UtqS+dqvPrzEeBZHrFA92maT4zijCVggdsXnDBMsPFJo1eArX3J+O+Gi+8pV4PkqjLCNBk3A==", "license": "MIT", "dependencies": { "@alloc/quick-lru": "^5.2.0", - "@tailwindcss/node": "4.1.13", - "@tailwindcss/oxide": "4.1.13", + "@tailwindcss/node": "4.1.16", + "@tailwindcss/oxide": "4.1.16", "postcss": "^8.4.41", - "tailwindcss": "4.1.13" + "tailwindcss": "4.1.16" } }, "node_modules/@tanstack/react-virtual": { @@ -3571,6 +3593,242 @@ "url": "https://github.com/sponsors/tannerlinsley" } }, + "node_modules/@tauri-apps/api": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-2.9.0.tgz", + "integrity": "sha512-qD5tMjh7utwBk9/5PrTA/aGr3i5QaJ/Mlt7p8NilQ45WgbifUNPyKWsA63iQ8YfQq6R8ajMapU+/Q8nMcPRLNw==", + "license": "Apache-2.0 OR MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/tauri" + } + }, + "node_modules/@tauri-apps/cli": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-2.9.1.tgz", + "integrity": "sha512-kKi2/WWsNXKoMdatBl4xrT7e1Ce27JvsetBVfWuIb6D3ep/Y0WO5SIr70yarXOSWam8NyDur4ipzjZkg6m7VDg==", + "dev": true, + "license": "Apache-2.0 OR MIT", + "bin": { + "tauri": "tauri.js" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/tauri" + }, + "optionalDependencies": { + "@tauri-apps/cli-darwin-arm64": "2.9.1", + "@tauri-apps/cli-darwin-x64": "2.9.1", + "@tauri-apps/cli-linux-arm-gnueabihf": "2.9.1", + "@tauri-apps/cli-linux-arm64-gnu": "2.9.1", + "@tauri-apps/cli-linux-arm64-musl": "2.9.1", + "@tauri-apps/cli-linux-riscv64-gnu": "2.9.1", + "@tauri-apps/cli-linux-x64-gnu": "2.9.1", + "@tauri-apps/cli-linux-x64-musl": "2.9.1", + "@tauri-apps/cli-win32-arm64-msvc": "2.9.1", + "@tauri-apps/cli-win32-ia32-msvc": "2.9.1", + "@tauri-apps/cli-win32-x64-msvc": "2.9.1" + } + }, + "node_modules/@tauri-apps/cli-darwin-arm64": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-2.9.1.tgz", + "integrity": "sha512-sdwhtsE/6njD0AjgfYEj1JyxZH4SBmCJSXpRm6Ph5fQeuZD6MyjzjdVOrrtFguyREVQ7xn0Ujkwvbo01ULthNg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-darwin-x64": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-2.9.1.tgz", + "integrity": "sha512-c86g+67wTdI4TUCD7CaSd/13+oYuLQxVST4ZNJ5C+6i1kdnU3Us1L68N9MvbDLDQGJc9eo0pvuK6sCWkee+BzA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-arm-gnueabihf": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-2.9.1.tgz", + "integrity": "sha512-IrB3gFQmueQKJjjisOcMktW/Gh6gxgqYO419doA3YZ7yIV5rbE8ZW52Q3I4AO+SlFEyVYer5kpi066p0JBlLGw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-arm64-gnu": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-2.9.1.tgz", + "integrity": "sha512-Ke7TyXvu6HbWSkmVkFbbH19D3cLsd117YtXP/u9NIvSpYwKeFtnbpirrIUfPm44Q+PZFZ2Hvg8X9qoUiAK0zKw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-arm64-musl": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.9.1.tgz", + "integrity": "sha512-sGvy75sv55oeMulR5ArwPD28DsDQxqTzLhXCrpU9/nbFg/JImmI7k994YE9fr3V0qE3Cjk5gjLldRNv7I9sjwQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-riscv64-gnu": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-riscv64-gnu/-/cli-linux-riscv64-gnu-2.9.1.tgz", + "integrity": "sha512-tEKbJydV3BdIxpAx8aGHW6VDg1xW4LlQuRD/QeFZdZNTreHJpMbJEcdvAcI+Hg6vgQpVpaoEldR9W4F6dYSLqQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-x64-gnu": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-2.9.1.tgz", + "integrity": "sha512-mg5msXHagtHpyCVWgI01M26JeSrgE/otWyGdYcuTwyRYZYEJRTbcNt7hscOkdNlPBe7isScW7PVKbxmAjJJl4g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-x64-musl": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-2.9.1.tgz", + "integrity": "sha512-lFZEXkpDreUe3zKilvnMsrnKP9gwQudaEjDnOz/GMzbzNceIuPfFZz0cR/ky1Aoq4eSvZonPKHhROq4owz4fzg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-win32-arm64-msvc": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-arm64-msvc/-/cli-win32-arm64-msvc-2.9.1.tgz", + "integrity": "sha512-ejc5RAp/Lm1Aj0EQHaT+Wdt5PHfdgQV5hIDV00MV6HNbIb5W4ZUFxMDaRkAg65gl9MvY2fH396riePW3RoKXDw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-win32-ia32-msvc": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-2.9.1.tgz", + "integrity": "sha512-fSATtJDc0fNjVB6ystyi8NbwhNFk8i8E05h6KrsC8Fio5eaJIJvPCbC9pdrPl6kkxN1X7fj25ErBbgfqgcK8Fg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-win32-x64-msvc": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-2.9.1.tgz", + "integrity": "sha512-/JHlOzpUDhjBOO9w167bcYxfJbcMQv7ykS/Y07xjtcga8np0rzUzVGWYmLMH7orKcDMC7wjhheEW1x8cbGma/Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/plugin-fs": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-fs/-/plugin-fs-2.4.4.tgz", + "integrity": "sha512-MTorXxIRmOnOPT1jZ3w96vjSuScER38ryXY88vl5F0uiKdnvTKKTtaEjTEo8uPbl4e3gnUtfsDVwC7h77GQLvQ==", + "license": "MIT OR Apache-2.0", + "dependencies": { + "@tauri-apps/api": "^2.8.0" + } + }, "node_modules/@testing-library/dom": { "version": "10.4.1", "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz", @@ -3592,9 +3850,9 @@ } }, "node_modules/@testing-library/jest-dom": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.8.0.tgz", - "integrity": "sha512-WgXcWzVM6idy5JaftTVC8Vs83NKRmGJz4Hqs4oyOuO2J4r/y79vvKZsb+CaGyCSEbUPI6OsewfPd0G1A0/TUZQ==", + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz", + "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==", "dev": true, "license": "MIT", "dependencies": { @@ -3758,9 +4016,9 @@ } }, "node_modules/@tybys/wasm-util": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.0.tgz", - "integrity": "sha512-VyyPYFlOMNylG45GoAe0xDoLwWuowvf92F9kySqzYh8vmYm7D2u4iUJKa1tOUpS70Ku13ASrOkS4ScXFsTaCNQ==", + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", + "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", "license": "MIT", "optional": true, "dependencies": { @@ -3782,13 +4040,14 @@ "license": "MIT" }, "node_modules/@types/chai": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.2.tgz", - "integrity": "sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", "dev": true, "license": "MIT", "dependencies": { - "@types/deep-eql": "*" + "@types/deep-eql": "*", + "assertion-error": "^2.0.1" } }, "node_modules/@types/deep-eql": { @@ -3802,7 +4061,6 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", - "dev": true, "license": "MIT" }, "node_modules/@types/gapi": { @@ -3874,13 +4132,13 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "24.5.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.5.2.tgz", - "integrity": "sha512-FYxk1I7wPv3K2XBaoyH2cTnocQEu8AOZ60hPbsyukMPLv5/5qr7V1i8PLHdl6Zf87I+xZXFvPCXYjiTFq+YSDQ==", + "version": "24.9.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.9.1.tgz", + "integrity": "sha512-QoiaXANRkSXK6p0Duvt56W208du4P9Uye9hWLWgGMDTEoKPhuenzNcC4vGUmrNkiOKTlIrBoyNQYNpSwfEZXSg==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~7.12.0" + "undici-types": "~7.16.0" } }, "node_modules/@types/parse-json": { @@ -3896,22 +4154,22 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "19.1.13", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.13.tgz", - "integrity": "sha512-hHkbU/eoO3EG5/MZkuFSKmYqPbSVk5byPFa3e7y/8TybHiLMACgI8seVYlicwk7H5K/rI2px9xrQp/C+AUDTiQ==", + "version": "19.2.2", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.2.tgz", + "integrity": "sha512-6mDvHUFSjyT2B2yeNx2nUgMxh9LtOWvkhIU3uePn2I2oyNymUAX1NIsdgviM4CH+JSrp2D2hsMvJOkxY+0wNRA==", "license": "MIT", "dependencies": { "csstype": "^3.0.2" } }, "node_modules/@types/react-dom": { - "version": "19.1.9", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.9.tgz", - "integrity": "sha512-qXRuZaOsAdXKFyOhRBg6Lqqc0yay13vN7KrIg4L7N4aaHN68ma9OK3NE1BoDFgFOTfM7zg+3/8+2n8rLUH3OKQ==", + "version": "19.2.2", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.2.tgz", + "integrity": "sha512-9KQPoO6mZCi7jcIStSnlOWn2nEF3mNmyr3rIAsGnAbQKYbRLyqmeSc39EVgtxXVia+LMT8j3knZLAZAh+xLmrw==", "dev": true, "license": "MIT", "peerDependencies": { - "@types/react": "^19.0.0" + "@types/react": "^19.2.0" } }, "node_modules/@types/react-transition-group": { @@ -3935,17 +4193,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.44.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.44.1.tgz", - "integrity": "sha512-molgphGqOBT7t4YKCSkbasmu1tb1MgrZ2szGzHbclF7PNmOkSTQVHy+2jXOSnxvR3+Xe1yySHFZoqMpz3TfQsw==", + "version": "8.46.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.46.2.tgz", + "integrity": "sha512-ZGBMToy857/NIPaaCucIUQgqueOiq7HeAKkhlvqVV4lm089zUFW6ikRySx2v+cAhKeUCPuWVHeimyk6Dw1iY3w==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.44.1", - "@typescript-eslint/type-utils": "8.44.1", - "@typescript-eslint/utils": "8.44.1", - "@typescript-eslint/visitor-keys": "8.44.1", + "@typescript-eslint/scope-manager": "8.46.2", + "@typescript-eslint/type-utils": "8.46.2", + "@typescript-eslint/utils": "8.46.2", + "@typescript-eslint/visitor-keys": "8.46.2", "graphemer": "^1.4.0", "ignore": "^7.0.0", "natural-compare": "^1.4.0", @@ -3959,22 +4217,22 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.44.1", + "@typescript-eslint/parser": "^8.46.2", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/parser": { - "version": "8.44.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.44.1.tgz", - "integrity": "sha512-EHrrEsyhOhxYt8MTg4zTF+DJMuNBzWwgvvOYNj/zm1vnaD/IC5zCXFehZv94Piqa2cRFfXrTFxIvO95L7Qc/cw==", + "version": "8.46.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.46.2.tgz", + "integrity": "sha512-BnOroVl1SgrPLywqxyqdJ4l3S2MsKVLDVxZvjI1Eoe8ev2r3kGDo+PcMihNmDE+6/KjkTubSJnmqGZZjQSBq/g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.44.1", - "@typescript-eslint/types": "8.44.1", - "@typescript-eslint/typescript-estree": "8.44.1", - "@typescript-eslint/visitor-keys": "8.44.1", + "@typescript-eslint/scope-manager": "8.46.2", + "@typescript-eslint/types": "8.46.2", + "@typescript-eslint/typescript-estree": "8.46.2", + "@typescript-eslint/visitor-keys": "8.46.2", "debug": "^4.3.4" }, "engines": { @@ -3990,14 +4248,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.44.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.44.1.tgz", - "integrity": "sha512-ycSa60eGg8GWAkVsKV4E6Nz33h+HjTXbsDT4FILyL8Obk5/mx4tbvCNsLf9zret3ipSumAOG89UcCs/KRaKYrA==", + "version": "8.46.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.46.2.tgz", + "integrity": "sha512-PULOLZ9iqwI7hXcmL4fVfIsBi6AN9YxRc0frbvmg8f+4hQAjQ5GYNKK0DIArNo+rOKmR/iBYwkpBmnIwin4wBg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.44.1", - "@typescript-eslint/types": "^8.44.1", + "@typescript-eslint/tsconfig-utils": "^8.46.2", + "@typescript-eslint/types": "^8.46.2", "debug": "^4.3.4" }, "engines": { @@ -4012,14 +4270,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.44.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.44.1.tgz", - "integrity": "sha512-NdhWHgmynpSvyhchGLXh+w12OMT308Gm25JoRIyTZqEbApiBiQHD/8xgb6LqCWCFcxFtWwaVdFsLPQI3jvhywg==", + "version": "8.46.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.46.2.tgz", + "integrity": "sha512-LF4b/NmGvdWEHD2H4MsHD8ny6JpiVNDzrSZr3CsckEgCbAGZbYM4Cqxvi9L+WqDMT+51Ozy7lt2M+d0JLEuBqA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.44.1", - "@typescript-eslint/visitor-keys": "8.44.1" + "@typescript-eslint/types": "8.46.2", + "@typescript-eslint/visitor-keys": "8.46.2" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -4030,9 +4288,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.44.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.44.1.tgz", - "integrity": "sha512-B5OyACouEjuIvof3o86lRMvyDsFwZm+4fBOqFHccIctYgBjqR3qT39FBYGN87khcgf0ExpdCBeGKpKRhSFTjKQ==", + "version": "8.46.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.46.2.tgz", + "integrity": "sha512-a7QH6fw4S57+F5y2FIxxSDyi5M4UfGF+Jl1bCGd7+L4KsaUY80GsiF/t0UoRFDHAguKlBaACWJRmdrc6Xfkkag==", "dev": true, "license": "MIT", "engines": { @@ -4047,15 +4305,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.44.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.44.1.tgz", - "integrity": "sha512-KdEerZqHWXsRNKjF9NYswNISnFzXfXNDfPxoTh7tqohU/PRIbwTmsjGK6V9/RTYWau7NZvfo52lgVk+sJh0K3g==", + "version": "8.46.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.46.2.tgz", + "integrity": "sha512-HbPM4LbaAAt/DjxXaG9yiS9brOOz6fabal4uvUmaUYe6l3K1phQDMQKBRUrr06BQkxkvIZVVHttqiybM9nJsLA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.44.1", - "@typescript-eslint/typescript-estree": "8.44.1", - "@typescript-eslint/utils": "8.44.1", + "@typescript-eslint/types": "8.46.2", + "@typescript-eslint/typescript-estree": "8.46.2", + "@typescript-eslint/utils": "8.46.2", "debug": "^4.3.4", "ts-api-utils": "^2.1.0" }, @@ -4072,9 +4330,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.44.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.44.1.tgz", - "integrity": "sha512-Lk7uj7y9uQUOEguiDIDLYLJOrYHQa7oBiURYVFqIpGxclAFQ78f6VUOM8lI2XEuNOKNB7XuvM2+2cMXAoq4ALQ==", + "version": "8.46.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.2.tgz", + "integrity": "sha512-lNCWCbq7rpg7qDsQrd3D6NyWYu+gkTENkG5IKYhUIcxSb59SQC/hEQ+MrG4sTgBVghTonNWq42bA/d4yYumldQ==", "dev": true, "license": "MIT", "engines": { @@ -4086,16 +4344,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.44.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.44.1.tgz", - "integrity": "sha512-qnQJ+mVa7szevdEyvfItbO5Vo+GfZ4/GZWWDRRLjrxYPkhM+6zYB2vRYwCsoJLzqFCdZT4mEqyJoyzkunsZ96A==", + "version": "8.46.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.2.tgz", + "integrity": "sha512-f7rW7LJ2b7Uh2EiQ+7sza6RDZnajbNbemn54Ob6fRwQbgcIn+GWfyuHDHRYgRoZu1P4AayVScrRW+YfbTvPQoQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.44.1", - "@typescript-eslint/tsconfig-utils": "8.44.1", - "@typescript-eslint/types": "8.44.1", - "@typescript-eslint/visitor-keys": "8.44.1", + "@typescript-eslint/project-service": "8.46.2", + "@typescript-eslint/tsconfig-utils": "8.46.2", + "@typescript-eslint/types": "8.46.2", + "@typescript-eslint/visitor-keys": "8.46.2", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -4115,16 +4373,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.44.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.44.1.tgz", - "integrity": "sha512-DpX5Fp6edTlocMCwA+mHY8Mra+pPjRZ0TfHkXI8QFelIKcbADQz1LUPNtzOFUriBB2UYqw4Pi9+xV4w9ZczHFg==", + "version": "8.46.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.46.2.tgz", + "integrity": "sha512-sExxzucx0Tud5tE0XqR0lT0psBQvEpnpiul9XbGUB1QwpWJJAps1O/Z7hJxLGiZLBKMCutjTzDgmd1muEhBnVg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.44.1", - "@typescript-eslint/types": "8.44.1", - "@typescript-eslint/typescript-estree": "8.44.1" + "@typescript-eslint/scope-manager": "8.46.2", + "@typescript-eslint/types": "8.46.2", + "@typescript-eslint/typescript-estree": "8.46.2" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -4139,13 +4397,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.44.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.44.1.tgz", - "integrity": "sha512-576+u0QD+Jp3tZzvfRfxon0EA2lzcDt3lhUbsC6Lgzy9x2VR4E+JUiNyGHi5T8vk0TV+fpJ5GLG1JsJuWCaKhw==", + "version": "8.46.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.2.tgz", + "integrity": "sha512-tUFMXI4gxzzMXt4xpGJEsBsTox0XbNQ1y94EwlD/CuZwFcQP79xfQqMhau9HsRc/J0cAPA/HZt1dZPtGn9V/7w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.44.1", + "@typescript-eslint/types": "8.46.2", "eslint-visitor-keys": "^4.2.1" }, "engines": { @@ -4439,13 +4697,13 @@ ] }, "node_modules/@vitejs/plugin-react-swc": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-4.1.0.tgz", - "integrity": "sha512-Ff690TUck0Anlh7wdIcnsVMhofeEVgm44Y4OYdeeEEPSKyZHzDI9gfVBvySEhDfXtBp8tLCbfsVKPWEMEjq8/g==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-4.2.0.tgz", + "integrity": "sha512-/tesahXD1qpkGC6FzMoFOJj0RyZdw9xLELOL+6jbElwmWfwOnIVy+IfpY+o9JfD9PKaR/Eyb6DNrvbXpuvA+8Q==", "dev": true, "license": "MIT", "dependencies": { - "@rolldown/pluginutils": "1.0.0-beta.35", + "@rolldown/pluginutils": "1.0.0-beta.43", "@swc/core": "^1.13.5" }, "engines": { @@ -4605,13 +4863,13 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.5.21", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.21.tgz", - "integrity": "sha512-8i+LZ0vf6ZgII5Z9XmUvrCyEzocvWT+TeR2VBUVlzIH6Tyv57E20mPZ1bCS+tbejgUgmjrEh7q/0F0bibskAmw==", + "version": "3.5.22", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.22.tgz", + "integrity": "sha512-jQ0pFPmZwTEiRNSb+i9Ow/I/cHv2tXYqsnHKKyCQ08irI2kdF5qmYedmF8si8mA7zepUFmJ2hqzS8CQmNOWOkQ==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.28.3", - "@vue/shared": "3.5.21", + "@babel/parser": "^7.28.4", + "@vue/shared": "3.5.22", "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.1" @@ -4636,28 +4894,28 @@ "license": "MIT" }, "node_modules/@vue/compiler-dom": { - "version": "3.5.21", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.21.tgz", - "integrity": "sha512-jNtbu/u97wiyEBJlJ9kmdw7tAr5Vy0Aj5CgQmo+6pxWNQhXZDPsRr1UWPN4v3Zf82s2H3kF51IbzZ4jMWAgPlQ==", + "version": "3.5.22", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.22.tgz", + "integrity": "sha512-W8RknzUM1BLkypvdz10OVsGxnMAuSIZs9Wdx1vzA3mL5fNMN15rhrSCLiTm6blWeACwUwizzPVqGJgOGBEN/hA==", "license": "MIT", "dependencies": { - "@vue/compiler-core": "3.5.21", - "@vue/shared": "3.5.21" + "@vue/compiler-core": "3.5.22", + "@vue/shared": "3.5.22" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.5.21", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.21.tgz", - "integrity": "sha512-SXlyk6I5eUGBd2v8Ie7tF6ADHE9kCR6mBEuPyH1nUZ0h6Xx6nZI29i12sJKQmzbDyr2tUHMhhTt51Z6blbkTTQ==", + "version": "3.5.22", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.22.tgz", + "integrity": "sha512-tbTR1zKGce4Lj+JLzFXDq36K4vcSZbJ1RBu8FxcDv1IGRz//Dh2EBqksyGVypz3kXpshIfWKGOCcqpSbyGWRJQ==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.28.3", - "@vue/compiler-core": "3.5.21", - "@vue/compiler-dom": "3.5.21", - "@vue/compiler-ssr": "3.5.21", - "@vue/shared": "3.5.21", + "@babel/parser": "^7.28.4", + "@vue/compiler-core": "3.5.22", + "@vue/compiler-dom": "3.5.22", + "@vue/compiler-ssr": "3.5.22", + "@vue/shared": "3.5.22", "estree-walker": "^2.0.2", - "magic-string": "^0.30.18", + "magic-string": "^0.30.19", "postcss": "^8.5.6", "source-map-js": "^1.2.1" } @@ -4669,67 +4927,67 @@ "license": "MIT" }, "node_modules/@vue/compiler-ssr": { - "version": "3.5.21", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.21.tgz", - "integrity": "sha512-vKQ5olH5edFZdf5ZrlEgSO1j1DMA4u23TVK5XR1uMhvwnYvVdDF0nHXJUblL/GvzlShQbjhZZ2uvYmDlAbgo9w==", + "version": "3.5.22", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.22.tgz", + "integrity": "sha512-GdgyLvg4R+7T8Nk2Mlighx7XGxq/fJf9jaVofc3IL0EPesTE86cP/8DD1lT3h1JeZr2ySBvyqKQJgbS54IX1Ww==", "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.5.21", - "@vue/shared": "3.5.21" + "@vue/compiler-dom": "3.5.22", + "@vue/shared": "3.5.22" } }, "node_modules/@vue/reactivity": { - "version": "3.5.21", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.21.tgz", - "integrity": "sha512-3ah7sa+Cwr9iiYEERt9JfZKPw4A2UlbY8RbbnH2mGCE8NwHkhmlZt2VsH0oDA3P08X3jJd29ohBDtX+TbD9AsA==", + "version": "3.5.22", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.22.tgz", + "integrity": "sha512-f2Wux4v/Z2pqc9+4SmgZC1p73Z53fyD90NFWXiX9AKVnVBEvLFOWCEgJD3GdGnlxPZt01PSlfmLqbLYzY/Fw4A==", "license": "MIT", "peer": true, "dependencies": { - "@vue/shared": "3.5.21" + "@vue/shared": "3.5.22" } }, "node_modules/@vue/runtime-core": { - "version": "3.5.21", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.21.tgz", - "integrity": "sha512-+DplQlRS4MXfIf9gfD1BOJpk5RSyGgGXD/R+cumhe8jdjUcq/qlxDawQlSI8hCKupBlvM+3eS1se5xW+SuNAwA==", + "version": "3.5.22", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.22.tgz", + "integrity": "sha512-EHo4W/eiYeAzRTN5PCextDUZ0dMs9I8mQ2Fy+OkzvRPUYQEyK9yAjbasrMCXbLNhF7P0OUyivLjIy0yc6VrLJQ==", "license": "MIT", "peer": true, "dependencies": { - "@vue/reactivity": "3.5.21", - "@vue/shared": "3.5.21" + "@vue/reactivity": "3.5.22", + "@vue/shared": "3.5.22" } }, "node_modules/@vue/runtime-dom": { - "version": "3.5.21", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.21.tgz", - "integrity": "sha512-3M2DZsOFwM5qI15wrMmNF5RJe1+ARijt2HM3TbzBbPSuBHOQpoidE+Pa+XEaVN+czbHf81ETRoG1ltztP2em8w==", + "version": "3.5.22", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.22.tgz", + "integrity": "sha512-Av60jsryAkI023PlN7LsqrfPvwfxOd2yAwtReCjeuugTJTkgrksYJJstg1e12qle0NarkfhfFu1ox2D+cQotww==", "license": "MIT", "peer": true, "dependencies": { - "@vue/reactivity": "3.5.21", - "@vue/runtime-core": "3.5.21", - "@vue/shared": "3.5.21", + "@vue/reactivity": "3.5.22", + "@vue/runtime-core": "3.5.22", + "@vue/shared": "3.5.22", "csstype": "^3.1.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.5.21", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.21.tgz", - "integrity": "sha512-qr8AqgD3DJPJcGvLcJKQo2tAc8OnXRcfxhOJCPF+fcfn5bBGz7VCcO7t+qETOPxpWK1mgysXvVT/j+xWaHeMWA==", + "version": "3.5.22", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.22.tgz", + "integrity": "sha512-gXjo+ao0oHYTSswF+a3KRHZ1WszxIqO7u6XwNHqcqb9JfyIL/pbWrrh/xLv7jeDqla9u+LK7yfZKHih1e1RKAQ==", "license": "MIT", "peer": true, "dependencies": { - "@vue/compiler-ssr": "3.5.21", - "@vue/shared": "3.5.21" + "@vue/compiler-ssr": "3.5.22", + "@vue/shared": "3.5.22" }, "peerDependencies": { - "vue": "3.5.21" + "vue": "3.5.22" } }, "node_modules/@vue/shared": { - "version": "3.5.21", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.21.tgz", - "integrity": "sha512-+2k1EQpnYuVuu3N7atWyG3/xoFWIVJZq4Mz8XNOdScFI0etES75fbny/oU4lKWk/577P1zmg0ioYvpGEDZ3DLw==", + "version": "3.5.22", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.22.tgz", + "integrity": "sha512-F4yc6palwq3TT0u+FYf0Ns4Tfl9GRFURDN2gWG7L1ecIaS/4fCIuFOjMTnCyjsu/OK6vaDKLCrGAa+KvvH+h4w==", "license": "MIT" }, "node_modules/abbrev": { @@ -4743,7 +5001,6 @@ "version": "8.15.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", - "dev": true, "license": "MIT", "bin": { "acorn": "bin/acorn" @@ -5040,9 +5297,9 @@ "license": "0BSD" }, "node_modules/ast-v8-to-istanbul": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-0.3.7.tgz", - "integrity": "sha512-kr1Hy6YRZBkGQSb6puP+D6FQ59Cx4m0siYhAxygMCAgadiWQ6oxAxQXHOMvJx67SJ63jRoVIIg5eXzUbbct1ww==", + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-0.3.8.tgz", + "integrity": "sha512-szgSZqUxI5T8mLKvS7WTjF9is+MVbOeLADU73IseOcrqhxr/VAvy6wfoVE39KnKzA7JRhjF5eUagNlHwvZPlKQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5137,9 +5394,9 @@ } }, "node_modules/axios": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.12.2.tgz", - "integrity": "sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.0.tgz", + "integrity": "sha512-zt40Pz4zcRXra9CVV31KeyofwiNvAbJ5B6YPz9pMJ+yOSLikvPT4Yi5LjfgjRa9CawVYBaD1JQzIVcIvBejKeA==", "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", @@ -5147,6 +5404,16 @@ "proxy-from-env": "^1.1.0" } }, + "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==", + "license": "Apache-2.0", + "peer": true, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/b4a": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.7.3.tgz", @@ -5185,9 +5452,9 @@ "license": "MIT" }, "node_modules/bare-events": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.0.tgz", - "integrity": "sha512-AOhh6Bg5QmFIXdViHbMc2tLDsBIRxdkIaIddPslJF9Z5De3APBScuqGP2uThXnIpqFrgoxMNC6km7uXNIMLHXA==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.1.tgz", + "integrity": "sha512-oxSAxTS1hRfnyit2CL5QpAOS5ixfBjj6ex3yTNvXyY/kE719jQ/IjuESJBK2w5v4wwQRAHGseVJXx9QBYOtFGQ==", "dev": true, "license": "Apache-2.0", "peerDependencies": { @@ -5200,9 +5467,9 @@ } }, "node_modules/bare-fs": { - "version": "4.4.11", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.4.11.tgz", - "integrity": "sha512-Bejmm9zRMvMTRoHS+2adgmXw1ANZnCNx+B5dgZpGwlP1E3x6Yuxea8RToddHUbWtVV0iUMWqsgZr8+jcgUI2SA==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.5.0.tgz", + "integrity": "sha512-GljgCjeupKZJNetTqxKaQArLK10vpmK28or0+RwWjEl5Rk+/xG3wkpmkv+WrcBm3q1BwHKlnhXzR8O37kcvkXQ==", "dev": true, "license": "Apache-2.0", "optional": true, @@ -5271,9 +5538,9 @@ } }, "node_modules/bare-url": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.3.0.tgz", - "integrity": "sha512-c+RCqMSZbkz97Mw1LWR0gcOqwK82oyYKfLoHJ8k13ybi1+I80ffdDzUy0TdAburdrR/kI0/VuN8YgEnJqX+Nyw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.3.1.tgz", + "integrity": "sha512-v2yl0TnaZTdEnelkKtXZGnotiV6qATBlnNuUMrHl6v9Lmmrh9mw9RYyImPU7/4RahumSwQS1k2oKXcRfXcbjJw==", "dev": true, "license": "Apache-2.0", "optional": true, @@ -5303,9 +5570,9 @@ "license": "MIT" }, "node_modules/baseline-browser-mapping": { - "version": "2.8.6", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.6.tgz", - "integrity": "sha512-wrH5NNqren/QMtKUEEJf7z86YjfqW/2uw3IL3/xpqZUC95SSVIFXYQeeGjL6FT/X68IROu6RMehZQS5foy2BXw==", + "version": "2.8.20", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.20.tgz", + "integrity": "sha512-JMWsdF+O8Orq3EMukbUN1QfbLK9mX2CkUmQBcW2T0s8OmdAUL5LLM/6wFwSrqXzlXB13yhyK9gTKS1rIizOduQ==", "license": "Apache-2.0", "bin": { "baseline-browser-mapping": "dist/cli.js" @@ -5401,9 +5668,9 @@ } }, "node_modules/browserslist": { - "version": "4.26.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.26.2.tgz", - "integrity": "sha512-ECFzp6uFOSB+dcZ5BK/IBaGWssbSYBHvuMeMt3MMFyhI0Z8SqGgEkBLARgpRH3hutIgPVsALcMwbDrJqPxQ65A==", + "version": "4.27.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.27.0.tgz", + "integrity": "sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw==", "funding": [ { "type": "opencollective", @@ -5420,11 +5687,11 @@ ], "license": "MIT", "dependencies": { - "baseline-browser-mapping": "^2.8.3", - "caniuse-lite": "^1.0.30001741", - "electron-to-chromium": "^1.5.218", - "node-releases": "^2.0.21", - "update-browserslist-db": "^1.1.3" + "baseline-browser-mapping": "^2.8.19", + "caniuse-lite": "^1.0.30001751", + "electron-to-chromium": "^1.5.238", + "node-releases": "^2.0.26", + "update-browserslist-db": "^1.1.4" }, "bin": { "browserslist": "cli.js" @@ -5488,23 +5755,47 @@ } }, "node_modules/cacheable-request": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-12.0.1.tgz", - "integrity": "sha512-Yo9wGIQUaAfIbk+qY0X4cDQgCosecfBe3V9NSyeY4qPC2SAkbCS4Xj79VP8WOzitpJUZKc/wsRCYF5ariDIwkg==", + "version": "13.0.12", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-13.0.12.tgz", + "integrity": "sha512-qqK/etGeI/9DV5yRkO50ApDTjip9UXPml1NHYJksUAw15yMLOf8VUO1/8bu4P8birOCqR+hYQ/nh1Lezc8sZrA==", "license": "MIT", "dependencies": { "@types/http-cache-semantics": "^4.0.4", "get-stream": "^9.0.1", - "http-cache-semantics": "^4.1.1", - "keyv": "^4.5.4", + "http-cache-semantics": "^4.2.0", + "keyv": "^5.5.3", "mimic-response": "^4.0.0", - "normalize-url": "^8.0.1", + "normalize-url": "^8.1.0", "responselike": "^3.0.0" }, "engines": { "node": ">=18" } }, + "node_modules/cacheable-request/node_modules/keyv": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.5.3.tgz", + "integrity": "sha512-h0Un1ieD+HUrzBH6dJXhod3ifSghk5Hw/2Y4/KHBziPlZecrFyE9YOTPU6eOs0V9pYl8gOs86fkr/KN8lUX39A==", + "license": "MIT", + "dependencies": { + "@keyv/serialize": "^1.1.1" + } + }, + "node_modules/cacheable-request/node_modules/responselike": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "license": "MIT", + "dependencies": { + "lowercase-keys": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/call-bind": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", @@ -5574,9 +5865,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001743", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001743.tgz", - "integrity": "sha512-e6Ojr7RV14Un7dz6ASD0aZDmQPT/A+eZU+nuTNfjqmRrmkmQlnTNWH0SKmqagx9PeW87UVqapSurtAXifmtdmw==", + "version": "1.0.30001751", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001751.tgz", + "integrity": "sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw==", "funding": [ { "type": "opencollective", @@ -5627,6 +5918,12 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/change-case": { + "version": "5.4.4", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-5.4.4.tgz", + "integrity": "sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==", + "license": "MIT" + }, "node_modules/check-error": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", @@ -5675,19 +5972,10 @@ "node": ">= 6" } }, - "node_modules/chownr": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", - "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=18" - } - }, "node_modules/chromium-bidi": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-9.1.0.tgz", - "integrity": "sha512-rlUzQ4WzIAWdIbY/viPShhZU2n21CxDUgazXVbw4Hu1MwaeUSEksSeM6DqPgpRjCLXRk702AVRxJxoOz0dw4OA==", + "version": "10.5.1", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-10.5.1.tgz", + "integrity": "sha512-rlj6OyhKhVTnk4aENcUme3Jl9h+cq4oXu4AzBcvr8RMmT6BR4a3zSNT9dbIfXr9/BS6ibzRyDhowuw4n2GgzsQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -5739,6 +6027,39 @@ "node": ">=12" } }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/clone": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", @@ -5837,9 +6158,9 @@ } }, "node_modules/core-js": { - "version": "3.45.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.45.1.tgz", - "integrity": "sha512-L4NPsJlCfZsPeXukyzHFlg/i7IIVwHSItR0wg0FLNqYClJ4MQYTYLbC7EkjKYRLZF2iof2MUgN0EGy7MdQFChg==", + "version": "3.46.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.46.0.tgz", + "integrity": "sha512-vDMm9B0xnqqZ8uSBpZ8sNtRtOdmfShrvT6h2TuQGLs0Is+cR0DYbj/KWP6ALVNbWPpqA/qPLoOuppJN07humpA==", "hasInstallScript": true, "license": "MIT", "funding": { @@ -6078,27 +6399,15 @@ "license": "MIT" }, "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-10.0.0.tgz", + "integrity": "sha512-oj7KWToJuuxlPr7VV0vabvxEIiqNMo+q0NueIiL3XhtwC6FVOX7Hr1c0C4eD0bmf7Zr+S/dSf2xvkH3Ad6sU3Q==", "license": "MIT", "dependencies": { - "mimic-response": "^3.1.0" + "mimic-response": "^4.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decompress-response/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "license": "MIT", - "engines": { - "node": ">=10" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -6262,9 +6571,9 @@ } }, "node_modules/detect-libc": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.0.tgz", - "integrity": "sha512-vEtk+OcP7VBRtQZ1EJ3bdgzSfBjgnEalLTp5zjJrS+2Z1w2KZly4SBdac/WDU3hhsNAZ9E8SC96ME4Ey8MZ7cg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", "license": "Apache-2.0", "engines": { "node": ">=8" @@ -6487,9 +6796,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.222", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.222.tgz", - "integrity": "sha512-gA7psSwSwQRE60CEoLz6JBCQPIxNeuzB2nL8vE03GK/OHxlvykbLyeiumQy1iH5C2f3YbRAZpGCMT12a/9ih9w==", + "version": "1.5.241", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.241.tgz", + "integrity": "sha512-ILMvKX/ZV5WIJzzdtuHg8xquk2y0BOGlFOxBVwTpbiXqWIH0hamG45ddU4R3PQ0gYu+xgo0vdHXHli9sHIGb4w==", "license": "ISC" }, "node_modules/emoji-regex": { @@ -6716,9 +7025,9 @@ } }, "node_modules/esbuild": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.10.tgz", - "integrity": "sha512-9RiGKvCwaqxO2owP61uQ4BgNborAQskMR6QusfWzQqv7AZOg5oGehdY2pRJMTKuwxd1IDBP4rSbI5lHzU7SMsQ==", + "version": "0.25.11", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.11.tgz", + "integrity": "sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -6729,32 +7038,32 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.10", - "@esbuild/android-arm": "0.25.10", - "@esbuild/android-arm64": "0.25.10", - "@esbuild/android-x64": "0.25.10", - "@esbuild/darwin-arm64": "0.25.10", - "@esbuild/darwin-x64": "0.25.10", - "@esbuild/freebsd-arm64": "0.25.10", - "@esbuild/freebsd-x64": "0.25.10", - "@esbuild/linux-arm": "0.25.10", - "@esbuild/linux-arm64": "0.25.10", - "@esbuild/linux-ia32": "0.25.10", - "@esbuild/linux-loong64": "0.25.10", - "@esbuild/linux-mips64el": "0.25.10", - "@esbuild/linux-ppc64": "0.25.10", - "@esbuild/linux-riscv64": "0.25.10", - "@esbuild/linux-s390x": "0.25.10", - "@esbuild/linux-x64": "0.25.10", - "@esbuild/netbsd-arm64": "0.25.10", - "@esbuild/netbsd-x64": "0.25.10", - "@esbuild/openbsd-arm64": "0.25.10", - "@esbuild/openbsd-x64": "0.25.10", - "@esbuild/openharmony-arm64": "0.25.10", - "@esbuild/sunos-x64": "0.25.10", - "@esbuild/win32-arm64": "0.25.10", - "@esbuild/win32-ia32": "0.25.10", - "@esbuild/win32-x64": "0.25.10" + "@esbuild/aix-ppc64": "0.25.11", + "@esbuild/android-arm": "0.25.11", + "@esbuild/android-arm64": "0.25.11", + "@esbuild/android-x64": "0.25.11", + "@esbuild/darwin-arm64": "0.25.11", + "@esbuild/darwin-x64": "0.25.11", + "@esbuild/freebsd-arm64": "0.25.11", + "@esbuild/freebsd-x64": "0.25.11", + "@esbuild/linux-arm": "0.25.11", + "@esbuild/linux-arm64": "0.25.11", + "@esbuild/linux-ia32": "0.25.11", + "@esbuild/linux-loong64": "0.25.11", + "@esbuild/linux-mips64el": "0.25.11", + "@esbuild/linux-ppc64": "0.25.11", + "@esbuild/linux-riscv64": "0.25.11", + "@esbuild/linux-s390x": "0.25.11", + "@esbuild/linux-x64": "0.25.11", + "@esbuild/netbsd-arm64": "0.25.11", + "@esbuild/netbsd-x64": "0.25.11", + "@esbuild/openbsd-arm64": "0.25.11", + "@esbuild/openbsd-x64": "0.25.11", + "@esbuild/openharmony-arm64": "0.25.11", + "@esbuild/sunos-x64": "0.25.11", + "@esbuild/win32-arm64": "0.25.11", + "@esbuild/win32-ia32": "0.25.11", + "@esbuild/win32-x64": "0.25.11" } }, "node_modules/escalade": { @@ -6812,25 +7121,24 @@ } }, "node_modules/eslint": { - "version": "9.36.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.36.0.tgz", - "integrity": "sha512-hB4FIzXovouYzwzECDcUkJ4OcfOEkXTv2zRY6B9bkwjx/cprAq0uvm1nl7zvQ0/TsUk0zQiN4uPfJpB9m+rPMQ==", + "version": "9.38.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.38.0.tgz", + "integrity": "sha512-t5aPOpmtJcZcz5UJyY2GbvpDlsK5E8JqRqoKtfiKE3cNh437KIqfJr3A3AKf5k64NPx6d0G3dno6XDY05PqPtw==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.21.0", - "@eslint/config-helpers": "^0.3.1", - "@eslint/core": "^0.15.2", + "@eslint/config-array": "^0.21.1", + "@eslint/config-helpers": "^0.4.1", + "@eslint/core": "^0.16.0", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.36.0", - "@eslint/plugin-kit": "^0.3.5", + "@eslint/js": "9.38.0", + "@eslint/plugin-kit": "^0.4.0", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", - "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", @@ -7037,19 +7345,6 @@ "ms": "^2.1.1" } }, - "node_modules/eslint-plugin-import/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, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, "node_modules/eslint-plugin-import/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -7073,19 +7368,6 @@ "semver": "bin/semver.js" } }, - "node_modules/eslint-plugin-import/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, - "license": "MIT", - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, "node_modules/eslint-plugin-react-hooks": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", @@ -7176,6 +7458,13 @@ "node": "*" } }, + "node_modules/esm-env": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz", + "integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==", + "license": "MIT", + "peer": true + }, "node_modules/espree": { "version": "10.4.0", "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", @@ -7234,6 +7523,16 @@ "node": ">=0.10" } }, + "node_modules/esrap": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/esrap/-/esrap-2.1.1.tgz", + "integrity": "sha512-ebTT9B6lOtZGMgJ3o5r12wBacHctG7oEWazIda8UlPfA3HD/Wrv8FdXoVo73vzdpwCxNyXjPauyN2bbJzMkB9A==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", @@ -7492,6 +7791,34 @@ "node": ">=18" } }, + "node_modules/filing-cabinet/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, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/filing-cabinet/node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -7742,6 +8069,16 @@ "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, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/get-amd-module-type": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-amd-module-type/-/get-amd-module-type-6.0.1.tgz", @@ -7766,6 +8103,18 @@ "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-east-asian-width": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz", + "integrity": "sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-intrinsic": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", @@ -7819,15 +8168,6 @@ "node": ">= 0.4" } }, - "node_modules/get-stdin": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz", - "integrity": "sha512-jZV7n6jGE3Gt7fgSTJoz91Ak5MuTLwMwkoYdjxuJ/AmjIsE1UC03y/IWkZCQGEvVNS9qoRNwy5BCqxImv0FVeA==", - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, "node_modules/get-stream": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", @@ -7863,9 +8203,9 @@ } }, "node_modules/get-tsconfig": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz", - "integrity": "sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.0.tgz", + "integrity": "sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==", "dev": true, "license": "MIT", "dependencies": { @@ -8014,21 +8354,22 @@ } }, "node_modules/got": { - "version": "14.4.9", - "resolved": "https://registry.npmjs.org/got/-/got-14.4.9.tgz", - "integrity": "sha512-Dbu075Jwm3QwNCIoCenqkqY8l2gd7e/TanuhMbzZIEsb1mpAneImSusKhZ+XdqqC3S91SDV/1SdWpGXKAlm8tA==", + "version": "14.6.1", + "resolved": "https://registry.npmjs.org/got/-/got-14.6.1.tgz", + "integrity": "sha512-56lZOw904LHKr6KdKN0Zbgz9Lw6cpEAAqZcS+0iY4D27caHoLiFT0EGCbrX9ZKYvt+I2lGl3a8eeDNSbmhyjkQ==", "license": "MIT", "dependencies": { "@sindresorhus/is": "^7.0.1", "@szmarczak/http-timer": "^5.0.1", "cacheable-lookup": "^7.0.0", - "cacheable-request": "^12.0.1", - "decompress-response": "^6.0.0", + "cacheable-request": "^13.0.12", + "decompress-response": "^10.0.0", "form-data-encoder": "^4.0.2", "http2-wrapper": "^2.2.1", + "keyv": "^5.5.3", "lowercase-keys": "^3.0.0", "p-cancelable": "^4.0.1", - "responselike": "^3.0.0", + "responselike": "^4.0.2", "type-fest": "^4.26.1" }, "engines": { @@ -8038,6 +8379,15 @@ "url": "https://github.com/sindresorhus/got?sponsor=1" } }, + "node_modules/got/node_modules/keyv": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.5.3.tgz", + "integrity": "sha512-h0Un1ieD+HUrzBH6dJXhod3ifSghk5Hw/2Y4/KHBziPlZecrFyE9YOTPU6eOs0V9pYl8gOs86fkr/KN8lUX39A==", + "license": "MIT", + "dependencies": { + "@keyv/serialize": "^1.1.1" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -8250,9 +8600,9 @@ } }, "node_modules/i18next": { - "version": "25.5.2", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-25.5.2.tgz", - "integrity": "sha512-lW8Zeh37i/o0zVr+NoCHfNnfvVw+M6FQbRp36ZZ/NyHDJ3NJVpp2HhAUyU9WafL5AssymNoOjMRB48mmx2P6Hw==", + "version": "25.6.0", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-25.6.0.tgz", + "integrity": "sha512-tTn8fLrwBYtnclpL5aPXK/tAYBLWVvoHM1zdfXoRNLcI+RvtMsoZRV98ePlaW3khHYKuNh/Q65W/+NVFUeIwVw==", "funding": [ { "type": "individual", @@ -8636,14 +8986,15 @@ } }, "node_modules/is-generator-function": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", - "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", + "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, "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", - "get-proto": "^1.0.0", + "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" }, @@ -8747,6 +9098,16 @@ "dev": true, "license": "MIT" }, + "node_modules/is-reference": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz", + "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.6" + } + }, "node_modules/is-regex": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", @@ -9031,9 +9392,9 @@ } }, "node_modules/jiti": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.0.tgz", - "integrity": "sha512-VXe6RjJkBPj0ohtqaO8vSWP3ZhAKo66fKrFNCll4BTcwljPLz03pCbaNKfzGP5MbrCYcbJ7v0nOYYwUzTEIdXQ==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", "license": "MIT", "bin": { "jiti": "lib/jiti-cli.mjs" @@ -9059,21 +9420,21 @@ } }, "node_modules/jsdom": { - "version": "27.0.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-27.0.0.tgz", - "integrity": "sha512-lIHeR1qlIRrIN5VMccd8tI2Sgw6ieYXSVktcSHaNe3Z5nE/tcPQYQWOq00wxMvYOsz+73eAkNenVvmPC6bba9A==", + "version": "27.0.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-27.0.1.tgz", + "integrity": "sha512-SNSQteBL1IlV2zqhwwolaG9CwhIhTvVHWg3kTss/cLE7H/X4644mtPQqYvCfsSrGQWt9hSZcgOXX8bOZaMN+kA==", "dev": true, "license": "MIT", "dependencies": { - "@asamuzakjp/dom-selector": "^6.5.4", - "cssstyle": "^5.3.0", + "@asamuzakjp/dom-selector": "^6.7.2", + "cssstyle": "^5.3.1", "data-urls": "^6.0.0", - "decimal.js": "^10.5.0", + "decimal.js": "^10.6.0", "html-encoding-sniffer": "^4.0.0", "http-proxy-agent": "^7.0.2", "https-proxy-agent": "^7.0.6", "is-potential-custom-element-name": "^1.0.1", - "parse5": "^7.3.0", + "parse5": "^8.0.0", "rrweb-cssom": "^0.8.0", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", @@ -9082,8 +9443,8 @@ "webidl-conversions": "^8.0.0", "whatwg-encoding": "^3.1.1", "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^15.0.0", - "ws": "^8.18.2", + "whatwg-url": "^15.1.0", + "ws": "^8.18.3", "xml-name-validator": "^5.0.0" }, "engines": { @@ -9114,6 +9475,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, "license": "MIT" }, "node_modules/json-parse-even-better-errors": { @@ -9137,16 +9499,16 @@ "license": "MIT" }, "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, "bin": { "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" } }, "node_modules/jsonfile": { @@ -9178,6 +9540,7 @@ "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, "license": "MIT", "dependencies": { "json-buffer": "3.0.1" @@ -9325,20 +9688,20 @@ } }, "node_modules/license-report": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/license-report/-/license-report-6.8.0.tgz", - "integrity": "sha512-B9aZ9BZr2mZupG7aYE6JEttI1DY9EyNnY/awMiB4y3FhfLavoNkFVUOhTM5DXGOk/p3bEtaAvF+TsCNkf46R+g==", + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/license-report/-/license-report-6.8.1.tgz", + "integrity": "sha512-TxUUJNLTa+1kfYMK7uk7fLFtPrKMahX10K+pAY4UnGeNIJi+xWRzt/HrxpVlHj+9LG9Y2mhLzKFjHgAkj04ujg==", "license": "MIT", "dependencies": { "@kessler/tableify": "^1.0.2", - "debug": "^4.4.1", + "debug": "^4.4.3", "eol": "^0.10.0", "find-up-simple": "^1.0.1", - "got": "^14.4.7", + "got": "^14.6.0", "ini": "^5.0.0", "rc": "^1.2.8", - "semver": "^7.7.2", - "tablemark": "^3.1.0", + "semver": "^7.7.3", + "tablemark": "^4.1.0", "text-table": "^0.2.0", "visit-values": "^2.0.0" }, @@ -9346,7 +9709,7 @@ "license-report": "index.js" }, "engines": { - "node": ">=18" + "node": ">=20" } }, "node_modules/lie": { @@ -9359,9 +9722,9 @@ } }, "node_modules/lightningcss": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.1.tgz", - "integrity": "sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==", + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.2.tgz", + "integrity": "sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==", "license": "MPL-2.0", "dependencies": { "detect-libc": "^2.0.3" @@ -9374,22 +9737,43 @@ "url": "https://opencollective.com/parcel" }, "optionalDependencies": { - "lightningcss-darwin-arm64": "1.30.1", - "lightningcss-darwin-x64": "1.30.1", - "lightningcss-freebsd-x64": "1.30.1", - "lightningcss-linux-arm-gnueabihf": "1.30.1", - "lightningcss-linux-arm64-gnu": "1.30.1", - "lightningcss-linux-arm64-musl": "1.30.1", - "lightningcss-linux-x64-gnu": "1.30.1", - "lightningcss-linux-x64-musl": "1.30.1", - "lightningcss-win32-arm64-msvc": "1.30.1", - "lightningcss-win32-x64-msvc": "1.30.1" + "lightningcss-android-arm64": "1.30.2", + "lightningcss-darwin-arm64": "1.30.2", + "lightningcss-darwin-x64": "1.30.2", + "lightningcss-freebsd-x64": "1.30.2", + "lightningcss-linux-arm-gnueabihf": "1.30.2", + "lightningcss-linux-arm64-gnu": "1.30.2", + "lightningcss-linux-arm64-musl": "1.30.2", + "lightningcss-linux-x64-gnu": "1.30.2", + "lightningcss-linux-x64-musl": "1.30.2", + "lightningcss-win32-arm64-msvc": "1.30.2", + "lightningcss-win32-x64-msvc": "1.30.2" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.30.2.tgz", + "integrity": "sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, "node_modules/lightningcss-darwin-arm64": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.1.tgz", - "integrity": "sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==", + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.2.tgz", + "integrity": "sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==", "cpu": [ "arm64" ], @@ -9407,9 +9791,9 @@ } }, "node_modules/lightningcss-darwin-x64": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.1.tgz", - "integrity": "sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==", + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.2.tgz", + "integrity": "sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==", "cpu": [ "x64" ], @@ -9427,9 +9811,9 @@ } }, "node_modules/lightningcss-freebsd-x64": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.1.tgz", - "integrity": "sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==", + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.2.tgz", + "integrity": "sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==", "cpu": [ "x64" ], @@ -9447,9 +9831,9 @@ } }, "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.1.tgz", - "integrity": "sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==", + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.2.tgz", + "integrity": "sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==", "cpu": [ "arm" ], @@ -9467,9 +9851,9 @@ } }, "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.1.tgz", - "integrity": "sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==", + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.2.tgz", + "integrity": "sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==", "cpu": [ "arm64" ], @@ -9487,9 +9871,9 @@ } }, "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.1.tgz", - "integrity": "sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==", + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.2.tgz", + "integrity": "sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==", "cpu": [ "arm64" ], @@ -9507,9 +9891,9 @@ } }, "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.1.tgz", - "integrity": "sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==", + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.2.tgz", + "integrity": "sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==", "cpu": [ "x64" ], @@ -9527,9 +9911,9 @@ } }, "node_modules/lightningcss-linux-x64-musl": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.1.tgz", - "integrity": "sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==", + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.2.tgz", + "integrity": "sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==", "cpu": [ "x64" ], @@ -9547,9 +9931,9 @@ } }, "node_modules/lightningcss-win32-arm64-msvc": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.1.tgz", - "integrity": "sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==", + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.2.tgz", + "integrity": "sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==", "cpu": [ "arm64" ], @@ -9567,9 +9951,9 @@ } }, "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.1.tgz", - "integrity": "sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==", + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.2.tgz", + "integrity": "sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==", "cpu": [ "x64" ], @@ -9623,6 +10007,13 @@ "url": "https://github.com/sponsors/antfu" } }, + "node_modules/locate-character": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", + "license": "MIT", + "peer": true + }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -9682,21 +10073,6 @@ "dev": true, "license": "MIT" }, - "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==", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/lower-case/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==", - "license": "0BSD" - }, "node_modules/lowercase-keys": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", @@ -9710,9 +10086,9 @@ } }, "node_modules/lru-cache": { - "version": "11.2.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.1.tgz", - "integrity": "sha512-r8LA6i4LP4EeWOhqBaZZjDWwehd1xUJPCJd9Sv300H0ZmcUER4+JPh7bqqZeqs1o5pgtgvXm+d9UGrB5zZGDiQ==", + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz", + "integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==", "dev": true, "license": "ISC", "engines": { @@ -9769,9 +10145,9 @@ } }, "node_modules/magic-string": { - "version": "0.30.19", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.19.tgz", - "integrity": "sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==", + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" @@ -9927,23 +10303,12 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } }, - "node_modules/minizlib": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", - "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", - "license": "MIT", - "dependencies": { - "minipass": "^7.1.2" - }, - "engines": { - "node": ">= 18" - } - }, "node_modules/mitt": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", @@ -10067,9 +10432,9 @@ } }, "node_modules/napi-postinstall": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.3.tgz", - "integrity": "sha512-uTp172LLXSxuSYHv/kou+f6KW3SMppU9ivthaVTXian9sOt3XM/zHYHpRZiLgQoxeWfYUnslNWQHF1+G71xcow==", + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.4.tgz", + "integrity": "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==", "dev": true, "license": "MIT", "bin": { @@ -10099,22 +10464,6 @@ "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==", - "license": "MIT", - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node_modules/no-case/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==", - "license": "0BSD" - }, "node_modules/node-fetch": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", @@ -10158,9 +10507,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.21", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.21.tgz", - "integrity": "sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==", + "version": "2.0.26", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.26.tgz", + "integrity": "sha512-S2M9YimhSjBSvYnlr5/+umAnPHE++ODwt5e2Ij6FoX45HA/s4vHdkDx1eax2pAPeAOqu4s9b7ppahsyEFdVqQA==", "license": "MIT" }, "node_modules/node-source-walk": { @@ -10558,9 +10907,9 @@ "license": "BlueOak-1.0.0" }, "node_modules/package-manager-detector": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.3.0.tgz", - "integrity": "sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.5.0.tgz", + "integrity": "sha512-uBj69dVlYe/+wxj8JOpr97XfsxH/eumMt6HqjNTmJDf/6NO9s+0uxeOneIz3AsPt2m6y9PqzDzd3ATcU17MNfw==", "dev": true, "license": "MIT" }, @@ -10611,9 +10960,9 @@ } }, "node_modules/parse5": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", - "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.0.tgz", + "integrity": "sha512-9m4m5GSgXjL4AjumKzq1Fgfp3Z8rsvjRNbnkVwfu2ImRqE5D0LnY2QfDen18FSY9C573YU5XxSapdHZTZ2WolA==", "dev": true, "license": "MIT", "dependencies": { @@ -10722,15 +11071,15 @@ } }, "node_modules/pdfjs-dist": { - "version": "5.4.149", - "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-5.4.149.tgz", - "integrity": "sha512-Xe8/1FMJEQPUVSti25AlDpwpUm2QAVmNOpFP0SIahaPIOKBKICaefbzogLdwey3XGGoaP4Lb9wqiw2e9Jqp0LA==", + "version": "5.4.296", + "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-5.4.296.tgz", + "integrity": "sha512-DlOzet0HO7OEnmUmB6wWGJrrdvbyJKftI1bhMitK7O2N8W2gc757yyYBbINy9IDafXAV9wmKr9t7xsTaNKRG5Q==", "license": "Apache-2.0", "engines": { "node": ">=20.16.0 || >=22.3.0" }, "optionalDependencies": { - "@napi-rs/canvas": "^0.1.77" + "@napi-rs/canvas": "^0.1.80" } }, "node_modules/pend": { @@ -10782,13 +11131,13 @@ } }, "node_modules/playwright": { - "version": "1.55.0", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.55.0.tgz", - "integrity": "sha512-sdCWStblvV1YU909Xqx0DhOjPZE4/5lJsIS84IfN9dAZfcl/CIZ5O8l3o0j7hPMjDvqoTF8ZUcc+i/GL5erstA==", + "version": "1.56.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.56.1.tgz", + "integrity": "sha512-aFi5B0WovBHTEvpM3DzXTUaeN6eN0qWnTkKx4NQaH4Wvcmc153PdaY2UBdSYKaGYw+UyWXSVyxDUg5DoPEttjw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright-core": "1.55.0" + "playwright-core": "1.56.1" }, "bin": { "playwright": "cli.js" @@ -10801,9 +11150,9 @@ } }, "node_modules/playwright-core": { - "version": "1.55.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.55.0.tgz", - "integrity": "sha512-GvZs4vU3U5ro2nZpeiwyb0zuFaqb9sUiAJuyrWpcGouD8y9/HLgGbNRjIph7zU9D3hnPaisMl9zG9CgFi/biIg==", + "version": "1.56.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.56.1.tgz", + "integrity": "sha512-hutraynyn31F+Bifme+Ps9Vq59hKuUCz7H1kDOcBs+2oGguKkWTU50bBWrtz34OUWmIwpBTWDxaRPXrIXkgvmQ==", "dev": true, "license": "Apache-2.0", "bin": { @@ -11108,28 +11457,16 @@ } }, "node_modules/posthog-js": { - "version": "1.268.0", - "resolved": "https://registry.npmjs.org/posthog-js/-/posthog-js-1.268.0.tgz", - "integrity": "sha512-rEtziXONYXi+KKXBTzkxCTsHHKohLQvyAF2uEdXMwmL1vLW+f9rbroa2XuA9QUrvfboJXb5Pvysa+HnFnWnUcw==", + "version": "1.281.0", + "resolved": "https://registry.npmjs.org/posthog-js/-/posthog-js-1.281.0.tgz", + "integrity": "sha512-t3sAlgVozpU1W1ppiF5zLG6eBRPUs0hmtxN8R1V7P0qZFmnECshAAk2cBxCsxEanadT3iUpS8Z7crBytATqWQQ==", "license": "SEE LICENSE IN LICENSE", "dependencies": { - "@posthog/core": "1.1.0", + "@posthog/core": "1.4.0", "core-js": "^3.38.1", "fflate": "^0.4.8", "preact": "^10.19.3", "web-vitals": "^4.2.4" - }, - "peerDependencies": { - "@rrweb/types": "2.0.0-alpha.17", - "rrweb-snapshot": "2.0.0-alpha.17" - }, - "peerDependenciesMeta": { - "@rrweb/types": { - "optional": true - }, - "rrweb-snapshot": { - "optional": true - } } }, "node_modules/posthog-js/node_modules/web-vitals": { @@ -11350,18 +11687,18 @@ } }, "node_modules/puppeteer": { - "version": "24.25.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-24.25.0.tgz", - "integrity": "sha512-P3rUaom2w/Ubrnz3v3kSbxGkN7SpbtQeGRPb7iO86Bv/dAz2WUmGQBHr37W/Rp1fbAocMvu0rHFbCIJvjiNhGw==", + "version": "24.26.1", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-24.26.1.tgz", + "integrity": "sha512-3RG2UqclzMFolM2fS4bN8t5/EjZ0VwEoAGVxG8PMGeprjLzj+x0U4auH7MQ4B6ftW+u1JUnTTN8ab4ABPdl4mA==", "dev": true, "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { "@puppeteer/browsers": "2.10.12", - "chromium-bidi": "9.1.0", + "chromium-bidi": "10.5.1", "cosmiconfig": "^9.0.0", "devtools-protocol": "0.0.1508733", - "puppeteer-core": "24.25.0", + "puppeteer-core": "24.26.1", "typed-query-selector": "^2.12.0" }, "bin": { @@ -11372,18 +11709,18 @@ } }, "node_modules/puppeteer-core": { - "version": "24.25.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.25.0.tgz", - "integrity": "sha512-8Xs6q3Ut+C8y7sAaqjIhzv1QykGWG4gc2mEZ2mYE7siZFuRp4xQVehOf8uQKSQAkeL7jXUs3mknEeiqnRqUKvQ==", + "version": "24.26.1", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.26.1.tgz", + "integrity": "sha512-YHZdo3chJ5b9pTYVnuDuoI3UX/tWJFJyRZvkLbThGy6XeHWC+0KI8iN0UMCkvde5l/YOk3huiVZ/PvwgSbwdrA==", "dev": true, "license": "Apache-2.0", "dependencies": { "@puppeteer/browsers": "2.10.12", - "chromium-bidi": "9.1.0", + "chromium-bidi": "10.5.1", "debug": "^4.4.3", "devtools-protocol": "0.0.1508733", "typed-query-selector": "^2.12.0", - "webdriver-bidi-protocol": "0.3.7", + "webdriver-bidi-protocol": "0.3.8", "ws": "^8.18.3" }, "engines": { @@ -11511,24 +11848,24 @@ } }, "node_modules/react": { - "version": "19.1.1", - "resolved": "https://registry.npmjs.org/react/-/react-19.1.1.tgz", - "integrity": "sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==", + "version": "19.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.0.tgz", + "integrity": "sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==", "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { - "version": "19.1.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.1.tgz", - "integrity": "sha512-Dlq/5LAZgF0Gaz6yiqZCf6VCcZs1ghAJyrsu84Q/GT0gV+mCxbfmKNoGRKBYMJ8IEdGPqu49YWXD02GCknEDkw==", + "version": "19.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.0.tgz", + "integrity": "sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ==", "license": "MIT", "dependencies": { - "scheduler": "^0.26.0" + "scheduler": "^0.27.0" }, "peerDependencies": { - "react": "^19.1.1" + "react": "^19.2.0" } }, "node_modules/react-dropzone": { @@ -11549,16 +11886,16 @@ } }, "node_modules/react-i18next": { - "version": "15.7.3", - "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-15.7.3.tgz", - "integrity": "sha512-AANws4tOE+QSq/IeMF/ncoHlMNZaVLxpa5uUGW1wjike68elVYr0018L9xYoqBr1OFO7G7boDPrbn0HpMCJxTw==", + "version": "15.7.4", + "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-15.7.4.tgz", + "integrity": "sha512-nyU8iKNrI5uDJch0z9+Y5XEr34b0wkyYj3Rp+tfbahxtlswxSCjcUL9H0nqXo9IR3/t5Y5PKIA3fx3MfUyR9Xw==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.27.6", "html-parse-stringify": "^3.0.1" }, "peerDependencies": { - "i18next": ">= 25.4.1", + "i18next": ">= 23.4.0", "react": ">= 16.8.0", "typescript": "^5" }, @@ -11575,9 +11912,9 @@ } }, "node_modules/react-is": { - "version": "19.1.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.1.1.tgz", - "integrity": "sha512-tr41fA15Vn8p4X9ntI+yCyeGSf1TlYaY5vlTZfQmeLBrFo3psOPX6HhTDnFNL9uj3EhP0KAQ80cugCl4b4BERA==", + "version": "19.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.0.tgz", + "integrity": "sha512-x3Ax3kNSMIIkyVYhWPyO09bu0uttcAIoecO/um/rKGQ4EltYWVYtyiGkS/3xMynrbVQdS69Jhlv8FXUEZehlzA==", "license": "MIT" }, "node_modules/react-number-format": { @@ -11650,9 +11987,9 @@ "license": "0BSD" }, "node_modules/react-router": { - "version": "7.9.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.9.1.tgz", - "integrity": "sha512-pfAByjcTpX55mqSDGwGnY9vDCpxqBLASg0BMNAuMmpSGESo/TaOUG6BllhAtAkCGx8Rnohik/XtaqiYUJtgW2g==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.9.4.tgz", + "integrity": "sha512-SD3G8HKviFHg9xj7dNODUKDFgpG4xqD5nhyd0mYoB5iISepuZAvzSr8ywxgxKJ52yRzf/HWtVHc9AWwoTbljvA==", "license": "MIT", "dependencies": { "cookie": "^1.0.1", @@ -11672,12 +12009,12 @@ } }, "node_modules/react-router-dom": { - "version": "7.9.1", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.9.1.tgz", - "integrity": "sha512-U9WBQssBE9B1vmRjo9qTM7YRzfZ3lUxESIZnsf4VjR/lXYz9MHjvOxHzr/aUm4efpktbVOrF09rL/y4VHa8RMw==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.9.4.tgz", + "integrity": "sha512-f30P6bIkmYvnHHa5Gcu65deIXoA2+r3Eb6PJIAddvsT9aGlchMatJ51GgpU470aSqRRbFX22T70yQNUGuW3DfA==", "license": "MIT", "dependencies": { - "react-router": "7.9.1" + "react-router": "7.9.4" }, "engines": { "node": ">=20.0.0" @@ -11956,12 +12293,12 @@ "license": "MIT" }, "node_modules/resolve": { - "version": "1.22.10", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", - "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", "license": "MIT", "dependencies": { - "is-core-module": "^2.16.0", + "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -12011,15 +12348,15 @@ } }, "node_modules/responselike": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", - "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-4.0.2.tgz", + "integrity": "sha512-cGk8IbWEAnaCpdAt1BHzJ3Ahz5ewDJa0KseTsE3qIRMJ3C698W8psM7byCeWVpd/Ha7FUYzuRVzXoKoM6nRUbA==", "license": "MIT", "dependencies": { "lowercase-keys": "^3.0.0" }, "engines": { - "node": ">=14.16" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -12051,9 +12388,9 @@ } }, "node_modules/rollup": { - "version": "4.52.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.0.tgz", - "integrity": "sha512-+IuescNkTJQgX7AkIDtITipZdIGcWF0pnVvZTWStiazUmcGA2ag8dfg0urest2XlXUi9kuhfQ+qmdc5Stc3z7g==", + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.5.tgz", + "integrity": "sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==", "dev": true, "license": "MIT", "dependencies": { @@ -12067,28 +12404,28 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.52.0", - "@rollup/rollup-android-arm64": "4.52.0", - "@rollup/rollup-darwin-arm64": "4.52.0", - "@rollup/rollup-darwin-x64": "4.52.0", - "@rollup/rollup-freebsd-arm64": "4.52.0", - "@rollup/rollup-freebsd-x64": "4.52.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.52.0", - "@rollup/rollup-linux-arm-musleabihf": "4.52.0", - "@rollup/rollup-linux-arm64-gnu": "4.52.0", - "@rollup/rollup-linux-arm64-musl": "4.52.0", - "@rollup/rollup-linux-loong64-gnu": "4.52.0", - "@rollup/rollup-linux-ppc64-gnu": "4.52.0", - "@rollup/rollup-linux-riscv64-gnu": "4.52.0", - "@rollup/rollup-linux-riscv64-musl": "4.52.0", - "@rollup/rollup-linux-s390x-gnu": "4.52.0", - "@rollup/rollup-linux-x64-gnu": "4.52.0", - "@rollup/rollup-linux-x64-musl": "4.52.0", - "@rollup/rollup-openharmony-arm64": "4.52.0", - "@rollup/rollup-win32-arm64-msvc": "4.52.0", - "@rollup/rollup-win32-ia32-msvc": "4.52.0", - "@rollup/rollup-win32-x64-gnu": "4.52.0", - "@rollup/rollup-win32-x64-msvc": "4.52.0", + "@rollup/rollup-android-arm-eabi": "4.52.5", + "@rollup/rollup-android-arm64": "4.52.5", + "@rollup/rollup-darwin-arm64": "4.52.5", + "@rollup/rollup-darwin-x64": "4.52.5", + "@rollup/rollup-freebsd-arm64": "4.52.5", + "@rollup/rollup-freebsd-x64": "4.52.5", + "@rollup/rollup-linux-arm-gnueabihf": "4.52.5", + "@rollup/rollup-linux-arm-musleabihf": "4.52.5", + "@rollup/rollup-linux-arm64-gnu": "4.52.5", + "@rollup/rollup-linux-arm64-musl": "4.52.5", + "@rollup/rollup-linux-loong64-gnu": "4.52.5", + "@rollup/rollup-linux-ppc64-gnu": "4.52.5", + "@rollup/rollup-linux-riscv64-gnu": "4.52.5", + "@rollup/rollup-linux-riscv64-musl": "4.52.5", + "@rollup/rollup-linux-s390x-gnu": "4.52.5", + "@rollup/rollup-linux-x64-gnu": "4.52.5", + "@rollup/rollup-linux-x64-musl": "4.52.5", + "@rollup/rollup-openharmony-arm64": "4.52.5", + "@rollup/rollup-win32-arm64-msvc": "4.52.5", + "@rollup/rollup-win32-ia32-msvc": "4.52.5", + "@rollup/rollup-win32-x64-gnu": "4.52.5", + "@rollup/rollup-win32-x64-msvc": "4.52.5", "fsevents": "~2.3.2" } }, @@ -12246,9 +12583,9 @@ } }, "node_modules/scheduler": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", - "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", "license": "MIT" }, "node_modules/semver": { @@ -12263,27 +12600,10 @@ "node": ">=10" } }, - "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==", - "license": "MIT", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case-first": "^2.0.2" - } - }, - "node_modules/sentence-case/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==", - "license": "0BSD" - }, "node_modules/set-cookie-parser": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", - "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz", + "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==", "license": "MIT" }, "node_modules/set-function-length": { @@ -12609,19 +12929,6 @@ "spdx-ranges": "^2.0.0" } }, - "node_modules/split-text-to-chunks": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/split-text-to-chunks/-/split-text-to-chunks-1.0.0.tgz", - "integrity": "sha512-HLtEwXK/T4l7QZSJ/kOSsZC0o5e2Xg3GzKKFxm0ZexJXw0Bo4CaEl39l7MCSRHk9EOOL5jT8JIDjmhTtcoe6lQ==", - "license": "MIT", - "dependencies": { - "get-stdin": "^5.0.1", - "minimist": "^1.2.0" - }, - "bin": { - "wordwrap": "cli.js" - } - }, "node_modules/stable-hash-x": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/stable-hash-x/-/stable-hash-x-0.2.0.tgz", @@ -12640,9 +12947,9 @@ "license": "MIT" }, "node_modules/std-env": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz", - "integrity": "sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", "dev": true, "license": "MIT" }, @@ -12692,18 +12999,19 @@ } }, "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, + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.1.0.tgz", + "integrity": "sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==", "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "get-east-asian-width": "^1.3.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/string-width-cjs": { @@ -12722,6 +13030,33 @@ "node": ">=8" } }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/string.prototype.trim": { "version": "1.2.10", "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", @@ -12860,9 +13195,9 @@ } }, "node_modules/strip-literal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.0.0.tgz", - "integrity": "sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.1.0.tgz", + "integrity": "sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==", "dev": true, "license": "MIT", "dependencies": { @@ -12959,6 +13294,42 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/svelte": { + "version": "5.42.3", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.42.3.tgz", + "integrity": "sha512-+8dUmdJGvKSWEfbAgIaUmpD97s1bBAGxEf6s7wQonk+HNdMmrBZtpStzRypRqrYBFUmmhaUgBHUjraE8gLqWAw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/remapping": "^2.3.4", + "@jridgewell/sourcemap-codec": "^1.5.0", + "@sveltejs/acorn-typescript": "^1.0.5", + "@types/estree": "^1.0.5", + "acorn": "^8.12.1", + "aria-query": "^5.3.1", + "axobject-query": "^4.1.0", + "clsx": "^2.1.1", + "esm-env": "^1.2.1", + "esrap": "^2.1.0", + "is-reference": "^3.0.3", + "locate-character": "^3.0.0", + "magic-string": "^0.30.11", + "zimmerframe": "^1.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/svelte/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==", + "license": "Apache-2.0", + "peer": true, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", @@ -12967,34 +13338,49 @@ "license": "MIT" }, "node_modules/tabbable": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", - "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.3.0.tgz", + "integrity": "sha512-EIHvdY5bPLuWForiR/AN2Bxngzpuwn1is4asboytXtpTgsArc+WmSJKVLlhdh71u7jFcryDqB2A8lQvj78MkyQ==", "license": "MIT" }, "node_modules/tablemark": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/tablemark/-/tablemark-3.1.0.tgz", - "integrity": "sha512-IwO6f0SEzp1Z+zqz/7ANUmeEac4gaNlknWyj/S9aSg11wZmWYnLeyI/xXvEOU88BYUIf8y30y0wxB58xIKrVlQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/tablemark/-/tablemark-4.1.0.tgz", + "integrity": "sha512-B3LDjbDo+ac+D5RwkBOPZZ6ua8716KdT+6NO3DKOCHJq0ezE6vV2r92rjrC1ci2H+ocuysl5ytf1T0QqV65yoA==", "license": "MIT", "dependencies": { - "sentence-case": "^3.0.4", - "split-text-to-chunks": "^1.0.0" + "ansi-regex": "^6.2.2", + "change-case": "^5.4.4", + "string-width": "^8.1.0", + "wordwrapjs": "^5.1.0", + "wrap-ansi": "^9.0.2" }, "engines": { - "node": ">=14.16" + "node": ">=20" + } + }, + "node_modules/tablemark/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, "node_modules/tailwindcss": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.13.tgz", - "integrity": "sha512-i+zidfmTqtwquj4hMEwdjshYYgMbOrPzb9a0M3ZgNa0JMoZeFC6bxZvO8yr8ozS6ix2SDz0+mvryPeBs2TFE+w==", + "version": "4.1.16", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.16.tgz", + "integrity": "sha512-pONL5awpaQX4LN5eiv7moSiSPd/DLDzKVRJz8Q9PgzmAdd1R4307GQS2ZpfiN7ZmekdQrfhZZiSE5jkLR4WNaA==", "license": "MIT" }, "node_modules/tapable": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.3.tgz", - "integrity": "sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", "license": "MIT", "engines": { "node": ">=6" @@ -13004,22 +13390,6 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/tar": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.4.tgz", - "integrity": "sha512-O1z7ajPkjTgEgmTGz0v9X4eqeEXTDREPTO77pVC1Nbs86feBU1Zhdg+edzavPmYW1olxkwsqA2v4uOw6E8LeDg==", - "license": "ISC", - "dependencies": { - "@isaacs/fs-minipass": "^4.0.0", - "chownr": "^3.0.0", - "minipass": "^7.1.2", - "minizlib": "^3.1.0", - "yallist": "^5.0.0" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/tar-fs": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.1.tgz", @@ -13199,22 +13569,22 @@ } }, "node_modules/tldts": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.15.tgz", - "integrity": "sha512-heYRCiGLhtI+U/D0V8YM3QRwPfsLJiP+HX+YwiHZTnWzjIKC+ZCxQRYlzvOoTEc6KIP62B1VeAN63diGCng2hg==", + "version": "7.0.17", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.17.tgz", + "integrity": "sha512-Y1KQBgDd/NUc+LfOtKS6mNsC9CCaH+m2P1RoIZy7RAPo3C3/t8X45+zgut31cRZtZ3xKPjfn3TkGTrctC2TQIQ==", "dev": true, "license": "MIT", "dependencies": { - "tldts-core": "^7.0.15" + "tldts-core": "^7.0.17" }, "bin": { "tldts": "bin/cli.js" } }, "node_modules/tldts-core": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.15.tgz", - "integrity": "sha512-YBkp2VfS9VTRMPNL2PA6PMESmxV1JEVoAr5iBlZnB5JG3KUrWzNCB3yNNkRa2FZkqClaBgfNYCp8PgpYmpjkZw==", + "version": "7.0.17", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.17.tgz", + "integrity": "sha512-DieYoGrP78PWKsrXr8MZwtQ7GLCUeLxihtjC1jZsW1DnvSMdKPitJSe8OSYDM2u5H6g3kWJZpePqkp43TfLh0g==", "dev": true, "license": "MIT" }, @@ -13328,18 +13698,16 @@ } }, "node_modules/tsconfig-paths": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", - "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "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, "license": "MIT", "dependencies": { - "json5": "^2.2.2", + "@types/json5": "^0.0.29", + "json5": "^1.0.2", "minimist": "^1.2.6", "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=6" } }, "node_modules/tslib": { @@ -13459,9 +13827,9 @@ "license": "MIT" }, "node_modules/typescript": { - "version": "5.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", - "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "devOptional": true, "license": "Apache-2.0", "bin": { @@ -13473,16 +13841,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.44.1", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.44.1.tgz", - "integrity": "sha512-0ws8uWGrUVTjEeN2OM4K1pLKHK/4NiNP/vz6ns+LjT/6sqpaYzIVFajZb1fj/IDwpsrrHb3Jy0Qm5u9CPcKaeg==", + "version": "8.46.2", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.46.2.tgz", + "integrity": "sha512-vbw8bOmiuYNdzzV3lsiWv6sRwjyuKJMQqWulBOU7M0RrxedXledX8G8kBbQeiOYDnTfiXz0Y4081E1QMNB6iQg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.44.1", - "@typescript-eslint/parser": "8.44.1", - "@typescript-eslint/typescript-estree": "8.44.1", - "@typescript-eslint/utils": "8.44.1" + "@typescript-eslint/eslint-plugin": "8.46.2", + "@typescript-eslint/parser": "8.46.2", + "@typescript-eslint/typescript-estree": "8.46.2", + "@typescript-eslint/utils": "8.46.2" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -13523,9 +13891,9 @@ } }, "node_modules/undici-types": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.12.0.tgz", - "integrity": "sha512-goOacqME2GYyOZZfb5Lgtu+1IDmAlAEu5xnD3+xTzS10hT0vzpf0SPjkXwAw9Jm+4n/mQGDP3LO8CPbYROeBfQ==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", "dev": true, "license": "MIT" }, @@ -13575,9 +13943,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", - "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz", + "integrity": "sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==", "funding": [ { "type": "opencollective", @@ -13604,21 +13972,6 @@ "browserslist": ">= 4.21.0" } }, - "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==", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/upper-case-first/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==", - "license": "0BSD" - }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -13760,9 +14113,9 @@ "license": "MIT" }, "node_modules/vite": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.7.tgz", - "integrity": "sha512-VbA8ScMvAISJNJVbRDTJdCwqQoAareR/wutevKanhR2/1EkoXVZVkkORaYm/tNVCjP/UDTKtcw3bAkwOUdedmA==", + "version": "7.1.12", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.12.tgz", + "integrity": "sha512-ZWyE8YXEXqJrrSLvYgrRP7p62OziLW7xI5HYGWFzOvupfAlrLvURSzv/FyGyy0eidogEM3ujU+kUG1zuHgb6Ug==", "dev": true, "license": "MIT", "dependencies": { @@ -14026,17 +14379,17 @@ } }, "node_modules/vue": { - "version": "3.5.21", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.21.tgz", - "integrity": "sha512-xxf9rum9KtOdwdRkiApWL+9hZEMWE90FHh8yS1+KJAiWYh+iGWV1FquPjoO9VUHQ+VIhsCXNNyZ5Sf4++RVZBA==", + "version": "3.5.22", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.22.tgz", + "integrity": "sha512-toaZjQ3a/G/mYaLSbV+QsQhIdMo9x5rrqIpYRObsJ6T/J+RyCSFwN2LHNVH9v8uIcljDNa3QzPVdv3Y6b9hAJQ==", "license": "MIT", "peer": true, "dependencies": { - "@vue/compiler-dom": "3.5.21", - "@vue/compiler-sfc": "3.5.21", - "@vue/runtime-dom": "3.5.21", - "@vue/server-renderer": "3.5.21", - "@vue/shared": "3.5.21" + "@vue/compiler-dom": "3.5.22", + "@vue/compiler-sfc": "3.5.22", + "@vue/runtime-dom": "3.5.22", + "@vue/server-renderer": "3.5.22", + "@vue/shared": "3.5.22" }, "peerDependencies": { "typescript": "*" @@ -14087,9 +14440,9 @@ "license": "Apache-2.0" }, "node_modules/webdriver-bidi-protocol": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.3.7.tgz", - "integrity": "sha512-wIx5Gu/LLTeexxilpk8WxU2cpGAKlfbWRO5h+my6EMD1k5PYqM1qQO1MHUFf4f3KRnhBvpbZU7VkizAgeSEf7g==", + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.3.8.tgz", + "integrity": "sha512-21Yi2GhGntMc671vNBCjiAeEVknXjVRoyu+k+9xOMShu+ZQfpGQwnBqbNz/Sv4GXZ6JmutlPAi2nIJcrymAWuQ==", "dev": true, "license": "Apache-2.0" }, @@ -14279,19 +14632,27 @@ "node": ">=0.10.0" } }, + "node_modules/wordwrapjs": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-5.1.1.tgz", + "integrity": "sha512-0yweIbkINJodk27gX9LBGMzyQdBDan3s/dEAiwBOj+Mf0PPyWL6/rikalkv8EeD0E8jm4o5RXEOrFTP3NXbhJg==", + "license": "MIT", + "engines": { + "node": ">=12.17" + } + }, "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, + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", + "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" @@ -14316,6 +14677,83 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "license": "MIT" + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -14372,15 +14810,6 @@ "node": ">=10" } }, - "node_modules/yallist": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", - "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=18" - } - }, "node_modules/yaml": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", @@ -14423,6 +14852,21 @@ "node": ">=12" } }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", @@ -14447,6 +14891,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/zimmerframe": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.4.tgz", + "integrity": "sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==", + "license": "MIT", + "peer": true + }, "node_modules/zod": { "version": "3.25.76", "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", diff --git a/frontend/package.json b/frontend/package.json index 892e485690..825749f3e7 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -25,6 +25,8 @@ "@embedpdf/plugin-viewport": "^1.3.14", "@embedpdf/plugin-zoom": "^1.3.14", "@emotion/react": "^11.14.0", + "@tauri-apps/api": "^2.5.0", + "@tauri-apps/plugin-fs": "^2.4.0", "@emotion/styled": "^11.14.1", "@iconify/react": "^6.0.2", "@mantine/core": "^8.3.1", @@ -62,10 +64,13 @@ "lint": "eslint --max-warnings=0", "build": "vite build", "preview": "vite preview", - "typecheck": "tsc --noEmit", + "tauri-dev": "tauri dev --no-watch", + "tauri-build": "tauri build", + "typecheck": "npm run typecheck:proprietary", "typecheck:core": "tsc --noEmit --project tsconfig.core.json", "typecheck:proprietary": "tsc --noEmit --project tsconfig.proprietary.json", - "typecheck:all": "npm run typecheck:core && npm run typecheck:proprietary", + "typecheck:desktop": "tsc --noEmit --project tsconfig.desktop.json", + "typecheck:all": "npm run typecheck:core && npm run typecheck:proprietary && npm run typecheck:desktop", "check": "npm run typecheck && npm run lint && npm run test:run", "generate-licenses": "node scripts/generate-licenses.js", "generate-icons": "node scripts/generate-icons.js", @@ -103,6 +108,7 @@ ] }, "devDependencies": { + "@tauri-apps/cli": "^2.5.0", "@eslint/js": "^9.36.0", "@iconify-json/material-symbols": "^1.2.37", "@iconify/utils": "^3.0.2", diff --git a/frontend/public/locales/en-GB/translation.json b/frontend/public/locales/en-GB/translation.json index b72f5cc546..669c9f5054 100644 --- a/frontend/public/locales/en-GB/translation.json +++ b/frontend/public/locales/en-GB/translation.json @@ -4592,5 +4592,10 @@ "passwordMustBeDifferent": "New password must be different from current password", "passwordChangedSuccess": "Password changed successfully! Please log in again.", "passwordChangeFailed": "Failed to change password. Please check your current password." + }, + "backendHealth": { + "checking": "Checking backend status...", + "online": "Backend Online", + "offline": "Backend Offline" } } diff --git a/frontend/src-tauri/.gitignore b/frontend/src-tauri/.gitignore new file mode 100644 index 0000000000..e605f4aaef --- /dev/null +++ b/frontend/src-tauri/.gitignore @@ -0,0 +1,5 @@ +# Generated by Cargo +# will have compiled files and executables +/target/ +/gen/schemas +/runtime/ diff --git a/frontend/src-tauri/Cargo.lock b/frontend/src-tauri/Cargo.lock new file mode 100644 index 0000000000..5f4f9b350c --- /dev/null +++ b/frontend/src-tauri/Cargo.lock @@ -0,0 +1,5686 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + +[[package]] +name = "ahash" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" +dependencies = [ + "getrandom 0.2.16", + "once_cell", + "version_check", +] + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "android_log-sys" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84521a3cf562bc62942e294181d9eef17eb38ceb8c68677bc49f144e4c3d4f8d" + +[[package]] +name = "android_logger" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbb4e440d04be07da1f1bf44fb4495ebd58669372fe0cffa6e48595ac5bd88a3" +dependencies = [ + "android_log-sys", + "env_filter", + "log", +] + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anyhow" +version = "1.0.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" + +[[package]] +name = "arrayvec" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" + +[[package]] +name = "atk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "241b621213072e993be4f6f3a9e4b45f65b7e6faad43001be957184b7bb1824b" +dependencies = [ + "atk-sys", + "glib", + "libc", +] + +[[package]] +name = "atk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5e48b684b0ca77d2bbadeef17424c2ea3c897d44d566a1617e7e8f30614d086" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" +dependencies = [ + "serde_core", +] + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "block" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block2" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f" +dependencies = [ + "objc2 0.5.2", +] + +[[package]] +name = "block2" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" +dependencies = [ + "objc2 0.6.3", +] + +[[package]] +name = "borsh" +version = "1.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad8646f98db542e39fc66e68a20b2144f6a732636df7c2354e74645faaa433ce" +dependencies = [ + "borsh-derive", + "cfg_aliases", +] + +[[package]] +name = "borsh-derive" +version = "1.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdd1d3c0c2f5833f22386f252fe8ed005c7f59fdcddeef025c01b4c3b9fd9ac3" +dependencies = [ + "once_cell", + "proc-macro-crate 3.4.0", + "proc-macro2", + "quote", + "syn 2.0.108", +] + +[[package]] +name = "brotli" +version = "8.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bd8b9603c7aa97359dbd97ecf258968c95f3adddd6db2f7e7a5bef101c84560" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "874bb8112abecc98cbd6d81ea4fa7e94fb9449648c93cc89aa40c81c24d7de03" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bumpalo" +version = "3.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" + +[[package]] +name = "byte-unit" +version = "5.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cd29c3c585209b0cbc7309bfe3ed7efd8c84c21b7af29c8bfae908f8777174" +dependencies = [ + "rust_decimal", + "serde", + "utf8-width", +] + +[[package]] +name = "bytecheck" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2" +dependencies = [ + "bytecheck_derive", + "ptr_meta", + "simdutf8", +] + +[[package]] +name = "bytecheck_derive" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "bytemuck" +version = "1.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" +dependencies = [ + "serde", +] + +[[package]] +name = "cairo-rs" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2" +dependencies = [ + "bitflags 2.10.0", + "cairo-sys-rs", + "glib", + "libc", + "once_cell", + "thiserror 1.0.69", +] + +[[package]] +name = "cairo-sys-rs" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "camino" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "276a59bf2b2c967788139340c9f0c5b12d7fd6630315c15c217e559de85d2609" +dependencies = [ + "serde_core", +] + +[[package]] +name = "cargo-platform" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" +dependencies = [ + "camino", + "cargo-platform", + "semver", + "serde", + "serde_json", + "thiserror 2.0.17", +] + +[[package]] +name = "cargo_toml" +version = "0.22.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "374b7c592d9c00c1f4972ea58390ac6b18cbb6ab79011f3bdc90a0b82ca06b77" +dependencies = [ + "serde", + "toml 0.9.8", +] + +[[package]] +name = "cc" +version = "1.2.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "739eb0f94557554b3ca9a86d2d37bebd49c5e6d0c1d2bda35ba5bdac830befc2" +dependencies = [ + "find-msvc-tools", + "shlex", +] + +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + +[[package]] +name = "cfb" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f" +dependencies = [ + "byteorder", + "fnv", + "uuid", +] + +[[package]] +name = "cfg-expr" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" +dependencies = [ + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cfg-if" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" + +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + +[[package]] +name = "chrono" +version = "0.4.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" +dependencies = [ + "iana-time-zone", + "num-traits", + "serde", + "windows-link 0.2.1", +] + +[[package]] +name = "cocoa" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a" +dependencies = [ + "bitflags 1.3.2", + "block", + "cocoa-foundation", + "core-foundation 0.9.4", + "core-graphics 0.22.3", + "foreign-types 0.3.2", + "libc", + "objc", +] + +[[package]] +name = "cocoa-foundation" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7" +dependencies = [ + "bitflags 1.3.2", + "block", + "core-foundation 0.9.4", + "core-graphics-types 0.1.3", + "libc", + "objc", +] + +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "cookie" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ddef33a339a91ea89fb53151bd0a4689cfce27055c291dfa69945475d22c747" +dependencies = [ + "time", + "version_check", +] + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "core-graphics" +version = "0.22.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" +dependencies = [ + "bitflags 1.3.2", + "core-foundation 0.9.4", + "core-graphics-types 0.1.3", + "foreign-types 0.3.2", + "libc", +] + +[[package]] +name = "core-graphics" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa95a34622365fa5bbf40b20b75dba8dfa8c94c734aea8ac9a5ca38af14316f1" +dependencies = [ + "bitflags 2.10.0", + "core-foundation 0.10.1", + "core-graphics-types 0.2.0", + "foreign-types 0.5.0", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" +dependencies = [ + "bitflags 1.3.2", + "core-foundation 0.9.4", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" +dependencies = [ + "bitflags 2.10.0", + "core-foundation 0.10.1", + "libc", +] + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "cssparser" +version = "0.29.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f93d03419cb5950ccfd3daf3ff1c7a36ace64609a1a8746d493df1ca0afde0fa" +dependencies = [ + "cssparser-macros", + "dtoa-short", + "itoa", + "matches", + "phf 0.10.1", + "proc-macro2", + "quote", + "smallvec", + "syn 1.0.109", +] + +[[package]] +name = "cssparser-macros" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" +dependencies = [ + "quote", + "syn 2.0.108", +] + +[[package]] +name = "ctor" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501" +dependencies = [ + "quote", + "syn 2.0.108", +] + +[[package]] +name = "darling" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.108", +] + +[[package]] +name = "darling_macro" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.108", +] + +[[package]] +name = "deranged" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" +dependencies = [ + "powerfmt", + "serde_core", +] + +[[package]] +name = "derive_more" +version = "0.99.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version", + "syn 2.0.108", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "dirs" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.61.2", +] + +[[package]] +name = "dispatch" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" + +[[package]] +name = "dispatch2" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec" +dependencies = [ + "bitflags 2.10.0", + "objc2 0.6.3", +] + +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.108", +] + +[[package]] +name = "dlopen2" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b54f373ccf864bf587a89e880fb7610f8d73f3045f13580948ccbcaff26febff" +dependencies = [ + "dlopen2_derive", + "libc", + "once_cell", + "winapi", +] + +[[package]] +name = "dlopen2_derive" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "788160fb30de9cdd857af31c6a2675904b16ece8fc2737b2c7127ba368c9d0f4" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.108", +] + +[[package]] +name = "dpi" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76" +dependencies = [ + "serde", +] + +[[package]] +name = "dtoa" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6add3b8cff394282be81f3fc1a0605db594ed69890078ca6e2cab1c408bcf04" + +[[package]] +name = "dtoa-short" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd1511a7b6a56299bd043a9c167a6d2bfb37bf84a6dfceaba651168adfb43c87" +dependencies = [ + "dtoa", +] + +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + +[[package]] +name = "dyn-clone" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" + +[[package]] +name = "embed-resource" +version = "3.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55a075fc573c64510038d7ee9abc7990635863992f83ebc52c8b433b8411a02e" +dependencies = [ + "cc", + "memchr", + "rustc_version", + "toml 0.9.8", + "vswhom", + "winreg 0.55.0", +] + +[[package]] +name = "embed_plist" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" + +[[package]] +name = "encoding_rs" +version = "0.8.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "env_filter" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bf3c259d255ca70051b30e2e95b5446cdb8949ac4cd22c0d7fd634d89f568e2" +dependencies = [ + "log", + "regex", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "erased-serde" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "259d404d09818dec19332e31d94558aeb442fea04c817006456c24b5460bbd4b" +dependencies = [ + "serde", + "serde_core", + "typeid", +] + +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "fastrand" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" + +[[package]] +name = "fdeflate" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "fern" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4316185f709b23713e41e3195f90edef7fb00c3ed4adc79769cf09cc762a3b29" +dependencies = [ + "log", +] + +[[package]] +name = "field-offset" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" +dependencies = [ + "memoffset", + "rustc_version", +] + +[[package]] +name = "find-msvc-tools" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127" + +[[package]] +name = "flate2" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared 0.1.1", +] + +[[package]] +name = "foreign-types" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" +dependencies = [ + "foreign-types-macros", + "foreign-types-shared 0.3.1", +] + +[[package]] +name = "foreign-types-macros" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.108", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "foreign-types-shared" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" + +[[package]] +name = "form_urlencoded" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futf" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" +dependencies = [ + "mac", + "new_debug_unreachable", +] + +[[package]] +name = "futures-channel" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" + +[[package]] +name = "futures-executor" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" + +[[package]] +name = "futures-macro" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.108", +] + +[[package]] +name = "futures-sink" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" + +[[package]] +name = "futures-task" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" + +[[package]] +name = "futures-util" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +dependencies = [ + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "gdk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9f245958c627ac99d8e529166f9823fb3b838d1d41fd2b297af3075093c2691" +dependencies = [ + "cairo-rs", + "gdk-pixbuf", + "gdk-sys", + "gio", + "glib", + "libc", + "pango", +] + +[[package]] +name = "gdk-pixbuf" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec" +dependencies = [ + "gdk-pixbuf-sys", + "gio", + "glib", + "libc", + "once_cell", +] + +[[package]] +name = "gdk-pixbuf-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gdk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c2d13f38594ac1e66619e188c6d5a1adb98d11b2fcf7894fc416ad76aa2f3f7" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "pkg-config", + "system-deps", +] + +[[package]] +name = "gdkwayland-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "140071d506d223f7572b9f09b5e155afbd77428cd5cc7af8f2694c41d98dfe69" +dependencies = [ + "gdk-sys", + "glib-sys", + "gobject-sys", + "libc", + "pkg-config", + "system-deps", +] + +[[package]] +name = "gdkx11" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3caa00e14351bebbc8183b3c36690327eb77c49abc2268dd4bd36b856db3fbfe" +dependencies = [ + "gdk", + "gdkx11-sys", + "gio", + "glib", + "libc", + "x11", +] + +[[package]] +name = "gdkx11-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e2e7445fe01ac26f11601db260dd8608fe172514eb63b3b5e261ea6b0f4428d" +dependencies = [ + "gdk-sys", + "glib-sys", + "libc", + "system-deps", + "x11", +] + +[[package]] +name = "generic-array" +version = "0.14.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasip2", +] + +[[package]] +name = "gio" +version = "0.18.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "gio-sys", + "glib", + "libc", + "once_cell", + "pin-project-lite", + "smallvec", + "thiserror 1.0.69", +] + +[[package]] +name = "gio-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", + "winapi", +] + +[[package]] +name = "glib" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5" +dependencies = [ + "bitflags 2.10.0", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "futures-util", + "gio-sys", + "glib-macros", + "glib-sys", + "gobject-sys", + "libc", + "memchr", + "once_cell", + "smallvec", + "thiserror 1.0.69", +] + +[[package]] +name = "glib-macros" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc" +dependencies = [ + "heck 0.4.1", + "proc-macro-crate 2.0.2", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.108", +] + +[[package]] +name = "glib-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898" +dependencies = [ + "libc", + "system-deps", +] + +[[package]] +name = "glob" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" + +[[package]] +name = "gobject-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gtk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd56fb197bfc42bd5d2751f4f017d44ff59fbb58140c6b49f9b3b2bdab08506a" +dependencies = [ + "atk", + "cairo-rs", + "field-offset", + "futures-channel", + "gdk", + "gdk-pixbuf", + "gio", + "glib", + "gtk-sys", + "gtk3-macros", + "libc", + "pango", + "pkg-config", +] + +[[package]] +name = "gtk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f29a1c21c59553eb7dd40e918be54dccd60c52b049b75119d5d96ce6b624414" +dependencies = [ + "atk-sys", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "system-deps", +] + +[[package]] +name = "gtk3-macros" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52ff3c5b21f14f0736fed6dcfc0bfb4225ebf5725f3c0209edeec181e4d73e9d" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.108", +] + +[[package]] +name = "h2" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0beca50380b1fc32983fc1cb4587bfa4bb9e78fc259aad4a0032d2080309222d" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http 0.2.12", + "indexmap 2.12.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash", +] + +[[package]] +name = "hashbrown" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "html5ever" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b7410cae13cbc75623c98ac4cbfd1f0bedddf3227afc24f370cf0f50a44a11c" +dependencies = [ + "log", + "mac", + "markup5ever", + "match_token", +] + +[[package]] +name = "http" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http 0.2.12", + "pin-project-lite", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http 1.3.1", +] + +[[package]] +name = "http-body-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +dependencies = [ + "bytes", + "futures-core", + "http 1.3.1", + "http-body 1.0.1", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "hyper" +version = "0.14.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http 0.2.12", + "http-body 0.4.6", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2 0.5.10", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" +dependencies = [ + "atomic-waker", + "bytes", + "futures-channel", + "futures-core", + "http 1.3.1", + "http-body 1.0.1", + "httparse", + "itoa", + "pin-project-lite", + "pin-utils", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper 0.14.32", + "native-tls", + "tokio", + "tokio-native-tls", +] + +[[package]] +name = "hyper-util" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "http 1.3.1", + "http-body 1.0.1", + "hyper 1.7.0", + "ipnet", + "libc", + "percent-encoding", + "pin-project-lite", + "socket2 0.6.1", + "tokio", + "tower-service", + "tracing", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "log", + "wasm-bindgen", + "windows-core 0.62.2", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "ico" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc50b891e4acf8fe0e71ef88ec43ad82ee07b3810ad09de10f1d01f072ed4b98" +dependencies = [ + "byteorder", + "png", +] + +[[package]] +name = "icu_collections" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" +dependencies = [ + "displaydoc", + "potential_utf", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locale_core" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_normalizer" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" + +[[package]] +name = "icu_properties" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locale_core", + "icu_properties_data", + "icu_provider", + "potential_utf", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" + +[[package]] +name = "icu_provider" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" +dependencies = [ + "displaydoc", + "icu_locale_core", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerotrie", + "zerovec", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f" +dependencies = [ + "equivalent", + "hashbrown 0.16.0", + "serde", + "serde_core", +] + +[[package]] +name = "infer" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a588916bfdfd92e71cacef98a63d9b1f0d74d6599980d11894290e7ddefffcf7" +dependencies = [ + "cfb", +] + +[[package]] +name = "ipnet" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" + +[[package]] +name = "iri-string" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "is-docker" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3" +dependencies = [ + "once_cell", +] + +[[package]] +name = "is-wsl" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5" +dependencies = [ + "is-docker", + "once_cell", +] + +[[package]] +name = "itoa" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" + +[[package]] +name = "javascriptcore-rs" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca5671e9ffce8ffba57afc24070e906da7fc4b1ba66f2cabebf61bf2ea257fcc" +dependencies = [ + "bitflags 1.3.2", + "glib", + "javascriptcore-rs-sys", +] + +[[package]] +name = "javascriptcore-rs-sys" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af1be78d14ffa4b75b66df31840478fef72b51f8c2465d4ca7c194da9f7a5124" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "jni" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +dependencies = [ + "cesu8", + "cfg-if", + "combine", + "jni-sys", + "log", + "thiserror 1.0.69", + "walkdir", + "windows-sys 0.45.0", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + +[[package]] +name = "js-sys" +version = "0.3.81" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec48937a97411dcb524a265206ccd4c90bb711fca92b2792c407f268825b9305" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "json-patch" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "863726d7afb6bc2590eeff7135d923545e5e964f004c2ccf8716c25e70a86f08" +dependencies = [ + "jsonptr", + "serde", + "serde_json", + "thiserror 1.0.69", +] + +[[package]] +name = "jsonptr" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dea2b27dd239b2556ed7a25ba842fe47fd602e7fc7433c2a8d6106d4d9edd70" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "keyboard-types" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a" +dependencies = [ + "bitflags 2.10.0", + "serde", + "unicode-segmentation", +] + +[[package]] +name = "kuchikiki" +version = "0.8.8-speedreader" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02cb977175687f33fa4afa0c95c112b987ea1443e5a51c8f8ff27dc618270cc2" +dependencies = [ + "cssparser", + "html5ever", + "indexmap 2.12.0", + "selectors", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "libappindicator" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03589b9607c868cc7ae54c0b2a22c8dc03dd41692d48f2d7df73615c6a95dc0a" +dependencies = [ + "glib", + "gtk", + "gtk-sys", + "libappindicator-sys", + "log", +] + +[[package]] +name = "libappindicator-sys" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf" +dependencies = [ + "gtk-sys", + "libloading", + "once_cell", +] + +[[package]] +name = "libc" +version = "0.2.177" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" + +[[package]] +name = "libloading" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +dependencies = [ + "cfg-if", + "winapi", +] + +[[package]] +name = "libredox" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" +dependencies = [ + "bitflags 2.10.0", + "libc", +] + +[[package]] +name = "linux-raw-sys" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" + +[[package]] +name = "litemap" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" + +[[package]] +name = "lock_api" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" +dependencies = [ + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" +dependencies = [ + "value-bag", +] + +[[package]] +name = "mac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" + +[[package]] +name = "malloc_buf" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" +dependencies = [ + "libc", +] + +[[package]] +name = "markup5ever" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7a7213d12e1864c0f002f52c2923d4556935a43dec5e71355c2760e0f6e7a18" +dependencies = [ + "log", + "phf 0.11.3", + "phf_codegen 0.11.3", + "string_cache", + "string_cache_codegen", + "tendril", +] + +[[package]] +name = "match_token" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88a9689d8d44bf9964484516275f5cd4c9b59457a6940c1d5d0ecbb94510a36b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.108", +] + +[[package]] +name = "matches" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" + +[[package]] +name = "memchr" +version = "2.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" + +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "miniz_oxide" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +dependencies = [ + "adler2", + "simd-adler32", +] + +[[package]] +name = "mio" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873" +dependencies = [ + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", + "windows-sys 0.61.2", +] + +[[package]] +name = "muda" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01c1738382f66ed56b3b9c8119e794a2e23148ac8ea214eda86622d4cb9d415a" +dependencies = [ + "crossbeam-channel", + "dpi", + "gtk", + "keyboard-types", + "objc2 0.6.3", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation 0.3.2", + "once_cell", + "png", + "serde", + "thiserror 2.0.17", + "windows-sys 0.60.2", +] + +[[package]] +name = "native-tls" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" +dependencies = [ + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "ndk" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" +dependencies = [ + "bitflags 2.10.0", + "jni-sys", + "log", + "ndk-sys", + "num_enum", + "raw-window-handle", + "thiserror 1.0.69", +] + +[[package]] +name = "ndk-context" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" + +[[package]] +name = "ndk-sys" +version = "0.6.0+11769913" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" +dependencies = [ + "jni-sys", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "nodrop" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_enum" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1207a7e20ad57b847bbddc6776b968420d38292bbfe2089accff5e19e82454c" +dependencies = [ + "num_enum_derive", + "rustversion", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" +dependencies = [ + "proc-macro-crate 3.4.0", + "proc-macro2", + "quote", + "syn 2.0.108", +] + +[[package]] +name = "num_threads" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" +dependencies = [ + "libc", +] + +[[package]] +name = "objc" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" +dependencies = [ + "malloc_buf", +] + +[[package]] +name = "objc-sys" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310" + +[[package]] +name = "objc2" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804" +dependencies = [ + "objc-sys", + "objc2-encode", +] + +[[package]] +name = "objc2" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c2599ce0ec54857b29ce62166b0ed9b4f6f1a70ccc9a71165b6154caca8c05" +dependencies = [ + "objc2-encode", + "objc2-exception-helper", +] + +[[package]] +name = "objc2-app-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c" +dependencies = [ + "bitflags 2.10.0", + "block2 0.6.2", + "libc", + "objc2 0.6.3", + "objc2-cloud-kit", + "objc2-core-data", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-core-image", + "objc2-core-text", + "objc2-core-video", + "objc2-foundation 0.3.2", + "objc2-quartz-core 0.3.2", +] + +[[package]] +name = "objc2-cloud-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73ad74d880bb43877038da939b7427bba67e9dd42004a18b809ba7d87cee241c" +dependencies = [ + "bitflags 2.10.0", + "objc2 0.6.3", + "objc2-foundation 0.3.2", +] + +[[package]] +name = "objc2-core-data" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b402a653efbb5e82ce4df10683b6b28027616a2715e90009947d50b8dd298fa" +dependencies = [ + "bitflags 2.10.0", + "objc2 0.6.3", + "objc2-foundation 0.3.2", +] + +[[package]] +name = "objc2-core-foundation" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" +dependencies = [ + "bitflags 2.10.0", + "dispatch2", + "objc2 0.6.3", +] + +[[package]] +name = "objc2-core-graphics" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807" +dependencies = [ + "bitflags 2.10.0", + "dispatch2", + "objc2 0.6.3", + "objc2-core-foundation", + "objc2-io-surface", +] + +[[package]] +name = "objc2-core-image" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d563b38d2b97209f8e861173de434bd0214cf020e3423a52624cd1d989f006" +dependencies = [ + "objc2 0.6.3", + "objc2-foundation 0.3.2", +] + +[[package]] +name = "objc2-core-text" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cde0dfb48d25d2b4862161a4d5fcc0e3c24367869ad306b0c9ec0073bfed92d" +dependencies = [ + "bitflags 2.10.0", + "objc2 0.6.3", + "objc2-core-foundation", + "objc2-core-graphics", +] + +[[package]] +name = "objc2-core-video" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d425caf1df73233f29fd8a5c3e5edbc30d2d4307870f802d18f00d83dc5141a6" +dependencies = [ + "bitflags 2.10.0", + "objc2 0.6.3", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-io-surface", +] + +[[package]] +name = "objc2-encode" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" + +[[package]] +name = "objc2-exception-helper" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7a1c5fbb72d7735b076bb47b578523aedc40f3c439bea6dfd595c089d79d98a" +dependencies = [ + "cc", +] + +[[package]] +name = "objc2-foundation" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" +dependencies = [ + "bitflags 2.10.0", + "block2 0.5.1", + "libc", + "objc2 0.5.2", +] + +[[package]] +name = "objc2-foundation" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" +dependencies = [ + "bitflags 2.10.0", + "block2 0.6.2", + "libc", + "objc2 0.6.3", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-io-surface" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d" +dependencies = [ + "bitflags 2.10.0", + "objc2 0.6.3", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-javascript-core" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a1e6550c4caed348956ce3370c9ffeca70bb1dbed4fa96112e7c6170e074586" +dependencies = [ + "objc2 0.6.3", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-metal" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" +dependencies = [ + "bitflags 2.10.0", + "block2 0.5.1", + "objc2 0.5.2", + "objc2-foundation 0.2.2", +] + +[[package]] +name = "objc2-quartz-core" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" +dependencies = [ + "bitflags 2.10.0", + "block2 0.5.1", + "objc2 0.5.2", + "objc2-foundation 0.2.2", + "objc2-metal", +] + +[[package]] +name = "objc2-quartz-core" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96c1358452b371bf9f104e21ec536d37a650eb10f7ee379fff67d2e08d537f1f" +dependencies = [ + "bitflags 2.10.0", + "objc2 0.6.3", + "objc2-foundation 0.3.2", +] + +[[package]] +name = "objc2-security" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "709fe137109bd1e8b5a99390f77a7d8b2961dafc1a1c5db8f2e60329ad6d895a" +dependencies = [ + "bitflags 2.10.0", + "objc2 0.6.3", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-ui-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d87d638e33c06f577498cbcc50491496a3ed4246998a7fbba7ccb98b1e7eab22" +dependencies = [ + "bitflags 2.10.0", + "objc2 0.6.3", + "objc2-core-foundation", + "objc2-foundation 0.3.2", +] + +[[package]] +name = "objc2-web-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2e5aaab980c433cf470df9d7af96a7b46a9d892d521a2cbbb2f8a4c16751e7f" +dependencies = [ + "bitflags 2.10.0", + "block2 0.6.2", + "objc2 0.6.3", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation 0.3.2", + "objc2-javascript-core", + "objc2-security", +] + +[[package]] +name = "once_cell" +version = "1.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "open" +version = "5.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2483562e62ea94312f3576a7aca397306df7990b8d89033e18766744377ef95" +dependencies = [ + "dunce", + "is-wsl", + "libc", + "pathdiff", +] + +[[package]] +name = "openssl" +version = "0.10.74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24ad14dd45412269e1a30f52ad8f0664f0f4f4a89ee8fe28c3b3527021ebb654" +dependencies = [ + "bitflags 2.10.0", + "cfg-if", + "foreign-types 0.3.2", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.108", +] + +[[package]] +name = "openssl-probe" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" + +[[package]] +name = "openssl-sys" +version = "0.9.110" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a9f0075ba3c21b09f8e8b2026584b1d18d49388648f2fbbf3c97ea8deced8e2" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "os_pipe" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d8fae84b431384b68627d0f9b3b1245fcf9f46f6c0e3dc902e9dce64edd1967" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "pango" +version = "0.18.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4" +dependencies = [ + "gio", + "glib", + "libc", + "once_cell", + "pango-sys", +] + +[[package]] +name = "pango-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "parking_lot" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-link 0.2.1", +] + +[[package]] +name = "pathdiff" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" + +[[package]] +name = "percent-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + +[[package]] +name = "phf" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" +dependencies = [ + "phf_shared 0.8.0", +] + +[[package]] +name = "phf" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" +dependencies = [ + "phf_macros 0.10.0", + "phf_shared 0.10.0", + "proc-macro-hack", +] + +[[package]] +name = "phf" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" +dependencies = [ + "phf_macros 0.11.3", + "phf_shared 0.11.3", +] + +[[package]] +name = "phf_codegen" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" +dependencies = [ + "phf_generator 0.8.0", + "phf_shared 0.8.0", +] + +[[package]] +name = "phf_codegen" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" +dependencies = [ + "phf_generator 0.11.3", + "phf_shared 0.11.3", +] + +[[package]] +name = "phf_generator" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" +dependencies = [ + "phf_shared 0.8.0", + "rand 0.7.3", +] + +[[package]] +name = "phf_generator" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" +dependencies = [ + "phf_shared 0.10.0", + "rand 0.8.5", +] + +[[package]] +name = "phf_generator" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" +dependencies = [ + "phf_shared 0.11.3", + "rand 0.8.5", +] + +[[package]] +name = "phf_macros" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", + "proc-macro-hack", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "phf_macros" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" +dependencies = [ + "phf_generator 0.11.3", + "phf_shared 0.11.3", + "proc-macro2", + "quote", + "syn 2.0.108", +] + +[[package]] +name = "phf_shared" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" +dependencies = [ + "siphasher 0.3.11", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher 0.3.11", +] + +[[package]] +name = "phf_shared" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" +dependencies = [ + "siphasher 1.0.1", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" + +[[package]] +name = "plist" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "740ebea15c5d1428f910cd1a5f52cebf8d25006245ed8ade92702f4943d91e07" +dependencies = [ + "base64 0.22.1", + "indexmap 2.12.0", + "quick-xml", + "serde", + "time", +] + +[[package]] +name = "png" +version = "0.17.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526" +dependencies = [ + "bitflags 1.3.2", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "potential_utf" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" +dependencies = [ + "zerovec", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-crate" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" +dependencies = [ + "toml_datetime 0.6.3", + "toml_edit 0.20.2", +] + +[[package]] +name = "proc-macro-crate" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" +dependencies = [ + "toml_edit 0.23.7", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro-hack" +version = "0.5.20+deprecated" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" + +[[package]] +name = "proc-macro2" +version = "1.0.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "quick-xml" +version = "0.38.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42a232e7487fc2ef313d96dde7948e7a3c05101870d8985e4fd8d26aedd27b89" +dependencies = [ + "memchr", +] + +[[package]] +name = "quote" +version = "1.0.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", + "rand_pcg", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.16", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_pcg" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "raw-window-handle" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" + +[[package]] +name = "redox_syscall" +version = "0.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" +dependencies = [ + "bitflags 2.10.0", +] + +[[package]] +name = "redox_users" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" +dependencies = [ + "getrandom 0.2.16", + "libredox", + "thiserror 2.0.17", +] + +[[package]] +name = "ref-cast" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.108", +] + +[[package]] +name = "regex" +version = "1.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" + +[[package]] +name = "rend" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c" +dependencies = [ + "bytecheck", +] + +[[package]] +name = "reqwest" +version = "0.11.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" +dependencies = [ + "base64 0.21.7", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http 0.2.12", + "http-body 0.4.6", + "hyper 0.14.32", + "hyper-tls", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls-pemfile", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 0.1.2", + "system-configuration", + "tokio", + "tokio-native-tls", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winreg 0.50.0", +] + +[[package]] +name = "reqwest" +version = "0.12.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d0946410b9f7b082a427e4ef5c8ff541a88b357bc6c637c40db3a68ac70a36f" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-core", + "futures-util", + "http 1.3.1", + "http-body 1.0.1", + "http-body-util", + "hyper 1.7.0", + "hyper-util", + "js-sys", + "log", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 1.0.2", + "tokio", + "tokio-util", + "tower", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", +] + +[[package]] +name = "rkyv" +version = "0.7.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9008cd6385b9e161d8229e1f6549dd23c3d022f132a2ea37ac3a10ac4935779b" +dependencies = [ + "bitvec", + "bytecheck", + "bytes", + "hashbrown 0.12.3", + "ptr_meta", + "rend", + "rkyv_derive", + "seahash", + "tinyvec", + "uuid", +] + +[[package]] +name = "rkyv_derive" +version = "0.7.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "503d1d27590a2b0a3a4ca4c94755aa2875657196ecbf401a42eff41d7de532c0" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "rust_decimal" +version = "1.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35affe401787a9bd846712274d97654355d21b2a2c092a3139aabe31e9022282" +dependencies = [ + "arrayvec", + "borsh", + "bytes", + "num-traits", + "rand 0.8.5", + "rkyv", + "serde", + "serde_json", +] + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" +dependencies = [ + "bitflags 2.10.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + +[[package]] +name = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + +[[package]] +name = "ryu" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schannel" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "schemars" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" +dependencies = [ + "dyn-clone", + "indexmap 1.9.3", + "schemars_derive", + "serde", + "serde_json", + "url", + "uuid", +] + +[[package]] +name = "schemars" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + +[[package]] +name = "schemars" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.108", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + +[[package]] +name = "security-framework" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" +dependencies = [ + "bitflags 2.10.0", + "core-foundation 0.9.4", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "selectors" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c37578180969d00692904465fb7f6b3d50b9a2b952b87c23d0e2e5cb5013416" +dependencies = [ + "bitflags 1.3.2", + "cssparser", + "derive_more", + "fxhash", + "log", + "phf 0.8.0", + "phf_codegen 0.8.0", + "precomputed-hash", + "servo_arc", + "smallvec", +] + +[[package]] +name = "semver" +version = "1.0.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" +dependencies = [ + "serde", + "serde_core", +] + +[[package]] +name = "serde" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde-untagged" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9faf48a4a2d2693be24c6289dbe26552776eb7737074e6722891fadbe6c5058" +dependencies = [ + "erased-serde", + "serde", + "serde_core", + "typeid", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.108", +] + +[[package]] +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.108", +] + +[[package]] +name = "serde_json" +version = "1.0.145" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", + "serde_core", +] + +[[package]] +name = "serde_repr" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.108", +] + +[[package]] +name = "serde_spanned" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_spanned" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e24345aa0fe688594e73770a5f6d1b216508b4f93484c0026d521acd30134392" +dependencies = [ + "serde_core", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_with" +version = "3.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa66c845eee442168b2c8134fec70ac50dc20e760769c8ba0ad1319ca1959b04" +dependencies = [ + "base64 0.22.1", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.12.0", + "schemars 0.9.0", + "schemars 1.0.4", + "serde_core", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "3.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b91a903660542fced4e99881aa481bdbaec1634568ee02e0b8bd57c64cb38955" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.108", +] + +[[package]] +name = "serialize-to-javascript" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04f3666a07a197cdb77cdf306c32be9b7f598d7060d50cfd4d5aa04bfd92f6c5" +dependencies = [ + "serde", + "serde_json", + "serialize-to-javascript-impl", +] + +[[package]] +name = "serialize-to-javascript-impl" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "772ee033c0916d670af7860b6e1ef7d658a4629a6d0b4c8c3e67f09b3765b75d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.108", +] + +[[package]] +name = "servo_arc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52aa42f8fdf0fed91e5ce7f23d8138441002fa31dca008acf47e6fd4721f741" +dependencies = [ + "nodrop", + "stable_deref_trait", +] + +[[package]] +name = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "shared_child" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e362d9935bc50f019969e2f9ecd66786612daae13e8f277be7bfb66e8bed3f7" +dependencies = [ + "libc", + "sigchld", + "windows-sys 0.60.2", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "sigchld" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47106eded3c154e70176fc83df9737335c94ce22f821c32d17ed1db1f83badb1" +dependencies = [ + "libc", + "os_pipe", + "signal-hook", +] + +[[package]] +name = "signal-hook" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" +dependencies = [ + "libc", +] + +[[package]] +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "siphasher" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" + +[[package]] +name = "slab" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" + +[[package]] +name = "smallvec" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" + +[[package]] +name = "socket2" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "socket2" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" +dependencies = [ + "libc", + "windows-sys 0.60.2", +] + +[[package]] +name = "softbuffer" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18051cdd562e792cad055119e0cdb2cfc137e44e3987532e0f9659a77931bb08" +dependencies = [ + "bytemuck", + "cfg_aliases", + "core-graphics 0.24.0", + "foreign-types 0.5.0", + "js-sys", + "log", + "objc2 0.5.2", + "objc2-foundation 0.2.2", + "objc2-quartz-core 0.2.2", + "raw-window-handle", + "redox_syscall", + "wasm-bindgen", + "web-sys", + "windows-sys 0.59.0", +] + +[[package]] +name = "soup3" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "471f924a40f31251afc77450e781cb26d55c0b650842efafc9c6cbd2f7cc4f9f" +dependencies = [ + "futures-channel", + "gio", + "glib", + "libc", + "soup3-sys", +] + +[[package]] +name = "soup3-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ebe8950a680a12f24f15ebe1bf70db7af98ad242d9db43596ad3108aab86c27" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" + +[[package]] +name = "stirling-pdf" +version = "0.1.0" +dependencies = [ + "cocoa", + "log", + "objc", + "once_cell", + "reqwest 0.11.27", + "serde", + "serde_json", + "tauri", + "tauri-build", + "tauri-plugin-fs", + "tauri-plugin-log", + "tauri-plugin-shell", + "tokio", +] + +[[package]] +name = "string_cache" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f" +dependencies = [ + "new_debug_unreachable", + "parking_lot", + "phf_shared 0.11.3", + "precomputed-hash", + "serde", +] + +[[package]] +name = "string_cache_codegen" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c711928715f1fe0fe509c53b43e993a9a557babc2d0a3567d0a3006f1ac931a0" +dependencies = [ + "phf_generator 0.11.3", + "phf_shared 0.11.3", + "proc-macro2", + "quote", +] + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "swift-rs" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4057c98e2e852d51fdcfca832aac7b571f6b351ad159f9eda5db1655f8d0c4d7" +dependencies = [ + "base64 0.21.7", + "serde", + "serde_json", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.108" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da58917d35242480a05c2897064da0a80589a2a0476c9a3f2fdc83b53502e917" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "sync_wrapper" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", +] + +[[package]] +name = "synstructure" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.108", +] + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation 0.9.4", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "system-deps" +version = "6.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" +dependencies = [ + "cfg-expr", + "heck 0.5.0", + "pkg-config", + "toml 0.8.2", + "version-compare", +] + +[[package]] +name = "tao" +version = "0.34.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3a753bdc39c07b192151523a3f77cd0394aa75413802c883a0f6f6a0e5ee2e7" +dependencies = [ + "bitflags 2.10.0", + "block2 0.6.2", + "core-foundation 0.10.1", + "core-graphics 0.24.0", + "crossbeam-channel", + "dispatch", + "dlopen2", + "dpi", + "gdkwayland-sys", + "gdkx11-sys", + "gtk", + "jni", + "lazy_static", + "libc", + "log", + "ndk", + "ndk-context", + "ndk-sys", + "objc2 0.6.3", + "objc2-app-kit", + "objc2-foundation 0.3.2", + "once_cell", + "parking_lot", + "raw-window-handle", + "scopeguard", + "tao-macros", + "unicode-segmentation", + "url", + "windows", + "windows-core 0.61.2", + "windows-version", + "x11-dl", +] + +[[package]] +name = "tao-macros" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4e16beb8b2ac17db28eab8bca40e62dbfbb34c0fcdc6d9826b11b7b5d047dfd" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.108", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "target-lexicon" +version = "0.12.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" + +[[package]] +name = "tauri" +version = "2.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9871670c6711f50fddd4e20350be6b9dd6e6c2b5d77d8ee8900eb0d58cd837a" +dependencies = [ + "anyhow", + "bytes", + "cookie", + "dirs", + "dunce", + "embed_plist", + "getrandom 0.3.4", + "glob", + "gtk", + "heck 0.5.0", + "http 1.3.1", + "jni", + "libc", + "log", + "mime", + "muda", + "objc2 0.6.3", + "objc2-app-kit", + "objc2-foundation 0.3.2", + "objc2-ui-kit", + "objc2-web-kit", + "percent-encoding", + "plist", + "raw-window-handle", + "reqwest 0.12.24", + "serde", + "serde_json", + "serde_repr", + "serialize-to-javascript", + "swift-rs", + "tauri-build", + "tauri-macros", + "tauri-runtime", + "tauri-runtime-wry", + "tauri-utils", + "thiserror 2.0.17", + "tokio", + "tray-icon", + "url", + "webkit2gtk", + "webview2-com", + "window-vibrancy", + "windows", +] + +[[package]] +name = "tauri-build" +version = "2.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a924b6c50fe83193f0f8b14072afa7c25b7a72752a2a73d9549b463f5fe91a38" +dependencies = [ + "anyhow", + "cargo_toml", + "dirs", + "glob", + "heck 0.5.0", + "json-patch", + "schemars 0.8.22", + "semver", + "serde", + "serde_json", + "tauri-utils", + "tauri-winres", + "toml 0.9.8", + "walkdir", +] + +[[package]] +name = "tauri-codegen" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c1fe64c74cc40f90848281a90058a6db931eb400b60205840e09801ee30f190" +dependencies = [ + "base64 0.22.1", + "brotli", + "ico", + "json-patch", + "plist", + "png", + "proc-macro2", + "quote", + "semver", + "serde", + "serde_json", + "sha2", + "syn 2.0.108", + "tauri-utils", + "thiserror 2.0.17", + "time", + "url", + "uuid", + "walkdir", +] + +[[package]] +name = "tauri-macros" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "260c5d2eb036b76206b9fca20b7be3614cfd21046c5396f7959e0e64a4b07f2f" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.108", + "tauri-codegen", + "tauri-utils", +] + +[[package]] +name = "tauri-plugin" +version = "2.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "076c78a474a7247c90cad0b6e87e593c4c620ed4efdb79cbe0214f0021f6c39d" +dependencies = [ + "anyhow", + "glob", + "plist", + "schemars 0.8.22", + "serde", + "serde_json", + "tauri-utils", + "toml 0.9.8", + "walkdir", +] + +[[package]] +name = "tauri-plugin-fs" +version = "2.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47df422695255ecbe7bac7012440eddaeefd026656171eac9559f5243d3230d9" +dependencies = [ + "anyhow", + "dunce", + "glob", + "percent-encoding", + "schemars 0.8.22", + "serde", + "serde_json", + "serde_repr", + "tauri", + "tauri-plugin", + "tauri-utils", + "thiserror 2.0.17", + "toml 0.9.8", + "url", +] + +[[package]] +name = "tauri-plugin-log" +version = "2.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5709c792b8630290b5d9811a1f8fe983dd925fc87c7fc7f4923616458cd00b6" +dependencies = [ + "android_logger", + "byte-unit", + "fern", + "log", + "objc2 0.6.3", + "objc2-foundation 0.3.2", + "serde", + "serde_json", + "serde_repr", + "swift-rs", + "tauri", + "tauri-plugin", + "thiserror 2.0.17", + "time", +] + +[[package]] +name = "tauri-plugin-shell" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c374b6db45f2a8a304f0273a15080d98c70cde86178855fc24653ba657a1144c" +dependencies = [ + "encoding_rs", + "log", + "open", + "os_pipe", + "regex", + "schemars 0.8.22", + "serde", + "serde_json", + "shared_child", + "tauri", + "tauri-plugin", + "thiserror 2.0.17", + "tokio", +] + +[[package]] +name = "tauri-runtime" +version = "2.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9368f09358496f2229313fccb37682ad116b7f46fa76981efe116994a0628926" +dependencies = [ + "cookie", + "dpi", + "gtk", + "http 1.3.1", + "jni", + "objc2 0.6.3", + "objc2-ui-kit", + "objc2-web-kit", + "raw-window-handle", + "serde", + "serde_json", + "tauri-utils", + "thiserror 2.0.17", + "url", + "webkit2gtk", + "webview2-com", + "windows", +] + +[[package]] +name = "tauri-runtime-wry" +version = "2.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "929f5df216f5c02a9e894554401bcdab6eec3e39ec6a4a7731c7067fc8688a93" +dependencies = [ + "gtk", + "http 1.3.1", + "jni", + "log", + "objc2 0.6.3", + "objc2-app-kit", + "objc2-foundation 0.3.2", + "once_cell", + "percent-encoding", + "raw-window-handle", + "softbuffer", + "tao", + "tauri-runtime", + "tauri-utils", + "url", + "webkit2gtk", + "webview2-com", + "windows", + "wry", +] + +[[package]] +name = "tauri-utils" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6b8bbe426abdbf52d050e52ed693130dbd68375b9ad82a3fb17efb4c8d85673" +dependencies = [ + "anyhow", + "brotli", + "cargo_metadata", + "ctor", + "dunce", + "glob", + "html5ever", + "http 1.3.1", + "infer", + "json-patch", + "kuchikiki", + "log", + "memchr", + "phf 0.11.3", + "proc-macro2", + "quote", + "regex", + "schemars 0.8.22", + "semver", + "serde", + "serde-untagged", + "serde_json", + "serde_with", + "swift-rs", + "thiserror 2.0.17", + "toml 0.9.8", + "url", + "urlpattern", + "uuid", + "walkdir", +] + +[[package]] +name = "tauri-winres" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd21509dd1fa9bd355dc29894a6ff10635880732396aa38c0066c1e6c1ab8074" +dependencies = [ + "embed-resource", + "toml 0.9.8", +] + +[[package]] +name = "tempfile" +version = "3.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" +dependencies = [ + "fastrand", + "getrandom 0.3.4", + "once_cell", + "rustix", + "windows-sys 0.61.2", +] + +[[package]] +name = "tendril" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" +dependencies = [ + "futf", + "mac", + "utf-8", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" +dependencies = [ + "thiserror-impl 2.0.17", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.108", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.108", +] + +[[package]] +name = "time" +version = "0.3.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" +dependencies = [ + "deranged", + "itoa", + "libc", + "num-conv", + "num_threads", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" + +[[package]] +name = "time-macros" +version = "0.2.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tinystr" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinyvec" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" +dependencies = [ + "bytes", + "libc", + "mio", + "pin-project-lite", + "socket2 0.6.1", + "windows-sys 0.61.2", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" +dependencies = [ + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.3", + "toml_edit 0.20.2", +] + +[[package]] +name = "toml" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0dc8b1fb61449e27716ec0e1bdf0f6b8f3e8f6b05391e8497b8b6d7804ea6d8" +dependencies = [ + "indexmap 2.12.0", + "serde_core", + "serde_spanned 1.0.3", + "toml_datetime 0.7.3", + "toml_parser", + "toml_writer", + "winnow 0.7.13", +] + +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_datetime" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.12.0", + "toml_datetime 0.6.3", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +dependencies = [ + "indexmap 2.12.0", + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.3", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.23.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6485ef6d0d9b5d0ec17244ff7eb05310113c3f316f2d14200d4de56b3cb98f8d" +dependencies = [ + "indexmap 2.12.0", + "toml_datetime 0.7.3", + "toml_parser", + "winnow 0.7.13", +] + +[[package]] +name = "toml_parser" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" +dependencies = [ + "winnow 0.7.13", +] + +[[package]] +name = "toml_writer" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df8b2b54733674ad286d16267dcfc7a71ed5c776e4ac7aa3c3e2561f7c637bf2" + +[[package]] +name = "tower" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper 1.0.2", + "tokio", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-http" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" +dependencies = [ + "bitflags 2.10.0", + "bytes", + "futures-util", + "http 1.3.1", + "http-body 1.0.1", + "iri-string", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +dependencies = [ + "pin-project-lite", + "tracing-core", +] + +[[package]] +name = "tracing-core" +version = "0.1.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" +dependencies = [ + "once_cell", +] + +[[package]] +name = "tray-icon" +version = "0.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d5572781bee8e3f994d7467084e1b1fd7a93ce66bd480f8156ba89dee55a2b" +dependencies = [ + "crossbeam-channel", + "dirs", + "libappindicator", + "muda", + "objc2 0.6.3", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-foundation 0.3.2", + "once_cell", + "png", + "serde", + "thiserror 2.0.17", + "windows-sys 0.60.2", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "typeid" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" + +[[package]] +name = "typenum" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" + +[[package]] +name = "unic-char-property" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" +dependencies = [ + "unic-char-range", +] + +[[package]] +name = "unic-char-range" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" + +[[package]] +name = "unic-common" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" + +[[package]] +name = "unic-ucd-ident" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e230a37c0381caa9219d67cf063aa3a375ffed5bf541a452db16e744bdab6987" +dependencies = [ + "unic-char-property", + "unic-char-range", + "unic-ucd-version", +] + +[[package]] +name = "unic-ucd-version" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" +dependencies = [ + "unic-common", +] + +[[package]] +name = "unicode-ident" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "462eeb75aeb73aea900253ce739c8e18a67423fadf006037cd3ff27e82748a06" + +[[package]] +name = "unicode-segmentation" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" + +[[package]] +name = "url" +version = "2.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", +] + +[[package]] +name = "urlpattern" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70acd30e3aa1450bc2eece896ce2ad0d178e9c079493819301573dae3c37ba6d" +dependencies = [ + "regex", + "serde", + "unic-ucd-ident", + "url", +] + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf8-width" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "uuid" +version = "1.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" +dependencies = [ + "getrandom 0.3.4", + "js-sys", + "serde", + "wasm-bindgen", +] + +[[package]] +name = "value-bag" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "943ce29a8a743eb10d6082545d861b24f9d1b160b7d741e0f2cdf726bec909c5" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version-compare" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "vswhom" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b" +dependencies = [ + "libc", + "vswhom-sys", +] + +[[package]] +name = "vswhom-sys" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb067e4cbd1ff067d1df46c9194b5de0e98efd2810bbc95c5d5e5f25a3231150" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "wasip2" +version = "1.0.1+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1da10c01ae9f1ae40cbfac0bac3b1e724b320abfcf52229f80b547c0d250e2d" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "671c9a5a66f49d8a47345ab942e2cb93c7d1d0339065d4f8139c486121b43b19" +dependencies = [ + "bumpalo", + "log", + "proc-macro2", + "quote", + "syn 2.0.108", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.54" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e038d41e478cc73bae0ff9b36c60cff1c98b8f38f8d7e8061e79ee63608ac5c" +dependencies = [ + "cfg-if", + "js-sys", + "once_cell", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ca60477e4c59f5f2986c50191cd972e3a50d8a95603bc9434501cf156a9a119" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f07d2f20d4da7b26400c9f4a0511e6e0345b040694e8a75bd41d578fa4421d7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.108", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bad67dc8b2a1a6e5448428adec4c3e84c43e561d8c9ee8a9e5aabeb193ec41d1" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "wasm-streams" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "web-sys" +version = "0.3.81" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9367c417a924a74cae129e6a2ae3b47fabb1f8995595ab474029da749a8be120" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webkit2gtk" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76b1bc1e54c581da1e9f179d0b38512ba358fb1af2d634a1affe42e37172361a" +dependencies = [ + "bitflags 1.3.2", + "cairo-rs", + "gdk", + "gdk-sys", + "gio", + "gio-sys", + "glib", + "glib-sys", + "gobject-sys", + "gtk", + "gtk-sys", + "javascriptcore-rs", + "libc", + "once_cell", + "soup3", + "webkit2gtk-sys", +] + +[[package]] +name = "webkit2gtk-sys" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62daa38afc514d1f8f12b8693d30d5993ff77ced33ce30cd04deebc267a6d57c" +dependencies = [ + "bitflags 1.3.2", + "cairo-sys-rs", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "gtk-sys", + "javascriptcore-rs-sys", + "libc", + "pkg-config", + "soup3-sys", + "system-deps", +] + +[[package]] +name = "webview2-com" +version = "0.38.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4ba622a989277ef3886dd5afb3e280e3dd6d974b766118950a08f8f678ad6a4" +dependencies = [ + "webview2-com-macros", + "webview2-com-sys", + "windows", + "windows-core 0.61.2", + "windows-implement", + "windows-interface", +] + +[[package]] +name = "webview2-com-macros" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d228f15bba3b9d56dde8bddbee66fa24545bd17b48d5128ccf4a8742b18e431" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.108", +] + +[[package]] +name = "webview2-com-sys" +version = "0.38.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36695906a1b53a3bf5c4289621efedac12b73eeb0b89e7e1a89b517302d5d75c" +dependencies = [ + "thiserror 2.0.17", + "windows", + "windows-core 0.61.2", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "window-vibrancy" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9bec5a31f3f9362f2258fd0e9c9dd61a9ca432e7306cc78c444258f0dce9a9c" +dependencies = [ + "objc2 0.6.3", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation 0.3.2", + "raw-window-handle", + "windows-sys 0.59.0", + "windows-version", +] + +[[package]] +name = "windows" +version = "0.61.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" +dependencies = [ + "windows-collections", + "windows-core 0.61.2", + "windows-future", + "windows-link 0.1.3", + "windows-numerics", +] + +[[package]] +name = "windows-collections" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" +dependencies = [ + "windows-core 0.61.2", +] + +[[package]] +name = "windows-core" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link 0.1.3", + "windows-result 0.3.4", + "windows-strings 0.4.2", +] + +[[package]] +name = "windows-core" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link 0.2.1", + "windows-result 0.4.1", + "windows-strings 0.5.1", +] + +[[package]] +name = "windows-future" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" +dependencies = [ + "windows-core 0.61.2", + "windows-link 0.1.3", + "windows-threading", +] + +[[package]] +name = "windows-implement" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.108", +] + +[[package]] +name = "windows-interface" +version = "0.59.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.108", +] + +[[package]] +name = "windows-link" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-numerics" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" +dependencies = [ + "windows-core 0.61.2", + "windows-link 0.1.3", +] + +[[package]] +name = "windows-result" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-result" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows-strings" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-strings" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.5", +] + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm 0.52.6", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.53.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" +dependencies = [ + "windows-link 0.2.1", + "windows_aarch64_gnullvm 0.53.1", + "windows_aarch64_msvc 0.53.1", + "windows_i686_gnu 0.53.1", + "windows_i686_gnullvm 0.53.1", + "windows_i686_msvc 0.53.1", + "windows_x86_64_gnu 0.53.1", + "windows_x86_64_gnullvm 0.53.1", + "windows_x86_64_msvc 0.53.1", +] + +[[package]] +name = "windows-threading" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-version" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4060a1da109b9d0326b7262c8e12c84df67cc0dbc9e33cf49e01ccc2eb63631" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_i686_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.7.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "winreg" +version = "0.55.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb5a765337c50e9ec252c2069be9bf91c7df47afb103b642ba3a53bf8101be97" +dependencies = [ + "cfg-if", + "windows-sys 0.59.0", +] + +[[package]] +name = "wit-bindgen" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" + +[[package]] +name = "writeable" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" + +[[package]] +name = "wry" +version = "0.53.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "728b7d4c8ec8d81cab295e0b5b8a4c263c0d41a785fb8f8c4df284e5411140a2" +dependencies = [ + "base64 0.22.1", + "block2 0.6.2", + "cookie", + "crossbeam-channel", + "dirs", + "dpi", + "dunce", + "gdkx11", + "gtk", + "html5ever", + "http 1.3.1", + "javascriptcore-rs", + "jni", + "kuchikiki", + "libc", + "ndk", + "objc2 0.6.3", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation 0.3.2", + "objc2-ui-kit", + "objc2-web-kit", + "once_cell", + "percent-encoding", + "raw-window-handle", + "sha2", + "soup3", + "tao-macros", + "thiserror 2.0.17", + "url", + "webkit2gtk", + "webkit2gtk-sys", + "webview2-com", + "windows", + "windows-core 0.61.2", + "windows-version", + "x11-dl", +] + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "x11" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "x11-dl" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" +dependencies = [ + "libc", + "once_cell", + "pkg-config", +] + +[[package]] +name = "yoke" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.108", + "synstructure", +] + +[[package]] +name = "zerocopy" +version = "0.8.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.108", +] + +[[package]] +name = "zerofrom" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.108", + "synstructure", +] + +[[package]] +name = "zerotrie" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + +[[package]] +name = "zerovec" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.108", +] diff --git a/frontend/src-tauri/Cargo.toml b/frontend/src-tauri/Cargo.toml new file mode 100644 index 0000000000..caddf867d8 --- /dev/null +++ b/frontend/src-tauri/Cargo.toml @@ -0,0 +1,35 @@ +[package] +name = "stirling-pdf" +version = "0.1.0" +description = "Stirling-PDF Desktop Application" +authors = ["Stirling-PDF Contributors"] +license = "" +repository = "" +edition = "2021" +rust-version = "1.77.2" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[lib] +name = "app_lib" +crate-type = ["staticlib", "cdylib", "rlib"] + +[build-dependencies] +tauri-build = { version = "2.2.0", features = [] } + +[dependencies] +serde_json = "1.0" +serde = { version = "1.0", features = ["derive"] } +log = "0.4" +tauri = { version = "2.9.0", features = [ "devtools"] } +tauri-plugin-log = "2.0.0-rc" +tauri-plugin-shell = "2.1.0" +tauri-plugin-fs = "2.4.4" +tokio = { version = "1.0", features = ["time"] } +reqwest = { version = "0.11", features = ["json"] } + +# macOS-specific dependencies for native file opening +[target.'cfg(target_os = "macos")'.dependencies] +objc = "0.2" +cocoa = "0.24" +once_cell = "1.19" diff --git a/frontend/src-tauri/build.rs b/frontend/src-tauri/build.rs new file mode 100644 index 0000000000..d860e1e6a7 --- /dev/null +++ b/frontend/src-tauri/build.rs @@ -0,0 +1,3 @@ +fn main() { + tauri_build::build() +} diff --git a/frontend/src-tauri/capabilities/default.json b/frontend/src-tauri/capabilities/default.json new file mode 100644 index 0000000000..385973667e --- /dev/null +++ b/frontend/src-tauri/capabilities/default.json @@ -0,0 +1,15 @@ +{ + "$schema": "../gen/schemas/desktop-schema.json", + "identifier": "default", + "description": "enables the default permissions", + "windows": [ + "main" + ], + "permissions": [ + "core:default", + { + "identifier": "fs:allow-read-file", + "allow": [{ "path": "**" }] + } + ] +} diff --git a/frontend/src-tauri/icons/128x128.png b/frontend/src-tauri/icons/128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..d233685dd2a5553fe5660c749c5d1ac84c487158 GIT binary patch literal 9419 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 qaOg?Ph3~)t!1C161w&K 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

Yknw zkB`|@`1e+*blCnabw@X;%1-OL!tW`$iP11zQR{J_y2~0L|IH<4Phty}3BOHn`8DYV zGpAzHyQ3Z@`pXto8y)?f>2H1s{UD_1XUHa(Tt< zxN2p;lc?N>dDFJ-?Q}_cd+KQS^x!3O!NvNCOZJ)C2lY2x7kSXG=hyaH{C$$GfaeU= zUE(jCB#I9|d{sH|gbK^A3YPy*Cf(tF-ph7s?}P`})qOH#i_hnuJ=729@J zZ1J%we{*B!(ybeR9#xmCN_e`@wmRJItA^XF;_O#*)ucpM%J0jL_00E=ioes{aYte5 zE13xbPD^)*f4Nn5`i#kyqSuV}f(Q98o}6rb?BBP07fwVP8(4Hr{1v;~FzEiaM;Cwp z+p#B8-|dzBj{j#Xs_*!fiLVSd{d%}cS6lMOa1e5k$JQDj8}7- z4xT)j$iU_2ck#n_!)dmb2Blu^zn018`N|g@c+G#m@OO9a#~+W}|Nm&e{^(^TCZ1e|}y)uj>2U@3*$+cB>bCUlKgAN_B5!zt^7< z$2;#>r-;o7nOLP-8<+2;^*V|3b>q7XDZyr@J(K>e(^U1E!ebt|c*j)8X=sR}(LViW aod0@9g2jOg-xwGe7(8A5T-G@yGywq7dmJ19 literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/16x16.png b/frontend/src-tauri/icons/16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..d88e6615d00b39ecfeb987c2b345ce40a80f4821 GIT binary patch literal 829 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4rT@h1`S>QUNSs54@ z7>k44ofy`glX=O&z!)Fk6XNQVS$IH6dB2j<0VU-l>gxLyRSqaB?pIOy&%kg{S^59} z|NFJI=c}k4P*R?$ta|Ro-EG@$Pc}0@prms0^rZva_Z>QP;-Hf9hPb3dhfW<(QktWr zbVyNgfs*Qc6}9<_%JWrJ<|!%dQ&c>lq%y(Ck14=5l-hVl$sCvlQX5D7vG%T$ z=dPTaKJ#co()l&(PwY8#tasx1Tlddiy>;f`(bJc%AD_4A^uncw%q$L?nx0y?`0T26 zM}vYd-hFuf(zVldjfd?Wj`;W;2@Ah?@6pBE_fJooc~D#X+{VopZr?wZlY8>~l^d_# zoayO1XlQiA$>sdbdsnYqKi%DX`Qg)RPhTE3w>X)dn`n6N7Xt%>MM;ofFvHi1tGqF` z4vg`PJRN_!OxXWiNWVX8y35%%XT8YS)T~7HxBrY~pS-zS{{Hse51ZdL8rZ!}XL@~0 zDE(|10|NtRfk$L90|NtyUB>8Ft;WH?z;M9R#W6(Ua&kfgQ(l=`n8a-7iNQV{*AF#K zZ0A2SJ!De@gSNM~rb4{biIVcd4cl2cPcX3F(ABZ|yLau}Hx5jj1R5_)V9*bDpU}YM zqF|wM=+JdZ6$N%d4(^^_9|mbHenF1@E>AB%7A}r1XO=~}k1lfs>#UjL%A&wjSGe+~ zE34S6EFm5NMtSMkYyKp~^703+XmHJQ^X!}Ew`{9{M+5JpyxO;4Y|QH>FmM}p&G>#1eZ5sHgKi%N5z)O$emAGKZCnwXX3=9kmp00i_>zopr059lpt^fc4 literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/192x192.png b/frontend/src-tauri/icons/192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..4219bb8403a251c895954ff2a93a032849cd8746 GIT binary patch literal 4161 zcmeAS@N?(olHy`uVBq!ia0y~yU^oE69Lx+145>_WOc@v$SkfJR9T^xl_H+M9WMyDr zU@Q)DcVbv~PUa;80|RG)M`SSr18XM;Gv;Q@{l&n*%n;xc;_8!GctA<{fRgg@GdB(> zDesk+KcK99Ra^UjlJW+5d60;b5=6m4C8dLkAeGw{RSq9MbwEjZva;$yMdd?>P98dR z>SS;KvFUTJ-o3v|S^1z62yIseDW0ILGF4gSfRggTc-1AQ*7+I zl|fbh10KpQfv*^{J>_efr|Y%Qx3wyuNh*$;CSlr`y`^+qU;u zVDO!fpHJl$T)6e%?A2SxPhB{mq}-vRdg#!}i+3M_6hC-;;_T%McOHOjJbm%P?fW-g zy*+c~=BbOXYZ!U%t6; z`@!|+udY0PcKpnxn{VFTeEs(3oA<|0T{v^~*2OyyZ@v3)`C(fO}dH2$TCuc6- zJa+QJiF22)K6!ED)tl3oZk)Su=kmiRR~|h*di?A`Ev*A8s@I;rJbV52K{buTM^2wO zd+GN3Pj^0kKA@~}P~YINi`(T#PcPnmbnfQeLnda|p1nHk;CRG8@K{39@tnLvme$A8 zGENqko;iBzh?mcqH5*P(nsPKE>cWm)hi&Xm%w2e_zUk!tBPW-xJaqWf<@=A$EnIT4 zviekK&zY0w&R)NB_3`twv*%s8aQS%u>mWw+5R!la`5J!K z8RwtA=i!P^Gg|Yd;OO($udm-b|LfnoUt9M4+jYxi#{2W43lpZ^`;|58*q7`zKj&>O zx9Zs`67tuscETT*t9Sn_%v~y9Skl{Y<;<6t7axbV`~Lg-=|$Z4gWIm2{;~Uyve+>u z1_thzo-U3d6}R5bO|KC-F4^wy)WD_Spf-_Z*-aq5u-)%73G-jpwP^f1D3Q*uQ2i&M-f7l^#<-skEPo{Y zcp(3^)vm%%nB{>;-4TuXoz5I4O$AjSTA11rKR$?et^2^!$X}hbAt{DqAzQqD?FatI zhB*^`xfM+swGAphwy1i~i(d2jz>(P#R~`>#cHBH)R^HXPbX(kIn+rWY%#DJ=^J<=S zYUl;4v%E0yVdML%z9s!f@Z-e{XSgnWIe2=mgvNuv8U~w9sy-x7RAZCka;E9}h)G{#O@uuEvgslnQfpQI&k$%j;F_?e>7KBM zzz+@`xB03(ss%znEI)lI;%l7B@XEmCv!YGCE-RCo&&Q^!$|L*;|;55ZFcPo6(za%5>^vUe7cXj^=MUyxa&Sw&YfSsA?kDPv3BJJ z6=G9jV*;)QU9NrT&vW&zZ0OFi$!tuU1zD!lbj|GgY_)Ff)5BRMA~$R_1RDNmCTQlZ zkJCQ8@>I;^oENOAnrba%6}E@PCv^3L4<#Rj49eC-eij##G+O<}f>R>< z+78CcD+3fiEIG#XY}Vgwg&nV-JXTJ~ys7Wd*T*a0xU2lAN!JH~6;{rSlWttOFflym^to-%MZ(M& zNmZE1q-33$LuMsm5kYjqQevmD+ zf&YzIUHa~})&pC=`uSb5_#Do3{6~{ZUix9D1KZ?0norp1E^oZ-ao2)lN+atkm*;C; zr8sRCO?0^G&J)AKE4u&A@Gx;=Nyrm$y2`N@UqOi@ZoFK zovcaxl^(B6rX;F5Y*|~zyl8Sj))7yI-HBUG80Hp9yD_=k-1p+eV!trwg{EC=Ua>4P ziB(_MEvDeS{A$-khCq4Uqk#+jSI16uXjsNH?b7M#`tGNjFKPyD4*DOR%gV7x>z6Ix zr;@Cx+&aJJK9inzYMr{O>Rxu25Ox2R2NtEzyIyxXvd(i7!-{jvvyB>E&#(E@#W(w( zPNjL0Y|PF{EDS2at2`Rc>@QlPcU!Nw^m_8$370xo2Pk~VH~MeR_F~IN)7`QQ6cz?| z={Y=&{~6ls$HbC&PPc#R*{QG7LKxluO+Eiw-9eXON}T;ehc+j@MF+(7gMJ2PMKm&O zHHfdy=RVBIIXB9LF}-ezRG5l`Xi56zW?h9JR%bn!*8R~iT@%uf)xK#N`}1>iZz~<` ztYKjcuUjG&rs%NM`QBMumFE#HY&$=(?)x##*glB&aM|iB*PYc^Qf;eQK9t-_<=*gf zVwQwb!p+Hbte@r`4Ega?uJG0qu7Xd>R}I#1*Up@GkL9(;wR<{U-Xczo(MGKQKAM_= zjA7Yz>GI|U>7F^ZFHItK{N~zKGTr%;Vag+%ac@s$alfQhXs#c-L*Jlvh=t|n#ViT60^`YxxPKknTwu)a zwtz)X;Y@$nVS~m`cSUCI-H`v{o5`$WZu>ZEM1-EXuSuM7VD4R$rxUifJ~I*M?Y(fm zvHoxH1o@3^iA>wiS@U`=X;&&vR_k?O{O0*)9$0wmN0sNAzf`IxUVS<9q&lyWIMWl5 zF%H2t&g(-|x4&nbI5SdFli^f<#9@QRpfH7fk$-BJzht}V#?Y*{QuM}m$De`O5?T{{ zKFw_Y@k6(C(c%@}pKO|)9g5_>#s~bHs-LMHF#pVAmOH&Uu^%1Ic~5QlXc$m;MXD`t zzx|6QvmLSQ61_d<2Y)`^+;akCl3IYcbK!);y-W|g%E~NnyPP}sYzd34eHQOw7Ovzw zFLj@6Yg)SCb;2f&ohN=y%$87_AkO?KE_nIp;Dd43s{=SD@4wkHM}B8pA``1&lF9u& zm#-H`{|KMwsaRF_M5>MRN#30u9~r!PxXvbR=HFZa7MqeQq7?7`rnc>8;m1EGOnHP) zSo&@Xl;NCP#9dYQMXD|DTg3AxCe1!`cb9GaGyif%@L>bS*H#KfC7+IbieK>a&e8gi zs|H_G?h8&THDIvHP5NoCw(~%vzEMy%8bKxll^$b2bXCt6&?OP-?VJEq)I#Ej_5mLH!JeF7O&r6b@V}=QII@iyYt(>Ja!3l zOShVB{L^%L2ZPf5me*h$aJT_?A4W^yR0iTt{u9i=kROy_D@Id%gj6^Bff5fxL~8}v`VLj zyw0Xy`=r1B_nBO{d(YZ{qTky!&lEmouP)|^Z!wH~V91yr8WJKRemnQVSAOp!W#5kV z{EZQ=o4khi`-X-)y;g#6N_jhNgdHbqtW4zRh)|lbn@K^*d!xt(7mN3T4`Qk|H0D1N zifmilpxR_N`Fvc*0YkwKodW>}gbv#C^NB6=6*~M;c!P_<^NFlVGQ!hOeCPea*|IF= z>6{kUSsRqRKMHf)Jw5O69xg%4oyB@(Obf4g8b8xfQ&uuabP;=?CU9y_VUlZvu=&KV z4`*<;>^gT{rNH&bY?nyh*XjaZ^V=TG5qUJnin&wgxVOTUjiU35*EuUZy0`sVlB$5$ zTjq3r(H)&fc7E4QHC^-OUZ%$6q~zq8wpU~(E}k>ljA`QIhg_^*e*B!{c_(*+=R36p z`<8BK<86Cr^(6gUe3AK=xQTg_o_ev?Y&}1}wDWG`OT9yxLVX^0VwN%`o18!YZszVI zvvzFz#N--R{nMO#>NE2*SAM8ls4ZP;`pGOeaQ1(dSx>H?e!ed+;HXLN=l@COo3lL> z4rK~0KjHs;|Hmzkrpa4#nmn@hv!}lo$bF>dWX364*Wf5@lGAkJ$&>RI(%})pb(2&6 zK6&~+Q)FI}OGnwyP&}{|K{!*J>luc*2n$)c9|`fGwAQ+tcmV3Qq{_KPP+7C z>AQ!rJz+m*_f6(Eel7E+>gF!yTYTo1c;+l$B&znmq3Zm(=na;irhPlidquHg#`_}z z^{qc6jg0Qi`*_aj@ZqEn3l_N79^?J)eDc4!c*-C1=lehIVq|CQ<6Y+RfceT3O`m_} zw!s@$C@l_S@tglxf8PIK_TT~@{l)2)pZqINHy`d5<2CAi8CgH)(@XiZJ;He(teD(b zdOv=g`=fepn)%-^m(TxK{LlQ;s&b|p%c^V!28Qsekcg6?#Bzm#qWrYXoK%I9%7Rpd z%z~0+28N0`k3aEn6ozSNobo??#`9?q1G6%>UNX0^vat7L5oTcpmj;u=Da^{7LljQm pxN_pinIkes*iScjEb!7}cqJ}a^2y0`Dgy%pgQu&X%Q~loCII#Q8`A&) literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/32x32.png b/frontend/src-tauri/icons/32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..9e8dd8a5dbabd5d527c689f0ea484dbe4fcd5998 GIT binary patch literal 1972 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANOq)t)YnAr-f#hG!RqhKv6D z_Shy*&YV+af=i=|AW!nrWarQ;e(6!!#}_g>8TWO4Z4BOc*>8SU>8-%!iy!kJmk(+S zdfW4u|F?7QT&q+2FKwA(uG=VZi{%!>bQTXLbKksoXKnlMZvAelX>M*ly@bE|gk|~r zz5Bkd-MVjU|AFH&bN&?`Ynk`uM8>K|rl)mRZ*@Dd>!X2(_@1<-=aQfHT4lDC z#$l%mYo-Lgja?BUp|AHvuH?t3^Eb}jGF|t1>D9jK?A5vVL-daXO)tJ6S7B0Y65C`a z#B%sM&%XO>zDMfJJS=y|>RnZ*H#~o;S$L$Uys0>oCv`bPe?p{L z!tIG4UuG6fT{e5c_iHi&EK$euMIO$W8`8n(@ZU)~+}h7NH9I7WE&R>GZ+f#?cfb5B z5Wkl<=O@>OluK)ZCJP5JGjsg=&UNL5#$1i(4H{g%bGQ}crmS?0JZZP+TGbE3j%q8V z_om#xY`eqn*Rfx@;QC|zANDoN+IH}q3jO|vA*3)hi+QKao8$F-H^1tBDmY@mc)j=K zdDml0Iu0$kzw(pQvPD^Xyb063&${QsR&;mm2D7|2DQVX0hRY=9S&QpNUSxXubZe1I zk4}QX>Cem#hJT;T-SgPb;O#=b{>KSb*EfHN`?Z}>DKE4A^9|t#rdtCeA`)%SvNz~6 zILK7Hg>ZkGbhLi;>f{e`b(;4yAHJ^@eRV1|zJ`L0c&1+r?DPOFw`FkTJd+OtV9#e9XU?v;_fuw#{(AFJ=D1_(_uY>^`jzm|(m}`I)VDYB^N$~C=09LxbtI%E zBZFc68V2z#w#J@sB39J=NoU(|u~kWJMg0M3|IMj$V?SK4c~>$gdX)`BEr;T>vuEAz zep+9iT=V;{#Q%r2Gk#r`?|t)$i%C(};Ovp*QHr;(&Df*KvOx0lrOd0BZmQ1Ozt{AQ zeeJ81C$o1kGSnWNF~cG0^xibBESEV#x)#N3Gh?j{>;9XysO&#e>QhuSDI+f2yqody zPxj23Mah%1e!p~xx_ZWJP0Rj|E@6;!=CSIM_tz;1lk8$AXtaomZ0*a(Hr_ z*)1-vEBU-Ac#Frr+yBo+r$#@X!&MMdv3Ku>KAGm2t*0)Wnr_DAJtfe2-EO5&&u2%) zCsx*(SLEs%8oK3HD<5(0cRQwed+FnjHzi?v%fFpjY4Pu2FXNG4@4wDH`wbYM zGX$tcc04hyf1|OC|Bd;s1-&oJqvm~;oBMZHV5G{$ca!}CHPd`IFS^UY9IxtOthYq( zOX}vx$qk7TY%|{5E$B)-lCbr}hE=OxSnlJ^tbHIdZGxWGxn+JT^Zxm!#C#W26uGGw z{b5d5i$!(W0(CEk+Os^~&l|+0wf`y1B|k~ z+W9Lq$L&U%&wi9w{d^ji(hY!?>qNLES#@mrM&^u-#($di{IZJ4x04z&zAnvE3bqa6@9s| zueO^1ef{R$@1JzeJK5Q(dFRExz(`Pum>TV_%0^D2>Pw`(3dd;AM!TO}+tpMima!PC{xWt~$(697wM B)D8du literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/64x64.png b/frontend/src-tauri/icons/64x64.png new file mode 100644 index 0000000000000000000000000000000000000000..280a9c5ac3d9ad9588966968e9a71d7655a1d58b GIT binary patch literal 4484 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

FSzCY zAKzJ-YnXPxV>8J$G%0*8#P!AEmtN_QTnrc`oX*#y>`()p|*kr zyXJYMe7pAZ%S>;pCt*KMsp(IMY)J@IU$i7(Mu+EokJtMTx6JWc(YI9PY502P$Dgzn zw&m#_xwgjf(gw-%+u7$VQ#<-az=Bh5<*9iMug`{wZ4*tj>+T9JNV#oYe(GFm>QgV# zuU9Mo{b4LMSrwpVY;0f5Ib(WV*sp|h6O|w2+-AGTAFkYyec)!Vp)zq(>5A`-cc=S}R_15K)T-Kw=J z{^m`wTKLI`sVPThnLCF?SRmuI-uo?|j-Ge^u&z2}ZbEhRM#g8NRbq+}PD`y<81Me~ zyfVZ;?7ZQjlIB9Nh!^ja|Eof?LYNe?4^frz@)UUh6f8YD&JHK?06ZSH*a-=&@;aS z5^~=+UsASbW$a$W&L`Bo?e{yk`poV#&PUaSzPOnL9r}`a+qB@SvS(zp^%T1g1`*+L zs;|Yk86|E;s>`H_9n)<0wbFgFH+)V)pza zuQ*f6O-_5U_i#_M+2gUw?bFpyFEzXuEDBsWTWx;9aobpHi8lpLwRA6P&H1GEyVXv> zaK|?Gcg^3__vv31mTy~G&Fsmv%y5SF<;DATa|1jlX(Zd$Sg<_TpK`@MK4GWB#RY=t zdR07IIwyaZyAyeT!IWN&q75;elMU^rY+5%xu4UTnyp{{a|5df;OL#_QcFsOk5b`%m z-_l^|r>Xeg4{Io1e`n@K|7Q%ya#6`wb^nTK;#su{rhfGU43Z zEg_T2iW-)-O;wVeQ710Z_3Fn>{{>H_&7F?-&uhG~tann60B2&DLF%L!EiT)Qhvu2L zJuvo}%d&2l)$>bB8-f;YeaWxaw5mA$)XsC(-`~V3Gd{3+tFP~|wtA7)wd*hPw?v*< z#ZvgkqNQ%D#ICqH$uItM8Lz2MZ!)ard$D}pDlXgIhcfb=IzRv1=Nm;FJ=9?P@)JAw zO(f^7`Yo_XJA6UC8OxWI!3X|)aothN7OWOLMcy?yx;8a8^J0~G$kMCVn(XRqT+DMO zOfs91@UzkC@4xoMA9J`BZ&f*Ew5@DC{P0De>}~Uv(SHBEKTAuyJkFa_sTMK4e&2g8 zWquQ@p0p>sRZ|0fdQ1NNS$^Tu+t~}g-rN23{wHI9tw}c$?HAnakY|xr z4|D5v7l&SpcqY}8t$k*jSFX%Fe{XMZ?@?~Cy9}>h9WcG_^pyL2bK$$4tFG*{k3a5t zWvliBtyJ}v|KG&6-1#P(;r=}8)}o49_8&J`Uz=Y#n4MLm9GD@#{O<1sOkA~ApT2TP z95zV&|F3p-RMaeECGnrE+*6djKU!WCZN0?GeRYxY%qgvv2QKb3$T`Zy_#)rX~f{b~;yD?KzkE-G)OsFt*yEGAQN2f>rl-Dkm3B zEZ;EY*THjqrHz%}ECYs~8C24TNa_JXWvxc23#n~6X{H6>BBJL%UDn+TuzGrnDx$M8#&tql&t7$1{qrr4!(Xe9T%PYs19k3P#e;mUX*sc@_E?%q7ExzW6j8>gPv zop#jV+{Wb2IU%!T-JV~Wa5Zq}tSNU&IJkY^y?(<`eSTiWJ8k1RLJq!rKgX@u`DIgF zqgTUJ+np!uBi>z+x18L(TUn-gn~1MMSlHJ$`U`m?m0S-$-m*{rf=1B$1%J8gUY_Q- zp^*?M+WfjZ;>hZ?d~ez#lAWKGozsr$b$hVI`dwq-^jN-$b`75%&Nkht!4YA!U%&I;ElN1ncqOkIHG**=%zg9YX(I78O`5)UG~I}`FD0bs4+PI)1G7RH?5L?-?j_f-QjqZxhhfh*7?ALHzuvGm(?<`KkCcuUUlXB zh5hr^Dc&nCy8q$+y`K7fHHW~9n)@H;HJo10vb%nPP0>MvqKgxBcb?FXm=Msc_4K0i z&W&hZm0sp68 zO}t$$*|U54YPwuoJNfyNpT{$O*L`j{^gfCEJ=2ayTA@=Wx2Y_5(M!_Xd7|Q8;6HKQ z!s-5RH}5PvRk(WM8gBiT14qSI?>tblCc4S(z-fndK03dyt$C$wH_Q1M5ZcJ0xIlomF&%XM$FfHA1{Z55RNB4xL*68fs9VF1H6%(ay zu+&cZU%A?r*;*?vH1g@ka>dsF^-gMvjdD=roK>%WKz!X>Vvul5?Jo1U>@0vww_U@cdxZkmq zy|riFGAF?M&CI4~{Hy61Fib#eQ}73Y{D=lE>Ce5^+BbI5&-l}>8ShE5xuqr&cN zS@3iryW*E;(l41?Q{0@d9^d~(G~vbRLYCRVQLUesd|j|-!?f*r?lD=KBCYmp_g?>F z_I$GF#KEGsB8JW6v}MwAI^B|J>)7v}oJ*6VX|772c;$UgK|j zZpI>IGq$e&^Ls_D{{N`{8Jo%2+7mLnoIT@zkt~C5>=WNx-ddMD{loHu@d+j({WONOg_R$f!e?p_zMEf;6;7UP(f zv)rY;RHr!SONlW{zQV-rLk&+~hs^xCRJ|`rXT#&A_Z^xb^Z#ouj18VIkljZ`%-_kXCUw&kX{%zmQ6YzyW&FcT5EleBo?=SP! zJ$v?IjV^{EXk6Te!f_ zAwiC*^mUBs-l?x1?2QfDul~;7Gw7n=i zoPL?YCL+W!X~iV#_me{GH49G&X|1{aYqwsIj;N1^+lBmXDGXe;k9237?V8AK_F&>X z!HC=!<{gh>R;ubQ@OpMuT($iEVUd7+&$p>CKKb{YTeY-0Dd5!Nd5_YxCl(8@_)@WA zwe}3j#tilb7S2Gfy6x)+`Gbq#o`xFy)kR{ zf|7SO%isKCxAdHHO2;_fS8s{LVv+ltHSd3`OlX)`#rEGl-OJo}vhusw1?YTM!iX4 zmMiC#J3GscF24VC(c0dljGsK5S0$|cJ~gQLg{H{~{*u_u0y7wnseQD~$jr0awYtvz z?yK+j<3HWowDf)6y$y+fFCK2U4nA;E^OAn<^v4#>zQ>H_o;m8N>c`J=?9ZaIFHtOc z6&#GtoW=_z-b`n|vUdB?Hk*Gtp8aV2#Q6B1(#wX$R-&d$mQ9RW+*_8Potu3(c7O8Q zuJ8Avzdh{YpSCtWI(+-~g^HP{I4yToNW2XAZnAUfDarB;tNGp#la#F`|tB6_j&{_o6pGxL*A?o?m(NYzT=EZ;Njoqk%n4G%IZa?;)1 zE3Ws+zP67F{{C*&)6>(}#O|&7dhYG*{v{cPeL}|_RW3BzY+GX`#CVx=j@01|Vqv_$ z|G6$*x;?yL?WKhs5_NJ*b98eB^gk@z-pakW{#gFC>lb8KJPxQkoqKVizfGgVR^#&C z*yE-)A;Jr#J=mBIGN?`EWjcOu`}V@q$F^qQkN*1alWM7U_?lZ=>S~+k{;^qYVNoa= zd0<+p`^75^RVmzm`@XHtD)T(~d|6cEXSY|sj%3Bk2d~WBsyc^%vjlfV%1t&!c_s15 ziGHlh7B`f{Y!zZR&RzMX;n%sf4;T9Xo1J(0)VyuFU!@iuW}39|r2wbQju|Kq{i^67e!`$``ld%G}T(#?Yl+G=JL#*}nr?!3m>oAsTsVHWcQ6Pb%`j#HOS z<+->;aB<1vv>D5KrL(1kk4YR`>AcfSj&ZH-)0z;;=Tp^Ig}zsMp`tR;kl$lM(n=PS zg-LrQn3WeKx%XS8n%|dMRrRdh@!r*?f)>+K9eCW2ZanP%E%*MW)Tf`ePuKbTU~c)n zyPFbiSwn+e+%IePJWF~kQryzUd&%>He#)#hiwh>dyx@MtyrUj{~hb4?- zE+4-xWz}f0FUs7{vA}(CNZ*mar%FAJc&(hCJg=+N*+W@Or{R`*ox;J~%q+`YrJtYe z5`C`|z3JEAr|;LTkN$k|p)8tmK->CezG$7&F)wulQ z)3RqZHt;%!Mg^~yUVMB($fB&d0c&3h3p^-vE?sOTz}dfL->0k7o<;B5yz$-J?bFvs zY|DA+URs)Mu;+5`#>8YL|DLx?n6;G+YK=EtX1sjJq|!3|V3u}(u$=L(&2_)O9oF2v zfO&Ospu(|l{On;;;!_v=mz%M7^^HYIIr7#UF6~HI8fPhd^w^D}oB!mac@Ac_>S-Qe QU|?YIboFyt=akR{0M}8y5dZ)H literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/Square142x142Logo.png b/frontend/src-tauri/icons/Square142x142Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..aa8b40576209897452bc119d221b6d6464537e2a GIT binary patch literal 10631 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 Pz`)??>gTe~DWM4f#M!w= literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/Square284x284Logo.png b/frontend/src-tauri/icons/Square284x284Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..72c5d718834a874fbb19942f981dbfd1c034d7b6 GIT binary patch literal 23078 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 literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/Square30x30Logo.png b/frontend/src-tauri/icons/Square30x30Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..dc2fe4cfc705754f9a0e21ee38587308faf7387e GIT binary patch literal 1866 zcmeAS@N?(olHy`uVBq!ia0y~yV2}f04mJh`25WP+nV}l6P$6!q z3d=!z0oSH!_8gonQ*Wu|N#D-Be5+4BGwXPnjCJ9kJ6oR@=AWOraqiu>>t;`Me?52S z_nPN5&#j-|nY!b!_l5ba9^M?D^QSSEJe;Max%%7gPUm@sH+Amr>D%7*=v!C(9!~?Y zwHJ=Pa8mGmcFF7Q-s`3BZ@=F)|M!;J8TXTK>y~;g&1X6Ilt z@XU9X)ish*tBcc3{Tg@troV!$Zr-BLa@Q^Ita$TmNva|Dhh9e4F4MJt)2{FReQ?t! zeSr@zWBZEV7fGB;IaFXN9wX8szc-<7R)+KD$8vvs4!yneT+Pa2R+MHi-^2s=Dx@70 zEjg2W9%wHUF8fTFB?kgJV`(cTTY19}@Xf!anX|)m^beOQ#wc`LUh3q%^_H@y=zQz*uMNmv1i# zeK}&08?o^HDuFwL%RY z_|kykS^lBwUm|DNr!Owu`GECTpgi-r%9Y!%99y8cGcbkZCelP=n3Vs95df| zAg80vts_OK?fR#ALI-xpZoKJ{-?>Xo`3l>En#Izq77Ndq-CQ6OVXc)gb^5_oYa3m6 zitcki_1SAnXUyTB+#w%Bw;YRZ-&)Q8CYhhPn|p(nwjdw>;opxVXKXdqSakQ_sqn`y z%opn(G;Dtnap)FTxpl(kca9S$ta+6+d6sXzCp&Flg(71~`90q^!s|1ao1>!gFol#q#ER{FE0F^9-i zJ(FSy)Z7u$@oUq&{6p_vID9CxZ@L%9(#-rJ?vHm&+?p>*2hy~Uf9h*+jg&mJQ1Qh< z#}(hoUPzlOoY?XAKy$&aK9@t>zp5tIKHSdX)~3v+v~;@1Tt22q1L1(8jStO!Zl3SZ z-|uW{;;@4=p;YwQwY43bWeSzgbgt~Hov0kRS<}S%{GrmM?C0kmoNM5m!YUeY#k*h5 z{Tu(1XE!BJywdW}Qk{3I?TTLcwS|9f_lqx$^kB_TJZK_k$@Tl8JDakDch}p-l`bxu zguX3wzHmK#!>`%#i639bAHLLi{K0%{_pf`H#h#l^ZoPYnX{O)vtD9XH{JX^T%F62K zzxTGC6E|MG7qc?*_Qf-+{QiBAjQGlXQQ^U)k5%WAKSrxRn7l*hRm2t{v8`ScHM+kY zndnu)GArx#fyT+pQ>I-qD9e2DH^RujiiY&n0^< z9_e~n6qvDV_*3b#m^r&E{Xdi zy-EMC?7ssFca&p2Y`z4TY)q-O-L(Es|D{6NCiW9+D_{J+9q|2$CX17Vol@-FJyuiB zrd+Gs7Ifg@w*x-rPkXXwRByf!+W(|{pY(Q*B=5<)RBgG_(>E49D>3oe;1DRh;%oEr zg)=w4nYD4{)xN&IFUJoFDe>5QUX77r+4SLvaD-*G*ukaVDKk!WTt1*KV8u|8zo+x( zZYzoJl@knpMm%A)(~FloEgWX};7`_*7adNHOAkMN z+TV9zv6*CQ)10nn2Ay8Ad9FXt*Ly0T=yXXJ>f>xS*s?UFxOlU0@Z`yrhki*I$ou;w zDxb(~zT>v|+6lfw{rU6T@7`+binq`2c`PyaY?j5g4O1sQ-L^Jpr4zBx(wv70WlwQSB-^-FPv7?Sxy)Z>}?}W!bUSBw5=fek}t71B0ilpUXO@geCx-MWP1) literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/Square310x310Logo.png b/frontend/src-tauri/icons/Square310x310Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b5fa0be56b50c693875933d6390cd69dd4ba387d GIT binary patch literal 25392 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 literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/Square44x44Logo.png b/frontend/src-tauri/icons/Square44x44Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..097839b004319ab447bdec5861e71f8cb5339f9c GIT binary patch literal 2935 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 b-|U$RolEzze==fVU|{fc^>bP0l+XkK@)4`A literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/Square71x71Logo.png b/frontend/src-tauri/icons/Square71x71Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..fb066fb32ae7fa6f521452dccf7af8555c8e999f GIT binary patch literal 5040 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 Qfq{X+)78&qol`;+0P??3e*gdg literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/StoreLogo.png b/frontend/src-tauri/icons/StoreLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..c56df3f8ad44db8db9637d8ebb48756c98656ae8 GIT binary patch literal 3342 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 literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/android-chrome-192x192.png b/frontend/src-tauri/icons/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..4219bb8403a251c895954ff2a93a032849cd8746 GIT binary patch literal 4161 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 literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/android-chrome-512x512.png b/frontend/src-tauri/icons/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..19bc603ec53b87e8bdfbd82db4deca0e049d45fb GIT binary patch literal 9419 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 FO#n8uX)*u+ literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png b/frontend/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..6a361221e14709e7ebd40e3f64eb73a2d762ecbe GIT binary patch literal 3285 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 Ve@f0iU|?Wi@O1TaS?83{1OP5X2Alu@ literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png b/frontend/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..475ea7dbc5f1ae1b49ca67c1cd61bccd1970ca5c GIT binary patch literal 12297 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 FO#p$UohASP literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png b/frontend/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..6a361221e14709e7ebd40e3f64eb73a2d762ecbe GIT binary patch literal 3285 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 Ve@f0iU|?Wi@O1TaS?83{1OP5X2Alu@ literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png b/frontend/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..a82e68b38fbbc447612060a11a71cc96b6a9dcf8 GIT binary patch literal 3153 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%0DNvx=8etDzsHwIgbkB|xg6m8jgznk|IeWHe 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 literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png b/frontend/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..6c28ce59940162841c923406704919f36febce3f GIT binary patch literal 6916 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 W3cPcL{|o~I1B0ilpUXO@geCwYm51#B literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png b/frontend/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..21a8c5bfb63ce5808bf3306979859107acbfd56a GIT binary patch literal 26793 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 Yo8PJW#oqH77#J8lUHx3vIVCg!0F-rNzW@LL literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png b/frontend/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..b5df806c1a8773805bbfa06681815fc2ca75007f GIT binary patch literal 10841 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 W3cPcL{|o~I1B0ilpUXO@geCwYm51#B literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png b/frontend/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..224b0169ca73ced0d5379e49c590e4dd748ae9d0 GIT binary patch literal 14981 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 literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png b/frontend/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..516f2024e2686e4b2b832d60290d429bfc5c4dcf GIT binary patch literal 36416 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 literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/icon.icns b/frontend/src-tauri/icons/icon.icns new file mode 100644 index 0000000000000000000000000000000000000000..983df8577ce0d8daf2219634b20c6bec7410d36f GIT binary patch literal 224299 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 sZ>avoet&A2 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 zⅅpkL%g3Fq={@`0DUs?|LCdzZHTwdzo%NCz34Q5)iu{0yKZ^?%nx0;KX9r2ug;9gOICkPFSZQ(VYzy#lU=*i z-oQ@Le_M+-hRDdv&(@jVZTw`yjLkm9=RW`a*!btbjt?O(L0hS-@BdZaxM|m&J!WqL z42pNoxijUke(IwNfjNiQ9|{2NFPy9S2?%vyYaLxyd=kxFJ|Jm|se$Hfr zt(K*`TFtgJA5dVPv$V`v>W`pvL58jL{iuiXZ@zDG@|hf*HfPyNgP?TpGl z-c#?G?|YeY%P>^J-mP8*@=fidqKbGfDSHhV7{bwmpkg3oWMrI`~psE%`;CGOsqFlAH3+! z|7Ovj%^&sIBY%Eh^2u}SciVWWm`N8e@bU7k&DZ$zgx^c+tGneNr}poY59t>I5)b3*^^jrbXV zzW(uSGs*v~VgH)HW=;B>f5B#&*}B?zeSz?o@~`ACFf#7x`XZJdenrOlO6Jk)-KST- ze!u5u*~%ELbC=wY>t3Fo1h+ckC_EKQZs*oylkK6n$^f+WSy$&o_rXmSwdeNy|B!)Skvm z|4%>Xv*Dw>_J7vof)k35?|*;&Rb%JuBU*lc3etUx^02xxQ1*VP`~E>L2ylZoj=lRxE)Hn|#zf_yDw<^T4_T zpg|?|mRq0_?0amrLS@bs1q%n3gHKQG+A&>iy7*&;yWHn)UR!sUd)r#u191~-QGU4LG z|4WW^Pdqf`!Y$`_J_Ib)!#US zE7AiK!ADJ(XxzQA*C8jo`oN=G%rg&3UOuB;q{b5CcJRXY4NG#9cKth0Cde{v{*C`t zOP6#MzjXa}&id$w@cF0t{v4G5k~**U+Z2b(tM4WwM@YyT+fGwf2w-tU;L_ zw9-{^n&e*6E|nZ`HOi+=X3sQzhs{j~J57r|{Z0$yTE0-SY~INDAe zd+)Erv7@^2+I7`hYwb5}3uPIKDpth&cvXB)_W%0&E9PI0-hXf!#nuajfVw`b0(y4?!y z05KFWfhu~2swsZ2;tp(Oe-|Bp{V4NEMulrO{#on|J~9kR9V}mSl{wgav!D2>7iV2D z`+UiSCqGwL`_!i6jZvD%z-kN`Y<%2sd3>oa8E&{^_{l3-J2hFy!&j`p_=eQx8;-&xmf+bg9J(Ur$R_xr`H5QA5gSVQCoi?ujzW<;8>!;F}Z`ZOu|1f)Jj9=cV zhtq@fxuyT?d*2QT?hEG@uz?OxNPa4i#m`a5{gpj$yK&MDqp#C{<;}e<5jFF2I?wZY z)mM`CzKi|;RNo?^{OD7(%{8J~P{b%A{|MfrjEl+p?E=?zcYIOz&cZK|iYc*~;oKnzBme{{% zuBg86=}9uXaLH`WPX?|07zoubBI3q48~q||}G!K?wq0AbKp1P~3z7ns2XBACta1$H(z zh-(YJ%M-+60PkLaut4R|5Y%$uKciSd&Xw=SY(af@22WQ%mvv4FO_@2yMhpyGO`QzP zOw7!TO$>~3a=i@9j7-c-O$^*T+CkOxcOH&nU}j)!Wnf}tW^82OXOeNup0xS+`Libu zoY>63z}m{dz}Ubb%BL6JxMbg%bEl5%-@A9;{=*xC(`&;Rn;7^Q8JJ?GZ#jPM%&~(Y ziKYV_2X{~I>zc05z|_RR-gV`~;r)B}?r%RJcyL!oTkAwy1||juW(J1~yZ7zyKEQu) zS66%6Bx{IZ`q{lr2iOlDIeP5a(IW>NV6rw4*_?BG8xJrXZ8;%)c>jR|5RFi&>~nh? z4lo`&)p9ZtAqO=y=iJ@{`wyQ!b^7$llc!IeLdZM7jXkjc_?gpZjvhF0_|zGMyemTf zz^Sum&oms6+<)lI5xCthNb;u}&M_Qq+|PLUP{RRXh|`d??>}{+;XKQk6Gsm0Z^R~j z)A3b;J@})}`FP(2V zAbD_CS4ZPIPX=aCFoQgQ;Lw5n`wySIc%|X8*OC1P4({r1UU)(ouK&Qk(GJh1Q3 zr7M@O9@~H5;O@40r`B^YFv9fjJ9Yioz5@sLp1XGC+R^<74((WU=*&b0rUnKfW(JV? z`%d1xe&+Cj6W6X?zk0Co0PErX7jhVw8yI9@(zmYPxOVl%^=r3I?>lhd;Ne62&$)u+ zIU(}F&WMO8=1|~yARwz;*v}ZCg%_D-?w+~K9F&Hj$FC%;K`lC z(-U==S{Ota8De%HJ#+rtnUhBk9lZSN$=Ss@W<1>tynGtAp?Phy*X};By3|gnk%5Vc znW>$DfvJUoiA!Flk%5_sg_*I9p^Jf$k+GS9k(ITdfq}7^fs=`YPfSKpS%87D11!MD z$}KFVpscE*tfZ{Kz`)qaz{{tq{XBam1M-^lpB>~ zR8*AJ1whfu$RMPmsHCKTf9?9kb;k0_4Jh)$DvC&NBg)I}X`#)@H+-*o@#tuzTS8F61*8RZ5gX^{Wm`W02hW<0xk z`|g&G00kih6C@HCGh@?EcdF|Sj^G_;3d5r~}^4gSm)r3=@-MMl5;menAJQkrz=_ zQdUt??7n&b){UDtU!{wyp~@hMNP+$)k-i8%8-QbHAKJ~V%bs41(+Z+Ud*w1T{bnB%>8xc$)V1(x6T z_~!i#NpV>Te|uS#24!iG|KRdUYT~nA-Ms&BM^})du%b#ML>g|qlB!hT>-%@^J%96j zm#>s+qjH0)qy{wmiGV#<|L*m}J9qEDdKx07+MwK^TCbuE$sQnS6?w^sZBITve|YcJ zNmV5kWo1;e55?NPOKs6sD1IX{fy*2z= zazbVoUOoDdAg-pYCXsP{E4b!^$cxl|3l~&S=UMgT@%s=-RW-4U3zwOuLbD&p0MVkK zullUiGhV!Wb6ZbAT`cv|(Q5_J>;;k+Df$26+vDpWUO)TaE~Y7#a_QvJYaR%BRT+;n zpML)S_2tLkWeRFysn^b)K66$DVZO48tb$+jrqid_r^%>_rQW`D@xrw|uP)Ebl-m6RHldDH}x-@f_ub1O^60 zMFs{?bRr}fnOQ*NLktYuhAFepe*Blmz{|L^}lb&&IL>4!NFmpsgQ*yaEI`ToBhY&}^1CsM-u_wUbda6*Qp zZU$xsyZ`_H{rUa-_n*K2{{8v&7o_&-x?DX-o?>8NV#xml5`*ElJ1Z<9{cuSBVPIt7 z)A!8mT6O%v*SGr`9R)zb%+M?eVuOPb#Nbqt0#VGY@SMxQkeO^~!oc9Oy)(eiotH}r zWH7I%hf5I1UJ&L0ja7W9xblmE!KcjA#WAGf*4w-6b7WKZ{{ML2c=?+=v#BBq4yW`u zTP8U)uy`sgSP&vAIN{Y+#ZZT?h9t)&9v}71T-LuW+8FcxXj>d-Y=DDelUD|3=o2A@ z(#_Sk&eYGlnR6rM{5<33XXebTw9Ah_&U^BmW%@kZ-TU8H&bx0jS&V@pVUCG214Bb4 zsIZdg0F9l1=9C#oW-9)2{l4a$pNtv#V!6zPD}Fr&QI#l%2m#`!x&YHcZ|1w;}cP zJcGOs0-()$CI@pjr=_|*DcT*?ck6hd(S6-VpYPt^U_7hnd7sVWd)NO*Oe?)yciwKZ zO=fcYH3bF+2iY&Xe@{~7o;u0)PW%$?yPAJ(@9fXx|B>kZ?roU4;Gg|}r|Z`%^gV8S z0a7d~egAIvo97+37O#B&?)CTTa<>O1X)FQyObiS;&+fgvy!=Me+4AcT?w0?^>Ys4$ z?)Amz_ttJ*u3P;w(R;d>(vLp^i7X5ZZrv|-|DLsD{|WifX{9Ec8CQHPWoCG`BmcK# zY+tT^iA*~G_q%)Jc3+?Sb0v$+EiLmsbN2i%K3zArA=#0GgMmTFdw#L~wUck3{abYV zbZz;1|D(|wSN#unZ=O`WX1Q+EzBksKc5Wt|j0_G*ckbTZJNfB}d40;p5LwY zonrA^FKXYP|1-<(toT~W#9+8($Lee!x0LDsf4PVJU>}-X5G6TH5cY`{t#4d zG>&5rXhGz9SO zb2!(gTT(7|?=E}SGKVSku?!9lYONQc{`e*jE8B<191HY*-K|a6Ge5t;x9rin zl*ns7+qjQ0q%ko3FiLrAH~s$MTK{_)fpLp~!_9j0^@YLV6RLH-)VY zx|w@_cTOh1Gh-S91JB(Q_385;@3Z&VST^4x`MBlJ#drGO2yielB+M!jKT){6?f3O} zQ-zj&nSA!|KRHDf29BL_9yWW+;y0x%jJ_ql>;1d$1>6n0%kuCpqnClD zy7x4HZ<7CNy;)~!V@r*>6c`v3wZFf+mo{0prF*r0(|0k43vDq9?nibz^nGM*p7tv9 zbeg5;g`6`C489@nm@Li2PdKuq7Vi{%*M7C9WhV!N1M?0CzJ?u23=DQtcRQSWu(i6& zuE9c)f#L9qU+?DeNgavk&(b#HN>gTFFgn9p#J2YC=XY|RlTUih3p9{sWN?!zYLsc; zTFsD_C?wn&{_gJH3p4o-zujLGnNs&Z-Zc4`Na38jx`DT&`!+AuFb(>@_xJOU+k*0U z{NHwt_f>wH?DL;;OQ*egvE=`^d#T>li$48%+{MsvWasYP)#|4wvi41?JT-A=i~_sF zs!&D;@!x*8Ezby9ZcxZ-Z<_QjNcMNqj?1P0H8gjwRVaGxdfx8yf(2g_k)Jl?xI+w>xcp_uj{TPdB&f1@t>G9nihJOgCz(m;7Y$tr~0RynOA_ z%kg=^oy>i9Pc6*-H+zckb{_*q6%g6sy zm-b0kl<#+2dE(2}3P*=0n<8g^*_u;sW5dLtl=ygewfo!0>+YVvKKspwcXAv)zKjn4 zYs#J!b>DgUM>+cIyM1!I{140(`fvU<|F&%{|L%}9 z!;0BJLHX0u&+}@Z1wZR!U}R|K+3CQS{oNsHrW}J!-{*7P(`hI&@ zJ~nk}3_>S%JM^8)(w(r3}zqAgx71F;Bh#^dn+Z~|9IiIg6r?Z`C|S} zEC0?AaF^rw&#o`=`A0OK?4NN_{J{)`Yj!dJ#2l1oFiITS5y_Copp0`tuxSKnDAdI<${{^p55#M8fgrt0*t;cN}pGGamwLTwgs(UO8!-By!Y-O zkKBuY&l%0$zhhjGdgtb~#drCS#h6ZD5HR|yci+?U_^!auOB&N`-B=l-^xs;%7iwl= z5Oz?!F#BCk@hA74tp6)s)^GQ}$bKP6hmq&$zod7!&+6rtUikEMwXa278Uxdl(l^?# zeF{H4w^;L(*{@BExPxpnUsMg=pSrD@!Z z3|n8_kGHSimwQ`$=h69x_!$h7JKtoU+9<>@>&d-!?>EN%bqo_CTKA;*TKG+4sM(cXbv^uU`QP~oDhv#s4h$=t{8>w%eY#)v|A(R*GsC3y zmrqItN^>%Z=4kx8U;Mv9X)z;1TEtrm7KX{W8vnNMsIReK%*fy&#dN^H%;$ITA4Z1G zBasZLcP?N3Yngafo}uSUj@8}FLxo1n8)oiaUM~N(?#G^w%!~{kCQJtuswT^SKin_L z$>4BlBg=+^kJha-e6-^I?s^|XDTan6$!rPDJuBXKO_JzMd zvokmtZ(>haGub}A;yXWs!Hh!21Ghi=x0L^9U|1}T}| zLoJ6*)EIg;es1Tg{>RMlz%Y%|L9=qZ=5a0t2UE8*40p`3!;bwe*ui<6i=jc@jiupS zOy0bLclHbi*uAev824Rf@Jd<8d7P7>A>Qo^gTTxHj768bN;Fdr-|bJ|td#q9ky}W8^P@HI1y6qMeDYZ- z`+C>h^PZWt>r=W|C(e`G7$2|rZFYXw=BlX{>-VbpZOpj$fI0PxR_YPIhE9HlKIO|R z|7VC!_3NHx;<-k5`=l!^oJzv#U&X(!RqvKEk4yPeu`zh%r}eQP&n0}coA!JAtohwv z{vWVz{#X4$IsMLofRg5hHL=Ryq}O-Z#lBx0|Yhhd&bK~#8I|&K;@yFIM3Z1Myo9=6I?ukBQM~UlOaotB}XW87; z{T3VaYM$cEx7&ng8eN^cOWyp+XSV(CrmV`B@?vk-C^)vmTX^@Y+jF+3@p7?x>eq)o zS*gBs%NNe~&%S(hee{#5*Td3pHs|q~e^eO+(-;EGv+r008mD?=#KM_k6!``HH*W1=R2UPfmPvDbTpN**0_15`Np5 zBYT&Y@*mt=?)`Ay?jv5|T2^4qoG29DfD6V8;XxpUYdH$wv&~H5<)Bm|{;(yat zNXeA+AE~~lF8N*UyzcZz@9WjS&6it{&XBRtg}ot1&)ms^U7$HaSl#Q{g7QustAymo za<29%yQV+7VyseoiG69s@wY({f2uczuStjzkd*B+zSQ#ARr za=!wO9zLe(v(vxa*?Z*QkM^6j0vr;I3?~=f|F}E*_e*}6`+pAI*Jx_4x8k^=`ngZ~ z;zAKy1_zxTt@fX{)vA=f;e3=cb%VD3Y$+Kp76ye37KS5HRo`ShW$Pz-gqz>}(|pv{ zqM(;ip@4b+F z-~5X!VhoOFoaNzDot@j!$&K8Vv*( z1S;>bR{8x}5Rq^1A#-)lTv<-Oi&L~jC0MqE_@zt%)f5g(mhRfETKw&&QgpuT%;zoz z91#P*d@>qpIp&&PX-rWl;>o~&KNU1Ph>1Ake*eYAUD5CqDd7X^U zg)I*p_!$Jam>8HQM{WpMv$!u!A>iV(gA1oDX9ru;=yCRr;~M{(NsSB*9ZC!fUVahV z|MIh*i1yqh1BN4gZ!fTLTv4sQH8aU~#sP-~daI_-WdOzag^=8KIlYy&V%NTy_9d%V z`7kJSaWG`e3Mt>dg1>glv-QEJR=xhn!FO^A*Bn-cmPUq#WdSd@q@1&hUlUUC`X5Vs z$|f#WHbxFcMh4%Bw$GT8a(CzI%*)<;&{5fjML&PDse%9-6NA*WS!S_UCcZa+6fv`u zBW_p31fjzWEPV_O$6nO_voGvhA+r2Ws8hiTMsJ1;LwC>R;FRVZ^v=58bZvJdM@Q$u zg)cU+fUVyZ`S_UUuNBD>9UMu=7#&Pm7_R6RU)t}vYHx3&#{>_Sb~`gBrb7-44zVSV z<->m-W=NB1_@T(KV4wK8cDqX#UY0b3y)#XDS`6|{14F~CrO(bzzp}1af`g&+3EPD- z;l9ZX4YN}13-)Mu^ZtI%C%tn4quFvsriBU&3$}@$c~^Y&)vI+sET2XFW&hnnIdPjn+m>0Z=%u z0+l*<%LSP)uKH-MYjJ_4gG1wq>S}wHpAwu5E3|%pV|KOb-C>nxaIYq~YyDoeO=Z0| z^7rifxIXlKboIT}hRH6+`o&H2_AEKpCnjmT>|uLvc0qxcD`V8!%O_R$*$FWOOtt!9 z@b|xIP3uA5qFp!smv)NGuZ&8$xjAY7k0y)Km^*GuFDLoV)q1%uZ{zOm)4!aNJ#sT| z)e@tF|4(eQu_zD&ds54*wA?%E)D)@xtM0`$Relc4b=Y>&|Idems{ZXxEEx5#GOxS5TPZo~BIBgW{XFhW@I?L-{RSuXQs_QfAg`wfcDg`v&H3~&M+_}CTJ&2nOd}b(o{SB*p$h$J-zhz zXzWd&FS+~C{)zK;{&+v%^WUE0BXRq5#QbksD<4Qx2bYOcrrs-Fzo~w`)Q+RC*dNc= zxBhuPR_WWRsfN|hoL{;f+{b->@}K|z%s$=MJ-+aVvXV@C$tC`Y3=N<3d1M);ta@+O zvx9{__D{84?L;r9kMawoS--Aq{+Yc_REV+84Tst;J+(AKyg@I?{Jlp6gSDU80 zu{1eJUCFw&~QP3!Qjfe&5ys<%odU1 zs^4+mdip({o-_9lBPqxSsC zhxXr3Ig*&4a(mMMhu@dHKbGGWoaOjAc4k1p6DJ3U3=W1HEwA2)q|eUvwSMehRrhJK zOUa+>i@)r?tx|sV>7*iO0fu4$h7Fw|-@l1ozdHFu<=@hc`M;+I9^YfRw=m#*y1nwI zyt!K@o!ZDLARxxXU^a2qz0^B~;_r9djTSbK&3q|*>HEv>J$LyZ@9Sr7c*VhR<4VuW z(A}>myS)D#AMvMJx$i3f-pqjauHqe^k6q|q&{{aDLCc7_p`&0@ay)9q%2n;j;-NQ=%e6g7VdS_vWx2kYH_p zw78$6?b5;(&mVES?EMy%wEugqQ5}6*jXw+=yUmaGyH+U;kC@ zo!?Tqj@N$gIwqR8E0Bx--%88%hvQ~(3-a#u+9)W%b5Za!Ljb#J;iAIhG90(3{V9!~ zcFEY^Sj?eEfZ;*l+|KxSQc8O-pF1X79582}-O1XIpC7G>xOl;iZ`FZFh7Pvv7HPZ| zZU_Fd&O0ele&*V=$$MVQFR*+wReS0CP3Jpbz5e>wwD7*4)XAwubG9u36?Sr|FDyT1 zO~2_TS03;sud(-yV8TXoW&tTChF?=l>}!PdJ_gVJ@{e8RpM-P0rtO~zBKyAI-L>yp znzDjR%i54f(u+A5K3Kf7UjOO!mf8RGGq1Cqd1E&{wSnPDUFGU0U+owfl)4!j>Qw8~ zkNoau_{hPhmFoHHf-=k5>HnWySNY#xe`Q;-iZ=r&1HK5?VypTd$jA4#U0(0nj>5J7 z_*D9Wb-W(F((n9xO!}&Qr2UQF+QX1(5^so6NGCB^U8b`QDw zJC*5dF?BO}w7cOZMu_J&m-jW@IJ4er|h_tfq?y0cb)`4W7u zwRzKVx%jWe!M3k&%#)nB;a)>60|>_>sm*;7oKI5radq-JsU&yt&wQUx*wr+in z6TY-I7n!g!O*|yT@N4JM`*EAyvS!)(--v9=dc8LF3hR8YYmSTu48WOeLsjV8=~seF z?=8w&|8vsc2kpv#SQuNJG-oj+_WkJ+eK_?Q2YdUstVaC$Kg*zk!&P=R&d-aK2jO=FKTy}Y#-0Ste zLAQN9-|b*95MyMJei~Ob)A5E+*>63`+QZkEytQ@Tq{5&O_@lRN`<@?rJ~{{Zty~*> z%dT!!&#sTwWoZYU*jNl4{8BnC{#VQ<|E=#0{ynpKqx|x_Wzz-UovnNtKk5HhebxWJ?{{9lo_@!I zp~F0lVMFJi;?vo`YL^P+rP+eyC<%O9zGaz5zKYoTqTYyy!i3^_{wx9|6S_QUb0WfH6T zr-O+B5*Pl898I4$?NV}o=iVoRnzkSLzlks;Ddjo{D=;$5*3hjzq#dKRHBoE#y_Z!@ z&E{=0Wy`GsfMTP+V=BDQFmY0{W z7QDQ?d(ZQ|_wI}S|GMhBwF5t6!vaAD1DAWTY#n#G7f&?iRuYlB6rKO{9-pA)6M?|i zrW^jYnmbj!m;AUef611d$dq~N6H4AWY1lFt^v~=1)|KSscYU?iqRo7MYRXyDW0&6D zd(u)yybJ+iDv>umFe$U9jtH_YRv6pXd{H~Bq)^Cp_ga{QCc;p-UU26Yw zp0B4MoxSSrOvcJDf|`Fm)@=-5)A1vLu|tZ9;neTT@~#{V2Q!=sE^KCg`}tYtj_u!q z{e^!oo&M(0quXom$Zqf6Ta?4bkZ0Crp*i5HoyAZ#$CI3GFd#>_I_{JUh??fEkDc9E6LtV z-oM+e^1uD}3rU8o1Z~NgUy@VU7!IGh|DV09zNd1w<=MN=x6bc&IQH+y@_S#og6`hs z;bGusWH_w#B9%d<>8_#EEq>b&x4Oq}l3&l}TZ8&GtM<-qWaM#UII!VOc%0zZGnYGe zcg=tKWs~1;^>b-q3$k+ zmwo*El9TV^GHG^ez1=ZxcfY(ZyY2YCq~7?$YDN#Mx>JD@-^u9z{Z}9T?FUPH!OP2> zrI!<)^Zz?+JvCsdWgth|CfRdL3`@Rm-!FK4Tk_XAoP52W{5SeW_sZ=}qySrH$`BZ!dD~wDmjS!ou()=-1Kz1{|U) zwiXe$^OWC;*B{Fk^EsQ;ouR$F_gd{;zqe-ALHp7~z)z?AEfJi`%T`<)-o&StH6 zv;LsHz(K_W3qyUm`R~~=EuX8mc;7!=b<^Bk7aw;$DV$OQE^}9Sp6|Wi^G=eHrM;nj zdyRodY5D4j_kV3Gsrw@0C(V-7!q6~l$~4`{`>fx2TyqqZk&<^RmsBYJVrcYf_Wf-$ zc^MuxGBnJ3y8o~4#_;uN3LJdSOP2X%V&p3=`cL9L~ z&=ASNu;TWv{2Jeo^Hyw1uc9PmjD(M!UXi_C{5_L1gHkI)!>*g!VJCjc|8clt@Zb5& zRcRSBe*P-Y2YzI!##PC#bTX{!gaMz2n-b}dz_>lan{#KDj;yS{kZ0!~_b< zG98O4T)N`h5%XB)iB1d-pKoqkv-jEQr2jt?k1Y~YV{ex&n-VA<`{n{b&Z1RETZ|An_-2e4_{~2{qSC(UnIFns*r%3&8>HqOZQp*{w)s1Bb5Z(*xyeXZ&dt{+IvnoiVqkogWiJ)ADMjb^HB_?0-3K=yxvYFq`kF zIQ8s_7w796y*U@FmVCVb?Z;%bUG+6OFOPdMIAmP=|Dt`a*7_gv<&S>w{{NY9sed{{L%_>!_O-vSum(l#G?HX@Dd6zQI_RXQ+;hR_ zUjBc(^*^*t1H|Qhe;Eoh2<&<^$vyS%OL_71m%?Ww%=*-un)PMV=jvWN(s@kQ{Ls?w z|6BO$RIFG0`2KeL{XhFv|L)*q$l$C#$`x7qEppQDll|Ip_6i5;Hdh$wSgh#dldOE` zy0P|O$3CN@@zF_#HVQLbu-f)ES9Z_4&+|po-_BZg&-7s8XU5L_0*|-bti2gIju;$` z_pV`H;Ktx^`eirATC1NbnpcWeB{*>K&F1$oX>z`;xxDMu8=o5w7EM)qW9i?f`7i2` zG=nJIx&s#RXN$lD` z?FXAfFGGXJN&7z&*8Kgj-}7VN(LAjQ+qs&bes(M9*v|D(;qSl2M`zhso^W zw)doc%nult7?f6T`NA1l{p)z>d2u`SbF0_0{Z3$Mk6>ZnYwnPB>kEgi@{!i_kJd|G zWLP1{AW*rp`u)_Vhm7bPzWojZ{TBE z?Qh{%wEd3IUdhGlFx$mzmr%Zu~^IW)c!8u8RMcw(+w=S=VxEA+Ia-;lj?dD5fiY)DK1m7Fx zMFhq&L)3cDF4 zo4@jv*2>uMBOBy_GYkqFz4Z5Lyx#Y*H1hAh?;ZEN7yLM(oM)@~-~LGO@kVwdjt?da ze@I_tSfTpM{61)6PBL)yq?(=;z4JsftRFCBTHlx}dL!#~+xzo^?iZ|f{VaYO=w4-P zzvAruyH-2(6h$4x|I7MWdk4wN_TD)=|J&{Se|9G&1nXxoHUxfI(_q&dFyD5=uQ~o6 z|IGIby^M|j{&%I-|Mq7A$;UjZrpHQhH22QAceUryddcn6T=*HzJlU6gCHr{x-PymM znXBx6Uw5hQz-?92{CyhQKVo9?ITDT~uJ~5_eQN0!MhQ>x|8vjp-ywN4-gp%#@DEf} zO?RwiYuxv;_;jhn3yT*H8_VVjdr7QdJ(#Gm*LXqA}ebeen?*jYe{_J+g7xH z&(+}sy-SppfzdfEEXg(rkJdH6cAogM6yLp{5+_1)XiWKilO$muQEB7mw>|y`jEvJf`WPlyD2mi8OEZ|7F)=YMNN4*Zba0mT`U%(jtLCrS{Y~nm z{m&(vKR&X^*mdPf=COXqODzF^OhL-i7#bQZZEcyCi>{g!-0)EJ)8T)U zH%%##E1wg1SWpF2&R72}-Sq2A@X{~WTlOes9_(?>y0j#vXKv%I?RSF8Y+g@J6stdb z16;NyTK?Sg-LKwaX7jzLZx8l8yJ*X_`kbx%wb;U)Cw|EpvoCCXut3enr1(sdpZNb+ zyV8{@$J_QzoOW^gL=}dFify`nD^1?mub!ehSN`XU%*8@nd!K$dRc{^XRsVl>h4ka8 zyAwByFPU_uVe4tiw;np$YZ#|!LZ^Fljf7!+IusK&pnlS)9~{0?Rz$VLr&W7z7zW{%=CVg z+K~qVS+5gTAL;1!_;|esqUXfPpWF;anUi`fK0Z0p@4ouwzJ__+=cZn={~!7J`ZZyx zM`ALY=E`nycblR2&$|9oaG=J&Sr?(+**WL^`CR*dES{yC<*OgupFCAN_3O|1Q!dTU zZ~IhH$i-Ktrroiu@zH%VL!)X_iMybD9x(Cl_2<8fzh*WnpWA)mVl;>HgZHPk*Poc> zttWPMx80`m8&wY~-tkR&5X{oO|08dM)c%!$6Sb~fQ@*_Iv)`)6D;7_-RuBw|`qi># z=fmty>ve8T%~Mm^6ta{e{+K?71lpzDj9RI=dwyR0_%S$=i=%VjnSy^0+a)<(^7Ad7 zbk@PeqwLHL4YB&OkjnX#*=>%D0ttzC(~9o5_U`x*6qvcrRJ5%$exKKz($^9ke}CzS zO15-dI9h+*+fMrEqxF*aA^r$<7JiWM);Qf`xwUY^gO|q4RrSAw*$z$B5@J}S@aSl~ z@jg)5xnNNhbHlZ|GaD~$%Lv@Wrn0E2{@djX=eRmH1s(j6dUsm4Xb$|IjyU73X|BpH>SX%ONe(5{bK)rubybaO<3;`1-pEv#T z_1cPyM&CY9zsN7pbm)Da@bM377W=Kk7yV@Gs((IZWnld(6NWqo1_xKa{P@G)C*CTY z*7N7c&65%nI4(=Gh|2x!zL*>kwfWkM$N5twMC*Im4)Ag?tXOgDD#PEb`uD$=Jbsb< z*j_p}iJ=dDcluY)C+9k{E zF!g^Di&ff=&SyK|$ic8;O=tG1FfG+&{k>Cso0vkXKC*7SzE1Mn{l9M>3p{_2u$e_* zmV_9{YLMa+ard9>edgXXr7*lUa!sdjvbEa9e{DA(T`638AnTEk%$uuc7+MssUXwfi zX#GV73l2sG(UlD6R)zv(TTZ8Y^brI>Q_Ct?PP^?KcJ01wUTjPxQacutSrH zK}%|naDwvn%=Jrh|J^fsrX4Su#xzSg_r44}~D z^lhkfaw^+?H}#C^^^3w6So#*GM_8PmHVwV?yanQK4*Hzqx}b!JuN4sDKaeBbWiO)bAW5rHNQmHY2jX00@jZvCbDaqfQxDTdR^3=39; zEG#un-?gCE@@mM{{7KYXoWhV9O@-QE@&wT%feIerp zp1Q@0Rvr5Fb=h~yTw%N&SWnv50v@1ke~gxgdiWE>i4ga z6?3}xTs^G)Z~5GrPagR*C$O?GggkvBmCclsR&b$~FWUZRxRjI^~IMIB%lj{uIwgefA$dmLC3mrTDym&Byy6q82e0NU$)3g!epq6PfmW zZt9!ZVy9jsIe_=xezYgZ3U338s*#-R{kyr*!`)+ka6kk9?5kdEW1xzUAI`_Rns;-rMGJ z`Rl#X=^v9Hbl+2dbY}BXgL3`Fe6!gOXz6peF|I_Uzu1Mx;iT-1}d`?!($M1D<84PPWKCcJ}y~A{% zp{%^uW_LmS$-nQ+BER2#-?2BzRi{6>q3-$m?)`anYku3k;$iHQeaE`+Pr|SJ?Yu|# zZ`r;vymJZThD)cL6&+0P*)i-YxKf<`mD?uO^Y}ye6F21lui0-uk(Pw4T!(5$bWw}0M21K+Iz7e05#&oGwQy68uB2E&>@ zhK5ydB<8T~n0Wp{La(IqT=jVxvd87rckX^SWnT0@W25&PdyBX7TRXYUFIyFn$8jKS z{qe2YD)rZ8d0cLan;orZ;BB}n$Pf^#xN~zxn3}5W`>N&Tm#t5I{r4#Br2Pj6?{&KC zr>kyyZy9t+tvB+)7Ho7g1WBz ztlv*Lw78!|itWqpzgPUMy^lAtdp)~wcyAmlkN^DM3%^w#XGsMk$+wEtu4qZ_%( z$Bmc+SV5WQ=%m2otEaPD-TRyOKJ3j|&xaHDd*q!I(){~3Kd9=FJTE)b-tPFcV?3F+ z(;K(XU0=87);`6H)~fnCKlj_{ES(-_^6f`^t?%4FiW9fXA92W8AkFan?A^q@3zR^G z6lWaM3bnfz)n2x8FFCw7vuvTt(dqF*zkfbox}#>Nd33`5Z>z3rL`JCCy{s}Myi1LQFb$b+C z*ln3~VSDSNcuw91I{}7(*g1a8E+r<07HjI?6srIK;Cyn|3`b>W?~n3wybb#V83IC` ztr?lNY6;6!?f;zH_5Z+!fIr%c7&o+C7jkY`RaGs?yye}~^8d_1F^8tTi+Z&pS>s>m z1%?;$#tbV?C2}(8E;_&K#mr z$Mp_2hxtExJ6G-L&1W-Bv+R?7+0W9RqOoshP*vT5%Ksw&rCzWdIA?f<;m47DyB|Sk zp6+#ueC^BqTlt`(1d4 zf49B&Rl?_)>7Tv7J@zi!dy@C?V#W<-CX9!~uZrJW+0ZNE5j#a%^U1ICTkCj!f1Ko( zzkbiRS*wNX=S<}h`TxmYe$}b-4Lh%QEnwVW1{zb2*dKQ*>4VK{UVfJL7ZJsGOOw{e zNX~wKJ7;Rw{{8bCUu|aLe_?P|5P9S|6}s0|H)f( zr#ka-{9WIl(aIvlknPUUpkLPawqf?kmInc+lc#-Rjr{r2yXWn%^$~ymeki`%+Hzhg z;^mjeO|t|T9{6uOAmQRLr^#8jf8)1L`d%+zE*JV}yDIeX(fjK=&MKK$E8IBxXg-Un zBEtdk<`xUG*79@Av=EH@?6Sq0Gck^RS8`Elb7X$Iltn z9~@u){MOqkWxT)SW4L-v!HtdGb2PvT#hDoXoc!8ZRL^L!ZRc}|!}j(E7k;=hdDAcB z`S0#$-7+{VTE9P8{PqNa5Ql&+wgXlI3=g_DFXRk}{QB0#t>8ey(dluMraqsOn{qk+ zRYSRn&D(fgl^J3J84PRq85#Cj@Xlj(C^*n?NIL(-smpS zCof0T%=@4yXlG!EkJ`%bpnNbf;bha&?iUx1)?bxe4(hZYlifZ4(fhs6oL|iIzhl(= z_5wo$I}=0A%fC<8PP$bVEm`>CV5#_1174fsXYGGER&ccaeYJYit2M?;zg+4*CcFFo zqxY}3%3gX|x^bp!LA~8hmV&wWAFIgUK@9OEdY_-Cy!gD0_pP$ohZAzz9vIlf{)xB$ z8*=Zb`_rvbm(*+*wy@l;thrzN{3G{DzL@DErkZyDX6&gv<^HtS`23VVmzMIJPnWDopoSN_#46G5c`SW zUL}9W_HC}+OFp+uo*|gwuvbxm&zSG^{}1eu)i0MHeQBJptQq@fZT~#0Eib~gHwfNH zw)Z>DW5RH)pP`}c$-BMRcP~wQr!e>Ud<9u{S(UK1>7f#fDJ(I8<)gIB z8>hgq`08HJy!OP$Q)ZdRui1QFeCj5%zUUwK*Sz>X-$YsAg=EvVzKe5nm_p>47@8^* zmtLM!`~2XgpZC6RvPqb5h+F^EscyX~mo}xk$^CzJ^#1w_&Q3f`PX8~j`C~ITsFUpg zn?ZQD!;8%Ock=5W-(7QZ^3ul_4ln)u;jpS{Wj34o!m7I8){)g`uRe>rwEf(p^`X)G zGOHXq4jMWCzr1EsIumaLuOfp&!LHxCpYJxW+<4tyZ+Z4?mPB5Grr{)G4{qdys-Dk+!|uG*(Jby8pDNI;&IixQ@-Ezzr|m% zd&^Gw;9N;I)wVCY|CPr7?V5P|7vGINKYl;lvYLGFCk zdveS#b+;u1C@r}$efn4XUklg#Klr`JW^ew6FYk&~YyY`EN-;YV*BZNlm!IR^?s_Q( zX%_~ElK44!5+}~wb-pF0H)Y%Qx5_s&FSq@@b0ThsisG9f&#L;b+L7gtxA)9@CvULi z$M12h9+fH@PSM{>SEFD^Z`GVhDtjN!PYV|&+=}g?`rM3TR*5@nS zy|?XS@$0)`Qyv7&v|GNv{A1F~pWok0RSM28dZqR6ul}Vh{bS4Q&TlY#ee;Q-b57V2 z#toe7Q`;B{7oJzUF#Gh2+1Jedhf7*=$ z{;1BDHLAT;V3_Opyfz~GUtW!k{O-_SyqsZHz6=>(eouVToXmMZri%U0nR(Tox93%R zr9Iqt$t*J{Wq$UQ!_IX_UtcPJz4p@Y`~Q!I{7?Hb)!_2{Ut7Zey#Bqf-N5!1{&#x&`?CDf=g;k@H~kLG zndWMCJ>%o|?|)SleoXaRK7Xct`Sh7h$KtN@Fiu(lS}dVke){aadj2o`Ti)*5z2*J3 z*-N(HR4Y4v<;_#BTFd8O_wV#A`hG|CTbJlY>HZBoBK24AnbjC(JN0s>p0!gv&2uzn zUh)6gA8(~`Bs3lT%bcC!tZ*ZD-IlX6b#LyhzH--DfSviEWBI4&^7S!Q?{>O#b=Uh} z{OAVf+1m$A0IpZ%_D^ zbMnom)hW;4sLhNmFI+D9c)xYx$NB%K>}!{sawqt1P|wEq^aY4dlB$iH1JNHG*G1dB5BJJABEP^V9bx#n*iD zJa;*NQkYo1eN$Xo#*2@$zbhR6H+ibpMTQ$HI*bfEM)^Xx}18@H7; zAD9;1Wm+~TBKep{)+3g{#csQ|2PSRZ+L?9QE9=aS#P|ERR86(mx#z~tIo6^3ugzYk zzqTUw&DGUMF?LsR-G(mZ}IER#Bb+o{O0uaZQu7^&^q_>msB<>hS}{53?_~9 zvaXwNEN8>*ie{;=oa$=e#n#qtO$Hc(!xbpoU`|_I;9=#6-1*Q{k zzy4HaCf`2~+Hkxh+Tlh0xzck=ED{1=lKUhk)|zA`i-xl>FdX~T z^*=S7CF;-Lgqa8BPj8yH@b`YuzUrPSv&`;l|GRWE@@vV80R3WXo@tU93^`^XJ1dU< z_YSW-dcQv{?x>!I+8Lz_3^!sxn~5c7eES~#=kF>pp&70#p8w3VTBbEsiNQpWk)grR z%)b#dNvf^s$cLUTQqwUm#IQUzr@GL zmM}eIjX)CyGf74Uheu1d&3?4+^ZuAC4<6~;dF}Z0v0reOtH&oJ=Uuv|ztm3_WMEL4 z75-;`$o1Q$rw9S{FQ^)vS}h6a}nYJOAtPOlfr{`2G1{D_Bl z(-jyG{yuc=oRW#ELdc%Q3Ey2dh)ieTV`5}*cvE@w|Et$WZWT@H_x~2Sp`DY{ZlBSl z%^bdwX)7!k4(b_0&5T&R^2hIem$g`}-$b%BPnUd?)X8?BL4bkb$Tf$L{<%9-Z`PNe z`m@rKUna&u<97~kUf2>w0}B=ghK(U>e`K#ZGoLLx(&54k*AJy1Oc>bO85k7G%*6h$ zZPWZ`mp%7?L%`v=zwA0%^o^%fo~dGLn!1e9Km(*XXzP#c((>1#yJmNsRg&0rW`gYH zpEDE$KvIdl(&}^Lcby80&doHfNiW^oyRO7s$JoSLVaNM_^Jg39o|@g{0CHec_@DLr zu5H_PdtKJY@>zi$PFx(b?}Z+kF8OP}<-Ym*l5f|Gv9vKTD10&#`>z??rvI;*t9w;Y zhZ85qJ?5)b;U8zZawPk=gs2_FdufExWZd_lG~%hfSNWGBuU|PnDY#+2YV&_~57YHfQDp4-N(fC*y!Wm#239XA?ag zI{AJg|K9&a^;6$Owya=bIj(n+L1K~%dqYk1?O#56^Pf1gBqb+*yq`M#;qt%iR~NLM z*U5gW!*sT*bTOlW&BNG~#jJeMyS6;2d*S`bkf|_W>yPUBOMZQCk$)Gq?M2wW(7K>i zpVls9)~mnlTK0JDng6rwKb*Ba<~y%`X0-8^Ub&wg3LZ$0qIW@!-^$WHAAwxw32iw`+W4JW%`6_HA9ngfEX- z79G+47an(a_RZw;eQocSd;QEksnhf}=bOyx?%>Ty+S4VyYAeq%a7^U1Wzd%>=y6EN z(fL>X&UDKU^PSx`Um6xf+Hskk<}tPF|93n``s&GF^&OM!nID`G)@pbb#o!#O^Y5NI zOT?K|wlb%Adi%3GHglLTv}u22RG7L+Zey*mi&Od7X0mJ+r<%W{JvN@FV^C+1DD?c{?Vt`QMWN zlfXD{fBd_LHGkIs7QEjxt&r^g&p|5d;53kqBRaH*u?*D`v30xoeyo# z4w_dUcr}0Wm&lfm_ni|?E%|yg^84#$`*WUm+%CVBcG{hFp|KK!hWoox5k`g#tJ9ML z=l?$xwf#r`s_%ME{2YJzqn_?N6P=b((V^Y5^0#f=`k-t7gFY-i+VO2i^>Y9Dk2JbB zGd83Zb^m{HdfyJS-S6ubFF9KCKJdNCTgJooZk#_2PqVPxKm59G?NmSeNqML5J^Xil zZuY;epXUACeO`w{>FA7qKdN`{dS8BnpCN-Q|JME5=l8eW|F>91{g>~yh3qZ=*m=K8 zsQw8s+MwQKyyJoOIpw9L+4=WV-M(izE|Dy;OnCnM-FjUnh6@W09=-oNKXmW(9aj|( zexLeIDsTJ!CyuLa6N>u{pQN&V|2WToYieHjv{HAw>*dea1#e&2Y@gOMlM#GSNtst% z(f=7nPiHiy-QM%VoO?4zs=UFU*f=`|lQBYMIWuG3|<&<@b`( z|I-W17y_m*=-MyO(vm1|vf**yv`<|7tgAmQNL~7FNuhovPZZOIIsc#UTf@oVu-2^P z_x43UvUQAkelNHxcj5cz^7*%az3J#XdbH*rBiBC3p4%$Z(;OC*Ew-wT>A7Q{X6+W+kLpT8X*hjg5rtCcD? z^LP2x?)h3}{Bgnim#_ZCe?Pq2$EIw7*kRHCX&twDoc)=}IkRJx$Rjln=C_K!86ZAtRS@;7Sp-JX@7wQ*W?R%wfkg2lOPr{#8k z_RaIPEhrazV1I{SeOA>U2i4i)_4{YZ3azr6_i{5w-ofR;@?VY282;4!`tnhD%GdJm z{n0b6*c>dsiq+d6;^VlNthOT3aH`+>lI5S@FAkPJn~=kB;oZ!8wJf}i2cq{ps{fIg zFZw@BBqvRf&DK1+pMCBxj+Tpz4#}DfFU)^Ue!llw;g^e(vwkTtIZc*7JuO7-xA=Ge z@?HNc(=*@BYJYjfJ)kFtNhW9Nsd-lCPQHKguj9OFtxm$aU0wUrepc{beDmy}R=?!- zG}qk`GFMj4-(Niat=i?4{Q(m8%nR;r|J$Q?dz-w#FUEugySnQ)OPF;(xS{&(io1#c zgV~PNt6w{KPq`=G5X_v|GflkSK1ojCj%4@LqfQU=Vn5t1|5?AVkU!9oLE_1~mv`NF zZ?3f$b7J5T=zjD*{Koqi+BWm_ew4gY=Hpt8O-zneSe^)zkI5fR{WdCSJvbNZN zi#JuzqZ=3*}q*srU@`ja9DiK?)%kqkNdK{_IoEe zIq@a?=`uZ_81=SOc;j<*ct<=FM$cI%_$l|H|= z1#SFcZS{4c3rmC6ySa9?T^g^&zF&XJ1@VR%E0_QHE%>})fsE#oTbsV`imz#p{vaOwAyJ9Rffuy( zU!m{UKI<%F3Em@)0Y~rmuV7*6&%L~oKc|f$U@`Az#`GQgee9n9dmiD&5_t90qxazf ziU((l7F>ycafQ9jongi0+Th*Ww_PrpX>qT$#Uhwt;-c>VEBb3|Zak8o{_al{Q`1zx zi!1rBG%#FH(C1k4MC5z_a}Hysj)ttG_xmkaShiodyprFff#HIR{d~LHKQ2rCirT-Z ztkdZTldOE?dD?A$tzWrBzi639LHFNdezo7luRnUbUE=p1h85C`3JlWU_$`jb%2mko zHgkB-IC{U|jkzgU=i*9!mJS91gS{>fmON1?4@;;o-|&2ge7R5++l7=s?SFN=e4Jrg zTldY-wsBl;C&0(#z>)Q7i6z$_ zy?0;0=y>w;wA8ziFW&yPo%_onTaY2i<-Mc9s(?G|GN$heTC~jCN@Iul_t`tPT2D6U ztYhBH68Puu3QdI^jURov_Ablq1aw&%Sbl87kw@>>ru#3qYf$81=-9eMPrt|F#{<>q zn98f?g4{pKYy2pA#k``0p}|Eu@7saehyFdUJ~^#DdjIva@Gjf0j8|G17#6$cRvyg% zxI9?iVKE280fR$vaVtXpyu8AGA%}%wf#2CVwh}=gu7Cj(g8)PRw}jd{C(WlhwmuFw zDxSKn{}Eq!)vPbs-fy{G!v+C{2C)m_c{0jBSDu>o&hz{KkMl)p7!s8k7#I>3m^f2< YZr6+d%zKVjD5waTJZE5FfFGa@0GTW)nE(I) literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/icon.ico b/frontend/src-tauri/icons/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..b058a5591fc91bdd8ef75170ba5648ff7eb3734b GIT binary patch literal 32371 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 literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/icon_orig.png b/frontend/src-tauri/icons/icon_orig.png new file mode 100644 index 0000000000000000000000000000000000000000..5edc6eae26832dfa8d113dc54db899515d7c1fc2 GIT binary patch literal 8860 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 literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/ios/AppIcon-20x20@1x.png b/frontend/src-tauri/icons/ios/AppIcon-20x20@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..b440dda9d99bc2fd80916e53da8229e0ee05f4ea GIT binary patch literal 1052 zcmeAS@N?(olHy`uVBq!ia0y~yU=RUe4mJh`hTcwDUIqr{$DS^ZAr-euL!)y-LPcVq z&-p#WFTE`*b2wS5I+Y)Q6ihCC~W! zCH?%AdSdnU2lIC_|39T=#@X0Q+_?;$i}J6$1J7RYz9)1;;n>{g;<^ez5s*M!4z< z2Ctx)Xy;3%-ZwS0&3%uR#BOBRo@>B#`GrQIVpQsi&@BJ|zoePI#HhaAk;-^f>Bu=d ziQ7s&re;oQm(JMM^BIXP*6`(IZ@-~k5O(eM<$X*iIvbs<=QK>2bZla>fc}0a6O)Pu zA50HO{S~{WZ{K8U+W0EisrrrV?UhDPw#KHc(tMpARR3A`h4cF6r$rMk7B@gpe-O8eLylw0jH^14>^~;lv|$fy zwwQWSR(jED?nkX}3)1qGzdtniVI0l4fB%#nX**Yy_&bF$dqnpfNU`Gm{!8S`y*LT| zcTM{?i@&=g!}b4<>-_x(MNS(jhvl`*J#Rm2;i)qnvG0Bdc5E|SUn0=J!It=?p7r9* z&aW5WA9x{~YH!6N7I5aY=%-(krk+puH9^j<<;?H*3k|-hJJh+T@!tQ({9x@`hMQiI zODA}3S{^U!^87(u*xuZ)v1OYhS=#IyHfEcD`ajR9tKoC~A3nibEbBN8mM%=1=C$ze zQrn7uAC6~y`7IZ0^f<0ekZaM;0Dq{JzcDBLq--W^2q<-VmeK zylvZuwvB=LOj<{GS#`D@+*|Q!_WIT8-;!i*%KIJY)pe}S<#@B$Utz`0nI%DX;y2$- zUDMVbmK?OqX4$%%w@ywzG2f0i`8eN;=-r-eJfBQVx-M#bsr{WOW6QTYpyB+LjeCTg zh40Qe)o_zR#bCKn;|jxXd#g7rTkb8Uc&(^b_Sinfm%smTAM>c`{e5BIQ_VBy@24&; zI6iyftXDm=%*;Cfve<^daM*dq(D(e2AP&vPg<>`z*rMG04d!x-tSB_R^!e0Lja}PH z76q+4-Zo)r)y!p%Rk_$*5Zny@mDcWT;%d7o|ssyutPbne*=1*g+&Zr|+< z&}jMf@D1;cTfE)7_Du3na6DXEStb@atJ2rjw!=l~#+^HV0=Tv7#kWrW$H?&Ic$d^Q SRu%>Z1_n=8KbLh*2~7a0diSpY literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/ios/AppIcon-20x20@2x-1.png b/frontend/src-tauri/icons/ios/AppIcon-20x20@2x-1.png new file mode 100644 index 0000000000000000000000000000000000000000..44ec1c6bc9c2aa28e7e27ed57597dad30a505954 GIT binary patch literal 2433 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 literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/ios/AppIcon-29x29@1x.png b/frontend/src-tauri/icons/ios/AppIcon-29x29@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..df4c10e2f4e173506ed8a23abeaabfb12e64c48f GIT binary patch literal 1679 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 P3=9mOu6{1-oD!M<=i@ZG literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/ios/AppIcon-40x40@1x.png b/frontend/src-tauri/icons/ios/AppIcon-40x40@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..44ec1c6bc9c2aa28e7e27ed57597dad30a505954 GIT binary patch literal 2433 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 literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/ios/AppIcon-40x40@2x.png b/frontend/src-tauri/icons/ios/AppIcon-40x40@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..70f8711ff44113dc022c5cd2e9fdf13def5da1dc GIT binary patch literal 5351 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 literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/ios/AppIcon-40x40@3x.png b/frontend/src-tauri/icons/ios/AppIcon-40x40@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..d1d0ee3683842f5bd8ed37c48ccccece10ad0071 GIT binary patch literal 8295 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

5OWILqq+&Ja#tHj(>&s63FS3jXJebAE zAR+ZLJ7kW^zT2;Nt=so)0*eH%3PanOg`x~qhpyjU?^#-JZ!2l@D4XFyP2uhX7VE?mFPknYK|_KEdx3x9?uSO2W5v+Ls*Vz{frcp;-B-_%*i!D?>7%p1qQ?y{)8 zzfXOQ+>4`$tqtC9*7}F@zIgxTTea@P39=7=zy1C-T2XF8kV04A{@K-|SDDJV@1&<4c`4}Y+j*LA<~-5$p|$fvKi|ExC(dr}K6^t+tzU8b?~4mFwXeF< z9?kUT^`YmV?EbuY{pZ00+ub<}ir)Qh%(o9!_*9V1z;|zb7}x1Po2RuM5f5`%vYB(y z1tx{ROFEx8?qPea=g0iJF1kT>uSsISC6?wbQIj&96gIXvxKC!AW|Lv&H0i+mH(eQ@ zZbp8p%=e!(SN3m>ZH=!$s^`o%yNZ{-c(Ch)z4;EM1v|VNgnbw+!sit8e_qsD+{bcY zf@a#i9FBx={}Yqag3tE~n}2Y%@nD>@_VKR+?5lq?GuCY^%5f}Pu_OCIp6K6zv*)$G zFPs$THT_C^zv++dslTOuJm+Ls9{T&lv{%tz=O)sOaIbkIeM+>;BNtj2QNR&6Kqg!VL2es?aX~(Us&e1 zx$ieJF&qdkSh33f!s7YgTb^J2T{E-dTOr4;%?FDgMmw3tGygd1I`L=a$Kv9|o3$y8 zds*LA&1C%ey~>vR_REU* z_}miP7b$NpJZGQGvadccNajbl%qQ_O*N#gM+w^X~RM_G=r{f+WqJ8^BANBunq{khH))CJ%CP5U-W?2`zyGdufsEt`}3r5Qd*)OgHL zH~ZZB{Psi#ri2qbe2iNp89L{tfFg5p!4ES|Pg-20 z_PBF*KlR%7$KN)_je}3kE;_ANHh+ zW@zeN7T>u%Y0m$@Vm8mFKYwrE=B&-$x9i-zYq?kdGyhfo8@sNe`u^wIo4I-6TT17( zey@Hxg=sf`#H56eO()iLT(^xBouA^m_Hj-kiUr;^4vX zB2k;^&o)&CGZV=PYK(_oF=lIWFmv91Wc~Jo?Y+G6-G4u;_}#l?xMMfN`eud?5q$bW z+{^_Li8e|e3_LTPof&f38hkVJOfNU}&i%8&UcJFR@XbSgw&R|PC$=%{2`KGfb+ce^ zx43hFeC!SZrrOn?ta-n9i@i91&dX@3-)(+Qrqxf<*D@^JHCy)K&a+L{k3T>7yuz_D zFsjxr)Bo>bo!j*$P-+FG_C!-y)$^SNWlhMv(kl|>OWXJx!z~` zZxe9l|GK0HbuppypYK^-xO`{5U8+H1@s(4JHBVjcolE?#A8i=ab?C458o7(7_TRoI zvVEW0rdetXNBYk47S5jiNc!sqHHEo(H#S|E#BSDdAzhpK*U83%Q{_}x7#_IrnbxNo zmt`=5>-CvykDb&iw2@()6R~lA{f0~OaZfJS<^GOYBKq&etI)!#6Hm33rt5hx$-jGu z^`qI8^G)WjZ*PzLU-Noj&WiY)lT5R>$g8{OGtc<1>&{zd{qDWo>)E*+VKQH$4OO`R zyq|1vBL90$dWXgC`WssO(oZs)<<{FPFX~kNe`(~)Z`m;K4^U8yHS4~Gzgv(7d4ME%a%CFz#$ z_IzK&RI#h;JpWOx{j9&gRpm8ax-w={A_%H$`cDX-!B(CZc{ z&pf81Ga3Kh=Vh?yWBuEy_GxmBx-5?^#NCU|GM=z1Z$6Z1#vl{&(|LW#ex2FhK1MSv z6AezE9{r*I?JgJdc@tmU+WKK%^|LgI2iN%zY|5&axVGG0Kj&^5Uuf9obj57(EeWsd z)VW#yKL4}s@w_kk7A77a=Lw${Sdso+-`nWsr^_{Nt!m2`J)bAO{(ETVUd40U6t=8o z&zvzSB->(8ci8B4X^8esnwq?szH_a5@X0#xNi<#x_ zxxS8j^?#>o&yv|87slH0)*xXuWsdSK)4xvKk$!o?*T0*z=hqmSHC!~laXa6i^=E=T_o5v8vbFcz&6fCU z|9yA!`LFhv9SaWr3yD(Py5ztU7mh85zGb&-{b`+7D=+)MoPodgyKU0#V~cOyKBU#q z{F71dUFy^t&vrk%|BFt9`li&rmF?8|aQ}|L{w*pepU?OFbTs|Z`+L6Z9JkJ2U~%y1 zy7}N>%~r-@CI$xO9+m?Fk~WsJE>4~jY3qIS)4i9PyQf?_yOE)1@^^?yNqqhP&7=1$=T6uDKe3ZhFUMT6 zOlZQI@Bd$!78-9B+WT#n%kOHX*RK;@9sZm={_<4A+O;LiT#qh|=9sqm^5RG5L>Ua+ zKCQG{SR0Vsr!q(VLyQHN2LsQ>2>&n1wg)>kjxat>E||4H)bXuB*vBpZ{&9;t_wSF{ zBcb-gT|bNI!PDu^Ob7IJmL2rX;C!*v(SP&2JZ6gGQ?Qf39-L->;l> zn0fym-G7VuRsKEDpQNMTemrzW{!Dd-8@db(za%&;_JG3SOXKloeu>PZb}7;K^1Xkr zJ(S6K@=3~zm*tm@U*3Lgu2S`FrwQYSN8XRtZm%!W;`zTh?s>r1?Q;MBJeRXN_B-oX zhh5&Ue%a`ck4)Jwcm=1MU5t{qPgt;WipI;d!lXLCA?BD-$?ELr&;^f?aR_zR`n|@v>es76s z&-P5lZgH1;|8}{Yf1P|Pj76tb^WWrtm7lNURW^z-W^12#fBk0{1A|21-*ms)b+1)7 zb_=&L^l=F>Fci%DqWy1@-erEqJ^QxSp4)m!KC-naEv$K}YvK7jQ(i2ceu?G4*&J>A z*-7`_E~%bt{^}+FsqH?Cm&-qXvqIK*&8GadjN9THbiZyFWi&Imptrx!`OnhRiSCR) zKO8RMKDc-9m+H6KmV#^sk3NMxJ|Y&NdT$~Fs6J$Pu;)ei%gwJA9aY_1a$^4MS(7H| zzW;yfwUX3_-`Up>aWSO-o|o-(z~5&{C)4V0(T^V3_`J7&eg9-9r`)rBH|L8^unl`- zn0!0EZ1d8!n`dQI|ISuCnD&|J&;S4bh4QtTbrK(}O0HvNl3@QE9(udzOd4;X3uu0w z;X$UU>r` zbzJv5d%=wdkI#pl`_le5^W^JGqJ`%(l@{FdxSic~*qAYar{Z+SvChx46jE6aWPna$ z@b`{ueG~qAF5CaNCY%Ykr)Ex&ul>r~d9NN2` z0wM|{dr2ps!rsLBd{K#2-HqYbC(zi?u26kU+4j-9bf#V!s#r-vrce?exzZ{z_wD;?@9opeXqYD;^de!gG{Kp`7_dyp! z?VO)3^2>YMJk}TQ_+`K2t^z}kQtiCYh5p40*D!#}Ertg=t``^ndu$MSN9*TQFNqK0 zd%uYm=I_%@3jV7fD>QSi@XY!C+W#t_{k8e>y;+p~al!9fWsOUNX4RZlOY}VQnD>Ch zBh`!)(5VKSC$M*i?cIL3X=hgGqMJ7b9_;p>u3GhwwKJ|>S%u-wSLsLUs~+8+Te7Nt z@4UKt!$yV&C$;RZ9m;7aInKZ!A^ot@ps4T3^Aq5p463iJn{td-3e+*GHlHJE^f^Zs(Kz< zn7>DL5hug;3dOZQZcnS5rgGx-|7~*x8ICpC-T!KQ;9KA6=miygGMu0T0!*G%ccgnVqYi{u+@#hU@wlZZ5eb92q_3 zvi(m{28K2%P>9J?UPwCF$oqElcBwPFXG#{Hw^6>>o4(}BRdW-@4}B-X?~Cj=ST9=t zcb8l2{(W^HjJZxSGdy?rSHN@nU+p(VNd|_;$8SzsA^5q&jTLO%wvhcIvMm3%y@_xB z|KjQNrC-eNPkHh6y6d{T0`}(f!~R;!{+*@r_Tzc22@jus;fW7<`H=YuOTT3}$1mHB z_6-{!&e{C5)8)5v7YhS}4HvhZj>3k{ziTblKG4@|TUcjycmJ1X(LukCnO}POPk8bp z-4ELjv;BR_%ye=I^Yid;KT0O8WAKpwp!Zv!p=aGA9){cBRjxg1lT~qY2OZyEA@Ors z&CiRz%~j=r%>T{ri+tZ&u2S`NtHFo!`Z_J5O!u1VxE0>KKK-zS5K*y9!*6{nWU8f>v>YqtF zPI?xew^M(2HC(modA>^3Yu$ks0a8x0P|H~)EYRD9`|yZeQ|f4hDp zcCVU|_2jy>y5GNhE_`(V|9OeH(lr(bF5J!jY#qFdyTP9?o{!=25zF~|r+rqjU;@=c zf1iX_M<2VNy_E6bmn}QIr>j(bi|pL@Z=K8ipYwJ+kLPIqTeDj8QpS?_>EC}bOXw~9 zGXLA}+mo)V`0)vO&-uqBVXSvl)KCd*QUpW3@bBHRAMf_<@Cv=NHCw3Gm-&BwP4J@W z@q#-G9GjVMGb+6Ptnc&V_|4>_jB=mFrvBq&sJb2XLH<|VVVVBsy^IVAIXAdte?=V^ ze!u}L0^B)+|9w5W?(RGO58dnHgv&oKbBV7Fp7Zth{=cP#pSgdThJ9V1F8W_+@4o{E z+FyRPU%p##@3kZ&M?y_x+T72xCOR@PFm!bZ|Lav{$T{`@>+7Ij*UD9@zULp=`(e?E zrQVO!)LpFB8t^-un%eyS_>8-$5rqa(<}aA-*cu8C-TFV#nTdg+sPgK4w!b%*{15WH zbEfCS)YU;%pLI2BzgI{7t#?lO*i^y&EB8YD_St$rmtU8c;B6IU(6f>M@nM>A0z>l2 z+hztqO@JK@FE>ngwQeOEoT?9cC$EC1;+Jgh#Yy3nO# z^WN2)9zEz;_rgT+M)&2z{NLCZ4!n3}e^#|~v!q9-nC+y0eHs#JDhv!g+iQ02XZ`Yv zN!;&?y4sQ0ooW}o^*z7z?w|U?`o8G*Gsc+@@`eB9x-%qmGP^&Omqi{--@df0>*7>nJbuax>HAYI-LKQu`9FPT=EN}LSlIy0`TxGvty#kSuFx(_W{Kkd)9p>S z3N^kwKgi7hTJFQpGu@_RyItMwNB+&fJy!qOwsn5>cj;LSKiqb`sjrHv**sH?K_^gP z>W+5}g%3Bmw5T#X$_W>Us%KzOZU7z7D5Uj&Y6DOVOTP|df_K94k6ug$*K*VyIRAgQ zVeMl81*>zN)BU&0rq;iHy|*sbE50_^>;BJqF7f|&b>x0dk54|yXualByv#55gqkOv zjMguGZTy)Tj)@sFxN(Edlsg!=#p|ibkL$`T|L^~|)~tPPEwuMf*NI0-5?n7n>Ha(Q zw3*=n=iUc%e{LxblVMmz=;AUHiiQ?BqXY&%B$nfFOErao#Y(< zEK<^-1!R(Mv+aMW8}8@r)R*S}TRUanZ`;E4b*i@W^UW^3s{dHcpy1E)>^4KtPbP!5 zH#7A+lM6j_4hL9xN`VvAvOS;HAKZWaRsEMcpM(C@|J}>>|GxOnpKDsCn^-U0-c|px z+U=KC;?aYXf3|bE`O5vdoyd7;NBIRI28IIy%8U#NTVz6iZhsK3{r}?j{o3!Qh98~2 zXv?Sh`rn@~kvp)UPDsHsz4^=ZBYnR`nG@bDxy?{u3mWWTa62tH_5Z2+|C^`m`y4w_ zJnqVa{Zs1Zsxr1b_+t|foJ=kPx;Nea#rtOQIhiXesH0?lPdp7OTsi9tluuZ?HBjuf9zWS`%c-b#Rx`(A&Jq9o8+v}CoD2+ykHj~ zz52VG&o7;SdHw6^%_08{l_ClYZvA&)WZ>DbJgIgs=gjjF-MafOPd&2D$`I0Z&?@xO1b$yqQUswKCzGut=f0!*a)!D5XmZTrJ zS?p0C%@D=N(9^E-cuq^=3frcCf{siK2MRV`UlioI2?2CpG$nbd&);AsUOd6f_F38v?M*X@Bg`W>Iq|Jh656xBK1@2MMc~gL1Cd7|LgwC z4*#UWsF(Wt|9I_s^S{^JbzPjVeLgc|5E6dvT$w+2+LgzJSkNkL#Ek(#04KY)EEhX!x9)@M?c_#Do{w?>)Y3zc2LtPZ$OL-QZZve|rhmH4F>|c295rjf}5fJdf@F`aN0~ z&HsnZ;r+Y2M3eVV^x2Y922KWse(m*NzH9%>)Nbgm$YV5U+a#wM%`xFfXS(SXP;cr% z%_(7qZEN;l7TsCny6F9Xhehw};_p0Kv?ERK$8`R-QpN)-i**Sjf+eS4{A=b7eqe2&$oJC>`tYn>-Q;MyuMHG-OcAmzM3cotbb`7q3SEda3J$k zn6RbvpY+>(ZMh7ssv8)NO|t!~YWO+8ja8e0VUGRH3-m@FMg3 zLNjOiwf~E3QUGnv=R7^XKZ21Vp{LcBLFwbU!bhfD9t;c?_BtD`d(FNs{4S#^%Io?% zZ%^j`FRorc61#I&o$ria^K0L(oYPx9Z42WLe)k9b3=)!C7#J+%Ki&IpA$I+32PiV< zmaG0ccE4+PneN{^3m+OUFLgV2ZyUqAb{0hj2`;t8jUdVH zf#HBh0xLtqa{bxA9rSA!+kdk!>!Uos z-zzK8vi*1UkI5~*h{}eC>E9njyg%NVF7Cka_^jKa0^J_Ab88rFWPdu?zh0ZW{peYJ zk1t=#4<%|dF1dP%#o>=j+rNiCc?pU!hc?`AW}dIMxu#yUH`$T5VPo?7n!e8)CxY%s z^Y=GnxG?qfqjmQMzF)how0`eAz3nl9gSRBy2H~Z6%_{kGJZ*V&7*vr^6yC!0DZ_cZ-J!*_6n!v4?bJO-th!DHk z_WSIaj_P-no%gD&*D!6E%D6A^dit`WU0w_p+i%1s+T_JaGt7`X@}J?D?~|DNe=FVo z_Z|5T&cAP3mj2&6fuUgY=122t{T7+u7b|}(Iq~GmoLBZIQ+e3KWP0{(cw_3%z~S%D za7;qqQMp-2x?ywRo4@&HN6((|`tt3%>aSbYN}stG${yIpyyO$VOsgb&`l%#tPKQ;KFU-i+oGtW-@;-Nh|_Lw%T{C~jG@R>H>uc!5Y z*V~rgJos6dA%SHB6T^YYQ}zG8FZuGva^j0cVgK&exqHP|hc7znT6oikVcI|D=cjM1 zx8O+quaX;mN_fgk(aHZ$GBEJSg3|Gx9M%Tb-+6V8!VLM|UyeyXTBhcj^J+iq|FVEs z=3`fW-VQyO{{LgA{u+iI&$SsCB(y-s$Mgny#w^vkxHbDxTvglgMK5YzD8flm`Pth0&+Px@+I%tNv>*e13oLuUR{^!@oSvskK zzEv&!!Jm-RYP@v=(*gCq1@$JNn0&eUVPxb~`&n}*Uz(lo`Eu=cm09zzpSF6r=~hrk zL{_!@JRReP&FRKWhyK{t>V5W{W5?h6Tzg(W1H<8N7KR3OrIxRODi>Q_JL76R7p2d? zoGw#)Ds$_l?SWqe>^&@=vwaY$$gc6dJ?&S-E|!Ep8<-Eg03B-ayw-o z&74{CdjIO{N6wz>+P;n9^Mt+s-|5_DjVNSLI5F@1Bb8de)AP4i)G;vd7^X2WSjhe? zs=NK|{Hi}@f8IY02MwagA4~zoy*M2)+&S>#viv#E+(e$@8=o*kW>6U(f9`R1g2xNnhol(FESNKr#vbNzZxhC}rXk9&frf|lE4eXnbdsh6@vPrOD zXEShnqj`Q>&-X8t1`9ik!6~lhTT?=H>i4A1b>}*(|E_+t@0Xj^Py6?O`(IdC*_(@N z^EC(;y5C>Um>_fG^4!b+Z%WR2{Hd8d6p{xJtz&hzfUksTpI z;cLB0UT$(RpC?%U)6441`hET%?B9JC3X@5&c)#-|PeWW)izLHBzGI=x2~TdGF7u4v zf7?^Y$_BJEY0|vcU+vFV-n{^78eF_tTyH1i-CWQ8>+advneX@S^-wXqE_m*roo7v3 z@J{8_NjV$~?rz*s&nTgs$l5UP@zyUhdgq)G`qB?-%*y%3UG=}j(y+TC@XqS>UDdAr zHzf=AuB))le0G#6ePO`Y^2(O7oCRff)Y-zccRnzwO9*?a`Nt_K%>m@#T^l_i)K3HLR(PRS0i}`az*mnH0y26j-trb|0f6SD)CgZy>lmLmzDzmjEcqsp0c7ho;Chm$PjzI)yv#VbakXX4Ax;d>3X2PF&ZTn>*9T@5S>~ijE4Rwb7d0+AmM1FBQ7SpMQGlhpmd9 z0zzVe+q@L~c~TsoJUDr|l3(L^Cj$fj z`Clt0>rA+`AU>|nwLjc7?b6f#ia#{N?Bu2OEtFOHSFtg#+HhyzoUre2?L?Y>FZ*#- zwA1{W>dkv%H*brcy!R{CcGlSsrPF#omEAwx{Kn$ss!z;QZ#%E%;kuY>&l#A(xM7LI zH70>Dg&X&maWZXR;kmxmwNp&o)r9exxPHfr-%Gp2zrJlPn5oJ-XX}YCF}H-2kFVvk z*gKWc|J_5oG;O|`f9FftS6e-La3Op zxjsF=y!_DbeOLWfZ?3$gd8+M0t0d!3K9N@4JHHP9V*77rIV0Ne#$)|R*87tfghLCZ z{`@|w^I`sM@p?sHh9BM2FP+b1IuMn-Xk`hj<1N1l+r%xRbsubcIP>P5rn=t^Jb!v0 zznHVeLStDwUsO<6y#hnezCSxJ^tsIE&V)?l&57BUa*Ih^`k%S6^2MpzFF)+Rd9%dz zfUxAh@@wjMLw@;vfAxiZ@|C9xZsi}`usviF>+jjoO67T-cm4)dojxt~A;0VXEgtXR zho7(Q%F|}5YBginJu`=M-}y8ak?Oaff4?sL{&=z8IcD4VSM0T!G4J?S9hw!fA(VaN zKiiY<;%0q0b&F}zE0Y1dbZE^4%RW2RP31pSskXyGh|58maf*H|2KI2oefw%_!-P2WeRfXOu zKJWeIlDE*_A3+(49QNv4WRJ9mvp%twn7~q@#JASMV~PF#CH0kc(Hnvo4oE2dx2ytn zc4yX1s*>2YEYy$p*`nvB4VCX&FWi2!wmte-^~+B;wE4bnPJL%)a$aw9<{xS4sEhZx zPyd=6yk``i6ltx{hX zul;YkDd&c{c^8*AZsh&T-MD|r)Gr0TPYzxSR2O~z&}H$A28}#bixn5H%RiHy;`MU- zO|ACc(!#I1ROZ*Kom_AFV7n|!Tt(ob>G2a^ES;{p>ENtwyoq6re4H(h-Z2U~o1K5P z@ex073roYtiTsRP!q@lNv2Ww%Wcc;3U7VAFL47)Z)y7wE9xV#fUEi^p^F>)+Obla# z;V%D_|0lPd<<8Gdh}XWm@BI38%dY<0zh}N0!y6;%2kFKtIv=)gYv^2A65jb(>+kbF zhJ|bXSe}Kivi0MC<$oT9%HOcZ{LUnKvBg3&H2e}y5{*Q2)wXoi~pM{};UHi+w z=nwK|&o3ACdL6w@Ydvd;^UwEIkMEmzY4g>XZCJO)ezQz#>VHq?=KuP3)1Q2QpZWAZ zv*)yFn{t1D+w}7P)n=}3wd=KY*2^u`dR=Ip^h7jux9XdZ$(~HJHgU6V9sCkyZ-(Rwh(t-!!ys-UA8?I7Tw&5 z-se7ioyKzFc439iyrx5aeD^lLl0Oh}dOq7sMuR`#C^GnK&o}ws+^}lz^LKdMBX|=S z-B-FCDAdc}9{jJe)${+l7~kpt_4U2~oSyIfXZC%MPd}G0jFPp>U(K|su_5S=6#w`A zb(0$_IVO6itKDe-{afh2>Rr!+nM`_Bufg+LUitepC#o_=t^F6){6?gJi+|offddw~ zrJH_=+MH)(Xp;doNS>ibikCLSLx7`l;f4nnv#aq3LS=mqjb9?^# z!QNT_OKU| z+`rydd}OWliSu}F81W$gdUfGZ*8cPE`)r-MTklS{Ol2}S_Q^NEqlM2t?kt0hzK-*@ z$@fd-i>2+Jt&0)eZZKc(^|@)%^526TZkQ{5Qn;kGFzl=Up0MBhC;W)7S2Cww*B4je|>k_>$sh93_X@{-r&aB_lK9>o~n`A_J8vO`(0J0YmIIh zy?<1c+GFO;5P50&%}GD5>2}tC{9K?CUo$W4cY6Be?X6~vbDENbj{5D{#I>LI{*g zIR7>=P6h_|)7Ps~Pj}osv&O|d&m*PzxLVik|FZv?K5U7TvWT@mt9`lsw$-Hv_r(^e z$KRXwB>rDy)&75}5?=( zc-{Y1W+naLr}&XjwJ+bYzm+FXxb*l8tHko#rn*0?=lL@97+U{*y??%n-Mf;Q^_M5E z%H{NBO30YVz)-NK=GT6<@;oQz1KHP)+zgEP=l}nI$0_akQ9t|FY`UN2RrK7?>ce~c zdeu1Qa|ZkewEj2$eO9q)dv{8wdG_%YeoLIKUYG9m&Fg;i_T}TP>Z-Pm#lOF9h+Qx{ zUclaX@;$eoW<54({sp1G3!dya#n5By%V3eM-`#!tXOafkb{)n9#(A5U9uNDwzfgJZ zzx?Uq&HvRa%l=Ggd>T1_d4JB0?CrZ%8NS?gX+Hg~f6b@=+Ma7ZiKVf_3w$xtQ9{`$Ge!ByXKf4FyFWG`2DWkMXoNBne6VXKA8B7spq1yw$7#xFCRXA zshiHk@L&qaYMa$M&zw(ex%5IWp3^gtyT2kzdTAh4ma=c06etE8M_WqSYh zIP?1#W*&d9Q2xQf>0kOEbnr*RTx%W>mc za=PfB`Cq%wTCBG?@!fX&y-%-}sA!*lRR1fuv;Loa)X#X{@2wvm-A_LCf9Is_2|r5o z8gir4JsJMD-*3-lUTj^ybMBP1DZtzQe7BKg2*-=ocQe~dr%FXaZMwH|KH+6D$=KS8DUFGA`b@{>l z-zi(B^Y%aPYCd%7|AziQ*QTk||7cd(|8J>E`FlB^iSPA)s{gQ`{^|C{`2rrdOD5^> z7x}-qUTFUwm8Jhb#V`GG?e-(RI3HoQ#B=Utzi%B+uf08Q`|hA`KfWg(Z%ryVbd$^&&UdFa3Rfv;MDw z6Z!Jo&)$}8K2TR5|7Wef%C@Nt*O(UcKYp=wy+_HoiXu zTQb}_&x~L8zrUkqX}fCqny4Jx$MSzd ztLlHu{W10F7NwlMj{;r3)<@*W3zuxGu9cd$ zK6dh_tJyEF6+GVKQW3)AQ}g}ihy5P;_fyiXb^iL-t>Aez+%4f& zzkP4x-AO+l^B*;TC6t@*`7-+cv`g3T32xu8z_V%DkGSxdokp|zKR^EG`E$nq3rwni zm#(v$&G-N`k6p~eD8sA5z;H)<4#RTq_SmgT7hAa>dTbHOxqRgCk_w*vIWPB54)XY> zvfEnd{yybS-#_uO7sEMt8FHVu*SuqH`@L=3;c4HagO=YFTlwC5&GynuFTV&^FI~S! zZ=xFGoijOAH!aq&OekS>_#to1z@YGS&Uqt-7;)!57KVoE*5bJ7-+29fJLks>*qe(p zIi@!zh-_p^P{~W@=E%LhW0K0&Sx4sADee7!e|kmn=LP<=4%C0i`<(N0nQFzHz56%m zoUAWfnyzhEwr%N`x$nDn7llp=)0Ww$edLGjz1XTR|L<rCQ%J%I`zcl~XdN*_SBkSCcYwuO8VL2fu{?e<{ z!p2NxHsgf2{KbFIvonCs2W8;<63&qE_4KO$+}%PiAAWjefBK-ia~$Kg&i7F_ziy4P z`dFVE>TpG-wn#ypuFoN^J zrmOlliyw0Q_hx)>WCo*wkp}~V$5a0o+rCb%&Cq5L6FZc+nsJXm9}^qTb{oco?Wue9 zPKwX>{`50FQ%T{J+8?1G{pV{F3zoX?);)P#-urqR^Sd`5Kjr^9-uZmKyTl~&O7#b? zhQQs=KX@=Si0p=}ZsHROV`#~IDE8;P{*ucNBKhp3J~f=ri?{uAEp5iH`8D4Y1!_UKjY(h^Ozcw>5FfhH3 zz0|FmCU@mR_YTm>HQsTDc^X!oX!U-iALo_MpmOq|1EX`T^mFG2HH#HDhW(#>-cC6F zzP~W@&7y*yo3%>*d^Zz48EUgvJMa4cyWaDA`+uFf%E;CKrxyJGQ274F?+)w7k2zx% zt89-vnzX~7<-+baMGO+o-)0Gv-@5d=MCDxii3APMUcAN})`soE_q`(LY-P~VTVne# zGQi=3z0&s0cjuj*rV<@JY0bKp?TxC{Je&<5gZG?$TbIzd?=16=AB#5#9a!~$n~=h; zk3KhK6?j>E2gi;oHrRY;lt})yE{2w>P+?jwdZd){kPtJG(Wfdx`SRwdE=jtX$RMP zzkYLauJxtA%m1rx+N?bF|3`b(s-IIo{B+?DuW~xitzL7-zB669TJFok`_tdnE!y82 z9L?Y%_=ewHh=GBx$(%m2M! zT8@L_5l+61PSy*88f0+*BgD)OAtOstbQdzw^@kjg(p$X!p zJonOlA~+ZH*RK6?+}r!o&xiJ&JHxCaI2C?+H3aYDpZoOh#}mhG)ORs7Ty$n)aM0ow zn9JHU`Dw|m?@vNj{99hTA;xuafpqi-dA7fqN3X44->MvvpL@=Ep2~t(orh}GIJ6m0 zC8|2S-|Tseir<3_YOBt@+vxMJ`x>aN+E^qT4sD zQ2%T8C!dG;&~ni|HZNaW<}+?^Sa(-!|2D0p_I>ixDmQie%@^(&u1;fzz|gV)ZCxp z%(*33lWbppuT14RytYDmTa;3C^rP+DFDImDbv=+jetN!q&QgzULJI%h1b-}>9~CoY zlPcT1O1C3ne7vu{8Xn!3YFn7*{%^wrO@RXvmx~?Kn*%4S>`WJD;F&IXdpG+5<&*w3 zxxe;@HQl{ZQWX(;V_NTLm-@2phbLQf+277PUFN+fEbs5Tz8_V#KGyHw^Bu_T{mps% z@z+bgyX@>$yuB~|y=d?K{kXlz{#{CXx9tqput+@n9aOQ0!_mIsW7&(!JKl@V|KF%q z;mN>b9>&1nk?Q~KUQ^v_w%ds(8E*4w-(}@Ke5T2$_Tx9H89&{eC*8ffVKcMsxeAT; zG^Q8DuA67R<4e$Hc=r6TXY1~=T8nTd5&sPSvxgtJh%+1tUXxc?Nn~XL?L*exK zGul>-+WBaf_VyV{q^*`LU6S!6ETesSuNs zy{RnULe>P6CyYIE=h*&T&3g3h`{gHoJE!FRK9SqgzSn7=$3=Aoo8pErM3?IEWLcz`|B>3svT>l-wwWcMEU;qHp(W0s>t+8u)$(*0Lb3&6Q-`Xd))kI?R!`w3r z2OghzZ++9jbN-P@cYZnTvj3C*^6%=kED@)}n5G;OI8|I9zxjAG>%VW?pVjMI8ZjjI zMIC$rTBXtx_Ur4C>)ZZyZ;488-~0aUl6mQWABu0{)0_JsdpE<2#P_=sU!OkqGbDy{ zf#=c@4v;Tryo7*^ZIWdM;KE}eefi?pc`zhHj)j7OP_bxz5E&@ zvzZ&R`szUXZiXF2kzU2c4<{7;TzQ5;LOgxjtpickhaSw+_>%p*%=<_iBcED%h2!zZ zC&IZ?t=oU(`A^c{H{o9Yf7eIS-*kXLE=Vgd#<4RO@}pqRBTW2g|YBV-7;+^+wW~Gx2OH@|CPgTqx$#l z=S^1`&MrGLzgBB*{qN3_y06}zW#z7)a^229_Gz%uOxvCEqpqs<1C#&+vo7}-}lwMlT&f%Q_I4$EE|5$X8XJM`+t>tZ9RH%6E?-> zt!Bu%u|kzo=R)1A$xGQM3sgEy(Gq9)a#N3?FP5QAj+23bU1!C1#<-_m3;+MGi+_JE zFEVGFucF*{uaZ`2>58E8t%s7YMlr6rw12bmzh-`wiwEp4K1up=ZnqM*xQkV;trfd< zsLWU6d2Dh@3K4p$;`Pl^#y;`>_&CX`G$$2 z%Bz1w|33Mw?a2QBu`@UoK64AzmIlRa)v8NU`a5s=*4HNlHyhN{bBCNOXYASj;Z4T* z_PrKc1dNyyc7S@y1&i{g)=OV1jhkM+@zDdr_4^Om_lb&HaQ~EPSfhGi`)wh8-OiBz zB5jOax%@vqoqn`z*`-jXZPpE{?B}Ws7TC}DGX31CFAv{;yxGHasGi~Rs{d~?&QHGE z*Zs9}77OSMONO4^Z#-?jlteD|o6Mkhsy(*%qwpV%brvUtY`0xqeA%V{ys+(_36FW+ zl`C%Ozx*n2&l=B$`+w5wpLu+F)SY=daA(br>T^*uroH@C@4So4A%cM+Va-!*hL}bF zJ%!wvzk(sy<~IWdNW z^OM_NC!PQW)DEK@PloB?ZO8w1Svvb?9d%r|NRnywqWX_hnZ=~)YHyW43d z@thZOygvO*e>rXOHfx8aN*8-)|Jvt0nN_cU&v_%x3AS-gX-e7g6;Z1N86Ie!*8cl* zbK#=%on;WO#1`sTaR2k3>ZCe@=fKP=A#J`lYCT*xS$FrEKKQhabvA44H>Y{wQ7ivF z_BeJb_8l7EDl>{l?dT$=x!f8V{P4=-|>^XJ=&#cW^guK!n>$CH5} zS)=}0_v9nx)v>i%Zzi!wfbNZwd3RBFy2V9V)xV+)c0J~wmuk%25jU5E`G&`r2R=`o z84nlxMhXXP{INII)9#N$m6^x|z2CR4AC28Jqb_%MZJFqgBqp6db8p_)TEoC#aPN@u zg712MH5~tDG8)_gHM=84Z+}anCI$w}=Q7EG?x3Zd?8XdQ zPd9Ko%wW85pIKU2F@D{0$IvYX^3x)Zn=v~uuiNmNxl?Y=(hq+orA+?+)pGeh{kmG; zN#Fl#?A4zBby3%pxJuJAt2jEfqd5!IoEf|A?~C)v$ulIZW~eZesRON3n$G?+EcNo_ zyp>^_L>V5}9qpO0=TX*fh8xqer>}20e2@R|jWzPKrt4U3Pz7<`=)iRZabhxoK!Bs<-$lv;W_J znVk(9cY9UhVkd&?-jDnLyZm|PHfznM1N*OAZ~eW}`k6(=t>X533VY>?Qt;SIk)iGM~}tF}$p4Hf1CGpxUeWK7)ueU2iZWf%j4 z#SJw*ze5-6cP-bi`I7hC=EA02hV?PN{I|s}=zUJ9E8uHM2@z`g^W$9Z%Rj&Odw!q3 ze?m&R`Q3wup0Un(7kgtFik9`Sx$sOj^xwC~U$_r;ISh2bm}4x92FVWWD?Q_od&T ze?R(~T>f&Ci`ii({(MjEWkSsjjsFmaB>DRB)`0HPs6PHDBI?uK7%WuUQL0& z{14l^8=LPNgoU3EI6ck#cK7zp&e|(4em?JA@_pS8eLLa(8z=HMJV`qm9LBMucDweb zy}JJv_p9uy@KoBX^XrxLqqOwH23i}>Pxo3bF=w~VzwfiSdk;VSoEy|#FU`;+XeCMB!+{;z^9qt+=lF!pEdEbaE+uGz7N!6CdLdr+ z*E(Ix4=%q}HMZ}c-}ZaqS|*LDN6M{)?(fsx`~T0@FaJJNdzO_Q%4zse`Pt(8%|Frn z{k!cR88Ju%f0J458E#!)Fh`lk6x^oVVSiGsz`M-pPlf*nkT1HLg9THy8LMK!+u}dX za>>pXs{b?5W9_uM-mjsXkMKWlR9*VzU&i78OSY+l1{!U5|9PaUdG?&AiRH!lSMJw; zs=A>*|KPgm1}p~Ay3TA23wd|Od75DGz_V2$o=bY(kAKN6xeSawo9iM^uyK@IO)9ySIK!Y#oRfiJ zY7m-TJsq zp$yl!0@io$uMVGd|9{-0^!dW+&W!70g)g>*d9d90YhKl1=)SO8;cdPzJO8p){rPXZ zoL=xJ+`0KVVTx#1mo`HLuR#r{(nkP!3teMU={;AZG=9{r*oyU9i|5AF|f4BeFyI4GnC&ScrR_~VF z1Fq`-c5dVDI$gI-x6t>?-wk)C@@!%F5W&!3$Hv4bFT`+Q$LsHVZVBDCu(dcS+kD%0 zb=kM7#9h05&U<{hb~|X*+s^%8TS4Rfr>1VX#WhE~lIg&+kQ?V1-flZ0Un}u$`Ma63 zh0dPom_1W$<}APW_dD%xI$YlHc7Ym$n%a@6r(V8e5|mbDbU1g8Cs!xSsG#ozSHnYR zCI*S>cL{6`+b6R%|1>K|DLsE%xAc^~!Kq)%Og~&?X{b(gOG%EM^!mEW&T4h;c{}(Y z%;5^H-ur)B)T}MLR8Q*HuM>ZHJb#~R-p3}p`A2`%lpR{wu+4OtD#M~lYGPm3s);Gp z>hNm^Z$S^Hh7`qWkwn56n$rbr1?;=ul()b8OZR>+P;zo_`Zw^z%C7ff*aq9oGK&ZSk>> z1$2TjL(lFtm-21bZ`0qCzjd?R?GK*o<`)X2-e!9BRxWmr%2fG3*GpC(u=QoC`PKR3 zgy#}ZhWY$#Ea#dJeXA+EzeQI^*f-*<-9HQ82+7%x{u`W6{&`A0ns=%FX>+MxcO=qR zbKDRUK2Y&!X8x85pk{X(!;Q|8MeY_apK8{BdCJ(Y%J8M&^5sWyHJ+!WeyEh^bzb=n zTHO`DUY>{b3yYHl`zIEMc`O^=u6$Eh_5HL-=gjTqbAMFo+_$>W9?CGyrQqh8#(&Ql z6MQU1BOM*MS$O_Q=czC-EIHJqN@MS!OHiU_V)$^8E(Jt{Vq_xF1D;NX{D4UaZuJjm2iTdd<5dhu1g=IzC|=9XAbZdCpE zt@w~0)1Bjt42waFj+piCe!hEC!NFSVX*1Vs{dc?_7k9ty-pzDG$k*Td%d==jL6NoV zy!Py0Ka;_i$8`3~>rn+qycp)FSIy@U{e4*?Vb)oe2X=f6n(q$_Ficl5G=@w*uY9w_ z(&td#c9l!cUY8&7t1|fgE}!>t|HSL7+3&M|@!~S?W(^Y8>#BaM4c-s?vPAXghvt&{ zQt2sa?OS;_2r)c&mD@7^+j$m-8|$?7t`##%Z<{seTe0pr&{q2PGUg454fnQPy`;=i z$x{BfJbpv&`8A?P@_u`RH+6H|{5MaHT}Ybi#)|IjQwNPQS1qyd{~ph9;N|7#*N+^Z z#qJ@a%>cTqi=mOXWMk%gu^&gj?s6$Rb8gw~oL(=X22pnPoytoZYfrqZE({J1s(Yzg zcy-l}EZ04CI`98`F4-oY#?&&E=_Vf&14F_T!+-gp#p4q;J^lY}%euz+OYc0^xTpM1 zy8SKx+s{MOq9y+RcJg4z2zZ~P*TVL9>GS#1y(Bm!J@0g@{(QkaaqnJ}AKO&|EvqdT zYB4YzII+?AzzMJa^BMyVgC-N0D<7mYGwhcAwOju8FPq2rpZovpzka|@=kw;3|F5o^ zl5e;AW4(&)+F#$*)K!1p%|Du--_GJ_@#f#52PO;*Zf@Hwvt}?!9Nk!K=*-YA%gMm- z_tidrX9nR;tK808Zw1c$e8k`o#@NHZdnUIwr zy8YU^P3S-r$D8aH7X}7~!(PmP|9Qq+=xV6_GTh?9@W=km-}Y)5&q>cXXS=(+YEkkC zc)dvPtkBwJ%d5-E(#rGS@2sBpcc1;2Z+YeUWohnP-mTNSxpei3MQV&fEnzbSAEu|t z&68ws6q3@s7hfKtHo-wi^5MgG-)1o}XjmQHd@*g(jHaWNwk}Ug+vc2Rcb7iEcl^zz zYOjv{Jq#}e4zkr*ly#h`em~i=Xv&Mn{ThGo=4BYq-rsIibY(m#`RVMG;~m0`P0H>XQ_LE_ zS}nD4yL6DzOU`adN#3;M=l1l8Kh9=8vE!2i56H}2LY~Z5Y84kb?v~aPGw6M9%VebIiHPP)23p=izA#~{c_5W)}Q@gu+%(1$m(ayn>#X* za`D?XKH9@>v(0C9Hp3z&(6Q8hi)EP-B2V}Gp6OGP_UA}xS zLO5TaiQ&L!4xX6`#*b2EJXt!gOqQ_rx%m5iaLGT>Mb_Ijetxsgs{6`nTED|pMUzoU zN~Eji$u71hix~w(L6KY{b}ZsCOZ6L`-4dWkHVb;-duW$ResyN2ymZQu1)C#hJ1|_6 zH16t|ty1{do#%Ve%rg&_MK%Z|^vNuHa6#hcM8QRe-8E}}9B^gs5ZJKi$}5Y7hZ@D1 z|7;ZN0D0iRz62Qy!B{?!yQO-pXZe1+a_;lS6LC?7r<`*CU+NOO!6@K#&HJ#Lv~bda z-QBA%GF&n|aP5`L`aMp9-HZ>d-%qOjHN~}|eM-%LS=IY>&L_`GyL5L;`8qh>{JXEm zv{GN!W`~~(1Ng-04a*~L?%4TNT+2b6nUR6v!m;hu$%nl^?TR&Th~#2ppY!p3uOY)V zWqqF1xlASN6>6JTn;IQf7V$Xu|B}(oPEIa9*+mIo8tj(&%LQB6uQ%0Ll98az<*LN> zj{M8!-#QFBSrZS2 zEp+%9D=+!r{$^2Gh5rIs;G_8&_HcmX#E!|KM?3Sjnf>#=9|D0JXZ-a^i&13f+0*go z$B9?WCl-HYYAE5AkW(xEVQ|{ZZL#l}kHS;#>^#hLfOAv7T-GcHE9=)vOe(6Wl`~lz zQx`2&-SnyM(|M0u4V+=_>}$fU7nmMX1Ro6@?a0lL@c;T(i0@`?UaNS$(5JEGf4233 zh{a4%_pa*A{UcboAz%HT?XO=9c2*AO`j>E?xS=JcVNur8G*NJqxc;uPDcql@*v(ur z!h ze)6cT7F94+?{Q(1vG+UpLgV5mSF<0pMLe|*{9#%;x!=@DVeSlts!tJ%nN_?TUU9Av zPlmGvj2|;+){!ICNe0orA%b{R2}8*@K5)rxX*)@Sqy^UyvW@t9BVJg zc;PN6g13D9`8O$}bK;jLoyKd96bL!{99r?Y_+Q*|ri6o)im|eV8?Gt)M^1kD#`tFl z<73xVSAq^KYOp+X`bMLm*}L;Qm>PA$IxD8?=>`5O>2hVVo9827J6A<0(SfDuBd0o7 z2Zutkt$gbTpXrTn>^ndqec`=C^5#;>oeN@lK!rh8jmEYLzomQ!{>aQc>T2}Ja_R(q zpPvcakKd0<(dpW#7s&Y2X^N7U=iY`OPiw9f5B2V9skAP=xFjWOmTQBjdeX&hCIi2aCSTFcS+=DwkwRYIGdY8Y{+%%Qzrb3DE|GE-pha-;Zyc75Ck&CQt2xWP8lY`OlQEiLEPM3oR zn^V}?JN@RJ31XZjlDY7Jt5PRl#jh!|g3J?wSemv9GWkyDQ=ZGVh-rW2i+{dr6$LB| z&nSV;op-2DC{13GWFyj`2daV|M6NmAdoAnDBgI-HPm`Z58E*=9H$+`)mu-lBUg_kl z)mCP0b%6KomDabbH``?kMy%iX(C)%2#RY7&XZD+0uNGu7Iq0^(Ctr+V$&3XY3@_jC z+&tII_!;{|C@Oxt)*OV2&zaCmX>w+UH} z2Not8F*CnQ-_jxVwanYWMW*D&Q-kwy^V5|A4}JT7#lZY+v34L+&V}E4%*#TqyklaO zyZr45=eJ+xF}J#VDlJ_UCYUs>*|DJZO8__Tsq0Yz6Yl#53FzEcKjyCdLyGC&{g`S{ z5qX!Z=l?tgP~)+7i$uZ_w!lwcG+8H47MYW2(Z5O}==Ve>h67cPzf|6zY&fgq;ar>B z@BFtgf4$KzawW@!`7H;dUFf%T!sy0rQpnc{!y>^$-9GmR&MjfLAX|fC|OlmSR3l@Z^SlPIJJH&e3uOPEC zBd_nxa4`3l9iU`#>!y$ z&y%I$qr1qa3DeGe`YtZkA?2&i=8?`Q$fuI);L_$JVDR%6WA=a0C0z;j1-T3ba=T+%||@IRQpxx4#Ts)LZe z?}lY@3`&rIWChg-^ZL)1_c2%aS46m(bvE4n)i_D|e(<6GmsgCs8GPSr zD8#b(*cmw_3mRQ?{4eVQsuFL+Za7t94@#e}Cs!J8Ro|u0rm^tUo3%^0#ZPQ-5B@#3 zTRenEh~d}7t&g1SV&dQNcSXmt<%k6)ADJM|n2_L*&5`kz;pfz!mYXiQKDZIc#V4Fc0Sav zDr32`w)@P-$0A*dO19^2{&2T;V7T^xJ7e8W^G{oubH45Rs5EN}n}}jU$&^E0txd-1 znh_BTO7hNiGF(avVA*kdyXMZ~*%_&~I14^me>$d?<<7Ps4it9`^O#u}7!G{?DCgG6 z5D~Q~rD#&qap4s4XSaWzXK46Z8ThtgO~!(=(l7SOKDZ#jn%u6L@HnpL&x4mLH{Ep@ z=2&>X{3sk1V^I64<;@wMi=Q^Ru`Kb9RA;P=UwKic^{vy~4lV`;h7HU&RFKX(#>cR3EudQc6$UP^V|YkWf2MSn)wOJC|8rRts;Yd!yFP$HzO} z+)l*pJHvEG>7tJGe}4H1d+X;v+Pz(K+KGnU<#Ra%KKyP;{a%;7m?;3%yE&kCLBTjV z<)Q)Sdf#c^n=;RFvKTJ--N3-WP+^&MXLn5UOSTDi^Ah-~_=24iP&1;yu)pV*1IC?N0?UzPr2l!M#|nY*Qm==XdFQ zCNeVIkox&sJwD>HJL`$I)i=*vVvkUekWtZ^s$o+z0USG~!6 z-{LP1nRR7Wq|RPix?FPsXeC~Qu5whv!MgRU8$lj3lrqe@nsFiSNsf<)pwUTZzH{@I zHtFn7bq-bp5;J9(c)S1ne-+swkJEpxcSlWKv z#MMEm?9Csho2{%$E5#LDZ6-%7u7U)q_eC?ate?T_mgv3+0>@udsglFBJfB^ROSb0+ zo?>c7xq`1!Be zZlCh$@9%eQWl}lYUNg5rL{o!sDlvBNy5 zj;+anVfX2(iHtk*n9RJd8Y(eedF^t%?{z;YC-KYgI>(fpEV9XA!YNywM-J=48v3~c z3=b^ltWW@DV+LDBP%=OELG;wo+dDQneJSaB@sVZb%gnRR+Z?AUO?b`Lu!4c1Y@+Ez zMz#O8x~Fay=rTqMD6A9?SRGjLQEBGRndw=qH`@6%=Emmz-6tY@h34juAgB}aWg5(ov^LcBO-58|# zHLE!uOPimNv2!{&HQVLV@;SZS5)TvwkpE;0MfSCq1J z`1aLYbLuRGE3Z1r=>nf#?XPmfqg?`6rzGwQ+74nTlo(w& zX3Sms!eHOM;|rZdrruxn;1Da9y1M4h z^7(JfPGP9?qrdi)#iBwtu1yC8{yoB2=Ap@)i_ z!q*2Cd{SY3zsLLJ+}k4cA6wm6F07sH_d{4k=>RuF2RQp#fjh8gAAkOR^TzgW?kP5v zKF=O9b1h$f!}~@8Bg4=C3?-`B@1tMJJ$TK+5hUHP_y06j`{HLjl44956)yXy_sOYP z8~TMQF)eXxDB+!O=%Nts18z1h0cHk<1=<(o7#JgyH=KN(1}Z$Zwax#1^v3k027fip zebv*?bWRrG<^9McXu-dr;{OJ}l9#G(M;z}fe=qpA>xUJil%Ru1--eI>f4xqLXN&e3K;Q z6s=BtKKPh(ldOTW?bJ7q%J&UHheO4r?|pYgLAVv#z&i z*z56c-?Xd?Nq?fv-YvB&*|_AcgVQ|r9v5bh;|)>0LUlgx?=CKRrFroT4|m&VzYibp zG6jI{$78r53=a9eoNJq7>b2J%o@cY{%Q;!E_xF~5_))mXYwOpl)ddgy{_bYT5q6Pz zbHX#`?mK_G^jR4p4T**dR`v6g%>GR_zqjPa?)Mu1z6g8S|Ln-9xl_uiD>kP=<9%ZW z0|Ud03YFi&=?iy*D!dz#M+6@9*8lpVsk-MPf1k|42Y<9(uCBU$WwXPDUzQ9G?)2SZsRA{YL6#-DPmFW}3y+bMo?^S1LbGkh`o zS*v*evyuFTPm}g6`0QMe(R1cvvWUm_30ZSjL@iE8X}R?KyGd1tnE1)A1sYBb9Bpow zxOG}U0mhJ`=I46j=$t!O!C6~={(b$neK|iWh3DVf>-_DW?Iv|UfvMVW?sCt`*fV)6 z!#6G$nFhU-{c}v#_9m{ja|ly*$Z9>ZQR+vKyvmN6nO*MvL8qJ&KTSWs;^*!AJ2Dz} zcuwoBe;m#B>sm7d1H-rWYyW(gyfyFKXHX^ zi(A7t=JVly*%-d){rnxX$IaVYmw&&c)FOvVEfFd_ZSAFT29u1wyii zi7aLZ8D@qCTXh3BwfMOgD&x#L7+&OoQd?PH%!@oLW8Yr>|32HImOgrTSVYdk<4Vp7 z#tqxDEFzed_#DFd<3Il?JnMdXv%beghksT!#cds|jW4!d*ZljaxXb=u$E^CFJ!?1^ zm3W?HGcPfUGfZP-NQgi1C01l_vT!iK3#L?SLT_{Zyr|vmNioMpLn^S zcVQzBLv5G7(2K*ro(4Yajp{vA{Jf)2M)9;$!^)73Q>k6~_X@T$7ENSct<<3q$H;Kt zo|2Q^A`8e|!Q7+zT%JB0p6cr6vnXs@bkNaATrcRuP4z2(uC9;CWf0_15k258aN@cI=;*ft%NiIM7;aRi z1ncSU2M1h<}C)2rnb3^xOQyCidox(`@ru z8=frY*VLGS)etEmC&9S(> ziC;gxOp7;r*TKZFVE@VIU%Efu&v;QByf&!do6gLMg1PEhOY|J}y1l%+TPil?`SZIm z&3fRnx(yr{wtEB=Vj0!u2mEF@Umo|mcq zz4UMVr=Rf}6SD3f?+-3`&>;2ig(^2g1)KgY6DhqT`y*70O*{^M5V-h(Ly)^OQ)1#% z%cFh$yQehNyqYL8BbtGMp&=dO%o>&kiC^8_BA*l6+EyNzXJcjHRaS7}>kqyQq6}XI zIxKEj)|5=}7oVim$jmIV=cAhFl6fa~eir$E+CKQ#+v~IPQvSR@@$fcJQXI(dQDA4< z)iK}C3HtSc(bWE*$LgxnYIYKmg>rT)MH@mG7#!s6%R3bH?>c{}{_~%iJtq31)Olr3 zpTeCkFW*K_Id^7*z=kKcdf66gn{Q;t|=6gRroOgL@G}TXL z`GX6No?n)RTw-N1{HMskutD>e;v)yU#T+gFEV~&Q?b+PkhD1Aoan!N>87 z8C@D&R2Uc-ayqvfFF$Cv7Ti&~VZ3G0_6bp5YHBNfepGka%GkATuUA@zhxwOnJKvbS z(T|AHNfhQkuy13$w0-`bY?FpFf{Zs^cCmbzV`$*;FgicG@ZyILf?5Aw_Fwt)r&x^f z*_MQa1CJKFF`a1a)n;JGkvx0mP$r}Y^NsDksDn-6Cdv8n3!bIV&x$@!kkixjFmd|& z>BRF%owDYWDsO$ zC}DVgmi>~eOH}WtJ4w>KwRwK?m#ql7GOf|qPOAQwu)|(F1Nm}ZQ7Rfn$2j}+f73b$}*yQwb?ro`c-b;mA^Y^%>m0Xeh|ALEwp+a(> z#ex!{M8*SM5(kPs3tpM9KHa3vq_O_*Q~fD^zKWo{y{#?pmd2WO$^J=c59U)&N+$eT9lW8tPZ z3x(Iu4f)*X_c?j*JDc)1SDjTD7#_6#xTR>ceM6#tar@LS4bI6Tq1jR8DzTA@zaO@z z$ouc`V3--c=?f!h3UhmGtna5>~~VMKj+#5zgAw?q~M#VEr$Dk$JY> zX_Yh0KLu^wy}^_*Vf}Rt7a4{P`+rPfn0(julWFzu!>7Y0%Y2z^w}###at+B>R@4DXy|Q>jra}@Oz%D~d5BT>+Uc{xHqMgW)cCqVnG(+fqe;ch+y`&YlhY zb94Ev)7CacElmd7ZD7e$t^F#+XLU>?GkoN2 zm8|XE-B{dQm>3ui>^jjS^+9km&x9oTYv7j38~b}Jo;z1n-ag*1`SY8!m)*Y^Olx{r5ge6%n*ZAWuQ=)^{r|)NprY68 zi;6mZ7IwV@4L`BX6ij_9#&{re$qeP);I8301!0Do`|nDU=FF=9=dfQ-q+4W;<>H0A z!WOZzfShI4wVr!|D^tKupNC7mt>$}Z2l2W*vUK0YEK$PFz|as{aelu~XX!j;?Hl!w zvGlo({;U(O#Re_N&g+{s|G#TCGs|ITk&sg^LHrJTDk2N@x3J$)-?ipiu)`$4;k1ea<<%4$_yw75K5i{9|gMs0TsTAXZ&ku~` zza9vX{k?7-Xf|fS<_AYzgBVgi>&`9~WDNWFMcr%qv@cIzynXG$&TpkZFJHC8qv0Og zT~V_i>4!b;-e^5}iSg4!hV*j*Ki~hGcgU-C+W(*PHTG49UuI$Y7nRNAaYgW%1cSqT z<;@G&avp`0fM+1)w)(SnC>gajeS70K&rbE%>G%?3y`MWDMqfYKBdc~=t0X(Q4|Jx# z+sEQo5!uxB^#_uY3%+V`cNwbs%T11rym*U2^SphOaKm$DP%8bRJ?U@01m~arryk+w zTRoUx=z&A3|I7mM^Rx5z-Td%oNA6j!;@@#<%P0B$hR2myw%Pvs_T#?u zk%M-z>E`D>ydB;;DDC{8em?N!^!mj|-NWntTYIUg#i%gI8+}(0Vqmzi{>2&fqqBU& zx=+^27bjf@6_yufK2c(1>SdX+{L9PWEH9M<7dEuLZ(G05>);8-O`Cprl;(pH*0zR@ z-b>d`@$d!xxb-^Z!TQO|CrfcAOrQ28@Z(B%28Ijn8v>7e8jX=o0sV>XbiyN z`J`@^1qv#`D+7#deNXTI%d2mv9ik_yS@oCq+l5dQ`Lj=~I6)I7#^=6+eBt=cdB&aR z8`u54|3ZT`d|gmxT9j?{S^a$rO3K{0nY^MVU6XC(U|@J5+>?KK4O50!C&w}!mWFq% zpk*MNBcp{A>gG*y?_crrqq_(X@5_D`alNdN2Hr}qY_nTCcYy|t^bfo9dHQ9`Og3el zxzVueUS;^w%`oH2{H@(CE-QK_WL$CSC4GIaa3%^N!HMqca|2CU+ z?FDazM+tw6gXHRL~ zuFC(SpZ=|?N|?*ZIFZ%&w)ArNyua zGPB}5lYf3d2A`SCOEndUz@*w{3ye(&OL zOnrR+Q;qWd>t_ua864g(oL4`O{pbh(NP(#v{x=G%pFLTAf4Q>#-EPCA?WOpud-p+a#M*My~l zo+=F0zs{cEXq~=3;N#x!D|T*i`S|_*$32@*NT>YU8MHE195gyHXWH|4uD>4@b*H~R z-gjByd?Wk%{ocyc*Ij7tY`^klZlFUrXn^EG?UQV#6KQi>88k0l{qaQD>-n=42FA{< z-|JltE<4H0UjR`!j#TbNhuWLN+aau0O--{nD)Kaf?6g{45fx zwJl0-rV%&u&-=`GK@C=i@=a<&4ppVgFJHd$=acvMT05nG6CeE17U8*adm_UlNSnY_ zVm{Y_xD8KdG)46`8K-xMiD~Ssoc!hu&&`#Yx_m2sENTFCf9{^pI$!UTxYDJ0`S}Zt z*W{{^-%Fx+)}=HZz<{j+}V|5fgN zw=#wZvoH{c&yBLWW{v-O2*00 zUpD`~5)--X%SRU1_y0S%?Egx(9`9eRk?=Tmd&bXJZtffZVz%#PVUxP?%3`agq@2Cm zp15}Y;DUcluG95`t!$UddPKD{Y`>h#!ocuN=;Y7mmfl)_yAP`*=-0nJAt<%8=qk^i zZ){V~&)GgHNm5@|vX@6gEO%qXgSEk1yci1dTWv$k!R52`4-bZ$4c;E>D*i{F^?P?; z-P-*6xvRCGb-5}VCucBrN(Ee0h(9XbEy0jr>yk2Mr<2)P9VVCedls|0Nl)T3FkH9N zHK-&cm{Ea=fx&9#wCDC==l4tezq;5x^U2lgnLm2BU-_KBDs-|*n8t(oni~(=@86KH z;Ikzl&bq$YW?e8zt7h)+g!a0=yfpd&~KB>M;wl z@2&JzE%gXu3=7k+sF=`Y|99p&+1~o!;a>0VCqLf*B8wGVS9|U`@%jI`-^8KPz@w)`*G2d4r5Fog@tuIXkxHIn|vdv8O% z_scUptvVbc_p1B5?0*@uy7%vti4$Yj5M)$X{pK!Xw~P|sfo^sVCBARJHcNl|7QEE! z;L2c;*gY;~MU#YHa!pWqyJ$(r83u+o>NB6m^VENQ)Bfh@dReXU+UB9B=~$YJE-IIf`5~M*~zn0x0xw1EaCn<<=%|NC1uB+zWek@B6gqC z!Nx$NKgP?#iuY^Xv%A8^!0_bZPKRK|8#l~t(p~cRxxTbHuPOiMWGO3$@?7_@Qb|UJ zhP^7!fBIMID^HxDI&Xd3`n_5FdwzcVHLt$2C~5ir{-zX0ht+?>wNkajxOZ+pR<|M= z)Wv$CpQ3oC=vIi}^b-v`BfIQ>&bajZyXLNf#;*MRz8ACCZ)PaCCi?l)QO2XQx1aQ5 zyvqX)3lDjBnG@;Le;yELm62QaVeNL!DSgW3c>=Z-3c8GU&OZt6WMD{G|6yJ|=kMvZ z{L{eJJS-P3zRe#bxld48$?ukD-~T~4d6t_qp-OKt7;c7_XUK?5jX z#P=C(&pDI2@$|mwcC}t7kFYF#+~0AdJ6&8%W6sQl4}NeODJ#2t-SxY+lWjxh?Wm(n z91iu5b~BxrV_@KLaH6uvTx!0=x&ePXjcyarEz~4Wt z!n{1Y!s=Js{=d0inwROsy;E(830$p4T@2qiKuP4UXPCIdMEAHKB?o8EUVJQle$b~6 zjIHrCo)^ECYyA4yuW516$sz3L>`O~@m1b;st9ATeU9`d@hCLMxB^gH=&oJL?;Bw~= zczE@CM}$pI-FMxkHuGQ1*Oh*Kc8@v(L(bH#^Xli-cR4#}{ptVv=DEp<{=~IzCqG^K zHSd3D{?li%p3DWB3`a}j*&$Ww|3~81D^sHNUMp$NWnALyU}fp~^6~L?ehm7HE^f^h z>6KlyAgc5tgOJCBBRj<`nZ%qJesSFwb$Hh3*6g#^@1k`6q^Fh2(=ryR_n&lQHCoD$ z%gD&E`+T>}|LgZdAMdv?S`_#HtIhwN=1FfAOgZ=aFN`n>72`RjI{m-?eQx9BoG<)9 zxzu5`w}Y7Agvu{VQWyL^oj%1zYWb7y{Q`Tx%ZbL-H#5a?E(6O8!r_b-X@!9{D<;i6_3?J&;`8t^dTo@d<4}hl#7&x*QG4AP_=jShM zTjyl*a|RRV|M~F?9!%v<;gi31i(y&JMc0s{%paM$1QqhP-fjJun#t;6&9K1ugY*lX zsU53Ax%%Xh(YaS;(Xp=Ik@K_zL0P+6V0Ej?qb4pM0ft>-91IK$6V&6S9pL5qgl@VU8Nx7%z}&= zUitCrn>RT0+W%>s^s)URHyh?lwH>~2mO#WS$+R8M~yh%HJ%RGj$&n}Dnd)|rV1$d(Gz~>X!*-otbH`{4R?*2*A<{>N|cE5~W zpPvhS`1QJG)oZKPGq961;_zu@tr_9fmPwGKxQ zJUAoCr4sw1eRiav1NVD-hJ^GRiRbIv)C^Dkzk6GHRmkcPt?5Pob$b5ifu`aa_H=BW z%XFpr_$v$TmoKjbd%eH6?8`;xO~%G4;y z;INZwxOI_X%Gblb%hR{mIn=xsYgP9TDtT+FwdW(7=(;#nV;h~LB_>%5LN#lSXR(x6 zcUZjGxO(UEk~gZSZHkiKbPGi6D4Y7?rOMh5YBrMc;ei5M85kI%-C{mZ%9_#o>ivZ0 z`@g=cE1SyHz^cmR-pC-``Jq zJ#YAFSvP0VgByiLLYx6>CnY93nE&hGxKS-o$nY&?&d(?Y-|(ONW0rk*r0O-_X5oX` z`6YE3e`OdLa>U;MoUZ3;{pM$RzW$-6kN>Ce9&XsKn|kk)1H%hdPzFB`HsPpAq3Hgr zoAnjmWe*njYuHrvEIK`XOSZ!aZsX7hjt_#2leQl}&#T1rjl)Ie z%Z;mdg3W49*61>P+~XN|;gzP*^JB5EFGO#T>1C*O=3!zupmw72U+O=Oiu-{QcMQ+} zpH+YA?1m`j1)HK6PVDE~B@D_<8$>^GXNAc-^i~+YT588o{YOPrL1Lfh%g3Bu%a&=> z{+iPCSY1Oxa#;f}bMX4tOndWO8X8!)RXZMGTu`=Zf@Q^oGb@c#-rZ9@{kf5=Vc%Je z76yg`r$5ZAuhW`W|1-+w|KaKD-*r5<|IWX0--KB$-<4aFPKH#j57HC;BKk8=IjW*zZpH%6OujdxA4p!^y{=gpQi$2N?b9=y740W8vAFeSO7;SJ@)5dmNSpMecWV zc+K(c-c`;rXeiuKHS`lO>1|ua$Qr&r=zvnfraeAio^0H`fAbWD4hDvX=bMgw)}Q+S zaMo0|b9pq2>l)Mf7_UC%piO=WvPup~1!X}0TpC`)*u_|;hD3mfPFhJJ7C8(cx z{;B(8yw*-uYjHt`?Rmjf&&_VGTz<<`VQ!7n!HbKdG$urFTAXe#s8KX+`k~e zyQgTP+x^P(mH*n^H6o)@&i`kU{@J^Cftetj2a028n-rL96N* zZtzA4GBQg4Pt;RVP_wr8-uQ&^{;$TS+uKk0`30%OvdGz~6j$^xb#kn@c9MrLV>zQR z+d9974#pM23|5RTGC4f&4U_w00yKjysv4S_+kf1XQ`)`hk{FL72Lr>WJqJG5Pq6)e zIOorFH~v*0=j-TXd|7Za%~$Y#m;q{unVxw5A~&c_({MK>*QKF?g;ieAz~29C{=S7j z-pO*k+OJytfWbBWTu{MJuGaANffau&y4g*`En{38Lgv2~n)6Ifm4SglAnp;U*(;TB{{N$<*D4`5<~_G}u8UMJ zoqjN7MbO%yl`*IOM&3yO!Uc{o{SVxmCEf~blrr9JmAoWeik;XrBIHPp!p4Rd9%PswIg!B4e<(@m|4}9i#sNdW_um1b_?hgrn<{z?a zJ0QZ9daucW;e{)>+^w6mTJVBX4{PKN--~OH1P6=M|7_hRkmI3s;GnaJoV8mkxA>LW z5_7Emw*{5*)t}Tn*HfRXnz7k6TA7){iGe{nja`}V%fD^w?6-?B+t@7oYCGxn_Ks)I zZ#T`ovs{3g;f4OU>!0^O^Dmq{>l(v~HDU~();B}iQ6)@2TVrl9bfw4Jw9gE;pF4Bm zmy^O@-?8s8^yrsSv;Nm{sFRaxNi{<^)4>M~-=wD-B**R4ObBeK5WFtZXz{Su`O}&k z4M$}f_By^dRcB%OI?IjG<#+^3LgM?y1 z_wYURyVYr9%BrnWQ@vShUH6H5Em8W$Z41t|FHBMruYdTf(-L3Q9x1Znk?jEX)BB6DrsAN~y2u&JGOCL%PLqr+U(EKX^1)O5KCTV*dFjakeT zGjEgY=Q4&e{#@o)RuvLr&$-giP1svL{nAPGDW8t*tMy+bp}#_{5}r}rk4%&nqd6i@Lr z>o78u3FY7L?&aGV|I?1gf9|u#d^6A6ryJ(a^jX-^A;a*ibB*nWGn`L~|DE6K#C~tr zxnuuLwd7OI|39Qu{qK4C#n10OE?;qp`k}wz=u+3Hn3x3%4_19k-^Ibo!2l`xUX(-$ zGVZge{GENOoPWlgB~xr!Kk{$ilA2&)=63Mm;hdB?r<9n_O|~rYsAgN;aiE$nS6RcY zvu3WSj`2Rf1A5oF9gZ-*(5^9O&}EBIJ^VfOK>L!{9$kE`D}{d)EMs_48Dla(`uNce z*XR5%7JqTUzwTMlzsL>c^ZuuV+x~Bo_-^=~m5rVKW_ZA&n=hA}SO?^BG8p`+<_8BK z@0zF|y{}~y{vJNMc>a4i16$uO6;8H)JlDD%eBsFDKmU{xvs^&I6Ae~&zKkOcE5kM) zpH;p7%C@5oSGJ3}>}6mmW2v7XwQoIF(R;p$mIkMi?kdbo3i}|u@IS*BR=el%8a#ZN zH~zo)TAne(_Wz{M^Ub8E=;-b|w6L+`Pg(eXvD2S}L_~A;#x1`&)3a;#*-&mfmxg;x zObiSRC9*rsnkHR-?`h1xXba1eqcMlLF0WiJ6*uS3PUmOmn7(9Fvs zUMUA=8n1h?AcrZ;h*|Y>$ge8K^D@>AHy_(DyT~;3DM+_H`f7aX+~*U5x{o|R7r&e5 zY|g+?CH^@2?anE7hm#WCKJm2rvUvW5583$vg&7gO^@5Llr~Pu@y}Rt>?CcZs|5!%- zoj;d(X_4l4^}|2jn}P}nhwYoLIS4Fv+{N(Ys8u)DhT`HWc6Dc(7^C`Ly8e@}LEc06~?W>t9`mTLF+K=ZXGhMYM%q7K=NAO4DMVi1tE zbvk)hZ5JcM1@;KdGp9ja(67PEUmm#qe#e~u&g~kx8=lwCwEe$O``2#qC%iS4agX<} z4$)fw+v)``*hT9ntml2O|C^i3HAjcHCErZc$}5;ZJ>i_GZ+E?l@!-K`k$F~+U$J`R zed?T?(kGj&xZp__kDmVS?Nxax45c+)3`%?s={zoruWpOgZQycM_nYw4`Bu#$X$A&c zuXCT*>wR}}?EQb({=X{k{&VyGPh_65;p6&=HHllMyKVm{$QHz~VL>Z{whn_xalI8w zLmX%*i{XnBQD^Vzn9HI#@<;Ao6-H2%Hk1jB!G1_qgb^R7rqca|}8+~DANcSrHpD{Uo1 zh9!0k@1z;3`qDui=j6x#eOJj?o|^Yxw5!tB?Bc!3f2`NrE_4g095zVEUF36AiKQV9 zG?&NlMJtZyge%jF`lA8oZGPOU@;Nkd>DmWBl)ci^G=BcGp3Y?OqH9WK2m?2Bkg*acBuANk|2Rto61bTFJe89ZfEqmn6e2tz`CtBC&Pu(YLX=Ui$y_^g$G~-_UjE}rlR$u-0XMVEI`m1UW zO?L@_%$R{8==w_WTZs1J|1JrM0Kn?QlQ4($j0- z&r_1WoSmb#+C1s?sd%K)s>9WCylpOuA3Xc}N zp76VOZ|)@~0~v`01r;qqbvdrrepHK;GBCWbGkfwgJ}&reef>Y5m7Yq19IXGOpH9$V zaAaXv$<4sH;5#HlPTi_v+{5|s>V8>Cg$~6-_qa9vrfo`GH1+h)=S_lUVSaZPepmuZ zEjCqCnv#!4%1ES4TyV(ESFxLC#SZtCS$ZoZ5;n_ZxUeNqbBk(TnH`M_Wb_DWh*Vrb!5b2)HTf4mP5Ldlg_&i+?iWJm_bVK$ zJ+tWFg9i#zD|nFy63RitfD8-HR>@V~T=GG!?bF(mM=~PgmX+j%IsY>?Qs6kr!?$A! zgXzEibf*J_Mu(MMzFN&x;%2=XlhWWKn^Ao*CdEN%BIC==_3R9LTf*+Ay`R+n*5l=2_9=SjKA%4Ls+y1Cf@n$e^Z5UMUq3A0b3{C6?)B%;lDJ#frQsfEF+4-V z^Ur%uH0adC_tZ(xEK6ai{xP|oUvuuPML&*xKlfn$^#}%uYa)#wUKnc4Nhy5rMAN8f zgM`Aq6kV$of{dPOOe*j0e`K5ROhw6P!Tg)AJDRWQZit@9e(bLMCeG<*vlXlVFW%@Z z;(gjr>|l;V%SAqi=@(q*{pa~>T$*-O^-jRjsHKyxe9Wv>IpeUG3p5PCpr5{$-RQN- z0_*mzrp#Mr9}u}XS$*BwnSb>1b($8tYo-Vum}l`Yi+zsOQp@v4;)GVV$%UMf5_Pyb ztJ~tlz4O1OWv-B9sAB#4%A2d9ZNI?Ai}EsZ%7>X6`f7LP*IeOcSfKqv?EHT9{0FB$ zOZ~sQG^q0Kb;o?rj0wYmXO*638E!tf@#p)I3H3&vog%_}%BP<>E}wbZA=6kw#%|Fu ze-%Nd<^F*c-(&)RHV8}XX-K$j%KRn%Ou6ufi;N6!n0AX*Dk%P&^h!xn|0&l}_r8fw zosTfQWtqU4!_dID?6=MTwfpC63XS4o5ZfY<(7Jqn(!0fp|6YcIN_U1ER_9krE||#p zt5oc`&b)IfYS!lNFTa>vJk|C2mG{R38xM=fS^BKxU?}$sD)?{5`e$!K!33Ua|scJwaGhD^r04JVZtQvSHH8aW?MadYd?y1MNEE5nP5U1vY*uSiJTTcLQjp81;I zsSq6}h8OG*Yc1z>@_5|7e_rd~>f>={lApHbbfl$gWUiSocgBKcB_bB4krI zNvV^|qW0ERo(Uq1i$d?RtnueRv0QnJ)cz|ZVvUy*7L^(6RNiVD^EjBEfHr>?rz$fLSzF+?=e`Cw(KX1X8 zdzoDC?-ZIc^Yz$W_Eng0+~890v@S-@MNAIjceRXcTv;Y0HSGDxwb#+vmXPZ3Mw z?`T&BNP|`!T=snH``R<3#=Wt~^0aTsM8=ngm@b~_apPE#9>0ro!$)~Jdq+)fhHoO> zjOp(tT2@S05vHyc8gtvRa{ijh4Q{L+fu{GP0uCHwE4fvx_;~Vr=9RUAJiI}_ei%ls zoci#%mJ0)eRnxm~f2=Q=m`)V?$DL7_IZ;epJR@Vny7ec2W$)GCuM&bdW4dW6bCjB2 z*vI>))Vw|ktzE5{pnm%<%Pjf&Cta+Y7zE~7IUn5lS!7?4qcY1Ouh8PvD=!w9G9Nkc z>3?58#{o9>H|F;?O!t`4B*HACWNfkKrO_+bGs{ndR!7Ty{KK7e=eSN6|EF7#T2nL1 zercZNn-a~$!1MnecvP|BT*BJM$*ycR!Nv{ddS!KSyE#`R>VK=Loxs|#Tg0x$zI?Zj1f4GD$BPM%sR^Ck6S7yj9Kdw6*RtA3l^ z>@4(>_YW|z^Go}pP#ux2r_^98FIA*_Y`QqhpZ)E;0yns8LcHx*6H+2>C(K&$;8;p~ zwJ_t0(yF7M-=CEJ@oCSo`Ot==FDQ?1b9-j`b=8ly`s4W}wJ%H=W~+)zCVal{tt%XA}t=Yg3aHh6| zgJCatCEc@$M;$+{m>yozJj-?R-WfGFwmsR_)yR4vEHeAas*7@#{Hyq9iZy!$G2i%{ z|Ng#u@oTlEi`h@wRX996!qO@vdZ5YS#Idk|^}z-K=d)Oryan$f+TFWw8iPXd;;D9XHU>xF;T_s%B&FKyL(&nL^c_!wldGYU*r36?(LL+U)XciBPza{YVG^T zCaM>!vWh2A%av{Ej)XJ!!Y9eRSrDtdK>Eh({laXo%Jd_wnH-K~?etN3skt=h^o9eH zYzh4@V$c7d)&KHe-de_hNL_{}@$7p+1KtOYowWHMWtmpdvPf8c3+wFD`};Px8t>0| z(zU}iZ`VfS%Tw;`KHhIU^SW6JBV$?LpNL5xr}lFQs1&7^O}pgYA2Q*R6r&E;g*!So zmroXvvG+^MXz|(V6|y!{+VOQao01g68?&2pGP+c!&kNGBwO+@_u)FQdJ1wTq$w%h> zkLs`ZS3Lhh)a+R;*AIb42L4E%UfQ%z={|SubJ+`*K?P-wOx&9{r@HJ!AMgJZ|F8ay zZSB?8lN%YAD&EKz=exP%)1pPJ*DDU@)csV|{eS(x*T?1Z!lpM@XtDT(FeEJhc=YO@ z8DHX0Ut9O$(CW9BgpS^?J>7J`IjiQ2Vr%-jfQMVJYwr4{#hQNpq*kk1TSxo;S=Ut&{~=G^Ni8XZmlbzi?9veahoykg7M zuelfuB~PvwbJxkw5H{QK=J4-Xv+sUdlV-b~@kZe%w#n}m07WF)b@luUA*kB?mWTG z3=G!p*8Ql3WZbw{ve=}{BT+r^g(^~&ObDz$sU=^9- z9kQpW_013Eulv-JDo&y zyszJ1_~H<&_$1v$j>gxvFub&ANSgNBVZED7%IEoc2b}LM2wz>Lq7$$+I%H7=7lU<| z#Q!Ol7I*sEc>gJvd~ml9Wn5r!W?ucx*EimM`@?Ot{m7m&UOv8{l_AJu4!=P|HVtQ$ zYcGdS)0{i=Y4W^`O4shyE5++=86C{FeEyu5eER;RZ`p#<|IX&`FTHwG)jwJ+-i4uI zuhR9Yhg?~v#JDtU;j8&I<;@Y6nZNlpYHb!Ko6oIrVytdyYHrt%ki6KzAi5_&n&Hi{ z8&{GVM2+5bnmE3A6_CNgaPS{{!txV6|3hS?e82q>_YScv>*4)hp5bEi-@X6k-sSWD zZ`f`7zv=Ub<$FT4Z&dB|+iX1f&FRcpSC_NAj<9C{rJ2N-?OLx7Ejt=9{is3G`Ao&Y z$M@H$GYD+uQQ^&9%O9X|{09qba{I|Y9}d5&d&lrbbzg9U?=3;SeW9xPT$7`>XH;f& zHJ$(Obn&QnNX2tmt$p9^Slf?vsKk_1T4uL3-eRyl9TywCd6zVUr{XEEtG3hMKegVV z5X9B+_Mz?n#0AIpi?oV1*S}d`=gEGrX7;J%N;&kI zL@t+RV~|#`FYn?AeYP=FbGM~1n>~Z|ajEn50Xjibd;c@%?>~I+|Mrz-kEVS7qwl%( z|AyDL|KIlKhS{#anicZMG-vO1M@UZe+@$qtP1kO(O=iZWW*Z7TX6*kK7QZkdqk}7d zpJ!QF+Z*{h|IRI`r+f4(b{zP}oBzD=>qUlJYyrQNKYs?TE&cPcUrIEf;<2yR->>=_ zyQ+FUY&61NB`xt|5$MlNh^ygd{IF-^L{ZnNVN)hCDLg*8+&?joC1LiO$3Mj%*S~qb z|H7RApB5g@`jdTb{~OOL_cNw-A15-wX8^5D1sHyThNK&OCsmqX4MDhroa_*lBJ(0>aZEMS>z5HRZR3~hyvGF^1aWM^x z+F55#Fd8{GO9>_{&D#AWXR$ZKjW-t_|CiKd(qIifUA5wS;H4!#{4f1+p%%x?zZ`Di3k2oGZO6NCzpq9qg%`gx zhTM*xnbmvf^ZI~-KNd50mzyl#b$7LF!#RoPS!cM7%9OX~EPLFa@wEQ0@X`DA?yceR z%U{ebU-{vfw2QN|R?p3}%U1;>)_Wg_d%v;3x|Dt039qpD*53Xs*Z%Y@1_lPR^J%vK zZL9YGJiin^ma!ewS-oNLGwb4QgpchJ-kUQit8f1n zzA5V`SC?x(?M?pkz)rOOkFeI?Pt!%@?EQ``Y7h~;a!c&BE7Kd%4vQBxQ9J)$6O9OE zT(FGEL7Pe8jq75ThFG?F_4QJlcKPZse30|*Q&=6U%+zp&wSnP+J-C|eJ2QLbTZUwH zhBcoG_MP#5n$5T&J;b%4sFO=vZ$hen)@S|sf_L}xueW~@vuC2%$7i0O{<;cGC~GKx z7hq+3_VKQR_tO&}{3?B0BDi6?>)~ChLI?Wm8RAU#rF5K3+Y@rdxqG?SDbZ!F3})_O z=8N|u)f`XG?}iL*)cSreHaebA`$`%TI$^f`Hy?D)ZO<}(-S)lgWYb~pO_n7chc>5c z+LX_mYFO+vAG_76~#$D;obhx*?o#n?Gdqx&GS0gN|Ao9c-=tPDx`w zrOU|BR{tN=rQT4Pk|_E(wrAE9{%DolpsiEILVtaBt6n93zp6WdHnp6tis)I~-?y2X{O0HX)$yA?{x6HK{AawW^YDb%TXI$et=*&+dup!H8STHICA0^g zT_|||rgGMnUirk*BvbGIIIPTXN{>X_2{h&L{u=P6-c-@h@G%)ZnLfUDlb4 zIqSsBLrkXo|4y6aHhE3O|H{pgHBUv2wyx?+Un%{dp1t8tLQy-X$tsurniSDCZU+5? zt#8wnN(U7h9Y$c!neeU!9rC~*{du%`@_NTy17RCkg;JnV1=d9(*ur=s^8Sm#D z!EHf5UR{t7jjMNdUb*!6uDSEe-6nmX<;21;*UQYzbd~F|EiHxiJN(c7|7m|h=S=XA z`akj_G5anF?Nd3LYJTJOSs5k1vLAa@C#djfq&!yD>0%Jrppp=4XT0zv6T|CCpZ{b} zOstEVJm>%XKcUZl+AsMU@$1Cr`&Pzv*Crs9(xn0nzj#6A;n~Hz12Q|OrM>;L?c)4f zN0;oJV8eM`dPVS;Z?~uD=>`3IVt91&`i|Y_J}Sg&llS(IjOzBf1!*Ed z1qD-%7kOM4_#Bg5UTLbVnTjtbc5O#lNFJri(Dlek-?R zS-}2#es%M%Nij^l%H;5`^nyINKw_Fbb<)B$yise~-57G*1H<{lU-8sxR)nq$uJ~o* zx_+vf7UwxE6TXcE<2BoT*}1^UQVL|640BYe}e`K3zNY^ZsW% zA2mIE4pPj5BP@5#56Jz&8ce?PyoX`-Ok zpC9T|)|sp@wDx|vHrgd9VXe#-Zhoc6HCHWx@W}r|$o=7TtBp zZStk3qSw6y_Dreku(+`2zth31od$n1wlHj9tf^h_yz-y1;@Him@m9a0Qi@}v*wZdrXwtcZ7ZTwD@==FCOh;+k`3EqZcV z|3qK^YQ?KsRx{T3@H!m7rxrQe;buu|s@a$6n*Sbgul0+yD4Wt$HFt&G0zpQv)l(H- zSpO-#-l3IwbL%qhhOHV*91RMI|ASIOdH(lS{QLbQWNBuWlI|bz3$O)l39<2)L;Plj zZ+P}a7S!yYeLUY|D{sQ5HP`E{->xbxKi$1sC*rA)sNdX0U#?#7SeCA_vwr(sJ71e* z0R{*233ugR^$Ia|o3A;^zdhsU_WhS--XEHsA7o(lDk|wyo2V-4TJjglTn3F%d#TPsTI^O2E()Zgp6jSi{>8gm zpKk+m<(VWM&l@KD>kA$*h~BH5ZoAxjir$&Ps_%RgLq3Z3uROn*ZGrYX$$JyTV&0`% z*}9(Xw*&3sDfnZ-+Rm3~)4Z+ye#+;}Y^}3rH#2#itg|;o zF$5({ILc~l;v!h>arqdRs(F5ZmEl7!wyZdvTTD%QiuX00Z^h~91Qh)iJF2WaWzV-+ zVk{8`BS8UzWyvbwTj`wTZ{Ad>%aDjzO_-A2bx4=m96+KyXwQ| zE6YCoSzmnX&oUqApf_v7qg9`|ehGsMb7jk4Q$!hkYFHSaE(&?ucZJbl-(G(GAC5bn zE^3RP*z_@f|KGM*{_0y3W{I(0S#^`qh2g@_ij7`ot6Ghge*Qe=&R*Y-;ftr-+2!}} zPZX~|&E#NY`jn+X zMVpP|v3v=4){o_WJG4Z$Xe4~z?5`;yv*f{tL@qwLqKo=_KIV$DvDBK|b-% zoaghG+_FDEIqA>p=l`po{e1pgIWDf~tr0Uv%Ii5U*W7|8fB3f|KxbywTDPZ@UOOq@ z=RR84RJt@DQYPGDRd~jm^`_{3&HT@ExBdUiq$ms^yg~0NRP~d7r#om&doXaY>j_rDPzLp`^)SOt$Odz{bF_ z9mB`FyQkPx9-4iBneY~ctgjC*Y=}xfn!Rf6`|m$18EyU6-KyX8WY6!b$;UIFd^L|f z_y1e|pSsePSgrW!0N zNo$)GU*~%8g`&}P{Xh#7k6UHI$G0>t=4QCCx#Il(mcOUxgj?3M@cn(Ep7m$?&z)6U zG*^G)KmWh@;-QW`;Zia(OM+IqY`*NDS+>B(x%un0O18hephd;AkE~h8I3X?W=iNB} zC-+5^J)@R%rZ?>8t8@;icw4%bQ(&&`>U&Jq_U~PoT$md26vDX=gsisOHhKO2ML$;S zpVZS63|*yjHJw%O;s3YNKCd_2yfW**KEqzK2iGh9RsLO9asGewb>s8(jgy|bZhG|7 zJ$8!tBbz^(`m(Ii>#zUJOiEt4e8a0LkNPP4nEhm z|4edbQ#Svvgd6Ge{-4OJ&AMIWHRp%@AjHzyjJwm%^UouQng}s`5ZYGRP&mB(`Mr-dU~(2 z*UtaC_d4SXmncmJot&d@md>1|WNqkJRyFI*r><=+hugOIPsrAF^;MnZ$@lHa!555s zt*(8(`tRt4=>h+zJ^z2F@^9R%%D;u|IbXKS3O%2_Rcb1Djq_jdknge#%d4&{^K%2f zAKzg%^P)=bl|#nqD}PL$KQZ^%l|OHUy_TnUbh&c9yzVrT<@@tp0PW#%Ze- zhHW!1ziMV!a;biyz{liPaJkF(3$zBX!FQ6VQZVBIamG99{7ZAD7(c$p!yo+cSE(3- zRFubAy}G6MLSBEqH-V4AN>-lpK-09?xMff7#d^KFr+QdvTFI_}nnv%O2UVYcJ-%ZrK9jgW{Kkam_K&WI-?_m)+hVJczeN44TnV;i0UDd_S(q3yz(ccz zo6asjInTR3a`v0xzE$xDg08n+2w5dE*V22MZQ9Gn$6wiczq@zwY^(XIKj)b)Ow5RX z-H`G=OOxXULcK=k?by7Rl|}r?zN=i~s}pz`$o8W(VAC@A`iK`PKK&n;!kI{Wz&hV8a%d ziyt^x?f=fyy8rTv$kNT5{niLPK2?2X!%VihE@pkDJ;!{#rcc+LTjllgP?L7q%EzUT zzt7BE`t;37`TmaPxx4=D<8CNnc)&bY-eLP<%m16~x>vBC|G!SLxZq6oQH)ltd<8f* z-0q#YuC;lOrf-s|k5$s+_qHjYzIU`IF7UfJQQ0MbukXpj?owXT_jfEjHf0lgUn8rjha~u4SKQ{-p;9i znWZ@I|EY_~**5X==Gb$CuSw^0+W80C$Pzo3VgeS zH|tsE2G3J+S46q^dINvv|KGbUDEim>|Kg_m|F+dHb7=hIBkX$Bq5YE3mLGDnXRFSd ztu7@|@RiZZq>5FL-Maj4>c2@+3{@$y3>$LU@0!o4yyF!eEO(q!KGf_V|GxjpQnk-* zSIx6{`HFExAlLc-d=pwbX6j5h6RJ?MdF8J52)nB{gKs-Dg3d++Z4 z^BI8-S;wYq`X~~TEi%`3`MoV)KDJbaKK}h(bMEZo+5DNk%^nOFJTnXr=qz=0Iw&so zGeTii$OF#2i-!f-qnH&6T^Xdc--<9S(QVX|I&Akm{Z3;nzqZ&ZIXd$gdo zv`qKYfoENRJ3lC!Dol%&cDVktk>Leb%(?n!Kc5@w9Q(g;{=cbJ|FW0+ZM-PIYd-gb zpZ8B*e)rulF~g_vyV+E)&eD__RSzN!v=|to4?O8&P@9`+lda;gK<>YZpT>$QD+^v4 z3EKP5_se|ZWM$}AR(G#8RJ==XDx(v_izy#p^E%$=k6V;mbWdi3zPMWTmfc_OMRvQt zWx8`jGi(R!y3@} z2nUXx%(uB2F-?Raes0azN0&7-RxnA5F@4cbU+-M;O=jx<%m3Y$MJ;|>|A*b{-5oWp za19LwA%+sEnG6bU35UNnoBuQ@aAACNKJ@0)6U?1Ar|PM$<6ROLZMYyT?7~)-lB;_^ z)|~&JX}*nf-v8MBY_m8eCBzs!`mU~jxQ7|kW?%cDo1yEJzLG;;@+#Xj>$mx$DnbqB zmmJr+wPvqh)iCkQxev`tznn}K=TtCdR5>DL%IL7XCswlEGc5aX_1uk(ug{*ITls&h z!YmQSm?*W~dzPG!zAkfF=*5YH+~@1rV_5FhEmeECby0*);MDI{Q;Qtech~4Y`ODi= z|KMOO2g41SpGhHwb6gopD(1g>lb;tVr6;CQ^HfRn|K<8+hwlH=WnIi}dOoU0XJv%X zjRg(oq>osz?(GwoZC*21vwPA?j>(>P-u+`>Whhb5J#W8$;iI4Wy)psk|38fXbN1J~ zdWl853wS+brObRa9@Y9R49JlDqr`ASCrFrqQ4lf~fAvbGTJJkg-{;#`J+j|&HM}~Z zfouKVXM6qz2Vd!#J;koptE}u=DZ7I&!v)42(WmogY^;3!HG8enQW5>BSNe~#iZP0X zq=Y646$`#FdGPbS#3hqdUbRP;WiKe5mo4Jqz4p}{KxuDA=mVy z_p>{1XkTx>v(n3^Oo>5f*H4aI21j+K^Y!Tp$7(m<-14-jwawivqbh4s|8fh%2RlLA zyf;+#yf#Z#F*o(R9k}xDhHcf%UdoI*tj*0K6@PifISiOEswx-Zxf9J8ZUE4p{?%B%haJe#Msj$Ps7hP+<{pDnuYZCVG=X)6! zh6@}FV#%+*GFqE{o$+W#=B?@6NB) z1CuX%#oWFBT)A#EZ~S!rfA^%{-#fHIjiz$tAA4%7#&RI;fzjU0b)SVUoqTM(g5Sc> zt3@m1!n?Dt_1yMV{F^SWDf)hY2}45TRTqQ5j?a5Tx0waL-EUlQ(|PTy|7~n+ulAI# zT(c{V;R(2rU?bHvt8g_macLsl=^CSsKH>T*HJl&0t8`(cS>+9eO^o z`7h<_{^3vgvDCu{{l_fv9 zLZ58jc>Ss?(;aoK>6!_Q4u^^oYZ`5xU*&i>?#OaIzRYEHz^xX?8{HMjo{M^yEkF55 zajmyzNwG+p>;=vzw*Ql!gdh3*fAai;pZA}ie$+a#>A;5dP3!x0Unl?D#W;Z-bP{fM zhTwr1-iEw2LG!d%J^L)tyiieV&&RggCvL&YE+*99 z-N3}>^#33Bn)`~|%WYJ}ITdCvSi&7F?-0J=`!tdNtEZR>xn?s=(LQJK<&iK;L)^|A z?+go=R-Mr;%bRv7Qk`MJJ?0lId!ENXThP*5WB8AM-)}qV|L=po9^ni(xE^%-$MG3= zr)R4KdmQlZy7X{GM9g0)21{_$z}>Ds?o(*$ z5%B4S;L=O74rZ@eBV!)UWVW{9yZk0DY2nE$St2qP4vf|RYej#Y3FoQm^to^``^@K+ z68|;38O-z<66P`fJ}7m5KgWbuKlgu|CH0^A%};*sR8dx*U6bEjcfAzl!)cw|b#&6o ztFQk^1f5vqbLu|-k(G^l3<VOQo{%JY z$z@Cbf3(;5_mJK6T$9%mE`?K#XDx56G@Q|^{?blxj>Ss$&hPPN4>G&XmY$ER(!K8+ zX0vAU%HwR6L*Ulu9u#~#qd~u4e0QkgwH8V4cpdC5@G25yZBwX?=RP&UD9hhwl`lb4!g{K zJ?`oSx7|Bjw3iC0^2-PA+OudP|1Qf@bA=hU*?co%ba=Nip<>3O;N==tm0dnN*Bo20 zr>!@Je~}(KfQQ{Ij=f5Su1gS zW1-uAodtU;+}6h|xK;mCzvj<>&0Q6NdrQ~Od-Lyr68AReYwU4*{yJ{;y7O2L zZKZzSJioH++a9U^Zpy)%9u;>4-4suGmti)0+nMXh6)7#tmZ@c?RdK1a?GXVF&$UXO zSZQrivh%v#f(rX3^3{9&EDs>k-W$9lBFD?%G`TM`a)&HOWUr}ldTH*WgUgXcnCCm-F zcfBGtDmJdrWH7pR=AiR0)B6c47%!Z@K5xmCuB9oJt#8islrbrYFtSviF`oDTp`g`| zd%sJ5tgrL?TKxR#kMr(|ir?$wH?GZIrs~4O%X7uoHTu}L_38|-8#x#l4qQ7SR(JC6 z%^op!t7OFZoU4R&RAMF@y#EZn@d&2KQ`9AN;u!PP`W+4_+R_F zy#nfbXQ+U45+HL?plAFXkZ?ANon z%z>vIqtLSE64wx zZ(eZm=Vy_P+jUo5J^911r8nmN!kzycg}Ggy2%g{1(P`7Z;2QId;A<}L1#q1w{T>)N-wF?VD%crbieRH!PQZTLm? zXiCYHL*COhcGX03Gft9dX6o|!CO7L-ViZ%u+$t{>_d92TIs^XjzcI3#Dtf9KR!{Ih;>$&a;08AtK^{YXws6I8yYjVDKLDADesFr6hB+%O#JQtzJ6(M|4Rwf99TC|KGg2H zedO`a@%Ghzz4deFKlu6n&g+%eTXGKgckPka^g27^Pd39Ea7X9bgi=@0jMqKUmPah| zLJuyVx8;BIM21I#6AS(abuyj2xv#+SHB*L!>iqU+)8jXCe3)|SXXW?oo8Ry5Y)oXk z^`c-xb-Vd(#%_;`8y}0vNj(-15|`@pEk7Su@mSeG%2$+OlKSL~|LkSuHv+?QObRUj zD_L|-;6Go#{oy+AL)Gh(Hl}3l;nx&%o@eFslIOr>_Xa%%$dRi#f|FAjJ}@1LJEfAh zX}k3$-`208tE)pcb_p@9cSJvpZh)y4j4|Km2%~`Skk!MNiJjZqH0wxL|AL zsZVAA@ysRZAuBq-}c*yT1h;*?#8G;|o)> zqu$mBtonQS^L^0`)9<^yDG~Jlf9VmE?k7W&i0ju~dbZjf;%F#s0G${twyDuzjf3>p zlv`mtin1?nxc$2SuKW4LTyjr(>SHt3ntZ;trQy)kY!NvtkF%$zXFd)8?{@aQ-O`kr z$l|?6cdNUvHe-0B*WO535Jbs&Y zGR&xOd3mJ8Ep%qoT~{$j1r}>pHH*xWz_2g=J^wFmU-#VRf2jD;>3_L;{`>8n61L}0 zSwX=Ck8}U8Tv6fW0WFt?=ArB#y^S{xJW}%@xmuX8u}DwP4yC*|p_z4GO_#oTcv+9p?u@zoEAC(H@9$o{^IwbAoiF?M{trhA zulpt!UhL)l()2#I=Hv0DuA4R+r!3`N5L2%C=<2L^L;Z%ilG$pn&4kvQl7^e$ID;HP?>GPd^u%5yA}UVJ1Is1(G_v>8-j!TSKiE-@$ISGJNpXok$1P9 zozA8RYtLnh(U%qbbB#}byHn$aDCeP2TZTPU5f91z^`+(1v z{VNXJ&n^|wnDpes)>ljkhwuMBAt88v|F+3%Hh-*dQR3WdThr1Mbd%Hb=H6D`AKiY* z)7@l#T&Q;pa!6Zt(ynUBvHfT5!o~bq4)pb!zl@vwsiJ%Ov=s#(1bFxU6zkphTkh)l z_<+aptW3R6nxF5#yne-Q7q!<)SvP*ir^`Dp{mN|c@8D^060uS{ZQ3nt8+9yOU*Ar@ z%i=_R-n|UZ)>O@RVsdtC67NPmjormI#rw*iZ_(GkWhb5sWlmSE4}GoA!Dwq$7jwV7 zlVPG#{lSaLBAze)N9SitHH0;^KfHgtg3+Pxsp=--$5Oxaug69AbSbv|mVd*t?^?(D zZ|B+S3co0{hOfKSQSnbd_MFZCPO1MVe!ib}I_uMU-?d?jCv_Zuy@&5W6}Y=FYueoR z-3(bQ4%604eff82^TG~h;ZOfJ%iZ7fvCFB;Z~mn#4KL0_M*V!?zvWZ@f3J^crQh(T zt@mDd-v2GG45F|LC%g-v0+*zZcs3S?;P{%o3-y ze%G!mDOUX3&GPtpd&BiEr^fZ`bzdjHW-s79=nW27CbM(~?}ygnhu(c+E8hF=ccoy^ z`R966=(@c0j(M(LYcd~RxUjX#=a~AJ z3%e8q7!LID7(MQ(_jH}yv?yrB_XmnvakW#~?$^$L^K^B{15=IG=li+!*G68Q7dUNd z(8?9L{~2y*fC{!~mGC8AHrFEGDV%s{^fkuNeE-HtdJLB~f4`)VZEl?UaVp3sMaR=?VnkZZLmSC%Okzs!Ok?_|B^+lBfYr0O!8>O`1jYY5$V`rS)R_i&4Q zU%7Ugf z&nIi9JhtEQZB^Uf%TKjMLSDc1P?5|w__zD5RCF2743*BSFVQgJ{_W zR)#%1;6bFtf()8B)7CsZy;g%k$L95X?Ss-4Nq5Y{G$tKtxV|pv;g3MCdprGl{q2`N zz5i#{qx}8F(iZuDx&;)Z&91P$xb*u-r}-o{C0517-Qp_`%>MM@i{xLy-2ZMjI=&x` znBaV9-BN}JUxIa+GL|n3c{6#@LNO=#8(i5o|AhjDWNcQvcX}LHpQ#iH6`vW3|WpVEdltuaTEk8>TI} zUft;QQoz8>?c&MFA~F)H+T1@ra4aoz?@s=#?5eRr)9Xd%AsjIITN>D z{a0zr$0u_k>wnUp%Tu#+{#-YC9)C2w;@@tukDuIa!dVr1=#xWqd!y!i9m#b)=kJAZ}b?A?~m|8F|A?vpTA#FLFmOg}$1 z*hc41&i=2iDgW{9?J0M5zU8uC^jH4IyB()i{mlkVKV6Kzu9@(Df5pGcv$UNL-lD%S%*98$^Z9x67js@~&;BHu zx&LX`?$-44fsMBRTd&_=^5KJE?$7k;({BFgzH`3m-qGa^E$hxXTUoATa`^mB_WG}l zA!TvacMc~Q|EP4kcK^(0{bThC^Zu9LyPEa?h*z-H=kee@%H_IKUc%2=;`fv)Nm=vfLnUoK4E5_j=r7iigJ(a&W_x|d4B$aOZWfV zPObmw&DEE3Y`<8g%fYRi+rEUQIT-?iS2)z>ltzXKNzr1*W3K@Ki|cx;d7tIM|Gci{o&8|6RGAu zpDznr9q4J*zUH$PgFfhNfP~LKlIkN_8qRVv7^H1$?`QkKT`BWgQ+JMy=fnGdWvAY& zXnrJZzT)G}!rPw}+0&E&uHs>IjkN(&okeEaij<@5Qy^_d^lj@3u5yRHAP zjVt}!j@K&J-E96l<~i@X{M*d?g!+4xJs(qJzt;Ocm#lXwD+&sBxY67G>VHD=6Wjl1 z+uS5(K2+q2uWx2r`K|t;P~^uy?21MIs<|IOXaDvuc%edeZRF~I+v^yvOXLWE!dUl# z`O2AF@4sS7xP9N%>cF)R&wW}%Ki=sOpE;jBN1`}4mcs2>?p^L18LWvnzMD=o#Lmw?AQxM;xK-wF z@y<0%g9@iIFdT3@xQdzKhTJSBf$Z+h(=PHaPX1ldT(nlw%;##?NO6 zK8`o9De9|i7Vne0;L-5nO=K6J{IUk~rnG{NN3+du?EW!hZ%^@*P0KH)$ti?q*7+W^ zl#sP9%Kc)ar*Hk9C;!+XVfB?i{`If;(jC9)`TtPUe_L&*zyEV#^7BLeEARcOh(5Nf zY;M$i=OE{0^MYz#i<$nM@H;ZPdeJZY3Q6gYe>Q*AudV12d)oSZKl^cp?4K(=Z#-0T zt6v-U*!>=N$A>da^$M?Tb}=;Yf)}Zo{*hAt`{L&B_3Z*FZhhbF-d#&l`Tex+mdWWu z@3{Y*Jmz=)d)K^2A3jKkzP4ZZ;FGA=yL*d&eBK}M=i~7!e;(=Q6!`4)`us>$;QWN| zW?n7~UvFC8@vK?frnBl0r>>&w^YcL;^Z(m|3gx$t684lY<1Z=@Ec~!%|JBa2WdRDi zcPwFYsCmsE@}FH=-d_6CANQO;=Hae$8txrj9(F29IhTQZ&o-BdyN?-m+f4$EqFlxU%yF6elzs zTIksI{_fJ0v}=F=+>wd=$d{`7Dr)BoISB>n-F!tI2lZS3J(+0x=irMKpZ|ED`>$W` z*~%>*bMD!vqG%Cj>k8RFGv5BOzk1#6>hH3=X_J0`*R1^FvDnSTl;!IGgT=>xs@eRX z^;!P#kN1H`PRoDXCCefj6)|J^(W9(VQfppkYw>v8WsfP};0UgqTVuELK9JLOs(w@W zW`^&s^Oo0p<#t}E`}Rj-c2I=YB+L4~Ma_$+?EAQ@j5FfjC+)17pR70E?<>`1d-}b$ zw_y##%(K@y8Vo=E`TTCN#->Bli|#RrMK3bHw}eaj-_h;&7Cks2Xs%;?UjN40(-$8K zvfHV8y$jCdKFJjG>4W0Zez{3==UuBlAF_JIKmK|4b!M-AUI&ebRF`W+eEr1F$Cvfv z|CcXQWTjR~=`%2Ffb3sr`SmZ_lp*PP<%_4jIm;_$KF_v!FMEpTTtjcyg9D79K~bCH zX>S%9ehpAhPCoZzLLMVG=q_i`*R>s+BvvcFVp&r?&v>D?*+Z>qCn}#6%gEUIT+|j{ z@#Ej`kY6{?YuHqs$-VaTkKN@&`-#5JZ$EkN+^#4& zwpQVTpN~n~{9n*}MmTep6z5<0goBk?uMD%hdhZlCzO%mpn!0C*R({Q}qAk$4aN*Ov z_kOJpR^~H0U-EkApH(sZKPTC;EnOYH@<39<-;ez!Uo8H;v(Bpf$ZER(*Q7T`SpMfs zu3x)kp4#N4tXuX>`YSc>jq~5lhrDzbX0Kd1?|;D?1JV2Y{En92UwUY3xTa0vp-#P< zX?w5U;+?%oPD*I@j{l}A)8!WjtS(g#4!-i^TeRK2#U=BOE=)Rjce4P)0jp&8dG!KKmM-_QX!+>hwG1+fG;FRYbz*buz@`o@dFQa`?RUu%^% z4~y|+Gjlk!P_e5|W?~laluh5`cd@gu^9LE2xt-iwJ;l#&)A6c#LEn6qP1-DX{H;i{ zPH2K?nQ?uD`P|Q@6Zvc8Ts$uFi5J;rm2%xUtp9x7hf~@iHScY;_WcxdO+S~>Xx_Q( z!nHiRNlaf%A3eQpP;d6_?Ioq7pi6$H8V0SiDAaZRVSj>Os^Z_ls>6q#%%2^#)=l+( z)HDT#hO^)WGL>Pu5xLs(yY8|H2fBtZ!}<1PVG_Vt(?vrne#P)u9K+bN+pp$iM02 zw8c@2ADjr(+VfFu>b;%om>dc|2(a!Eyu5qC%T@W=zN|UN7y?)Sn&0;RoKJAkXEoLB z`Id{Y;k}n6Dd)X$eU=U<} z^JmZL>hoRfQuA-`Gc!7H`Q)JkRnn?ok1Ts$>!Hez1wzvFE0x&)r^WzSvoN(30`5^SU4Nb4|8hb2Iwaadg{p7n?YZ?CYtDQ<(hk zebzs=w*=&Vfz(I4Gi}8M7ldf76JlV1B$e9-wtPNPEA4P0ar%kMEzxpJf2}fdjh+g% z<@{)8F4cFBBzj+y#x#RfK)Vi1wrKT(L97cr)syF?4>~_P?x3RZp`yLC$ zd3E=91%CnRb+uBabST2(L|7i94pqE_S3_6n{?k&i6Vd-X>_4<9c zew8C*Lrzbo7Kgmj3e){R+h)br`)c0TKPLVz=%C0K+ictaK@+ydsTcnfHOh}yulj20 zNzuMRSyLZ~|@aKJIZv#$-t>*gqy|!Y% z!uh`yQwwtL6|}qe1(p0VaozKg@5g5L_Wl496OTq0CLX?kSFagU?pZZ!{eMt-&!My%QyJ< zn=kh0lD>|T`JCKZOfD0pnLDotAFN=AW&q8_zD{X@6K z_6l6!`ZcASD?+$#zgJJh@d@!qqnb7IT{3T*{@*I`XWP_A3QjH8^aPUU+iqZ#UlwwW zsjjWJ+PEx&wc*gqV3B=AjZBs*SK|Mb{p1lcR6HgfXnpFSc*c8R*+2KA{=EO&Z+xzQYr2V@f1;n!tDpV}f4*zJd78f0^3mz| zhfg!+f%>Zz83*=H<5lnB-T^qb)R=Y6BbAH&PF{y^-;3^HK`+jThhMoQ8ySd{0E7j*u(;c0=L1%1S)cmLO<|Ds5 z|D=h%z!0x zu32ldFlmP4NBar#>aQ#QoxS~DVDB$0LGDRHj+eaFHh;Xo-1+DxGm+Z|4>~H(`~ULg zaub7yJWhsx>7W80(n9?7y7&9OCcS<0Rx2}^s48&Jy&mqOFd?S$TS8loz-^~aae>8d ze!pHQb~Es6&Y5vxPWta7oD7=vy7NA7nJIbsk>~kauWstF$Mb)yyIB*lW&Mfy^1*h; z4a1WiltkC$2Wtd!zk10ZTd}Xk|6kn4Z=22U^YB?QHt_y?@uQH-f8)pVa`l?qRQIp0 zZwPwV-!%?AK0$ zR%IXkQQzD9|FC=Pm7qC$=ZQ+O{%vpjm(AkP*nX11*VlHNr_6RX=A!=x!@vtFlUEi1K@W{wqoznQ?isrp5yZ&9xdZNEJ zNWlYKiH$eg|KwW!ZleAs&7RY)_B?$WL}SPxo@iwA87yE z(y*$jsy8F!LZy}S$5Y}rn&nm;kAKawfkPqpLXbX#M_%pXhb#@1>I@lI8lU*CmY8sL zN&xQxD@CW?)hl$FIvC?0IT!t`3>LX&%-CRlm9hG_bLQ>v=e%W#S?*#P$GM)ron9Zz z(sk{5MDXGT(fOX`dv|?4|32%_pW{hWdx|svPQSBb;a0;Ch7;Rov-~}pX7fLCO33QN z94{UxCVx8b+k1W2q%*3ZA>}mi(5#K_q=&>%C%eSC8_v`-qMpu~CO@7Q`n#HET zSUJ-XAK=DyRekSMqWuXQ}QxDaDf1l~gBf3^4NY!;p z$o;9DqnadnnshI_}Fthfg}rC*P1{;qUl-?FWifB*drFJ;c?H~zox-^Ks4-CA1a6uyuC zx7AAe$-UDPDwjz!-Z)orqPMy32)FkhP5zYTeOr7!^4kY|-kpEa&wuMNlcN8>zy51@ zE}v8S;>4bddD+@Z4xLB8>|tOy07=$T_Z~mB-4VyYP;15)^*>Yk<9SK#wficw)}+5> zeEQq-*0)ld#}m*0+Z@Mz;LXK#-)&Am%)e?7@jjo)+Jx`0XA5ZT8 zI>CfNa8FPF1jfItHvbdYKg9h5RrFk*<_%ldGeWxz?dusQELrW8=s5r5qU?Rk@(yU_ zzmPh7V%_JxU;pWT-cxTKe&EB>dhr*B3a80y$bM2!{Tz47-N@AStp5HbKW^v8zS}SI z#;ZtEZ-M`@mr>{IdCuG4cq6e%M{ickbAH2LtG`N3?Na2Q9AL$qp(4ABpQn=O6(c%4}5 zwS^8W4)G6d|0i8I{F#4S$L+XCugZMUHdax_MJIYEw(Ms=ET02DB_cPWsP?uZLqji* zWKNWWdGGZ%7uWraQ{(a2=y`8uwt45XUg;};erbEDtE=iO{I)&Q`PVeAXkPt%spq!; z^JCke%jZaZ`!w6b>J5u%RLq>^t*w<(a#A1Gryk~g%$C#3u$+NmgX*6{iv<}9r(Nz< zYG7!PQ_g;S-D;ENxwNDIeU`4t)qCu3x9G>?{uAeXCTmWOUG2re@VB|2L$EoHXN%~! zKi<(nAOGzCpKSK;en$1b$rAJGKQt{&iImQ|RkYOUurhl_)vuLu+4XF&!1CG6ec+W+ z!;K3J3{?_W8P{+(B_;ds`FAorKIqfm?>Rr#3V6QT&%tow@B7IgCrJL=BzEfS^sN6+ zxn^EYpY#0xSM$!kH6Q;h&gQG&llrw@kbzZ7LgK;mPT!RNt5SI<{<7a@)?{F4$epm1 z;fIp@%DcD!#4s@2$Tm5CJ0owu$S?0_&sJ1|8tm^U%&l3}Rv)0XlTXv&-|rNg6wCj6 z_-?s5ciXe2pU*tEfA6|MIN~|lT)WiSQ`X9R}9Vk%g|H5Ay$Bq zf#HTtUGQveri^G;hO@8cGcq*9DXy+ex?!CDs?;lzA*1f2s;S-2mPzXUx8DXD{{PCJ zZTnxRt@~rX-`sOW|5V@n_t-6}VDmr0`S2-d2S-fwdbMoB+6Ksij;M_<-NL!zIyn+_ z_xxvQn0IUy!-3n&lV)C8e)-Ce%kx+KJUIV^pZ{dd>38{4U3WR?^S3;&_;-G;`sZi2 zU33_32&-@PP+9f2**Br)Y9MGhPT=DOO-O0soG=?)TFAyTE0i)h><;;M>*&bkKI-w$<13k^ zk5~U>uG5*O9WupZlIeQJ4d5f;w)N$=PjzLOQTlz~KD~z6&$frI>;J9V`|R=VGDFTJ zW`^?zpa1KgcwYKrO3|cQ^7TGv`R$jKur2&wdpOPZf3IlxPkA=!8yd$p=qs3d3a!2v zzxMiy5S~b9uBFBd{QDVV84hfN_~PcV2-k)y>$2Ud&X@hp?p|;HvD8}Wz`CDOg6s@$ zIA^_5$@J5krCDjTvh}}I{m-5^mxLrgp8L7#e+Scxn}!=I&)aXinNa-WmX~I?Phv!X zphDN2jq^Jev$omaV7vg@c*7iVfBQ7^lVQ0YlS2=)S(o>P+u!e9f89;yjhck?0`3zm zez|YM*L~o#0qru$s{1Q?)c($rFE4|||Ejn$9<^xscz^bu6}SFJov)u$`OnqhkQIj+ z=ljJKR-GQV{^{zSyL{+S&A+WV7D+yhZy7U%7&b8PNNQLVvApn6P0Fs1oY!ttu6@LC z`_HZF!+YKDJlS_$JAQk%+M7}qRwX`$6L;l>%Cy<)7B2YtulN4nKB@gbd6x!~*I zI(J|AFDJ*a+V+3c`-iUc{+pcs*?xl4%=U^7|Hd19e0)+L|M>gcFKs+%#LLgS=9eS~ zL&9$GDq7n;?ang)FL7-M<+#O}$|7(BPzu4IQf6epxVU_>xM?LBp|YnkGmx$EDq%3%JxqB@BAz_WjS z3g62W9x({AC-{Gu7k~19eAJ?nv}v>M*SZ_ZcZU3%o)q)d>eIjKzrWUh{WCxH{Qu~4 zpZ(SScmCr4RJG2#WmDQb)(5G|e(t?eKaIZh$V#k`_GJBV;0L=ks}chPL-cadneT%b zn7&P7xy7rn{o%`BXZgkM?3MNTXQ{+@ppMV|_Nlkx`uk&J79CqYKj3jQzec6WyE?T4 zVyn^vx!+jM`@en8^Z1_n=ReOMY23=hz%W~`Ozr=i<@2QYH(uJco_T{T*pF+*OGmK1s1x_W!?E@kFq&p@VsXw8^Y*Jg9Mf z-R(8?9aLNCljFbK-OR?mXKY3|)YRkNCjsPvua83q>HzJ@htlRD-+4nTm_b5(M zo|1JUW!`H+MroV1&nlf5mH5p5n=0`gI2IB5_5a7@sGo=BGoP04U!0P3NU~~EVEAGA z=ewRySb0eN@8@~{H$Oko@$kLv|LoO&-xsc(t=pfy=IC8Rmd&qaKO}FAQH0DQZv*cw z;7f?I+9~y^TD!>wMi+LT=;W(c7KsldX&Jv-|dLwbw#<@lfS3=A3auQ zWaoGGyxrm-r}Z^=*59xFmbLY&B*PbheRtPf{HyO@ zN>3f@Jb8)r&z@@!lbN=1Sk-W(J-0|LH00r)=E@-K`fiqLP(MqX{SC(nTUZ!w$Ssq7 zl^?Ox>_z+Cx8f${YyRHztNpv@edAo_SW&a`T|YK2iM(2G_UZD^%B-3{8>{|LX8#`R zS0VO~zl!Jm&-0T1pZ(x`{&V`C`mcYc$H%;tzbtt}?akBYFVz=$?R4ty{+yPWX!k$L zEX44{fpg&c@7#pYv)A+(u5D{&WSGaS#3xX=VdwhJGW|yitADLu>9bPoclMuu->>}m zJYRF}?CkKr?l0=|H_m$=-&_Cf&;I|)i;SOl+)!A2%xkqp%Cl9m|Mza&^(6AuPmZQ* z?nnP_erMVF7*syZN?Pb~`Lcgz!3L+p&djUp*q9h@Xo9noUDV!b;wvmxGd8fw<``RV_ym02(_8oTx9gePuo#Ad^`_)wH*ZgH}TK}%IvtM~EfBfv7 z0M~c+HzL7y8`bIOY|_sWvKDlhl67C~>!@(ph-+ok>Q57N-rlfePS6GCr32e+#b-Is{^ZI+(D;NIH`SVfj_6Eioc9l-O_J10s{(sV+a%a!W9{Z1fmTNZ7+ofs#>}UR(kAKQ9 z&uWWe(f`*m_xsN%d5s6>mkBaV<(lfX)bF>oBR_bS%=kylEfrTm2ZktxM+xcYpYqk% z&799PbH0-4r{Hg&j!pXh|MvZW&xh?N&z)Ij`9JE$5vL1pWfa38gjkb9HBJIPc{u$jNm&_V$+zxL@h-5Jcd~(nF z;roL>*mpZN1T!$)5KPgX>^rUH`lQv27ov7-Xk=R8Zulif`19O_q?AcJ1dgIzT5Wgod3eQ=l8e$z5eQ* z>BoQSKg;T^P2L?4TQB?dY-YOt{!T8z(2BUIm^tR$+@F75-?XsDkfTftyez#xZ%a^k zXf&UrP43FiyAnS#G31Ef=Us4?O_}pgv-zu=3R4!{j>f&i}=GV zCBG92kL@x47kPtoQ&|1I&+9G!YyZspe{k3Je>V%ai|QzGZY$!g-Xqr7(`nK7_Q3&# z?8&UN=GA#MH;YQiNoCZFyjgfa4^l`zxSi#BVpjZy8W9FDeTD;ln;Siv&IkycuMb!| zF*a)1Gx7Kfr`Ff|_S*lSIf*^;Uj5crMf)!v+rr-FdhYZ6oE3%neDZ3ae@UOO`nUAf zewTHgXWL_AmkD@o*q+?5>rqMi%E`+DbS@ltz~FDs$$vU6Ph;^9`5Tb-hE-Ji=_k7w zR8lI9uYM}|5#r^%Tc0W7Nfr~swFO5#RsY=ndZjP_{-UM-zx}`PX??xx%O4gqiz1!> zKm7S#Fh;U;-v!_F8{%CeJsUsPzcpP{eqX)%VbZkE`h7GaT)Iy`T{{z}`LSRF1A|SS-K0fzU#*tr2$=2r z>t_33d;fn~Rr@~+T)mm=e508by@>z*7}R6w{vL1p-+j*W|G##>`Ds7@^B?`)Ri@{k z{3(CauB=mFTfVDS)S)izh{EQrQB%E^UVZzY;RY|*PCGlM2J_gW7im#99`kO!+4<_Q zG^-#xLy6wK&-y$6>M)t)|8+S1|L^|Gr}qEZ%>8?MQ-Pw*f7`>x^Zqw|{Qh&{T6M@{7aVkLS@8jzK?%C+o)uEew_P0^Qrm% zhmWs|)c>C=)%ECS_~ZNCQx{Z6zWzDgkAKqV|549=?l0)fD7YZ`U;DJ)oBi*tY!eQ? z+H!fFD?{yCm3#86jfPK)W-ixrVQ9Du-uKkLA?mCB|E*s&8HJLvbI*%1-&x4OK*Y4Dv{@fSxJN{Sx|K6~FU*k1))<$>ll??g)UUuH=pP;im&Gnr?Otuy}j^wtK31IPYvW@2z**dPrqRk?K+sQzB* zHu=&?b*Z@7KJ!$S<;3q*%v`hSo3V7BPS$Lji{~r%ean7x*1>*KB{4vB83e+b^yR z-Xp2MdxN(p`-w#iKC7P!iETf-q0D&0yX)4qUV@bjR&&qH2tRLs-nz~F!bg7l3r5xd zrq_SXpK@o{(e=x%zTc=_<MkmA~_U+sn~(bw2x6j%~GaKmP}HggjfK zp|#?v`~btt zyazwuKkJ@u`zUI|^!si(A2)M@R?F$ir-9}lmN|90Fv4O)UZ3SdvX!CZS^IwzAHCnV z_`{b>tv$cArrxWZ-X*U8L2b{fc^2`~4q_IeJO3)N3ocN;dHDphi%dhWQqrP|e?J3z z>JQ63{PB)A>QDW@{O3RS7prGGXKj&4Fsu0WcTK5z?317OclPfwo~)fESi<*d`*Ba7 z=C6)gE)(a@o3-R%qfsRzL&IHg#q+y@(Lt>2+XC*nS^D^~$Xpx8 zgN@80Jp8ZQY$u$JytZE2l&N9&J8)9DQTVr8UqkDqdsM;{*P};S&HlZ=_$j~6_w@g7 z>#zLzChco_X-<8`zv^b*%75(-e!lNNIKj5;`BqWJhP{8(9vQ~0zkc@0mE>=oCdJOO zNB%HblLYxa$GRps%c<6HaiUMCHrggz3|7;{*Ueula`Hg`8 zyo8!4MzI6?SOnQ0{JgHc+IG^`^OwFY(&m)@bN|w%|G(|Q6~vQ!w!Lf_PyZbL@xHER z$&CEF8prIb|26M%L2t#(@RYhvt|?~HQ|xA5d9+x2|4&}s|F8FdvMKhq?zcE^ zzv}OI7Txppdro~`f9${Y`>nSBwLko6=H*}YrZE0kM`?Y-Z|R7`Tee1Bo#M6n_J76= z;BlrmIy1}9rTyHwhGhru><&huWxtP#&yo`OSLd^sfh&AnMuf;aVxfM?d**1Q@aNPpo`f`t{H3u&w_^ zEB+mf<3IPN@N@Fn=ih%TKlneTvOh#eiHYG2`1G^g?RiHkKF>=zog#KfTX%O#@pM1m zz|Wh{Z}IVW{OdtX4wHyzP+af=T<)fSn%^5gkU$K8XOX8CbkSiw;A{;{~H&a?&H z4o42E37of={^HhSe@`KM_Ws@FnNR)emrRZS+chh`&hh0Jk%?D?6Ca=V>agHB5Vyl~ z&U5?Kyuu<%;SS$kg({u=xxb{<_W#zsE5G$~G|5`^zDQFL-Zb&Q=VyC6m34+3JktNq zb1?`o9>@ddl-+AMkCwdM6=Sh~%QLU#%VU=_WOANRYIyR&%f-RS&abulxu%W9tv-%~ z{Qi|!w!919U9iA~bwM=)!|O|H1=;KFJ@DPQjsNM{A|unaTV2BJ{urCqeUHwn`(wD& z__B?9$kwmYHvjh;r4`Ss7pw7^QTcEE-c$4bfA7?bQ?lN&?3VqnrOodo?j-$)o_$R1 z;a=|$oj_l1hPE~FZI>h)+KU(-%fGP#b$+Vd#m>E6{r7b7+3RPsSSE;kttyx=Ra`7m z|4%&1(!lBALuHZJ9S#?-X4k|l%~*d$FE<0=4+6~ zG~0jA((8RozJ@NU>h)Q7tNwWW*SS&M2KzQ&zWH=3M^8?9(7byQ3<)1s9Z*Ua*?E3S zN~s^ija&r=28M6b{yfr_-n+)G;bZH*3g!8I_KUvo<$q`jIBW+xeqz>)1x)fMPYR3l z^#z?+wR7cl(?tpo++DL-RbFrZcW4pUfp?p4b~M*$<*x3{aBvJMa$@LiI@#NP<;N%P zsDEGAul)F&Ut@2rcXpG?01g+2e{?bU8+;B|27>J(7l<>~4acefKd z`nIz_^FNj-;e7LSd!U5m;ov)m{>+JuSTXzILdO5IxI`G0q7LYRm+#d7V2YozT2SG< z%CY?qK0OTj_UYnT=_z(K9v|837bUzgXa#LqIHal-v&Z4$$;l#~|I@#T1TH?w=6q+B z#5-QD$I46sk_-pdZGPC%yhd`Gf}Ek?hnU|N8hjKli7fo_EjQ{{{C^ki`ajI7f9{++ zx9h}0rzQK>9NRC>=U~o1>*~CE!+-5oCzt7(7Z%tqssAQw>;K%V zha6ZO<@xTOo$s$(wx+S;nAgSqTJPh%mQK2Pu9|6sC@4)^^=}Pi3{o-3mR+%aqq%+U zpBb0h`D0e>ulUQ~8(8#RPL*FS;LyCo6IdBn$|q#~iCTNE-?Ud?!i7Lhg$$$j3(qRC zfD(t?hGlFW``16U^HVwd{9kQW%}>>}e;)Q<`SJL@=3I&EHuXE(V`n*Z&3Pa9kagbw z2HXEZAI|sm3F$ty`LDxNzGSwXAj^ZN5rrRi`!O7A33S*RHMQ%g&^ewP#b75&@4xw7 z`rjF5jkOC+S}h6|E+|Wz^=SS6OEwRWy|4FPX15@a@nNTM$b?yp)Aa%i-q}bCg}${& zm^OXxaW@{Wv&w$4?e}V24){Hp#>8+dqxJumw;5-nb{u{D_|~oUAD7z)ex99w^|k)b ze{JT+Z)qNBKY8fGd)|2;|FB2Bjqmv%VDtZaoa(9Pf3mmM$6G84wii<3F#8ty`c!8-d9S!H-}L_c zB?q1hEzS9Hyym=_{r@>(b$_+9YJPDpmHL#w<#4+TN5+)?{I8t5=8ISTtAEq;f2-yH z#-5pSeSaKS9OHR@{}C=Uol;q+ox<9G*ZW3%!(K)v28IQ{F9bYTvwX)tb#YaNLk;;0 z56AtR();h&857g}KjxfypuoDAUDK*|meWhQf>$D~%l(2&K23Qh-))mWefsUnWBU$S zq;9N!p~i6F*@<`FqE~+G<9+f^Bwz1-^vTKUSAIMZj{5odz2?7H-p{|rM@-ou7yiVz z&bFMtN$vq8>Km*6T|fEr{Gb1~XO>&vJ-lx%N7J=-7u_bm{l{irb`qMuB1$)SXH3*r zD~4)D76t}~@=ayJ0v3xMd;VWj(wbNEQu&;mo4l9SO2&_#hJXB5GAJCY*J)~~Snw+J ztHms@Q0-pt6o$+chJ3rrrV|-ohsqy+#M^L~yQs+C>n^X|nzF|pTm0P5xIgaJH+{1I z)QynbgJ@O1z7iesPU*M0iK{<`vC`L0{_=jT6uBe;Bxus&b5@k-B1 zKjHQDTeW`vSM)S=_!&3hZL9)Q!(Py0sRiZ%&CYU@zuh~odMCA&rF(4%qoLWGH$0$| zKb?zu*k6f!aJ%BlW|8Qi#KL6h!XfZJc=5w~*V~o54JViC7-TCmZD?q&J0@MZFW$O4 z%gQkS zzWKj4-`_M#Fz18QyRW5&w~ltq}+Ne$xUs zp`tft^YiR8ul`QC`NCtqjpFTyi`N>In2xCX@1DXS$ly08fKfrl_CXfgl&-aMPpUjL zHvgNf7ki+p`FW-2Dc{%j3|}6soxc8}VAj8VQ<>)Ox#^ppuDSQSgZ3ZurKRfCe;(_r zKKZ|J_ji@+`@>2vnpQG0d||scVf)PI_N&i7TK$*(dYtm5tpDC~`#u-?baS~a_YX8Mdek-3^W#B_YulP`Ez>!9iG}5@lE9YY z@Qa}gUtZO!J&wDT{p;h|?|oMudn`-W`1h_FJZ^aNwfy~kXXXBDZqn91r#z?fK#p+e zziJ_Q*{AEZrT;g&#Ki7#Ie5O_@nCko059K!sUo_&t)A~Mw!if4S%Hf{$%Pwt?zP^z zVk)lxpTSyqk;bOr$^I+iv?qu&{5kKyz);N!O49Eq$FDHeQYc#Z`%`L|K|yE=gZ{a) z%GTar5w97J2yqttY2jkH`0=sG{6xnG7bIE_A3j&DDaaUQ-5|gEPpQPtzmu==cw9NH zIWJ)Ms?`mVUl|;(-wS?paq36?pSNs|U2d&B``LflGL3!3(`U`E^*YP{-{o9@(a*ba^i@zsl%R=iz%zTTeW<^s)6U9lHxeSZBg zyjf|M_3qBHw1q1ko;vt}qnqjY?c*CCi_Cp+{Gzi+*Z1I()*1JA-+Z9ndCTIMJNp(Z z&Wz2*wfA1yu49ZS<X}u=YzO2(P2~&o*W8U+BQB}XR(XvtfJZ_%Ol{%mNz2c)`4s%{ zm?l=xq*T}A$}!;IaX+Wqq2{=4+g)_=1?zE7`iIBGik*{jrsdyjX{ z`|mBX=f86LpU*Zc6aU}){Qjr{LkUl6|6W7a8`HFsQn+|lM6I5cwDE?pJYR`AsL||D z5tq{NVE$>fP_egXy7gZ&aaM1*)Xu+hr7KgU$ON$__KMBcRTG$2N*k2TShUz(!>TYS znxE~e5bLIunJ3mMgd01sHXg~Xh!SL4b~m*lqy07ejdv%nviz=#-|sc8VJN5Nq9R?Z8MNAD>1TG{svGWIM+`Hhk zq=|9rDLto#diO4_fAw$oKA)`|UiPdq?+3?>Gi$WO_I~%x?^>g@`o`LKYAfxFzhADo z6Zx{zZTF=!@4Sqyl}k_iWG~GtyFB}op7BIBHKlj+ij|o-7EEwRW13m;zTd@_iG$(c z<9VOul7$#A#f3PCNgAx#ePD?olgBldc8hHaQK!`rfd&YA0%@6y=# z?0d*{Nk?H9_LSzn%Tg5zj}jF7KCinqKXj=9+pMKMxBTC1@hbnOv9D~d)&Fn*1AoW= zpZe(izSCJLCqABAwcj(du-f)c;N5yxiI9IkcWhjBmGNo)+!Z%dEVq>Oh|GU$&GYrm z_0*{6mt)==T~U(QKk0Jh`66|N?)A$ZA58A%U@&lgz`(%JaM&P6K!I)l6KDRmSKSYl z-KvZ4i}3rX208FlnXNgqAR>#^=2yluh6;;vhB@^ebD7h9xEMb^SP*UPu!u#aJgSTT z(*Z|Ott>&=02}*^35$09KO^BHbLOw1Zr56w^T%FnKbo4{cRPgZ$Hq(Z^UNbY?sxq- z|DQ*0*q@_}6Jqus>#Db2&8g6}KjfQ!R=UFZdeaJrpU+=kvC{spzyH$mKf%JM>?5`$ zThI3^SmAXmWR>t`whK>xR~`9Y5v}@Uqwty-4^cmcf>{R`85kIjr*6nQ@Zhzp-Tqw3 z#~xP#H5+Xjl)atOmTq|P^Yas%PaKi`c5c^#{Ux6_yxqC1 zu3?GPjFRR`F4UN84n&kRn;)_$Foc!_zDF z+GqXPptzdOH}QWaU74LfdrrO7ns4@xZbV3>N^Rv3%dYQ@I?tIUn6i4sR0~(xecP=1 zeDm(TGkW%WNAMDHrh+c8A18luaA!PqiRp=2K2KrlmESpGb4x`hoM3p_Dd+vRVGYBA zz@L>Hblmo@lvNO9>bLW{Hraos2xEHfT%Asi2`3ozwXJ6OswOG;J4%Qu79>nLV8m}H zP-(E`vFo}o(p&F`eD?SC-WKBY^XZK{cbES7R~z-XBY+QKeBthzh`(?t1EfE z|3~+}|5=7Q&*Rs{-<|V+d(qSQRe#^7wJHa`m0u&F87~}LcF%g9^X}c&TXqXy{1vtK z_q;ocb?1mbn9|71z`(Gq_uT)NueAd9EdRZm%VWjv^Ni z{^|EwXZ4ZRBR3yUL9AFP_2lezt9b5CB2!@TLa%RWWPm3c6S-u&w2 z&fzm#(nUsQ%l#u4^jH0uz2~1#s?hTZ_wFyB!drLtc=)dAe`WuFsC~!qqe+(Gen8dR zRhIvjFgKK}oKPaF%~O3`v*=Iw7Xf|Af2mLZAN2t(pRoP2VP{+E)cV^_KlwKlbrdT- zZGY_buHJ+5{^{F6{2K1Ocm6Y4=z`0E%S&<$c*{gJ;@@nSC9pW>k;V2)2;lH<^A2C==|Ev3!JvBj3mQ_W`f#;Bt z(}5DHjuS9acgKKP5x{ zJ^i6w^iTiWl=|d9(ogRjzEo|uOY`}6X;p5>h9f1#4Bc*rrg|OO9=qi~^JaEF1_p*1 z>Zb%5ngy9sna^C|Kf!z8kb!t|Y}byhx0bArU);j`r%&RSob<1xANgx0AMIn9>{Reh zQCK#?^Y_8_r#~&jJ~0LF4tOQ{qHOtjPKQca#?R7AGZ;d{SomMO=2f#1^DEMI5u3; zua{2td&Ma7l`+M>d-KXYItitk?hK-Ro@Fvo=l4!{`e*-NJ4iqea9Cu-Il=X|?d@V9sB`c&6{G3Nsp{rg=L&z5ivT;hH1kX!dd>>{IU zio^W}OEV5%OL^Qk^GjHh&D!#loZ{@T3cXl{_{CbD+!`ws)2yfD=pR;RM73&N1 z)H(b;wf~8J^eLD2i1Yg$$|8U2KmX$&b@k7Vr6w1?FrT@Y8N8&~Q(R%T?3P9Utowpz zv7ak4kOrqo*Tj$#ho7|zr!cSkrNpw$DEZ^FQej1fWAinoPSks=Gj@mCT+Vgi;`VB3 zSi(1_e#V>j^Ru6yN?#mUw`j6E^NH_W&5pt5UI#3gO?X$dP5IiRFD<-U#PEXYGVf#i z-s4uk0ASPYFET zAExnNe&fggdMn-KRI}dt`~S3W3_Wq~w(u3_2H7k z4L+$1%4`i5Y$~Y_Z2TktZazQHG}!$WhsRvT^C#=#CS82ICE9txYXJklMw`?HPgD#} zN6PW={<&-Jqh)EDapU#nJM)s`t~Y<4Dq4Gry&`DF`Ay!5e^%L_iU0Jy(tb&$C;Qz* z=lbl~U*_JSzwgaAhcNt%KD6QH!O5;%7I)1W*fjn= zxbWoons#QC^;6juU6(WN-8|Wqd&Z&qPD78g z7FG%B2X^Y%I=tfWsCHZ_uMqswB4KU*gsoxb$C^C#C)^i$-ndfleHveTlGc0AD-DJr zpPy=q?s*-&jQ!9P_V~-}YyStb*Rn5BU6J@+lz`I?GEQ}m)6iUXoPY5P@r&Z0 zqSn3XemHN_C3$bZ|9sl3%HIc7wTu3XHZOYo-%k7ApIKX)Qoi1Q5_9^z$6mI;@2SsLeERP(@AH1+`KSJGvG8+Y*d@szZ)BS4Ay-&Hud0|J- zFaNvt`7fTEB_55tYHt4e^!j&}5>NC^#r4yjzwUm&n*HkXpcDTRJnEOdNME(MCijwO z@5S{I89 zpEUBg`md+55*B1J24a1h!s1DixVH!IEFb zI(Q4W>FztX?f9pjkGdbZx9dmRyvA!SM{Pd+Q*3+iQ~h%uTjeRIi%tICznb1H(|ZvV zedOIQ@wV+Y5og199-7~===`}!CFT0X3~zV}8Sdy>GMK%e9oDzW*7seVpljfo-9ASj z9%??7RQq*92B*aDgh|=W7IU85d0u?E?xE|Zt~vkR<nXm-P&BST%Ko_Qr-yzx7;F zbl=pKpK`9ePSe&trM`Z4&7a!jE3>)&e3~$==8;CH^|Rff?-VW+PO|jv5^0FJYyP=o z)B3ynUj46qb#+6`zfb=dA6R_R{C`TO{af+*iJwo$PyYI@+9loPXMXDQNps38t-WN5 z7SHrFZ~kLkyz!s*jk69{*cJQxEv zS?eyIwcOL+^8BG+!Iw|(lQDHj`XbHlAf}kmQ(wqbk@t>)!|3?|1NH_N{*J(;?;%CP zz6sadogTSYFoeuA)_1Gi{DeW^sJ&mCHG|7h^VaX1wEjkx)|vg-F75Vox>D_tWBUVx zy>Fl8;hB0hoMD6Y)R=!k7WL*_jSD_B2U|Sv^;&txGQ;*ellK4VJ)iPze?`=t5kIy6 zvUT~dWe;2&bemkAp35;@nsj;DmUSUY`%-`Ijb(l;e?|h-VrP))4V=ry_S~>-l~jk= zi79TX?=6|{tFmpCxSivmUb$nxmgd7%1$GgxQVt*Yy4u-&E&5cfe)I#YjKkDvy8~|Q z)?~1H9~I!m>M=QPUG1cA_s%>2=iYi>$9dr&o-IsoR+|Q_%AN4^y}UtH`$PU^zVU^p zeSVrB`@ekB=kurj-`qU2*t@UT@L%ZvjVnK$_idXuKjvfQUEdY11~&!Es*Z#ss%IR>UA6MC9E@9q05sq*PYYjM$Ij4h93@!4qDPL zcI}sqk6-2V&zik2E%g0vH{J4w2@5W=GV~@NI;$imXYgsIiGZwSt09ZuL_c-wJCQ%P z&##`h#(TQYjr~<$3Y851m6!YPxMe@-p1;TyC5yejx(A~(?=el&`4$?T^QU^*+xUDr z7lwwL;8BoY^j z-hFX8{yX2szhq~d`sXm;mj!iAmzP!ZJU^#X78RNE$9mD9{lD!l&fI+Lhq<8M@_@JX zn>?6Y1bXi7+q}Yc!zw|RosVzKiJE5g^Z&ZnzPXVMGep2KI7jC(o8Qy#?4m#39Np*8 z_^_?R%J8>~cwcAW>DYP8-iwfFtE2-aA*3V&&O*^=1r4t zs9b7b(-WwlYoEJmUhT9y@%3Kcs>ORg&G$O!?RnUe^=W<8>Q;`X;G5@`$95+i+$H&; zMy<^E7Q?P}zH;_Do6c505}6RfAn_mCvQ4NvxIm`iW$=?fo2@c!f6G{k7eD>K@wnzx zr#aTvk-N|B4F9*BRf*$SnX!I^dGnbM<-UvuWbOK;ZriQBntk{CsX$owlYxO@+FZM* z^NXJTw=A;%YZLtM{5<1h`!)U_`w?%b%zBr{FVkAT(46_^_d=P~zivtWoabMj7rXdE zU@UvXx$c{X7#Y%d!NnT`!)c$yf{su6Y#vJ|Y5t$|`TsxGpniMDs`Kl9i7xT|-s=ric%>6r@IaZ&qQBC9i-Lt(>Eb6;zpYNF6cRr#Spp_c;zgNeD@;he%sN`l~(2;&Rr#^71>(BJZ_y4{*ANljYLioSgK{Io- zuKw#SG_K_OdrJGk3fBU!+m*kza)fL=yOd$UbE`M`+$-NOFeJo*TYL-*36d|vey^Xg zp?)!FHJys~|DX@~?Nk3(uKLE$C?j3uXuiJi_7gvoqt7QljeumCa!{7BWCV5I7#JE- zA2w$F_ltY`-+0q~@u&Y|(*AURvTwioPrXaUfyMEEnTu}I+xAIHYT72B zfBRooG5=<1xXBD^axpL*FuEB2_J3rN-LH409QBKgD$GoVxN~#nT6Lnw^0@xKYo*u;GMAo9o2S z@@`AB{^$I$|G32PpQ-l$RWWbnncg$rp1h%U17p9-skZ%xpHGwc+3VIUwa`8LYt;9> zMIsCgo7td&;kwj7E8?R$AH(YXx9n}d1cd(#Z@&7kKehjfyw$ec?GkQ^S%N-^zt?)0 zGe;h?=nLH&m;UwsV(abe0#AsAJ!F{h{UHOx=OdF;>p{bR3~M-2pVrsU4-uH~_mcOT zKlM|>f7fdnTd6$1Z^6E1r}nSybAGp~ZLd9eD96L_o$J%-P4!o!dM8;dE8BfJntM)h z!Z`;Pa7sC_$Z*9U?d~xV#9x~KgA#KU-L(L`GI%qGMRUjT>Uq_ z?*Fsk9}HrN&ZnlQKifO)e~_rF;Lm;cqq!vhC!B+&v%nXtzs;8vcl-JO%VwXS^*<)& zNjntXowqsRL-w)1=Omt%WT{1TRB2LuK%N$p8BBjN#(r*Mhph_ zu&CmgGPS-=;_3gFF+as0|9_dj;7{|VkCXfbJqwbgFYOTjG3Sh|*|96)U*lgfmOO7{ zW;i1W^~D+M){pv@|8IHhUbc7s;ZyrRKU58RE`P4)zscF2|DL^lhV$o}G%c{cedKnk zm%NM0!3&|zx=okLmLyIzu_|YZuzA|PRD+}DlTG=9%?xMwVTKx~K8@!w3X@o?e)Grv zlFm8Y^0P!3c%RDq{M~VS`3FXsJ)J*dF3)Y5r1JFgrNvoWowRySmfqcWt-gS%p^^!j zaw=0hKItFZ|NH0s^i%&2_op2Dzh%n*Oug@kY0~D*S%POO%$1rF&WJqnVhY^~WY>F0q`oGce-`ezfs=DtTf3g=>{&{v;^&4YKTYcIS z^KIK#zOvpDw!ZYfwmTyOJnYRMm&l*@Z=as>Up)Rz@V}`RY%V{=)f+Va8yFq9 zG>_k8r|?4-fyZ$nbtk{C4_PhpdFPF3#oHos=1flTbA%?*JpmHD*9xBAPkOq4#kcit zPyW0<{O{b7Gu0}LyCh}G+%MS}U*F16aZ~2{wW(RIt%*M#6fqm5L(_u+zsRZm5JBg@y^{~amuKfw>&^k85}xHhHu-{(d3 z?3(}ESAMf^-SYad{&yGqEjI*N+V9<4;cD>suEp0V7T0?F$^N+?XE#2d{Jiq-e$E3j z;HClt!vUR_tG}IR+c#bNKd6?A4EuLG;2+}*&7~ep!P6SfM_w&u_BhbzzK)xnVMaZ) zl$xRH_Vc;o%skJ}1)Jn*d+x;7raArZ{Um=pWewlTZ~3wdZ|(1xdOYNYxLVVK-_5II zyA$%1IQsTFbYGmh$l#SRyTdz{2gR2jxeKs7seH%$naLm@769C*EdQ^aX82+4^7&~` z{|jmV7e86`&hoLqg1s?6xA(93v))0zjKNRVGWX_#>xEvPvnCxsRlhV!aq6*U$__if z%Fkg)kb{Mb7$_|Nd*<}if8T6x{`TLRODCpRQ73~_0#4E{5hU;TIV zNBzIbMIlrE?_HzuU`_EqK~Dw;`C}i_kI(reYPxOvidQ!g=@aI`f>}Mm|1LZI+`fFe zvVCvryaoKfFI`u1FmGO*`@T~==))r=l zGx{3J+@NGyAl2chkhM?a|D@~htx{~i*LeP{Z=50`DEu^j)j#d*IvEDxwdTJ1>I@B% z%61b}JWoC?-Ws&_)5|*xx0QU*;47E-mv9c2UNa4Xe%3cl3H%pnIi>Q-i>&{@1lFIq zyGuWT<>12Ydb=cL@~Y>D={5Igf*7CpG&*N#YbNAPDNwFk++tBX!rdqXq@t^ftfiC;rf9DGa6{OG@dY~e?_>c5s z`>T8B{CB>=|4LwePtsB)j#H~UqF6TH@4tNG-saV=2eK!~c7K|7^t9lHkMAqvGTAH` z4%EQvThD@!r}v#U{W5-3iV(w@m1}!fzW*&Z|5gD*!%#LprzA|X- zgrw*5PCu`JB*}SD4=2nz@!aUduJ-KjPcj=elij>wk66q`2mf{Lf^eA;0Wk!nys) zlm9;1oD#n$<4S$^)cUL8Z{vN>KVaf6sCg3XBA}zADgAHJH|uGxyRCV%D$LeiUj=QV zYD3F?pJu0@>5t>fZ>8A()7iQIpQ-f!>D5>Noj&znho?2z+s*#nBZa010ouJ$EX(^O zzI%e2s#ZT6{ms|?^YD`@mu2{5C&Q2+2&*53*rwK-edzu8|DkG;e%+Z<|GQO|O}=;k z^esj$?xX(>vK)`Lb5%LGGD(Kv&5`1m_Cp4XW}N>Taqef*_5&Z-xnV8T$pJzCI;Ylm z_tw9^eE!7Wj;a5b&wKZcFZkFG`+1+%KX(<3-Nez63=i9^@PleRYeWk&5 zQ&3>VzoTu!3}@`2-jiupJhflq|GT5!Ge7>nbb98|E&Kbk{wMVH-LC24Xj-fgz1rZt zsr0W^K`SRbuiSf<>#@8J2V865ssES#pFcY!Sp1JaKu6tFZ<<=ug56H)dm~o37Oa?R z_o%S+)$aN#P#wQ}TB_#tt(qK677PcRU}Z(1#PUD;{}@SDFWd>TwDWv(%`UBpEUTWF zKP>%bd%c9^#lGHR8H9zcc2D;oKKB3d-&6Ker`9i0emPHl%5NLp$1Gbp_;y=(%Q*(v z#f2{rYn&t{cSr=VfdVm& zCI`RjxmjM5r`Ux3U96#W)Q{nO@$abr2RRwU7@=v2&w1gW?fe1%dZ#X^KK5Uyw^8`j z;l3!AX6=%o?&dtU_Nbe|T?zryE{QDH^4(}dM~Yi@`t(L(VQd}$5XHNA3nAJ=<|Q){F;@nFZvo~TCe}M zn~5Re9xRuL*lY;5`Egz7+j;)iGt*E0{<{20U5#q^zf`rk+kZw2J+Ajt=BSGAk78+$ zmMJl|xZ>4sG0#N$$C^)|9#mzWgZa9D4t|$jS}{C{Xklj15rW1g&*C+Ix<8(;kM_6s zKG!bZ`ze3_pDshYFLtZ`GH=+>)2VXdPu(FuhE9f#Llctri5&@IU-HA^T;+xYXqX!G zO!}nH|N3S6iQjLEKk3CAYBJ2+xZc<6Kw|Izoq_B86L0&nUQv?RtfaozVzQgSoC{6! zj(n`Tuxi<#wxwsJG`vbhT1DC#XFdDKaUc_#Ivi#up87x8f8y_huAl7Ep8lU2?q&Hu z;2&c|l26Wl!w;ci&*N8yocO%w9go4kgNvXoBZrxePyer6e)9L#^}naq$3FRUd1BB1 zrKcP1TWbv;wpmU5+mOfR9y_OXt?L4f^B=cQSsHVEp#sMP1_o|eSJG+zr~6ax#UJ}o zZoem^r~dcVaO0!HkyeDYoBb`e%Jg3{L!WSy5}k{0TvOOt`*jzPZe4ex)<#|IXX|FVYMi2|RkuWX-JU z`*UKzgWpdo>+b)CM@Pa|$umFGea`(~@Jau@=MDQQ^$cN5si*$UG;4UW>61PyL+GPT z%m?0PgL+31Dv+dgAnWq-Kkw5|{aVBnN-E#deENXz^Mt#RvP}%En|9@W3I7D6kcZPa6wX2f~lp$&vMo0`vd-k#=X7Y z^YNACwg!-dLn1`CD* zu-FXi-gxSN_L3VvuGgNjXZy*pM(7yh0j>S7cZjqymi~wm{A{|Iq0K%b1Qr5@YR}^> z%gkn{KL1?)zmmbXcwNH$0>0l*y4yLLBHy`}7)!)VWZ!>o#UHDyQ#F_UiAF3UaIrdijUQift?|O3+l|GV2%HU zHgP}oi~bpIV^3IW_^tM1f_uaJoliC~Z~ShjCzN0a&F!as=YP6?X6k?c-&5;@R3F!K zF;|yfxvAc*;=ponNq2h`%jP@%pCwN!N-|9Q@>|(Uh^yv)3G<9^M$84bAnCH<=@E_p zHVyB$Xr?}nPpW#WK2PEKVSeMM|4jq`Rcc(x@w@(mok7Q>NYvwJ)x=E?^;gx4v@Q{v zF3XS?|JvSy@qiLEFHRF){Kq=ddjDSAO*ejgum74|bo0k{m!JBFD&H2J`|s%Wr$;2N z^u|pA$ATTAuDVUB_xdk)JqZxo%`Ln(DD1!NdBy7+Pn2!?^S@;-6Q4C-;-6+$R!EOX zN4(kczs(Bq$M^q!aDE%NZ&A+4pWiDD^!pg6O8=KQ!^}|B^YFaezN6RMkCin$d0(tr zd#iT63@ajuOzSQ>_y3>V&Hl}w{=ZCDIkx}nqwZNX@uioU`K&wUf0p^yJpK2E&Al@P zC$cQxBp=wFuBEc+Vv-gNVl&<-?N<`7 zVqjoMkU2c1-t6DqZt;`5Yg*r2k5f1NSGs%d*>DL)i4)8WTtBKNY!G%R`hQqq317VT zBfsTe%+`q~Y;0ssI5=@3x1KYoJ!-q)PxnXp4WIOn*=zq#`jh@yYa%u7~o1T5kb3mt&IiYc5?(Ce@k4rmG9D2sU zz_4MJ%z{7F;`$TIU8npv|1_sQ?4PdWj@S3n1w7apUQCSqAK5bD$gkBJT|Qb4j6L-m zUL0WDkTAt|vsir3l-!e7SMCsc*u}!YknmMv*`NQvf-k>1U-eOSkwWml%~}7atgd%u zad=r>^6xyy@&jA)witJ-M110Cy7y*d@?qff;$JZ+x|2u8@|60e4od>No7BMqKSe~hfUZ=Xv zXf8v|zP25%rvsXp8FcIl7<3H2|9n)^zCNh`#`+8x%)ibl%Z`z+*H!U!?&JsLRWUuF}%d}Ld zj47gnfx(+yhJpJ`+^kD-nNK&*n)qEMlmq0%4PSaf{;lT;|JQwf?u#N`8+R5)2JTi> zS%x1~6ID2O&huWF9W3Cd^43<;$@WJi6*!&!^8OruQ!r%;Xejk! zBXh#U@_D)5ev|x)pUw|kTFTA9&~WvL$fwPnR&&q%ke~EWzvZ%igIfSClMv z-Ywp7^Gb-BOqQTb`Nk`TVy?kL>Z`)mZ#ePnLa%&%K;ErohoBuUaGXgz?e4Q+c%yJ7 z?ZD>ktGgzsf-=oYiI9JnTh_SCslGqNKJ(*$Htqj)1`|H#uU+RYGm(WsM)EO3!qod; zZC14i9-V6zUu1Rnd*YAgR7SoA)}#-IlD%0RL^Q068B&<%Dcu)*3Ccs$7G;g|r_@i?eRK``=e&5wtGsjjtuFis5B|iZQ>t=M%SB*H|9Z){ z^A4YFi(*;6>;I;WTejJ{hh~Lx)zl{xK4f9&?r-(ou%mL&2Zn^7hL1Cn zA1v3b77kwJqFAZQ4mw3lM}aBfphkSn5|7UP8~v{RvRWx^E+U%f^=7Aw6=>mN>$8NX z^Y{4I`F%URULbUpS7ey~6%I(p|J?)tL+1rz}4w!p3=9oNk4b!fbD?kPt@_Cs0YB>}PyO$u8~iWylJPtPgZN926CYSAaUS4I{AjvF zIhNtatjAS)t?PU}CB9iQoKft|=8a%_zz|_@N?a~8_)-2G#l8Cu`rnCLC3n8LT7`k3 zp>a)?<~nDx zYMf(OIqBV#WA$hF+&g!*e&nCVYQZ4Z^XaI&*5t5rb5(2K&AIicJH+b>cROe>ORSag z>HZTxzn?m_|K!i---TCRI{Rw>rh@&<$$hIEp9i=f5V-N;df^<8l(k$p4(`~x({)~7 z=Hf8p_scW0WSF7x$GWKI;l%EV70Qd-34U^s&Px|c7yz}YheNT0F8CBo7>SEq}c#TSLw~B*#^W*pPI{Pjw z>ur1Y?#vtR$hX%GtwnC1owjPj!T5*SXM5%A6_#(lSIY3h#)yHBVS~;A#tjQR`X(J^ zR@ff5ygIw|R$;8r`lURbL7B`Q=k_u%Fg%;PsNw#CPyZ7a{@L%kDol0Sb01rVmuJr^ ze|uB>p|CmF+K+wS;~UWyT*~*}*i5Z#eNwq->!zPlD#!jm_P28k{brnZZ_m2RDlfOP zwmjsY#$&-C#xwc;d2yXi28|n!y07ikSX8{G?}I>>ROYIjk0I-R9b;l(FxW5g^uE&5 zs+>RDcb(dQ{?z{bDgWn7KECh59uTwYo4)+JmAiIDa}-3KHhuclMYqX0uk4DF#kp|) zzbiwn{H`{(Pqs8sop0|Opq?Ld!07<%RM>m|NRsGpLY5=ea?R=&D%zO zjE6h2{!i8_Zua|n({lrRLljHkyu_jR>=s@!8d#e-~$?y}4fxUypyi<8H{JH|~xLVv1$6CO&(fo)v1fJxu;rw86iFMojDnnu7L8 z{Cu;rN3L?pn|67{uUEredXF`OORCK-Y;SE|h&{DGJGK7z!gh@xNA*wauW`L?Ume={ zas7=4@4s!aWPM!!QkkPl+v?}P*~tQq1uLd5VO`~VVfB^yd-Ym>-Y}Q&zPIm{y@_w4 zeNlwK>JTN_9qYWJa${F+nzY`i)qbs8SIM$>-Y@nazpi-yd*!Pci*6kjXFZ&;VGbxi zP0{xfy0qovmEaWne=Kiz&FfI}+B9{^2TmbSEp}$kqK5ez|8xFGg9@ehf4_qom2pKUT^20>^CYUm1|aq2>x5YHQD-8$ouzZFW!A! z?X^zX&YH2LeZ6L2$$~@o|JKcmm;1E)5zmAvj2izFW;QY>FizwSdbn0+)%2+I_U?1@ z_bXa=h1`4M5+bs8^EO89{bxb3))91Wf6L$5bLs>C{eN@b=f?iezocEHrQht_=BpTe zm`U>gWh0>rXA_S77QD;Dx4FpVC`VHqUwzuy?7(l2cPyT)@;3WmdQb7B(@ker)jEWR zeSW(~vE$MCAKNmU*M19eTIhB5598|JjqiIyesCXoFuk&C!v9C*j1gg=%E0G;(8@Vy z#C50JE}Ct#;MViZ8M|GVN^temGcYh1FAn&px;(z8dT08_y{GmUII_?G6SMJ?zuV9B z^lf@t|D1oaC)io$u{6FqYro>dX?xGGz4pOBuAAQofALMHu+IO}*QIJ1$=T6&|9rIG zb@F<*)aqYXy<8TyeB690|8siw)vijOps*j@ss9(SGpuHiVc_;sd-HnVox^*L(=)zb zbkF>IT7Tu%{r(3*T=nSRban zjI-mW$eIuCeXeHpt_SWvSh{f~b3o$b_@W<6qxL`f+`nke2mX242EPt!fl~VAazSDK z7nA*8yqfGE^y}^RQ(MBdY-V+UYM_EB9?%$f{#<+gtN(VN+JDPpvC-50mxKR34Q!EQ zW)SP!WHFU>i5Exxt>7Qm%}$6eUtpHFDy`*}#kx&8OUt)yi+K3|p2nZAQNFH;X?Lt` z_D$XYdd;uX$v5)LBEB>o;y>`PfjQxzX8f5|SGCsKf1k6d{?Ei0*L2s;@|~(4zED*Mn?zSsZjyK#S(xNqY2 ztXb=ROk-kTD0tKp^zZ18_gepRmZ`iAI=6oY|6~chr7Fn`2Rbh<|M2|Seu+1ej_Y&P z*WT6mbL!0WWtZmr|J>)^mwfr#GqKp;@1$ivZ*3Hf)nrk5O!NQx zsZ;+S%=$n1{`^e`|9_NTvc3v5T|VcDLByvhmep6!I*7-gOfOsZp*-TD_~AHF!GE@` z@kMV{_3e8W>3lNroHD7YcH#2K!{K?VDxvFFs&qy^>_76u-15)A88UST3uQk4ed_i1 zvQ-*mgy{o@h=Q)923K>2_PGqv{PUOp{aX5Is^+YwJW$!=H|?<2|3zHeZWl+ql^0}T z5E0SZe@@FY^|8;&WBOeG-L?k&C>4x-RjK#;tIXXSw}R~J{)%p$?W^kgYl&C=6ZR)- z)@q7&9f~*XPwY6P&&T%UBXhy01B@F~rr5swEuEh6erI~--{bNtN`ITZ-LySShH*y< z69dBxEBC;Ex0_G>|I@(Hl$m$jlTW?G*doimtHN-r1AT4nK0qWMmeq35#9{fF|q ze!WzASRWM1ZS(1e^_yw#n$mwoo}Q|UTWbFyrYNWSiBrd+cni5US!aVkj5Fj47<4#Y zwHh9*zxwix^!m%k?(Q!6ynX-DwQF^Y1E(Jp7hO9I)Y$ekJY|1B`bdPp<9`<{|DQIS z;m*Psq2sml&)rS4=lS~g?L}I_4N;p@ zlhV2BzwM6d`gSy_N4-Pb?s}u_O2275%cWN`L}Inmv^Wz zO#aw#==}3I_0u=QgVxrsjY?*|ceeXa=D+yNI))Q6>Ctz2_H z;F8%cbD(RCjV)lzJ5aeQ{lIJzU|s{ZjNH=XMyJTw#Qyf z7uj-$!C~E>43R8BpF(TDq8a)=x=rg2t>5%jtTq0q=b6hPQ@6WMdUkAQ?!?opYPSlV zoPYCq(At`9|5NAeNM9;4q2;xDCEx#w*7yk@m!DytDi4~uYEWHV)5u%tQ1&d{ezAMr z{bjS`YaC~vRjbs><~|W#8q>+hz#s!^fVH_)x0kH@!~TA+|G%f&x2m7Vy7Jqm_y}qI zH@@lkQ^crP;iHqqZi=HOnmdp#9_{^M-%}j2lv>=f4ovF)Kuz_~%aD37HZ*2=2Xg>C%{9ax3#h;&-EGf9rk@Y_~Jni6wx7|@Jmv8n3 z+xV&fvHExZ#;0jYy2(2%`lf1pxfz}wAGhV==AU~emt62N6={uM9kS?Wu&CuS+bvv^ zX58749QEFF_r66@`;Q;{ud(0*^9Gp%j2m1|9KC+-_L>vE3adgq{=W&`Rs5Lk?Z3nJ z0R_L!vcLtM)#EAuzu!xK`hU+9PUH8U<_$$R>?3x_&hvkmGgH*<;rXf6Q~&F;+0So$ zlbqaIpW8d4rA@lsetL)qV>;u+t6K3`Gxch@@;sVx6{%2z<$r2>v)n*a0n z=JwPdb?bb$W%Ez}3qRah4!&%NV!3>y&izKh(xh4|->!n{n_WM{HCNusXOWY<@5%bl zOC%v1h1O#R<5wf_6t@+nmo;s0(52+nq#ZL;O3 zncS5vzt1!a-j)<(xhwiA_(!nU5rOl()yXx%VJZ4gzi#^^^Ur|GWdDMaNglcNt61li zxjyW7N;(~{>X{?*FF@<-=fm=o59?d>CC}k-o$-QO-#%;oZG1jyvUs%}N1>ib zUwh(l4W4=i1{nr#KTFXC-!3?p{CnKL;!@s9>HpvVJJ0_9ZsvF0osk|#(-;^SR-X-= zQg8UrdhTS+AMGMV8x+`sBA?3t$(+vnGiryM-hAcESs7;MA|I9)wf^_Mn`bsP@cUv9 z&ma5NU0rd=uhICc*4*gz{C{l=l~gJX9W?$hG(2WtKOhvmgh^ygeojEeQ?9q48+>a& zx_8}Ve9+Y%!B(VJDXgr^zz`9+>(qXY-@0M{zV|Kp<1d|jK*qkc2Glv)&HMe`$J>=! zTRDD-)TL&9TdL(JG*4~S4ClJ@Pd?sW^J#MyX!5OGMD=Y%sLk>wcq}GzJKA}-QP3fmmk?K zT*#6!PqLh!fg!@QXXDyU=L{D8>s~zLs>k9#_5XH$yQi)B-{`!j=KtU$Jo#Y>EzOB{ zI_HY0eEjKZSNqND*%Ymi`u5&Z&a>sQ{&A}w z_3Hyg*q%IX{lTY{&-lYZu70PJeNQdJfkH=?16&H`ou7J-ReuRw_3zd6E$7U)uCD)U zzNPlR+)klYX}7sr85tQ8j=l)~cYDga&7bxcE{p$J|K#DCTl+=+2=6`|IU(!+e%NerjO1{WHm(?nMC5O27?+MCzeZ+z_!sg+|sn4s{d}{Av{jX!Ba8+x=rd9vy z9%-8Md9M1}eM#T)&ts7~$74CJhR>5Kmu=n8$iTqYAiCfUgFt^##M()9?`?N&-|Ktw zef|2sXRA-0x_8+t`%WYSLqe#=^FNzc>9g(Ix^H3g_WOZ~)(m&P-w%HEu)X@~KkldT zcAL4b{tN6*cqw`2;dH~vJyU?)pZeU}ae6ndAx0B6UwbGBfxwTQG#RD8>6Y-8>>Guy*amx6|Vm zJzKs0!m+uxuk5MpE}P_X^C&NS7Xt%>j(O{+_mxY^%QSM|P2RfA@1eW=$_JlP-|qRU zrv1M^Wg_F+Yt5GbCx`rwS9s2tCD>!#BbK%2Lg-K3r7G?5x1MRv6l*t;WOoSL8Gp>X zP9Wgw_OoG^R%&uBP>PmhZ;0kR@$!mBXY#5I3*$pxi$AUx3HZUtu$hIgK{W00$K#rR zf1VFjy;|})|Nk_z{JTcxCaTOfkN>hUFl?AIW$ORAdv4iF|6lXx^@C5MPxl=^^*^~k zGwk0~5tcbs=l-wKc-^5e!&0?1z9)OL`;i^b1N$aTtNi*)YUjM!Z&h=>lqNsk(0H!i zM2dIUzqi+yy>r#&^4l}agxu3h5ZMCy9_~o7xK3t%sd^+mv+W(K7+Fx|9)_=A7ynsLZtS)B#4?cBq{&x>1 z7Xg`X8|Iv<`u6mrwDWx4k1D>VPrvQo6WMY<+Uw9yS8ZZ~yOcyZ&qV zuY2-!>%UnU-mJXK!0Qf*H~zz`{)Vr1`^j(rH)QAg{r)+B(i8vZSWL8Fc(&)3y>8{! z`VwP_|2rL>qj~BpU3&^N_o-j~b=GF5@`2BhKQ_qTy0^!F`?}bxg{xh^R{3825yKJr zaC+vH{)v3Qd;@=U-Gb?LPrsRihO=h`p89`$&7b|(L;v+AFIfHOytS~_8*f?1fT;7TohmQ1{ygK9 z{*o!PI>PDg=j4U{51&7dJ@nf-?8nc^U2~(lrs}U^U00_1*zk+z=7;l-D7sGV=>4w{ z{PXTduKlyEMY-4y7+zy#U`S(9VhEdY(4*n4{h!8n|J(mBc>ia9z3=bxcPqr?rGz*W z6hR|6VzU=({SW%mKlec7*8i&VYHKDP+PC6$ri{eQRq-OG)7m8-IxhV1d4`+Q*QGs% z+J8=M%US&4eoE{9t9Qb$u5b!9`{a5ve!9pB1BLXK=G7-2%7?F%XJ8QHbzxXz;My0} z`2Wl0ke`2wML)`Z`@R1U_pMvE)Cze|^qPwL2hMur$IigeeT?x`{Sok(==b8M_s>WD zJ^AO^y$wpTiPLPF7Hprz9o)UZ|EYMybMu{lmaUj~MN{bTo{**XAKtEUjz7c4Fn86e z_meJuux)?jwIW3IOwo66oz-XZuT`mCp39yg;bsGKLTg~qQ7AKCgJ}APW6wVOUatS_yXwu`;JrZ$ z<^O%IU$}PfT_quhrE~e_fF?#cWK^Hqum86G+1>~DZJI!9a`p$YIL<$m|Hx-cSfR}4 z4@z&tK8U;g3>ULzh`89lXaZ}ktEY9K=y^5&w1UWo{6Bwu_1$QnD)P_3B=px)!&4R0 ze=)dPIsPFBR@Wt6ucSex1*`{UU!Rw@dv0WU!rO3cJooqjIvzO4^|y6mf7V}yhEQfch6~r%E!*LFO|GirmiRsMp9{VkERz5CF8}MZ zd;5&;G74}qFfe>R-SBDs&C1o+t`$AKFY*6Y)u)r|KCM6UV$0l^pW#ax-YksoJ7=JN z^wSlk7n*<4rcMd`Hu(udYrNL0&l^vi+RJzMjqKF*{t2m}fBzl{&Xd_>C_j5!-K4|s zEzdHc$lAo;jkkM!;2t2u80jEZzNy&`N26ja=RSMulE1H;xn~9r>x|BP$|UO zAlAsh09j=GJ?BUH)c@YoLq2>wKBe{V=8x}x-d ziFCKS_+2$&KJQW319W~^$FdXk9GdBhiyCIciVXCugOQ2c8LBn z;PE;7FYwrYhE{n7hCV(Sh6VgP6UC+$-u-i|`rpgtFU|H}dtz?>h%fU07yVs3w=e(n zjsY~-*AN+e?x*;1oz=gS{`}70>pSyfed8MS`B%DRw;!`SaO!`~>c8u~e*ST_tmC^O zyYzauOq~|%NA;u!lhfu;c7L5+n*8E(g~Mx=r;=NqU7wn&dF$q_W!d*@T$Q9kv~64O z^C}0g$zL01+VA+}`=dpF<+Z*tGaLwMU}ms6u)(9D_`Hqtcbk5heFxXumdvaBvHE}W zwzBf7yNo~BdObi}`x#T8#`pYp`nkWNv#HHVr#nt}hOUMV%a`fu*d`~M)zRXE>F zsF{`j;GK4t(AzEUl^=*Qv-OjB$1dVM?WUHe>(W);*-4-r|RQnvCC zA4Bk3dybxu_U|MN*ZyDdftlgJ6_BeO9{TFrycgnBIDg*mpT*lytt%U3OWmxP{v5u4 z`QF~&uH_6)vat*d7OAIB?YBr$eZD{J>Objxt>i!PJ0?i}5Bjj)nE%xOD`7VC4{;jk z?&7KsJ9NI~yLx6=Z~QUFtyQry|BgM-U-jkmYcuUXy=!%UJ@l`?BrC@sa&v>YvOO2m z(~#97n>OwbTRY?UhWk1q|K1eT1>Dqs{*{@5VTOza!+{sfDGsV#*RFfk|6trH{d&u{ zC&FJ2$NyP+Z&y_)>!YR98yyWB984G(80P3SpQ`un`QOENe}6*JzrEk@slJ|>9`W;g z&%=CBcVPOF8BQz*Q{4GQO@A$AaXBPaKWT-|lK4_-N0q{)s2?|N#5fimaQQ2$s<1Su zKJ<_OpY2brru>-amD}wkd`~`wt6oo`=Tsvdkrhap+ob)}^up;2|m1!Id4Aa^VX8nJ|5HPii?_Nc0YyCIxPxsQF z{{Q)WYnM{!64nW!8vmsZS*}epZ(cWfU%vE{&|l3Ld`c&N&|h!8?osuwyqw%sySL{D zX4l8F&s(mQ=rPq`!Pcs|O7;r3?JO283HZ_N_4mX>c7}$VO&kmc(-x^6c)+{s)2r1f zpA{1RzFhwDR{bykU$g7~rKfs+bg1+1V!pL*^-?p2g$@b~3_ktrQ~rx-|2LJ5tB7Zv zZm0DAF#pM_ZVzrMa>Fui)u z^GcDbGQ;&ZtwjIzh`hR9v!_%h`jYpQkZ0d(?1O)*vL29|>ldW)rVHHVJ^`TI^cvwmMXJ!5~+!qQ8xj&3!5RrA^O?Y%v&zkmO}lDU1V>r!c(MT`s# z2}W$I|8{>me+;~xZTg&g(2g4OwG1~c541^lGABq~PgrvA{9iWBm4EJ5{jJ>6yz<)p z(@&rO-tl%q$jkft>gVtK{fK|fhxaeDmY!-4nW~lZVENRpNlvw|uXdbUYj6MMd)GO~ z6<7Ef7`hpQ7!FL-kk@-UyYlln*-Q6poY&U>ao_cEd%d@L-S7S@kFLkgJ3jT#<&fDj z&MwRh3Bk$Eu+0!@REkZ|yOvm~#IbCvquLEQevLnz_md}E zJd4g-RkicasgU>6_b>LEdT!3$1rz>H%lY3Szv$=vo41x#Z_krj-mrv;B{4yyZsj%o ziHwhXz87UNf=iH^W)6k|m9E*9fjh(Z{988n{LW&RKQ~r~X{MFFTJt>f?{fXCeAaB= zTpN{wr5zTUF)%R5G%wcr|ND33>iwCT|AV9ZYr3Kj2%3B3?<-pR@6lbSkK(EOqgH=h zS8l3p*mP>93?%#d+!u9?C!eUspl9=oF#+iryI=|sjecsx-2kTGoy|?9$ z^ohs%;V-s}?c2=4z_5m`fT1Bd@CvKMo`=`tDjF|E^-TjQ;#t^L7ix^3H+zq`vde3L@gx`deO{;V;c`ly!O z(C4B4yXWA1`IL!|!NBn7fs_Ep7aN2Z)c!VGDPOp0qD{c{2IW!#0~b28IaM z2Mi3si(l|1u<1?tDyp~R|8o0FXa9fvKIPxD?N4fc&&|8PZ)sV%)RnAq4KvHGu4NY| za56AVYcf2wzy2X}kp6~G@?PiayEFD{{=If1G2!Vei@djwXLzbK7TPSiJO8cdOYdH0 z_g$}B)?Ax?t@4eC`12iwGj{h~xw!DyGqtDzIKe>b9 z^tP?Jx1SwemfdiT>m?&Y!_=fXpXxs<-8^p>AM|hOt$HiBpYvbWedXTK&nN46VeOUk zY&Q3=38`up$F|1bdysi({mJjHSGDF^Zg+J2XX*KNd&Dn(S#M9?xo>5|e!Rc0-YGIc zrY^X}eEl{1e;b+(@iQbv>NWA=ZT@BVq4zvchaaIHPH z?&aII`_wi(d$(?-U;>}ttKK;Q+6)XEgr-cbH@tDGCv{p$x{jYKL-{-gw z+Pe~$`^U35uAK3IL*mpe*C&Uo8lBVl^XSgR>pjeK;?uvz#oWIg&AY4k^R9Pq%vVaW z?Rl--^`{~0jYP+xgeRLyWVv0OuhxdVWM^PdIKar@*VCNE%rSdS!kf>BcUSi>dVPK6 z&vyG4(*OUQFL_?RKiD@j(bbl{p-{nt_0c2irC|)9Xs{p5ew?`M906*~3KZg);?h0MhZADe{w%DtGjo4thpL0spPsdx7= zG^i%b_$2Rk#o3GxxW*p?hE)a@i;#NLxRu)28QLw98a}u zIKHa=3de%ovaxg|X>oPDhR zx&6|b535zoPduGB%`4G?3zhVPTle?G}y^I7ub z^K$nsFJH@Q?Rw3i!F*Vrf#E=6BQwJsE7#=>O5uU8n5SH35ilKa?Q3~KTqVo+OodeVP;;|GOfMshh-TI{CUp*T>fC| zb&X$7p5NMC;25dD-)U7?`s4kU!cXgO={Tu4o}Yf_{f={={+U|N^G>|6_L~2?%93HYWFcb(KU}Q*h`nf^c zY(eHHh44j8QoU@Y+qU`4ZMX%xiSgKjD;n(^^942WrzB>y5i)Ju8Vh1ySUDwhi_$WOEcO{vOs@By?0Bl_*LSe8a1{f? zvZIMp{)fk%o$~+LzaWkOmyncOJ@15djBS~>Ht0Jo(6353@tc96K!IK3zoPd4g&P0GBY)O^ zbbTx!aGYVv|Cc$X#dFWCd#ToL|E}Z)`-HUhsaEyV;`5_LHf6=HzNWEZ#cQ8w((Vh4 z#1G{qPcM_Y{f4{4*Tf-k?SF%{-%jy07#aKlIUUqg*twXaQRh0RgqUc+gbm6G?XnEB z|J>MFHFZ|``=HO?WcOD8-*;Vxa-$8b{B!h#*>Ob`h)`Z8at`19ny5IBVy?JR*;{yx- z9^U%o!k5;|&&5AJG7VlkzqjUi;ghtiD8EO0|tg-&z%gH6S?F|Z&c*Jdpq+Mx60pNymw9Q<=fm#yLVgN%nP`bu_C2-@}*;ZNB>y8eK+f4Wp{nG_QVs7 zYt9BQeBEP{_^EN8g|^PpHaB(|3EO~K>Gi|MIY0^k?(ImDa&Q|4en0uKrD4 zv-DuZPp_6gDogpSt9~DP`}0;#PjQ`YN^@Ou^4TZv%D3~KkJ9+ZyH7sn^IoT@_nv(F zU06K48f=cePXmoMGt7v8z`(%mXt+R2iTTvp32v_JQ(l@#UD;DU|666i^?SFLoqN|e zbDPwk9rg2Xz2V8&%)CJJ^Ty2z3C9ms{+ppB+)U_!w8~{jYO$e%PC?P1>4#`&1IUV{&zL?!BGPZV%7j{@}Xi zL-?VNn)9+hXFn>C3;7WU&ajIfBnUUSE|3U0xxicG+ooMbHx5pVUOiFu;cWi-=C(6j zZ%$k(BJt)!!k!Afwz}Eut#=T$n5T-mm7TXFInQ>To_P0I;pXF`rf-?qAYH<)w3 zTlH?Mr~I^g=V|FO@{bkJ6Q zam)WN|LqI>*ZXn(m5_7U#l1G`e68#SSz_<6+$pZYnSW}B|HJ8Tr#^f5{gKGGns%jA zUb{0k{tAxnJak@9G}YQn^Zw!^8&@3q&KmelwY`4I$M`>e7UJNf77-%A$RIYasN}$g zcCGfO@{1fU8zjk1F~7-qVVZk#`>oqHsf+h--RUYjuS|;f?yb9~pKtWGMcux=*sDF3 zVeYmrYeRo)uh|-neu3o&T=+9qx+^e;)vfpwGRLBc;Vw7B4Ea9L7K-(%&+nIBwF&(_ z-;>3$koSGwu{W#Ic+b8!T-utogLK_*;&cZGa2k zlinj7o2`4+RtW@g1)6OD-+Ol4voCXAhj z6ZWtCRxV|t)8ugR$1mnfYCIsP3->Ml)BVw2^=W<79MD)~zVXxZDl--H_Ut(Nb?=FX z+jCY2{P5ipqQzyuJJ9vx^z3CtB1iWv7pjYO`psO~aq9f4|2s-WTji(zVq{>@(e7Yi z(01IpVu74N8~?0X!Ybi4YMpW~HXOX4bU0p#^~@CB|JSaG{l9A<$ogkrUwL`R@~hY0 z?zK(*{3qMS|H%2uEvqM)oa|}0c-O5kVHR_y`z}e9DWC2iy;QneT;z4ZjJM7&;usEu zXkP!IG3CF(m4DgmSDrdwzfs`S|1A>YjuT>wH?Iy@_N#l+d&$=Og*j$FJbUVX3O%jd z*7D)D*sAtJha{@)Ly0kxoJH+qowkzLn2)EpvhQ6jmrB%}H0__2Lg?)dA@ zyz231*RVxcDc8zFZU3V7`u(X{GEv`;rEuA@oxzM; zpoD#aS&)IDC()oP;mU!+h+hYm>{CDn|)FXJ34zcWc)+UxNBs@#LhFX#G}{jF8q%D$~K;GT`w+r}K#i+dS# z?26t@n_7Q<@r$$Onh96$@2_#4QoktcD(Dyt^Uod0?>9WJSlRHh=jHlq`o}D+*;J>; zudHj0PwUYVjanb3al&3>>(`~HJSJFkelPpB;^GaZmCZt~qGtbYW*+K4Y+(zoC>SiP z3K$p+j?1VvJ=n5Kd`dR|md#ff@7}o;bnl`Gc%Z{{tu7*x!>tu`=USlPoDZO^>VM;(waEg@SoRz=Fc%ZyiWgUaqyb+A+OV0 z=d)G@pIN{B!(~2e;qB({S4~;Z*ckHdd9HHkuhmmKY;N+gD{$@4{AnJra{rolhcAHU zDf{@cK+Za|>E8jxUE&^Z87tS_`V*7IzvlCnTY0l@F|D=D%-wdH?Y!JB@rI{%{-;mv zm)OyKs(x)+PkmvVfPx{h##teWeNi)qm{DoNc_!T+H`NWfp(fy-xSMsp_In>bD*~ z7dpJ*@{Q2){JWPtcdyiP^bjqRa?1hL*SvM*PmDT@3j-dygH!5*6h{^Y2Jcfki`jKJ zx#Qy1>vMArcZ>6Ap6lRX`fxz8L6%MrNLC@W0+k>o?Cg+qUM*DftQzqu#ZKiYbC$>&$0vfF2ctPXLx8Lqg#|Bvp~U;I|bpYA^T(>!8j{Rb;h z7Jyrp`laE)2FIYM?$6)cY~CflLh&wl$i2M|pscWXm$=N%Zw}iwy@=be>iO{+?f-Yz zi2qc7c;DB^`OcgZt%p}>Y*2UGA@P6B2XC(ZnoA}|Em1zTIJ4qk-}{wEf|gapA8@Om zp#5j@xl-ZC#};=FLu#*vp9~;xu3XgqMC^S1_of-EG8d^jEeNk}=(RSS^oc#%XI8wi zoBS^EH5#po_RCMz7ut#TSy%2@=2d^ht?pWr|E|v;d*dr}zIb!kYyX)gTKCE%dR5rk z01>t)8z1U%?U(rDcX4e3N9&<}(6A9hLLul_q=Z#G&pzq-d}j(P`JKi8=3Q2u#@(dk zzPT(f&#m*?c5!b)EB~9ypnvSy(OG6krUw2h6)Vzj+W%~SuGzENZ4Xt`?G=?jpPuz1 z>l>@q!TkX*xKIjOVaxED88jSMd{k#QDC5qE zVxDAoA!k-*dii?&riA?B$rtt}fR4OBJfSH(&a(7r{fv#VGXE!?mX|ncw>t5qM(~pU z+Q{9no_)=}lF}ab;`b`4)?*jq*I)0P-*58C_3reL#)CF>8h=35&m&Ovb0Eg>^e^V1 z>IF)+r_RqYJhn??m1pLy#K-GJ91Z^8`;U6M8fn75@lzR}V>F?yy%%vrwSpko?EOcblv1 z{T}LbRW1qwWxx$K3QPG6JxjXj6tf2hsBZ+GB={L&BHlS@8< z!tX#0XtQyGret}hb>}-)R@c3aig&p)JiarX+AV%z!aLTgknc^oX7^?te;KDB$TF?< z9qZ$5!R!7^&PhJL?8VpXo>S`Ie^S3y`M1>ds+QpU(|bHpo*7vDDGUkw$=!P2XKGcz zL;l4bW~)R$edeFV|Ji=useLK=>HSi@y2W!`m$}9#$gs5+W^^(yu;Bk?&IsO$0GbeI zU|`6oxpLq^_UGGs9~`{J9JHlR*ZVAg>pRx=1cm4KlbmnWKNVdS^KZr;Zt*RDzwJ($ zdpDqJ|Ixmg#}-cg|EVxo;`-mKzYaHx)Frjf-}e4~u;-O%_Ke{URTh)mn_ zG(Pg7{_5WbUl>8VKp8=+(;E81svTzBe#g4>7W2un#nOQjw$1i3j}~%txRSG|`d~-t z8_oZknkQ$9KmG3<_RoHw&$sOL+M%nTTmFCPX!-wXRPU#Ljo)v&J*Q~0Xs(YeIukLo z@Z9^8W>c@#B+fgWf9cQGphZ8lzvTm;-`V^9D^ zHp8+5drI^*viN6sG$}PT$TE2b-;&()@O;nYm*XUVd5$t*wr^Wxq0Kfm(^{^*WW-RdAx*Lmtf@7uOr<-g5T--?Ac zP0$KjJD>NDm&C;PJC*yb3x#;K{($E;7#b3xE?Bc$Jmlv^%j&Xr~>v8I1gJ-M#-;to{Hlm&KkliGW%w3^Hskpv>0e z_`S*Sc01n++X=Z-PL?0oFsDB7pZ%{HfB5ZGe$OrM`85B{yYk|Hq3iy5|JbL~81j-o za%cG*pNGreygsq{#Ff|^w{9+-9lrk6j;l+emMWdv$Mv)N$$JeRH#zA^Vnz`w_wV_y ze)Bsh14QV8t|VqKPMda-`OpoHCW|oVUE(YDR5wap+S}k(sy_qN5=r)nt50zFDgM~L z>a#DG-4BP~)AhBVZ@q4E_1YAP|Anhvm&NV#Z1?aL{kQ1AJe~QkC0gU7cOIJm>0OUT z|D*@^U;dcqrIYIPySYKMF7Rh<{+o>tE&R&2f`^qD7$$@6pJs?i=!>p)nDPA`EBiG$ z4W~E!yL(?Wa4`L}_B<=I=+9({XZrikociy6Yj;88n(z0*uifM=OM5f%ZcfmSZEowb zrPUjrxu*V(^L%JG+vVZ?%jWC{e7rta*m}Y0DL<8k>Mo_3+HYNZ=0|$z{m187)>&Wr zA@1@}|B^MhyUOrD1ys8;tTFg}ZSR8vx0tPisuSjGz1=3Z)y{M4rOcQsGA~x!8yGby z^s^hJnMyy?)c&1x%3XiYg7bCXcCPyKN4Q9@#-VF!t>@!%E6$ti)^3xoF8O>b6xuQm zUG-)2!u@gUh3(}tpLFliU&+*5`3GFnGZfqcr{}O4JKx1kxGp#01mkqx7gqL*R06BY z`>od8$u3h+sop*1s#J!JgyR7|mRt9gg&i-PP~zAm!W8%IO3LS8t)0L9Z9NYj?GE|< zrg+u<&&w+BuK4q3#im#K?|S*HrC+@fSrM+RdiAI4!~Tk!wPEj%YyNqppt&u-ayI`z zUQlQkTmn1cz{VM=-Fas><>yYXe{uWku3J|%UH^O)Js!xY{pV}c+(ie>fByN#*!EAOHC{soWI6)_^pHeh z<9A_2LU*~jx~iC+l{n5g&%152cB{3>)~I72^5gcq&5ho^;@2Z@k=mM>+iLssJ{MVexuWeaUeSwC%>nwLs1xO0{%mp^wZ?5MqagnZHg|GQD%&vTYe|NE%{gmUc z{y9HCF>z&eLD(FPKdz_uZ#ono_C4_hGXn$c)SLr8mRVmMDy=w$WEIXa9Ch0h^2q*7 zkrKr0ZpaDAVqKqdUt8Se?z+XCdN}sb_oIpdPdX|2E+j_ro-U0zM2iJ1uS)d3w#(k wn9Z<(336Zun74)jYzmmopv^Fhv>f=)uTZIYkYD)uWRUMXUHx3vIVCg!02@!?p8x;= literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/ios/AppIcon-60x60@2x.png b/frontend/src-tauri/icons/ios/AppIcon-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d1d0ee3683842f5bd8ed37c48ccccece10ad0071 GIT binary patch literal 8295 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

Befhcb+LCqK!LS?0m!ZQaO9$Y{khl=j-y% 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 Yt~*VpIc*hUU|?YIboFyt=akR{074mB4gdfE literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png b/frontend/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2ad07a090fd2ec96cd8c6768c5fb5e8d6327874b GIT binary patch literal 11649 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 C4J?=d literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/mstile-144x144.png b/frontend/src-tauri/icons/mstile-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..ff28cf1ac66c7eaf712607e2c24d92488fd25b4f GIT binary patch literal 3368 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 literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/mstile-310x310.png b/frontend/src-tauri/icons/mstile-310x310.png new file mode 100644 index 0000000000000000000000000000000000000000..fd52bd61d25821e13f3c37f161a3e9a114cb9831 GIT binary patch literal 5947 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 P0|SGntDnm{r-UW|x9OnH literal 0 HcmV?d00001 diff --git a/frontend/src-tauri/icons/rainbow.svg b/frontend/src-tauri/icons/rainbow.svg new file mode 100644 index 0000000000..0ee5e48b8e --- /dev/null +++ b/frontend/src-tauri/icons/rainbow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src-tauri/src/commands/backend.rs b/frontend/src-tauri/src/commands/backend.rs new file mode 100644 index 0000000000..c465f7cc84 --- /dev/null +++ b/frontend/src-tauri/src/commands/backend.rs @@ -0,0 +1,379 @@ +use tauri_plugin_shell::ShellExt; +use tauri::Manager; +use std::sync::Mutex; +use std::path::PathBuf; +use crate::utils::add_log; + +// Store backend process handle globally +static BACKEND_PROCESS: Mutex> = Mutex::new(None); +static BACKEND_STARTING: Mutex = Mutex::new(false); + +// Helper function to reset starting flag +fn reset_starting_flag() { + let mut starting_guard = BACKEND_STARTING.lock().unwrap(); + *starting_guard = false; +} + +// Check if backend is already running or starting +fn check_backend_status() -> Result<(), String> { + // Check if backend is already running + { + let process_guard = BACKEND_PROCESS.lock().unwrap(); + if process_guard.is_some() { + add_log("โš ๏ธ Backend process already running, skipping start".to_string()); + return Err("Backend already running".to_string()); + } + } + + // Check and set starting flag to prevent multiple simultaneous starts + { + let mut starting_guard = BACKEND_STARTING.lock().unwrap(); + if *starting_guard { + add_log("โš ๏ธ Backend already starting, skipping duplicate start".to_string()); + return Err("Backend startup already in progress".to_string()); + } + *starting_guard = true; + } + + Ok(()) +} + +// Find the bundled JRE and return the java executable path +fn find_bundled_jre(resource_dir: &PathBuf) -> Result { + let jre_dir = resource_dir.join("runtime").join("jre"); + let java_executable = if cfg!(windows) { + jre_dir.join("bin").join("java.exe") + } else { + jre_dir.join("bin").join("java") + }; + + if !java_executable.exists() { + let error_msg = format!("โŒ Bundled JRE not found at: {:?}", java_executable); + add_log(error_msg.clone()); + return Err(error_msg); + } + + add_log(format!("โœ… Found bundled JRE: {:?}", java_executable)); + Ok(java_executable) +} + +// Find the Stirling-PDF JAR file +fn find_stirling_jar(resource_dir: &PathBuf) -> Result { + let libs_dir = resource_dir.join("libs"); + let mut jar_files: Vec<_> = std::fs::read_dir(&libs_dir) + .map_err(|e| { + let error_msg = format!("Failed to read libs directory: {}. Make sure the JAR is copied to libs/", e); + add_log(error_msg.clone()); + error_msg + })? + .filter_map(|entry| entry.ok()) + .filter(|entry| { + let path = entry.path(); + // Match any .jar file containing "stirling-pdf" (case-insensitive) + path.extension().and_then(|s| s.to_str()).map(|ext| ext.eq_ignore_ascii_case("jar")).unwrap_or(false) + && path.file_name() + .and_then(|f| f.to_str()) + .map(|name| name.to_ascii_lowercase().contains("stirling-pdf")) + .unwrap_or(false) + }) + .collect(); + + if jar_files.is_empty() { + let error_msg = "No Stirling-PDF JAR found in libs directory.".to_string(); + add_log(error_msg.clone()); + return Err(error_msg); + } + + // Sort by filename to get the latest version (case-insensitive) + jar_files.sort_by(|a, b| { + let name_a = a.file_name().to_string_lossy().to_ascii_lowercase(); + let name_b = b.file_name().to_string_lossy().to_ascii_lowercase(); + name_b.cmp(&name_a) // Reverse order to get latest first + }); + + let jar_path = jar_files[0].path(); + add_log(format!("๐Ÿ“‹ Selected JAR: {:?}", jar_path.file_name().unwrap())); + Ok(jar_path) +} + +// Normalize path to remove Windows UNC prefix +fn normalize_path(path: &PathBuf) -> PathBuf { + if cfg!(windows) { + let path_str = path.to_string_lossy(); + if path_str.starts_with(r"\\?\") { + PathBuf::from(&path_str[4..]) // Remove \\?\ prefix + } else { + path.clone() + } + } else { + path.clone() + } +} + +// Create, configure and run the Java command to run Stirling-PDF JAR +fn run_stirling_pdf_jar(app: &tauri::AppHandle, java_path: &PathBuf, jar_path: &PathBuf) -> Result<(), String> { + // Get platform-specific application data directory for Tauri mode + let app_data_dir = if cfg!(target_os = "macos") { + let home = std::env::var("HOME").unwrap_or_else(|_| "/tmp".to_string()); + PathBuf::from(home).join("Library").join("Application Support").join("Stirling-PDF") + } else if cfg!(target_os = "windows") { + let appdata = std::env::var("APPDATA").unwrap_or_else(|_| std::env::temp_dir().to_string_lossy().to_string()); + PathBuf::from(appdata).join("Stirling-PDF") + } else { + let home = std::env::var("HOME").unwrap_or_else(|_| "/tmp".to_string()); + PathBuf::from(home).join(".config").join("Stirling-PDF") + }; + + // Create subdirectories for different purposes + let config_dir = app_data_dir.join("configs"); + let log_dir = app_data_dir.join("logs"); + let work_dir = app_data_dir.join("workspace"); + + // Create all necessary directories + std::fs::create_dir_all(&app_data_dir).ok(); + std::fs::create_dir_all(&log_dir).ok(); + std::fs::create_dir_all(&work_dir).ok(); + std::fs::create_dir_all(&config_dir).ok(); + + add_log(format!("๐Ÿ“ App data directory: {}", app_data_dir.display())); + add_log(format!("๐Ÿ“ Log directory: {}", log_dir.display())); + add_log(format!("๐Ÿ“ Working directory: {}", work_dir.display())); + add_log(format!("๐Ÿ“ Config directory: {}", config_dir.display())); + + // Define all Java options with Tauri-specific paths + let log_path_option = format!("-Dlogging.file.path={}", log_dir.display()); + + let java_options = vec![ + "-Xmx2g", + "-DBROWSER_OPEN=false", + "-DSTIRLING_PDF_DESKTOP_UI=false", + "-DSTIRLING_PDF_TAURI_MODE=true", + &log_path_option, + "-Dlogging.file.name=stirling-pdf.log", + "-jar", + jar_path.to_str().unwrap() + ]; + + // Log the equivalent command for external testing + let java_command = format!( + "TAURI_PARENT_PID={} \"{}\" {}", + std::process::id(), + java_path.display(), + java_options.join(" ") + ); + add_log(format!("๐Ÿ”ง Equivalent command: {}", java_command)); + add_log(format!("๐Ÿ“ Backend logs will be in: {}", log_dir.display())); + + // Additional macOS-specific checks + if cfg!(target_os = "macos") { + // Check if java executable has execute permissions + if let Ok(metadata) = std::fs::metadata(java_path) { + let permissions = metadata.permissions(); + add_log(format!("๐Ÿ” Java executable permissions: {:?}", permissions)); + + #[cfg(unix)] + { + use std::os::unix::fs::PermissionsExt; + let mode = permissions.mode(); + add_log(format!("๐Ÿ” Java executable mode: 0o{:o}", mode)); + if mode & 0o111 == 0 { + add_log("โš ๏ธ Java executable may not have execute permissions".to_string()); + } + } + } + + // Check if we can read the JAR file + if let Ok(metadata) = std::fs::metadata(jar_path) { + add_log(format!("๐Ÿ“ฆ JAR file size: {} bytes", metadata.len())); + } else { + add_log("โš ๏ธ Cannot read JAR file metadata".to_string()); + } + } + + let sidecar_command = app + .shell() + .command(java_path.to_str().unwrap()) + .args(java_options) + .current_dir(&work_dir) // Set working directory to writable location + .env("TAURI_PARENT_PID", std::process::id().to_string()) + .env("STIRLING_PDF_CONFIG_DIR", config_dir.to_str().unwrap()) + .env("STIRLING_PDF_LOG_DIR", log_dir.to_str().unwrap()) + .env("STIRLING_PDF_WORK_DIR", work_dir.to_str().unwrap()); + + add_log("โš™๏ธ Starting backend with bundled JRE...".to_string()); + + let (rx, child) = sidecar_command + .spawn() + .map_err(|e| { + let error_msg = format!("โŒ Failed to spawn sidecar: {}", e); + add_log(error_msg.clone()); + error_msg + })?; + + // Store the process handle + { + let mut process_guard = BACKEND_PROCESS.lock().unwrap(); + *process_guard = Some(child); + } + + add_log("โœ… Backend started with bundled JRE, monitoring output...".to_string()); + + // Start monitoring output + monitor_backend_output(rx); + + Ok(()) +} + +// Monitor backend output in a separate task +fn monitor_backend_output(mut rx: tauri::async_runtime::Receiver) { + tokio::spawn(async move { + let mut _startup_detected = false; + let mut error_count = 0; + + while let Some(event) = rx.recv().await { + match event { + tauri_plugin_shell::process::CommandEvent::Stdout(output) => { + let output_str = String::from_utf8_lossy(&output); + add_log(format!("๐Ÿ“ค Backend: {}", output_str)); + + // Look for startup indicators + if output_str.contains("Started SPDFApplication") || + output_str.contains("Navigate to "){ + _startup_detected = true; + add_log(format!("๐ŸŽ‰ Backend startup detected: {}", output_str)); + } + + // Look for port binding + if output_str.contains("8080") { + add_log(format!("๐Ÿ”Œ Port 8080 related output: {}", output_str)); + } + } + tauri_plugin_shell::process::CommandEvent::Stderr(output) => { + let output_str = String::from_utf8_lossy(&output); + add_log(format!("๐Ÿ“ฅ Backend Error: {}", output_str)); + + // Look for error indicators + if output_str.contains("ERROR") || output_str.contains("Exception") || output_str.contains("FATAL") { + error_count += 1; + add_log(format!("โš ๏ธ Backend error #{}: {}", error_count, output_str)); + } + + // Look for specific common issues + if output_str.contains("Address already in use") { + add_log("๐Ÿšจ CRITICAL: Port 8080 is already in use by another process!".to_string()); + } + if output_str.contains("java.lang.ClassNotFoundException") { + add_log("๐Ÿšจ CRITICAL: Missing Java dependencies!".to_string()); + } + if output_str.contains("java.io.FileNotFoundException") { + add_log("๐Ÿšจ CRITICAL: Required file not found!".to_string()); + } + } + tauri_plugin_shell::process::CommandEvent::Error(error) => { + add_log(format!("โŒ Backend process error: {}", error)); + } + tauri_plugin_shell::process::CommandEvent::Terminated(payload) => { + add_log(format!("๐Ÿ’€ Backend terminated with code: {:?}", payload.code)); + if let Some(code) = payload.code { + match code { + 0 => println!("โœ… Process terminated normally"), + 1 => println!("โŒ Process terminated with generic error"), + 2 => println!("โŒ Process terminated due to misuse"), + 126 => println!("โŒ Command invoked cannot execute"), + 127 => println!("โŒ Command not found"), + 128 => println!("โŒ Invalid exit argument"), + 130 => println!("โŒ Process terminated by Ctrl+C"), + _ => println!("โŒ Process terminated with code: {}", code), + } + } + // Clear the stored process handle + let mut process_guard = BACKEND_PROCESS.lock().unwrap(); + *process_guard = None; + } + _ => { + println!("๐Ÿ” Unknown command event: {:?}", event); + } + } + } + + if error_count > 0 { + println!("โš ๏ธ Backend process ended with {} errors detected", error_count); + } + }); +} + +// Command to start the backend with bundled JRE +#[tauri::command] +pub async fn start_backend(app: tauri::AppHandle) -> Result { + add_log("๐Ÿš€ start_backend() called - Attempting to start backend with bundled JRE...".to_string()); + + // Check if backend is already running or starting + if let Err(msg) = check_backend_status() { + return Ok(msg); + } + + // Use Tauri's resource API to find the bundled JRE and JAR + let resource_dir = app.path().resource_dir().map_err(|e| { + let error_msg = format!("โŒ Failed to get resource directory: {}", e); + add_log(error_msg.clone()); + reset_starting_flag(); + error_msg + })?; + + add_log(format!("๐Ÿ” Resource directory: {:?}", resource_dir)); + + // Find the bundled JRE + let java_executable = find_bundled_jre(&resource_dir).map_err(|e| { + reset_starting_flag(); + e + })?; + + // Find the Stirling-PDF JAR + let jar_path = find_stirling_jar(&resource_dir).map_err(|e| { + reset_starting_flag(); + e + })?; + + // Normalize the paths to remove Windows UNC prefix + let normalized_java_path = normalize_path(&java_executable); + let normalized_jar_path = normalize_path(&jar_path); + + add_log(format!("๐Ÿ“ฆ Found JAR file: {:?}", jar_path)); + add_log(format!("๐Ÿ“ฆ Normalized JAR path: {:?}", normalized_jar_path)); + add_log(format!("๐Ÿ“ฆ Normalized Java path: {:?}", normalized_java_path)); + + // Create and start the Java command + run_stirling_pdf_jar(&app, &normalized_java_path, &normalized_jar_path).map_err(|e| { + reset_starting_flag(); + e + })?; + + // Wait for the backend to start + println!("โณ Waiting for backend startup..."); + tokio::time::sleep(std::time::Duration::from_millis(10000)).await; + + // Reset the starting flag since startup is complete + reset_starting_flag(); + add_log("โœ… Backend startup sequence completed, starting flag cleared".to_string()); + + Ok("Backend startup initiated successfully with bundled JRE".to_string()) +} + +// Cleanup function to stop backend on app exit +pub fn cleanup_backend() { + let mut process_guard = BACKEND_PROCESS.lock().unwrap(); + if let Some(child) = process_guard.take() { + let pid = child.pid(); + add_log(format!("๐Ÿงน App shutting down, cleaning up backend process (PID: {})", pid)); + + match child.kill() { + Ok(_) => { + add_log(format!("โœ… Backend process (PID: {}) terminated during cleanup", pid)); + } + Err(e) => { + add_log(format!("โŒ Failed to terminate backend process during cleanup: {}", e)); + println!("โŒ Failed to terminate backend process during cleanup: {}", e); + } + } + } +} \ No newline at end of file diff --git a/frontend/src-tauri/src/commands/files.rs b/frontend/src-tauri/src/commands/files.rs new file mode 100644 index 0000000000..7c397cfcf1 --- /dev/null +++ b/frontend/src-tauri/src/commands/files.rs @@ -0,0 +1,48 @@ +use crate::utils::add_log; +use std::sync::Mutex; + +// Store the opened file path globally +static OPENED_FILE: Mutex> = Mutex::new(None); + +// Set the opened file path (called by macOS file open events) +pub fn set_opened_file(file_path: String) { + let mut opened_file = OPENED_FILE.lock().unwrap(); + *opened_file = Some(file_path.clone()); + add_log(format!("๐Ÿ“‚ File opened via file open event: {}", file_path)); +} + +// Command to get opened file path (if app was launched with a file) +#[tauri::command] +pub async fn get_opened_file() -> Result, String> { + // First check if we have a file from macOS file open events + { + let opened_file = OPENED_FILE.lock().unwrap(); + if let Some(ref file_path) = *opened_file { + add_log(format!("๐Ÿ“‚ Returning stored opened file: {}", file_path)); + return Ok(Some(file_path.clone())); + } + } + + // Fallback to command line arguments (Windows/Linux) + let args: Vec = std::env::args().collect(); + + // Look for a PDF file argument (skip the first arg which is the executable) + for arg in args.iter().skip(1) { + if arg.ends_with(".pdf") && std::path::Path::new(arg).exists() { + add_log(format!("๐Ÿ“‚ PDF file opened via command line: {}", arg)); + return Ok(Some(arg.clone())); + } + } + + Ok(None) +} + +// Command to clear the opened file (after processing) +#[tauri::command] +pub async fn clear_opened_file() -> Result<(), String> { + let mut opened_file = OPENED_FILE.lock().unwrap(); + *opened_file = None; + add_log("๐Ÿ“‚ Cleared opened file".to_string()); + Ok(()) +} + diff --git a/frontend/src-tauri/src/commands/health.rs b/frontend/src-tauri/src/commands/health.rs new file mode 100644 index 0000000000..394c8462cd --- /dev/null +++ b/frontend/src-tauri/src/commands/health.rs @@ -0,0 +1,36 @@ +// Command to check if backend is healthy +#[tauri::command] +pub async fn check_backend_health() -> Result { + let client = reqwest::Client::builder() + .timeout(std::time::Duration::from_secs(5)) + .build() + .map_err(|e| format!("Failed to create HTTP client: {}", e))?; + + match client.get("http://localhost:8080/api/v1/info/status").send().await { + Ok(response) => { + let status = response.status(); + if status.is_success() { + match response.text().await { + Ok(_body) => { + println!("โœ… Backend health check successful"); + Ok(true) + } + Err(e) => { + println!("โš ๏ธ Failed to read health response: {}", e); + Ok(false) + } + } + } else { + println!("โš ๏ธ Health check failed with status: {}", status); + Ok(false) + } + } + Err(e) => { + // Only log connection errors if they're not the common "connection refused" during startup + if !e.to_string().contains("connection refused") && !e.to_string().contains("No connection could be made") { + println!("โŒ Health check error: {}", e); + } + Ok(false) + } + } +} \ No newline at end of file diff --git a/frontend/src-tauri/src/commands/mod.rs b/frontend/src-tauri/src/commands/mod.rs new file mode 100644 index 0000000000..773f5d2dde --- /dev/null +++ b/frontend/src-tauri/src/commands/mod.rs @@ -0,0 +1,7 @@ +pub mod backend; +pub mod health; +pub mod files; + +pub use backend::{start_backend, cleanup_backend}; +pub use health::check_backend_health; +pub use files::{get_opened_file, clear_opened_file, set_opened_file}; \ No newline at end of file diff --git a/frontend/src-tauri/src/file_handler.rs b/frontend/src-tauri/src/file_handler.rs new file mode 100644 index 0000000000..d432a8131a --- /dev/null +++ b/frontend/src-tauri/src/file_handler.rs @@ -0,0 +1,189 @@ +/// Multi-platform file opening handler +/// +/// This module provides unified file opening support across platforms: +/// - macOS: Uses native NSApplication delegate (proper Apple Events) +/// - Windows/Linux: Uses command line arguments (fallback approach) +/// - All platforms: Runtime event handling via Tauri events + +use crate::utils::add_log; +use crate::commands::set_opened_file; +use tauri::AppHandle; + + +/// Initialize file handling for the current platform +pub fn initialize_file_handler(app: &AppHandle) { + add_log("๐Ÿ”ง Initializing file handler...".to_string()); + + // Platform-specific initialization + #[cfg(target_os = "macos")] + { + add_log("๐ŸŽ Using macOS native file handler".to_string()); + macos_native::register_open_file_handler(app); + } + + #[cfg(not(target_os = "macos"))] + { + add_log("๐Ÿ–ฅ๏ธ Using command line argument file handler".to_string()); + let _ = app; // Suppress unused variable warning + } + + // Universal: Check command line arguments (works on all platforms) + check_command_line_args(); +} + +/// Early initialization for macOS delegate registration +pub fn early_init() { + #[cfg(target_os = "macos")] + { + add_log("๐Ÿ”„ Early macOS initialization...".to_string()); + macos_native::register_delegate_early(); + } +} + +/// Check command line arguments for file paths (universal fallback) +fn check_command_line_args() { + let args: Vec = std::env::args().collect(); + add_log(format!("๐Ÿ” DEBUG: All command line args: {:?}", args)); + + // Check command line arguments for file opening + for (i, arg) in args.iter().enumerate() { + add_log(format!("๐Ÿ” DEBUG: Arg {}: {}", i, arg)); + if i > 0 && arg.ends_with(".pdf") && std::path::Path::new(arg).exists() { + add_log(format!("๐Ÿ“‚ File argument detected: {}", arg)); + set_opened_file(arg.clone()); + break; // Only handle the first PDF file + } + } +} + +/// Handle runtime file open events (for future single-instance support) +#[allow(dead_code)] +pub fn handle_runtime_file_open(file_path: String) { + if file_path.ends_with(".pdf") && std::path::Path::new(&file_path).exists() { + add_log(format!("๐Ÿ“‚ Runtime file open: {}", file_path)); + set_opened_file(file_path); + } +} + +#[cfg(target_os = "macos")] +mod macos_native { + use objc::{class, msg_send, sel, sel_impl}; + use objc::runtime::{Class, Object, Sel}; + use cocoa::appkit::NSApplication; + use cocoa::base::{id, nil}; + use once_cell::sync::Lazy; + use std::sync::Mutex; + use tauri::{AppHandle, Emitter}; + + use crate::utils::add_log; + use crate::commands::set_opened_file; + + // Static app handle storage + static APP_HANDLE: Lazy>>> = Lazy::new(|| Mutex::new(None)); + + // Store files opened during launch + static LAUNCH_FILES: Lazy>> = Lazy::new(|| Mutex::new(Vec::new())); + + + extern "C" fn open_files(_self: &Object, _cmd: Sel, _sender: id, filenames: id) { + unsafe { + add_log(format!("๐Ÿ“‚ macOS native openFiles event called")); + + // filenames is an NSArray of NSString objects + let count: usize = msg_send![filenames, count]; + add_log(format!("๐Ÿ“‚ Number of files to open: {}", count)); + + for i in 0..count { + let filename: id = msg_send![filenames, objectAtIndex: i]; + let cstr = { + let bytes: *const std::os::raw::c_char = msg_send![filename, UTF8String]; + std::ffi::CStr::from_ptr(bytes) + }; + + if let Ok(path) = cstr.to_str() { + add_log(format!("๐Ÿ“‚ macOS file open: {}", path)); + if path.ends_with(".pdf") { + // Always set the opened file for command-line interface + set_opened_file(path.to_string()); + + if let Some(app) = APP_HANDLE.lock().unwrap().as_ref() { + // App is running, emit event immediately + add_log(format!("โœ… App running, emitting file event: {}", path)); + let _ = app.emit("macos://open-file", path.to_string()); + } else { + // App not ready yet, store for later processing + add_log(format!("๐Ÿš€ App not ready, storing file for later: {}", path)); + LAUNCH_FILES.lock().unwrap().push(path.to_string()); + } + } + } + } + } + } + + // Register the delegate immediately when the module loads + pub fn register_delegate_early() { + add_log("๐Ÿ”ง Registering macOS delegate early...".to_string()); + + unsafe { + let ns_app = NSApplication::sharedApplication(nil); + + // Check if there's already a delegate + let existing_delegate: id = msg_send![ns_app, delegate]; + if existing_delegate != nil { + add_log("โš ๏ธ Tauri already has an NSApplication delegate, trying to extend it...".to_string()); + + // Try to add our method to the existing delegate's class + let delegate_class: id = msg_send![existing_delegate, class]; + let class_name: *const std::os::raw::c_char = msg_send![delegate_class, name]; + let class_name_str = std::ffi::CStr::from_ptr(class_name).to_string_lossy(); + add_log(format!("๐Ÿ” Existing delegate class: {}", class_name_str)); + + // This approach won't work with existing classes, so let's try a different method + // We'll use method swizzling or create a new delegate that forwards to the old one + add_log("๐Ÿ”„ Will try alternative approach...".to_string()); + } + + let delegate_class = Class::get("StirlingAppDelegate").unwrap_or_else(|| { + let superclass = class!(NSObject); + let mut decl = objc::declare::ClassDecl::new("StirlingAppDelegate", superclass).unwrap(); + + // Add file opening delegate method (modern plural version) + decl.add_method( + sel!(application:openFiles:), + open_files as extern "C" fn(&Object, Sel, id, id) + ); + + decl.register() + }); + + let delegate: id = msg_send![delegate_class, new]; + let _: () = msg_send![ns_app, setDelegate:delegate]; + } + + add_log("โœ… macOS delegate registered early".to_string()); + } + + pub fn register_open_file_handler(app: &AppHandle) { + add_log("๐Ÿ”ง Connecting app handle to file handler...".to_string()); + + // Store the app handle + *APP_HANDLE.lock().unwrap() = Some(app.clone()); + + // Process any files that were opened during launch + let launch_files = { + let mut files = LAUNCH_FILES.lock().unwrap(); + let result = files.clone(); + files.clear(); + result + }; + + for file_path in launch_files { + add_log(format!("๐Ÿ“‚ Processing stored launch file: {}", file_path)); + set_opened_file(file_path.clone()); + let _ = app.emit("macos://open-file", file_path); + } + + add_log("โœ… macOS file handler connected successfully".to_string()); + } +} \ No newline at end of file diff --git a/frontend/src-tauri/src/lib.rs b/frontend/src-tauri/src/lib.rs new file mode 100644 index 0000000000..f64b8bd0b5 --- /dev/null +++ b/frontend/src-tauri/src/lib.rs @@ -0,0 +1,65 @@ +use tauri::{RunEvent, WindowEvent, Emitter}; + +mod utils; +mod commands; +mod file_handler; + +use commands::{start_backend, check_backend_health, get_opened_file, clear_opened_file, cleanup_backend, set_opened_file}; +use utils::{add_log, get_tauri_logs}; + +#[cfg_attr(mobile, tauri::mobile_entry_point)] +pub fn run() { + // Initialize file handler early for macOS + file_handler::early_init(); + + tauri::Builder::default() + .plugin(tauri_plugin_shell::init()) + .plugin(tauri_plugin_fs::init()) + .setup(|app| { + add_log("๐Ÿš€ Tauri app setup started".to_string()); + + // Initialize platform-specific file handler + file_handler::initialize_file_handler(&app.handle()); + + add_log("๐Ÿ” DEBUG: Setup completed".to_string()); + Ok(()) + }) + .invoke_handler(tauri::generate_handler![start_backend, check_backend_health, get_opened_file, clear_opened_file, get_tauri_logs]) + .build(tauri::generate_context!()) + .expect("error while building tauri application") + .run(|app_handle, event| { + match event { + RunEvent::ExitRequested { .. } => { + add_log("๐Ÿ”„ App exit requested, cleaning up...".to_string()); + cleanup_backend(); + // Use Tauri's built-in cleanup + app_handle.cleanup_before_exit(); + } + RunEvent::WindowEvent { event: WindowEvent::CloseRequested {.. }, .. } => { + add_log("๐Ÿ”„ Window close requested, cleaning up...".to_string()); + cleanup_backend(); + // Allow the window to close + } + #[cfg(target_os = "macos")] + RunEvent::Opened { urls } => { + add_log(format!("๐Ÿ“‚ Tauri file opened event: {:?}", urls)); + for url in urls { + let url_str = url.as_str(); + if url_str.starts_with("file://") { + let file_path = url_str.strip_prefix("file://").unwrap_or(url_str); + if file_path.ends_with(".pdf") { + add_log(format!("๐Ÿ“‚ Processing opened PDF: {}", file_path)); + set_opened_file(file_path.to_string()); + let _ = app_handle.emit("macos://open-file", file_path.to_string()); + } + } + } + } + _ => { + // Only log unhandled events in debug mode to reduce noise + // #[cfg(debug_assertions)] + // add_log(format!("๐Ÿ” DEBUG: Unhandled event: {:?}", event)); + } + } + }); +} \ No newline at end of file diff --git a/frontend/src-tauri/src/main.rs b/frontend/src-tauri/src/main.rs new file mode 100644 index 0000000000..ad5fe83991 --- /dev/null +++ b/frontend/src-tauri/src/main.rs @@ -0,0 +1,6 @@ +// Prevents additional console window on Windows in release, DO NOT REMOVE!! +#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] + +fn main() { + app_lib::run(); +} diff --git a/frontend/src-tauri/src/utils/logging.rs b/frontend/src-tauri/src/utils/logging.rs new file mode 100644 index 0000000000..bda1913ad1 --- /dev/null +++ b/frontend/src-tauri/src/utils/logging.rs @@ -0,0 +1,90 @@ +use std::sync::Mutex; +use std::collections::VecDeque; +use std::fs::OpenOptions; +use std::io::Write; +use std::path::PathBuf; + +// Store backend logs globally +static BACKEND_LOGS: Mutex> = Mutex::new(VecDeque::new()); + +// Get platform-specific log directory +fn get_log_directory() -> PathBuf { + if cfg!(target_os = "macos") { + // macOS: ~/Library/Logs/Stirling-PDF + let home = std::env::var("HOME").unwrap_or_else(|_| "/tmp".to_string()); + PathBuf::from(home).join("Library").join("Logs").join("Stirling-PDF") + } else if cfg!(target_os = "windows") { + // Windows: %APPDATA%\Stirling-PDF\logs + let appdata = std::env::var("APPDATA").unwrap_or_else(|_| std::env::temp_dir().to_string_lossy().to_string()); + PathBuf::from(appdata).join("Stirling-PDF").join("logs") + } else { + // Linux: ~/.config/Stirling-PDF/logs + let home = std::env::var("HOME").unwrap_or_else(|_| "/tmp".to_string()); + PathBuf::from(home).join(".config").join("Stirling-PDF").join("logs") + } +} + +// Helper function to add log entry +pub fn add_log(message: String) { + let timestamp = std::time::SystemTime::now() + .duration_since(std::time::UNIX_EPOCH) + .unwrap() + .as_secs(); + + let log_entry = format!("{}: {}", timestamp, message); + + // Add to memory logs + { + let mut logs = BACKEND_LOGS.lock().unwrap(); + logs.push_back(log_entry.clone()); + // Keep only last 100 log entries + if logs.len() > 100 { + logs.pop_front(); + } + } + + // Write to file + write_to_log_file(&log_entry); + + // Remove trailing newline if present + let clean_message = message.trim_end_matches('\n').to_string(); + println!("{}", clean_message); // Also print to console +} + +// Write log entry to file +fn write_to_log_file(log_entry: &str) { + let log_dir = get_log_directory(); + if let Err(e) = std::fs::create_dir_all(&log_dir) { + eprintln!("Failed to create log directory: {}", e); + return; + } + + let log_file = log_dir.join("tauri-backend.log"); + + match OpenOptions::new() + .create(true) + .append(true) + .open(&log_file) + { + Ok(mut file) => { + if let Err(e) = writeln!(file, "{}", log_entry) { + eprintln!("Failed to write to log file: {}", e); + } + } + Err(e) => { + eprintln!("Failed to open log file {:?}: {}", log_file, e); + } + } +} + +// Get current logs for debugging +pub fn get_logs() -> Vec { + let logs = BACKEND_LOGS.lock().unwrap(); + logs.iter().cloned().collect() +} + +// Command to get logs from frontend +#[tauri::command] +pub async fn get_tauri_logs() -> Result, String> { + Ok(get_logs()) +} \ No newline at end of file diff --git a/frontend/src-tauri/src/utils/mod.rs b/frontend/src-tauri/src/utils/mod.rs new file mode 100644 index 0000000000..258efca6c4 --- /dev/null +++ b/frontend/src-tauri/src/utils/mod.rs @@ -0,0 +1,3 @@ +pub mod logging; + +pub use logging::{add_log, get_tauri_logs}; \ No newline at end of file diff --git a/frontend/src-tauri/stirling-pdf.desktop b/frontend/src-tauri/stirling-pdf.desktop new file mode 100644 index 0000000000..9d60293771 --- /dev/null +++ b/frontend/src-tauri/stirling-pdf.desktop @@ -0,0 +1,14 @@ +[Desktop Entry] +Version=1.0 +Type=Application +Name=Stirling-PDF +Comment=Locally hosted web application that allows you to perform various operations on PDF files +Icon={{icon}} +Terminal=false +MimeType=application/pdf; +Categories=Office;Graphics;Utility; +Actions=open-file; + +[Desktop Action open-file] +Name=Open PDF File +Exec=/usr/bin/stirling-pdf %F \ No newline at end of file diff --git a/frontend/src-tauri/tauri.conf.json b/frontend/src-tauri/tauri.conf.json new file mode 100644 index 0000000000..45bb852dae --- /dev/null +++ b/frontend/src-tauri/tauri.conf.json @@ -0,0 +1,63 @@ +{ + "$schema": "../node_modules/@tauri-apps/cli/config.schema.json", + "productName": "Stirling-PDF", + "version": "2.0.0", + "identifier": "stirling.pdf.dev", + "build": { + "frontendDist": "../dist", + "devUrl": "http://localhost:5173", + "beforeDevCommand": "npm run dev -- --mode desktop", + "beforeBuildCommand": "npm run build -- --mode desktop" + }, + "app": { + "windows": [ + { + "title": "Stirling-PDF", + "width": 1280, + "height": 800, + "resizable": true, + "fullscreen": false + } + ] + }, + "bundle": { + "active": true, + "targets": ["deb", "rpm", "dmg", "msi"], + "icon": [ + "icons/icon.png", + "icons/icon.icns", + "icons/icon.ico", + "icons/16x16.png", + "icons/32x32.png", + "icons/64x64.png", + "icons/128x128.png", + "icons/192x192.png" + ], + "resources": [ + "libs/*.jar", + "runtime/jre/**/*" + ], + "fileAssociations": [ + { + "ext": ["pdf"], + "name": "PDF Document", + "description": "Open PDF files with Stirling-PDF", + "role": "Editor", + "mimeType": "application/pdf" + } + ], + "linux": { + "deb": { + "desktopTemplate": "stirling-pdf.desktop" + } + } + }, + "plugins": { + "shell": { + "open": true + }, + "fs": { + "requireLiteralLeadingDot": false + } + } +} diff --git a/frontend/src/core/components/rightRail/RightRailFooterExtensions.tsx b/frontend/src/core/components/rightRail/RightRailFooterExtensions.tsx new file mode 100644 index 0000000000..5f0021f1d8 --- /dev/null +++ b/frontend/src/core/components/rightRail/RightRailFooterExtensions.tsx @@ -0,0 +1,7 @@ +interface RightRailFooterExtensionsProps { + className?: string; +} + +export function RightRailFooterExtensions(_props: RightRailFooterExtensionsProps) { + return null; +} diff --git a/frontend/src/core/components/shared/RightRail.tsx b/frontend/src/core/components/shared/RightRail.tsx index 551ef13280..8efe507a1f 100644 --- a/frontend/src/core/components/shared/RightRail.tsx +++ b/frontend/src/core/components/shared/RightRail.tsx @@ -13,6 +13,7 @@ import { Tooltip } from '@app/components/shared/Tooltip'; import { ViewerContext } from '@app/contexts/ViewerContext'; import { useSignature } from '@app/contexts/SignatureContext'; import LocalIcon from '@app/components/shared/LocalIcon'; +import { RightRailFooterExtensions } from '@app/components/rightRail/RightRailFooterExtensions'; import { useSidebarContext } from '@app/contexts/SidebarContext'; import { RightRailButtonConfig, RightRailRenderContext, RightRailSection } from '@app/types/rightRail'; @@ -224,6 +225,8 @@ export default function RightRail() {

+ +
); diff --git a/frontend/src/core/components/shared/rightRail/RightRail.css b/frontend/src/core/components/shared/rightRail/RightRail.css index 6ea40538d3..f317b85737 100644 --- a/frontend/src/core/components/shared/rightRail/RightRail.css +++ b/frontend/src/core/components/shared/rightRail/RightRail.css @@ -17,6 +17,9 @@ align-items: center; gap: 0.75rem; padding: 1rem 0.5rem; + width: 100%; + height: 100%; + flex: 1; } .right-rail-section { diff --git a/frontend/src/core/pages/HomePage.tsx b/frontend/src/core/pages/HomePage.tsx index 283ccbc0ec..683f76a08d 100644 --- a/frontend/src/core/pages/HomePage.tsx +++ b/frontend/src/core/pages/HomePage.tsx @@ -20,14 +20,21 @@ import { useFilesModalContext } from "@app/contexts/FilesModalContext"; import AppConfigModal from "@app/components/shared/AppConfigModal"; import ToolPanelModePrompt from "@app/components/tools/ToolPanelModePrompt"; import AdminAnalyticsChoiceModal from "@app/components/shared/AdminAnalyticsChoiceModal"; +import { useHomePageExtensions } from "@app/pages/useHomePageExtensions"; import "@app/pages/HomePage.css"; type MobileView = "tools" | "workbench"; +interface HomePageProps { + openedFile?: File | null; +} -export default function HomePage() { +export default function HomePage({ openedFile }: HomePageProps = {}) { const { t } = useTranslation(); + + // Extension hook for desktop-specific behavior (e.g., file opening) + useHomePageExtensions(openedFile); const { sidebarRefs, } = useSidebarContext(); diff --git a/frontend/src/core/pages/useHomePageExtensions.ts b/frontend/src/core/pages/useHomePageExtensions.ts new file mode 100644 index 0000000000..211112f9e6 --- /dev/null +++ b/frontend/src/core/pages/useHomePageExtensions.ts @@ -0,0 +1,10 @@ +import { useEffect } from 'react'; + +/** + * Extension point for HomePage behaviour. + * Core version does nothing. + */ +export function useHomePageExtensions(_openedFile?: File | null) { + useEffect(() => { + }, [_openedFile]); +} diff --git a/frontend/src/core/services/apiClient.ts b/frontend/src/core/services/apiClient.ts index 0b6a293ff2..57869fc362 100644 --- a/frontend/src/core/services/apiClient.ts +++ b/frontend/src/core/services/apiClient.ts @@ -1,10 +1,11 @@ import axios from 'axios'; import { handleHttpError } from '@app/services/httpErrorHandler'; import { setupApiInterceptors } from '@app/services/apiClientSetup'; +import { getApiBaseUrl } from '@app/services/apiClientConfig'; // Create axios instance with default config const apiClient = axios.create({ - baseURL: import.meta.env.VITE_API_BASE_URL || '/', + baseURL: getApiBaseUrl(), responseType: 'json', }); diff --git a/frontend/src/core/services/apiClientConfig.ts b/frontend/src/core/services/apiClientConfig.ts new file mode 100644 index 0000000000..a7d01c7cbe --- /dev/null +++ b/frontend/src/core/services/apiClientConfig.ts @@ -0,0 +1,7 @@ +/** + * Get the base URL for API requests. + * Core version uses simple environment variable. + */ +export function getApiBaseUrl(): string { + return import.meta.env.VITE_API_BASE_URL || '/'; +} diff --git a/frontend/src/desktop/auth/UseSession.tsx b/frontend/src/desktop/auth/UseSession.tsx new file mode 100644 index 0000000000..3deb177460 --- /dev/null +++ b/frontend/src/desktop/auth/UseSession.tsx @@ -0,0 +1,234 @@ +import { createContext, useContext, useEffect, useState, ReactNode, useCallback } from 'react'; +import apiClient from '@app/services/apiClient'; +import { springAuth } from '@app/auth/springAuthClient'; +import type { Session, User, AuthError, AuthChangeEvent } from '@app/auth/springAuthClient'; + +/** + * Auth Context Type + * Simplified version without SaaS-specific features (credits, subscriptions) + */ +interface AuthContextType { + session: Session | null; + user: User | null; + loading: boolean; + error: AuthError | null; + signOut: () => Promise; + refreshSession: () => Promise; +} + +const AuthContext = createContext({ + session: null, + user: null, + loading: true, + error: null, + signOut: async () => {}, + refreshSession: async () => {}, +}); + +/** + * Auth Provider Component + * + * Manages authentication state and provides it to the entire app. + * Integrates with Spring Security + JWT backend. + */ +export function AuthProvider({ children }: { children: ReactNode }) { + const [session, setSession] = useState(null); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(null); + + /** + * Refresh current session + */ + const refreshSession = useCallback(async () => { + try { + setLoading(true); + setError(null); + console.debug('[Auth] Refreshing session...'); + + const { data, error } = await springAuth.refreshSession(); + + if (error) { + console.error('[Auth] Session refresh error:', error); + setError(error); + setSession(null); + } else { + console.debug('[Auth] Session refreshed successfully'); + setSession(data.session); + } + } catch (err) { + console.error('[Auth] Unexpected error during session refresh:', err); + setError(err as AuthError); + } finally { + setLoading(false); + } + }, []); + + /** + * Sign out user + */ + const signOut = useCallback(async () => { + try { + setError(null); + console.debug('[Auth] Signing out...'); + + const { error } = await springAuth.signOut(); + + if (error) { + console.error('[Auth] Sign out error:', error); + setError(error); + } else { + console.debug('[Auth] Signed out successfully'); + setSession(null); + } + } catch (err) { + console.error('[Auth] Unexpected error during sign out:', err); + setError(err as AuthError); + } + }, []); + + /** + * Initialize auth on mount + */ + useEffect(() => { + let mounted = true; + + const initializeAuth = async () => { + try { + console.debug('[Auth] Initializing auth...'); + + // First check if login is enabled + const configResponse = await apiClient.get('/api/v1/config/app-config'); + if (configResponse.status === 200) { + const config = configResponse.data; + + // If login is disabled, skip authentication entirely + if (config.enableLogin === false) { + console.debug('[Auth] Login disabled - skipping authentication'); + if (mounted) { + setSession(null); + setLoading(false); + } + return; + } + } + + // Login is enabled, proceed with normal auth check + const { data, error } = await springAuth.getSession(); + + if (!mounted) return; + + if (error) { + console.error('[Auth] Initial session error:', error); + setError(error); + } else { + console.debug('[Auth] Initial session loaded:', { + hasSession: !!data.session, + userId: data.session?.user?.id, + email: data.session?.user?.email, + }); + setSession(data.session); + } + } catch (err) { + console.error('[Auth] Unexpected error during auth initialization:', err); + if (mounted) { + setError(err as AuthError); + } + } finally { + if (mounted) { + setLoading(false); + } + } + }; + + initializeAuth(); + + // Subscribe to auth state changes + const { data: { subscription } } = springAuth.onAuthStateChange( + async (event: AuthChangeEvent, newSession: Session | null) => { + if (!mounted) return; + + console.debug('[Auth] Auth state change:', { + event, + hasSession: !!newSession, + userId: newSession?.user?.id, + email: newSession?.user?.email, + timestamp: new Date().toISOString(), + }); + + // Schedule state update + setTimeout(() => { + if (mounted) { + setSession(newSession); + setError(null); + + // Handle specific events + if (event === 'SIGNED_OUT') { + console.debug('[Auth] User signed out, clearing session'); + } else if (event === 'SIGNED_IN') { + console.debug('[Auth] User signed in successfully'); + } else if (event === 'TOKEN_REFRESHED') { + console.debug('[Auth] Token refreshed'); + } else if (event === 'USER_UPDATED') { + console.debug('[Auth] User updated'); + } + } + }, 0); + } + ); + + return () => { + mounted = false; + subscription.unsubscribe(); + }; + }, []); + + const value: AuthContextType = { + session, + user: session?.user ?? null, + loading, + error, + signOut, + refreshSession, + }; + + return ( + + {children} + + ); +} + +/** + * Hook to access auth context + * Must be used within AuthProvider + */ +export function useAuth() { + const context = useContext(AuthContext); + + if (context === undefined) { + throw new Error('useAuth must be used within an AuthProvider'); + } + + return context; +} + +/** + * Debug hook to expose auth state for debugging + * Can be used in development to monitor auth state + */ +export function useAuthDebug() { + const auth = useAuth(); + + useEffect(() => { + console.debug('[Auth Debug] Current auth state:', { + hasSession: !!auth.session, + hasUser: !!auth.user, + loading: auth.loading, + hasError: !!auth.error, + userId: auth.user?.id, + email: auth.user?.email, + }); + }, [auth.session, auth.user, auth.loading, auth.error]); + + return auth; +} diff --git a/frontend/src/desktop/auth/springAuthClient.ts b/frontend/src/desktop/auth/springAuthClient.ts new file mode 100644 index 0000000000..57c04b56ad --- /dev/null +++ b/frontend/src/desktop/auth/springAuthClient.ts @@ -0,0 +1,437 @@ +/** + * Spring Auth Client + * + * This client integrates with the Spring Security + JWT backend. + * - Uses localStorage for JWT storage (sent via Authorization header) + * - JWT validation handled server-side + * - No email confirmation flow (auto-confirmed on registration) + */ + +import apiClient from '@app/services/apiClient'; + +// Auth types +export interface User { + id: string; + email: string; + username: string; + role: string; + enabled?: boolean; + is_anonymous?: boolean; + app_metadata?: Record; +} + +export interface Session { + user: User; + access_token: string; + expires_in: number; + expires_at?: number; +} + +export interface AuthError { + message: string; + status?: number; +} + +export interface AuthResponse { + user: User | null; + session: Session | null; + error: AuthError | null; +} + +export type AuthChangeEvent = + | 'SIGNED_IN' + | 'SIGNED_OUT' + | 'TOKEN_REFRESHED' + | 'USER_UPDATED'; + +type AuthChangeCallback = (event: AuthChangeEvent, session: Session | null) => void; + +class SpringAuthClient { + private listeners: AuthChangeCallback[] = []; + private sessionCheckInterval: NodeJS.Timeout | null = null; + private readonly SESSION_CHECK_INTERVAL = 60000; // 1 minute + private readonly TOKEN_REFRESH_THRESHOLD = 300000; // 5 minutes before expiry + + constructor() { + // Start periodic session validation + this.startSessionMonitoring(); + } + + /** + * Helper to get CSRF token from cookie + */ + private getCsrfToken(): string | null { + const cookies = document.cookie.split(';'); + for (const cookie of cookies) { + const [name, value] = cookie.trim().split('='); + if (name === 'XSRF-TOKEN') { + return value; + } + } + return null; + } + + /** + * Get current session + * JWT is stored in localStorage and sent via Authorization header + */ + async getSession(): Promise<{ data: { session: Session | null }; error: AuthError | null }> { + try { + // Get JWT from localStorage + const token = localStorage.getItem('stirling_jwt'); + + if (!token) { + console.debug('[SpringAuth] getSession: No JWT in localStorage'); + return { data: { session: null }, error: null }; + } + + // Verify with backend + // Note: We pass the token explicitly here, overriding the interceptor's default + const response = await apiClient.get('/api/v1/auth/me', { + headers: { + 'Authorization': `Bearer ${token}`, + }, + }); + + const data = response.data; + + // Create session object + const session: Session = { + user: data.user, + access_token: token, + expires_in: 3600, + expires_at: Date.now() + 3600 * 1000, + }; + + console.debug('[SpringAuth] getSession: Session retrieved successfully'); + return { data: { session }, error: null }; + } catch (error: any) { + console.error('[SpringAuth] getSession error:', error); + + // If 401/403, token is invalid - clear it + if (error?.response?.status === 401 || error?.response?.status === 403) { + localStorage.removeItem('stirling_jwt'); + console.debug('[SpringAuth] getSession: Not authenticated'); + return { data: { session: null }, error: null }; + } + + // Clear potentially invalid token on other errors too + localStorage.removeItem('stirling_jwt'); + return { + data: { session: null }, + error: { message: error?.response?.data?.message || error?.message || 'Unknown error' }, + }; + } + } + + /** + * Sign in with email and password + */ + async signInWithPassword(credentials: { + email: string; + password: string; + }): Promise { + try { + const response = await apiClient.post('/api/v1/auth/login', { + username: credentials.email, + password: credentials.password + }, { + withCredentials: true, // Include cookies for CSRF + }); + + const data = response.data; + const token = data.session.access_token; + + // Store JWT in localStorage + localStorage.setItem('stirling_jwt', token); + console.log('[SpringAuth] JWT stored in localStorage'); + + const session: Session = { + user: data.user, + access_token: token, + expires_in: data.session.expires_in, + expires_at: Date.now() + data.session.expires_in * 1000, + }; + + // Notify listeners + this.notifyListeners('SIGNED_IN', session); + + return { user: data.user, session, error: null }; + } catch (error: any) { + console.error('[SpringAuth] signInWithPassword error:', error); + const errorMessage = error?.response?.data?.error || error?.message || 'Login failed'; + return { + user: null, + session: null, + error: { message: errorMessage }, + }; + } + } + + /** + * Sign up new user + */ + async signUp(credentials: { + email: string; + password: string; + options?: { data?: { full_name?: string }; emailRedirectTo?: string }; + }): Promise { + try { + const response = await apiClient.post('/api/v1/user/register', { + username: credentials.email, + password: credentials.password, + }, { + withCredentials: true, + }); + + const data = response.data; + + // Note: Spring backend auto-confirms users (no email verification) + // Return user but no session (user needs to login) + return { user: data.user, session: null, error: null }; + } catch (error: any) { + console.error('[SpringAuth] signUp error:', error); + const errorMessage = error?.response?.data?.error || error?.message || 'Registration failed'; + return { + user: null, + session: null, + error: { message: errorMessage }, + }; + } + } + + /** + * Sign in with OAuth provider (GitHub, Google, etc.) + * Redirects to Spring OAuth2 authorization endpoint + */ + async signInWithOAuth(params: { + provider: 'github' | 'google' | 'apple' | 'azure'; + options?: { redirectTo?: string; queryParams?: Record }; + }): Promise<{ error: AuthError | null }> { + try { + const redirectUrl = `/oauth2/authorization/${params.provider}`; + console.log('[SpringAuth] Redirecting to OAuth:', redirectUrl); + window.location.assign(redirectUrl); + return { error: null }; + } catch (error) { + return { + error: { message: error instanceof Error ? error.message : 'OAuth redirect failed' }, + }; + } + } + + /** + * Send password reset email + * Not used in OSS version, but included for completeness + */ + async resetPasswordForEmail(email: string): Promise<{ data: object; error: AuthError | null }> { + try { + await apiClient.post('/api/v1/auth/reset-password', { + email, + }, { + withCredentials: true, + }); + + return { data: {}, error: null }; + } catch (error: any) { + console.error('[SpringAuth] resetPasswordForEmail error:', error); + return { + data: {}, + error: { + message: error?.response?.data?.error || error?.message || 'Password reset failed', + }, + }; + } + } + + /** + * Sign out user (invalidate session) + */ + async signOut(): Promise<{ error: AuthError | null }> { + try { + const response = await apiClient.post('/api/v1/auth/logout', null, { + headers: { + 'X-CSRF-TOKEN': this.getCsrfToken() || '', + }, + withCredentials: true, + }); + + if (response.status === 200) { + console.debug('[SpringAuth] signOut: Success'); + } + + // Clean up local storage + localStorage.removeItem('stirling_jwt'); + + // Notify listeners + this.notifyListeners('SIGNED_OUT', null); + + return { error: null }; + } catch (error: any) { + console.error('[SpringAuth] signOut error:', error); + return { + error: { + message: error?.response?.data?.error || error?.message || 'Logout failed', + }, + }; + } + } + + /** + * Refresh JWT token + */ + async refreshSession(): Promise<{ data: { session: Session | null }; error: AuthError | null }> { + try { + const response = await apiClient.post('/api/v1/auth/refresh', null, { + headers: { + 'X-CSRF-TOKEN': this.getCsrfToken() || '', + }, + withCredentials: true, + }); + + const data = response.data; + const token = data.session.access_token; + + // Update local storage with new token + localStorage.setItem('stirling_jwt', token); + + const session: Session = { + user: data.user, + access_token: token, + expires_in: data.session.expires_in, + expires_at: Date.now() + data.session.expires_in * 1000, + }; + + // Notify listeners + this.notifyListeners('TOKEN_REFRESHED', session); + + return { data: { session }, error: null }; + } catch (error: any) { + console.error('[SpringAuth] refreshSession error:', error); + localStorage.removeItem('stirling_jwt'); + + // Handle different error statuses + if (error?.response?.status === 401 || error?.response?.status === 403) { + return { data: { session: null }, error: { message: 'Token refresh failed - please log in again' } }; + } + + return { + data: { session: null }, + error: { message: error?.response?.data?.message || error?.message || 'Token refresh failed' }, + }; + } + } + + /** + * Listen to auth state changes + */ + onAuthStateChange(callback: AuthChangeCallback): { data: { subscription: { unsubscribe: () => void } } } { + this.listeners.push(callback); + + return { + data: { + subscription: { + unsubscribe: () => { + this.listeners = this.listeners.filter((cb) => cb !== callback); + }, + }, + }, + }; + } + + // Private helper methods + + private notifyListeners(event: AuthChangeEvent, session: Session | null) { + // Use setTimeout to avoid calling callbacks synchronously + setTimeout(() => { + this.listeners.forEach((callback) => { + try { + callback(event, session); + } catch (error) { + console.error('[SpringAuth] Error in auth state change listener:', error); + } + }); + }, 0); + } + + private startSessionMonitoring() { + // Periodically check session validity + // Since we use HttpOnly cookies, we just need to check with the server + this.sessionCheckInterval = setInterval(async () => { + try { + // Try to get current session + const { data } = await this.getSession(); + + // If we have a session, proactively refresh if needed + // (The server will handle token expiry, but we can be proactive) + if (data.session) { + const timeUntilExpiry = (data.session.expires_at || 0) - Date.now(); + + // Refresh if token expires soon + if (timeUntilExpiry > 0 && timeUntilExpiry < this.TOKEN_REFRESH_THRESHOLD) { + console.log('[SpringAuth] Proactively refreshing token'); + await this.refreshSession(); + } + } + } catch (error) { + console.error('[SpringAuth] Session monitoring error:', error); + } + }, this.SESSION_CHECK_INTERVAL); + } + + public destroy() { + if (this.sessionCheckInterval) { + clearInterval(this.sessionCheckInterval); + } + } +} + +export const springAuth = new SpringAuthClient(); + +/** + * Get current user + */ +export const getCurrentUser = async () => { + const { data } = await springAuth.getSession(); + return data.session?.user || null; +}; + +/** + * Check if user is anonymous + */ +export const isUserAnonymous = (user: User | null) => { + return user?.is_anonymous === true; +}; + +/** + * Create an anonymous user object for use when login is disabled + * This provides a consistent User interface throughout the app + */ +export const createAnonymousUser = (): User => { + return { + id: 'anonymous', + email: 'anonymous@local', + username: 'Anonymous User', + role: 'USER', + enabled: true, + is_anonymous: true, + app_metadata: { + provider: 'anonymous', + }, + }; +}; + +/** + * Create an anonymous session for use when login is disabled + */ +export const createAnonymousSession = (): Session => { + return { + user: createAnonymousUser(), + access_token: '', + expires_in: Number.MAX_SAFE_INTEGER, + expires_at: Number.MAX_SAFE_INTEGER, + }; +}; + +// Export auth client as default for convenience +export default springAuth; diff --git a/frontend/src/desktop/components/BackendHealthIndicator.tsx b/frontend/src/desktop/components/BackendHealthIndicator.tsx new file mode 100644 index 0000000000..5fa1e3eb44 --- /dev/null +++ b/frontend/src/desktop/components/BackendHealthIndicator.tsx @@ -0,0 +1,80 @@ +import React, { useMemo, useCallback } from 'react'; +import { useTranslation } from 'react-i18next'; +import { Box, Tooltip, useMantineTheme, useComputedColorScheme, rem } from '@mantine/core'; +import { useBackendHealth } from '@app/hooks/useBackendHealth'; + +interface BackendHealthIndicatorProps { + className?: string; +} + +export const BackendHealthIndicator: React.FC = ({ + className = '' +}) => { + const { t } = useTranslation(); + const theme = useMantineTheme(); + const colorScheme = useComputedColorScheme('light'); + const { isHealthy, isChecking, checkHealth } = useBackendHealth(); + + const label = useMemo(() => { + if (isChecking) { + return t('backendHealth.checking', 'Checking backend status...'); + } + + if (isHealthy) { + return t('backendHealth.online', 'Backend Online'); + } + + return t('backendHealth.offline', 'Backend Offline'); + }, [isChecking, isHealthy, t]); + + const dotColor = useMemo(() => { + if (isChecking) { + return theme.colors.yellow?.[5] ?? '#fcc419'; + } + if (isHealthy) { + return theme.colors.green?.[5] ?? '#37b24d'; + } + return theme.colors.red?.[6] ?? '#e03131'; + }, [isChecking, isHealthy, theme.colors.green, theme.colors.red, theme.colors.yellow]); + + const handleKeyDown = useCallback((event: React.KeyboardEvent) => { + if (event.key === 'Enter' || event.key === ' ') { + event.preventDefault(); + checkHealth(); + } + }, [checkHealth]); + + return ( + + + + ); +}; diff --git a/frontend/src/desktop/components/rightRail/RightRailFooterExtensions.tsx b/frontend/src/desktop/components/rightRail/RightRailFooterExtensions.tsx new file mode 100644 index 0000000000..58d8d9b98d --- /dev/null +++ b/frontend/src/desktop/components/rightRail/RightRailFooterExtensions.tsx @@ -0,0 +1,23 @@ +import { Box, rem } from '@mantine/core'; +import { BackendHealthIndicator } from '@app/components/BackendHealthIndicator'; + +interface RightRailFooterExtensionsProps { + className?: string; +} + +export function RightRailFooterExtensions({ className }: RightRailFooterExtensionsProps) { + return ( + + + + ); +} diff --git a/frontend/src/desktop/contexts/AppConfigContext.tsx b/frontend/src/desktop/contexts/AppConfigContext.tsx new file mode 100644 index 0000000000..399ba2e621 --- /dev/null +++ b/frontend/src/desktop/contexts/AppConfigContext.tsx @@ -0,0 +1,135 @@ +import React, { createContext, useContext, useState, useEffect } from 'react'; +import apiClient from '@app/services/apiClient'; + +// Retry configuration +const MAX_RETRIES = 5; +const INITIAL_DELAY = 1000; // 1 second + +/** + * Sleep utility for delays + */ +function sleep(ms: number): Promise { + return new Promise(resolve => setTimeout(resolve, ms)); +} + +export interface AppConfig { + baseUrl?: string; + contextPath?: string; + serverPort?: number; + appNameNavbar?: string; + languages?: string[]; + enableLogin?: boolean; + enableEmailInvites?: boolean; + isAdmin?: boolean; + enableAlphaFunctionality?: boolean; + enableAnalytics?: boolean | null; + enablePosthog?: boolean | null; + enableScarf?: boolean | null; + premiumEnabled?: boolean; + premiumKey?: string; + termsAndConditions?: string; + privacyPolicy?: string; + cookiePolicy?: string; + impressum?: string; + accessibilityStatement?: string; + runningProOrHigher?: boolean; + runningEE?: boolean; + license?: string; + SSOAutoLogin?: boolean; + serverCertificateEnabled?: boolean; + error?: string; +} + +interface AppConfigContextValue { + config: AppConfig | null; + loading: boolean; + error: string | null; + refetch: () => Promise; +} + +// Create context +const AppConfigContext = createContext(undefined); + +/** + * Provider component that fetches and provides app configuration + * Should be placed at the top level of the app, before any components that need config + */ +export const AppConfigProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => { + const [config, setConfig] = useState(null); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(null); + + const fetchConfig = async () => { + setLoading(true); + setError(null); + + + for (let attempt = 0; attempt <= MAX_RETRIES; attempt++) { + try { + if (attempt > 0) { + const delay = INITIAL_DELAY * Math.pow(2, attempt - 1); + console.log(`[AppConfig] Retry attempt ${attempt}/${MAX_RETRIES} after ${delay}ms delay...`); + await sleep(delay); + } else { + console.log('[AppConfig] Fetching app config...'); + } + + const response = await apiClient.get('/api/v1/config/app-config'); + + setConfig(response.data); + console.log('[AppConfig] Successfully fetched app config'); + setLoading(false); + return; // Success - exit function + } catch (err: any) { + const status = err?.response?.status; + + // Check if we should retry (network errors or 5xx errors) + const shouldRetry = (!status || status >= 500) && attempt < MAX_RETRIES; + + if (shouldRetry) { + console.warn(`[AppConfig] Attempt ${attempt + 1} failed (status ${status || 'network error'}):`, err.message, '- will retry...'); + continue; + } + + // Final attempt failed or non-retryable error (4xx) + const errorMessage = err?.response?.data?.message || err?.message || 'Unknown error occurred'; + setError(errorMessage); + console.error(`[AppConfig] Failed to fetch app config after ${attempt + 1} attempts:`, err); + break; + } + } + + setLoading(false); + }; + + useEffect(() => { + fetchConfig(); + }, []); + + const value: AppConfigContextValue = { + config, + loading, + error, + refetch: fetchConfig, + }; + + return ( + + {children} + + ); +}; + +/** + * Hook to access application configuration + * Must be used within AppConfigProvider + */ +export function useAppConfig(): AppConfigContextValue { + const context = useContext(AppConfigContext); + + if (context === undefined) { + throw new Error('useAppConfig must be used within AppConfigProvider'); + } + + return context; +} diff --git a/frontend/src/desktop/hooks/useBackendHealth.ts b/frontend/src/desktop/hooks/useBackendHealth.ts new file mode 100644 index 0000000000..dfe8d97e36 --- /dev/null +++ b/frontend/src/desktop/hooks/useBackendHealth.ts @@ -0,0 +1,91 @@ +import { useState, useEffect, useCallback } from 'react'; +import { tauriBackendService } from '@app/services/tauriBackendService'; + +export type BackendStatus = 'starting' | 'healthy' | 'unhealthy' | 'stopped'; + +interface BackendHealthState { + status: BackendStatus; + message?: string; + lastChecked?: number; + isChecking: boolean; + error: string | null; +} + +/** + * Hook to monitor backend health status with retries + */ +export function useBackendHealth(pollingInterval = 5000) { + const [health, setHealth] = useState({ + status: tauriBackendService.isBackendRunning() ? 'healthy' : 'stopped', + isChecking: false, + error: null, + }); + + const checkHealth = useCallback(async () => { + setHealth((current) => ({ + ...current, + status: current.status === 'healthy' ? 'healthy' : 'starting', + isChecking: true, + error: 'Backend starting up...', + lastChecked: Date.now(), + })); + + try { + const isHealthy = await tauriBackendService.checkBackendHealth(); + + setHealth({ + status: isHealthy ? 'healthy' : 'unhealthy', + lastChecked: Date.now(), + message: isHealthy ? 'Backend is healthy' : 'Backend is unavailable', + isChecking: false, + error: isHealthy ? null : 'Backend offline', + }); + + return isHealthy; + } catch (error) { + console.error('[BackendHealth] Health check failed:', error); + setHealth({ + status: 'unhealthy', + lastChecked: Date.now(), + message: 'Backend is unavailable', + isChecking: false, + error: 'Backend offline', + }); + return false; + } + }, []); + + useEffect(() => { + let isMounted = true; + + const initialize = async () => { + setHealth((current) => ({ + ...current, + status: tauriBackendService.isBackendRunning() ? 'starting' : 'stopped', + isChecking: true, + error: 'Backend starting up...', + })); + + await checkHealth(); + if (!isMounted) return; + }; + + initialize(); + + const interval = setInterval(() => { + if (!isMounted) return; + void checkHealth(); + }, pollingInterval); + + return () => { + isMounted = false; + clearInterval(interval); + }; + }, [checkHealth, pollingInterval]); + + return { + ...health, + isHealthy: health.status === 'healthy', + checkHealth, + }; +} diff --git a/frontend/src/desktop/hooks/useBackendInitializer.ts b/frontend/src/desktop/hooks/useBackendInitializer.ts new file mode 100644 index 0000000000..259f4d8755 --- /dev/null +++ b/frontend/src/desktop/hooks/useBackendInitializer.ts @@ -0,0 +1,40 @@ +import { useEffect } from 'react'; +import { useBackendHealth } from '@app/hooks/useBackendHealth'; +import { useEndpointConfig } from '@app/hooks/useEndpointConfig'; +import { tauriBackendService } from '@app/services/tauriBackendService'; + +/** + * Hook to initialize backend and monitor health + */ +export function useBackendInitializer() { + const { status, checkHealth } = useBackendHealth(); + const { backendUrl } = useEndpointConfig(); + + useEffect(() => { + // Skip if backend already running + if (tauriBackendService.isBackendRunning()) { + void checkHealth(); + return; + } + + const initializeBackend = async () => { + try { + console.log('[BackendInitializer] Starting backend...'); + await tauriBackendService.startBackend(backendUrl); + console.log('[BackendInitializer] Backend started successfully'); + + // Begin health checks after a short delay + setTimeout(() => { + void checkHealth(); + }, 500); + } catch (error) { + console.error('[BackendInitializer] Failed to start backend:', error); + } + }; + + // Only start backend if it's not already starting/healthy + if (status !== 'healthy' && status !== 'starting') { + void initializeBackend(); + } + }, [status, backendUrl, checkHealth]); +} diff --git a/frontend/src/desktop/hooks/useEndpointConfig.ts b/frontend/src/desktop/hooks/useEndpointConfig.ts new file mode 100644 index 0000000000..f6a3864a2d --- /dev/null +++ b/frontend/src/desktop/hooks/useEndpointConfig.ts @@ -0,0 +1,126 @@ +import { useMemo, useState, useEffect } from 'react'; +import apiClient from '@app/services/apiClient'; + +interface EndpointConfig { + backendUrl: string; +} + +/** + * Desktop-specific endpoint checker that hits the backend directly via axios. + */ +export function useEndpointEnabled(endpoint: string): { + enabled: boolean | null; + loading: boolean; + error: string | null; + refetch: () => Promise; +} { + const [enabled, setEnabled] = useState(null); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(null); + + const fetchEndpointStatus = async () => { + if (!endpoint) { + setEnabled(null); + setLoading(false); + return; + } + + try { + setLoading(true); + setError(null); + + const response = await apiClient.get('/api/v1/config/endpoint-enabled', { + params: { endpoint }, + }); + + setEnabled(response.data); + } catch (err: any) { + const message = err?.response?.data?.message || err?.message || 'Unknown error occurred'; + setError(message); + setEnabled(null); + } finally { + setLoading(false); + } + }; + + useEffect(() => { + fetchEndpointStatus(); + }, [endpoint]); + + return { + enabled, + loading, + error, + refetch: fetchEndpointStatus, + }; +} + +export function useMultipleEndpointsEnabled(endpoints: string[]): { + endpointStatus: Record; + loading: boolean; + error: string | null; + refetch: () => Promise; +} { + const [endpointStatus, setEndpointStatus] = useState>({}); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(null); + + const fetchAllEndpointStatuses = async () => { + if (!endpoints || endpoints.length === 0) { + setEndpointStatus({}); + setLoading(false); + return; + } + + try { + setLoading(true); + setError(null); + + const endpointsParam = endpoints.join(','); + + const response = await apiClient.get>('/api/v1/config/endpoints-enabled', { + params: { endpoints: endpointsParam }, + }); + + setEndpointStatus(response.data); + } catch (err: any) { + const message = err?.response?.data?.message || err?.message || 'Unknown error occurred'; + setError(message); + + const fallbackStatus = endpoints.reduce((acc, endpointName) => { + acc[endpointName] = false; + return acc; + }, {} as Record); + setEndpointStatus(fallbackStatus); + } finally { + setLoading(false); + } + }; + + useEffect(() => { + fetchAllEndpointStatuses(); + }, [endpoints.join(',')]); + + return { + endpointStatus, + loading, + error, + refetch: fetchAllEndpointStatuses, + }; +} + +/** + * Desktop override exposing the backend URL used by the embedded server. + */ +export function useEndpointConfig(): EndpointConfig { + const backendUrl = useMemo(() => { + const runtimeEnv = typeof process !== 'undefined' ? process.env : undefined; + + return runtimeEnv?.STIRLING_BACKEND_URL + || import.meta.env.VITE_DESKTOP_BACKEND_URL + || import.meta.env.VITE_API_BASE_URL + || 'http://localhost:8080'; + }, []); + + return { backendUrl }; +} diff --git a/frontend/src/desktop/hooks/useOpenedFile.ts b/frontend/src/desktop/hooks/useOpenedFile.ts new file mode 100644 index 0000000000..17d6a7870f --- /dev/null +++ b/frontend/src/desktop/hooks/useOpenedFile.ts @@ -0,0 +1,47 @@ +import { useState, useEffect } from 'react'; +import { fileOpenService } from '@app/services/fileOpenService'; + +export function useOpenedFile() { + const [openedFilePath, setOpenedFilePath] = useState(null); + const [loading, setLoading] = useState(true); + + useEffect(() => { + const checkForOpenedFile = async () => { + console.log('๐Ÿ” Checking for opened file...'); + try { + const filePath = await fileOpenService.getOpenedFile(); + console.log('๐Ÿ” fileOpenService.getOpenedFile() returned:', filePath); + + if (filePath) { + console.log('โœ… App opened with file:', filePath); + setOpenedFilePath(filePath); + + // Clear the file from service state after consuming it + await fileOpenService.clearOpenedFile(); + } else { + console.log('โ„น๏ธ No file was opened with the app'); + } + + } catch (error) { + console.error('โŒ Failed to check for opened file:', error); + } finally { + setLoading(false); + } + }; + + checkForOpenedFile(); + + // Listen for runtime file open events (abstracted through service) + const unlistenRuntimeEvents = fileOpenService.onFileOpened((filePath: string) => { + console.log('๐Ÿ“‚ Runtime file open event:', filePath); + setOpenedFilePath(filePath); + }); + + // Cleanup function + return () => { + unlistenRuntimeEvents(); + }; + }, []); + + return { openedFilePath, loading }; +} diff --git a/frontend/src/desktop/pages/useHomePageExtensions.ts b/frontend/src/desktop/pages/useHomePageExtensions.ts new file mode 100644 index 0000000000..fbffeb3e32 --- /dev/null +++ b/frontend/src/desktop/pages/useHomePageExtensions.ts @@ -0,0 +1,26 @@ +import { useEffect } from 'react'; + +/** + * Desktop override: Handle file opened with app (Tauri mode) + */ +export function useHomePageExtensions(openedFile?: File | null) { + useEffect(() => { + if (openedFile) { + const loadOpenedFile = async () => { + try { + // TAURI NOTE: Implement file opening logic here + // // Add to active files if not already present + // await addToActiveFiles(openedFile); + + // // Switch to viewer mode to show the opened file + // setCurrentView('viewer'); + // setReaderMode(true); + } catch (error) { + console.error('Failed to load opened file:', error); + } + }; + + loadOpenedFile(); + } + }, [openedFile]); +} diff --git a/frontend/src/desktop/routes/Landing.tsx b/frontend/src/desktop/routes/Landing.tsx new file mode 100644 index 0000000000..a31d84c058 --- /dev/null +++ b/frontend/src/desktop/routes/Landing.tsx @@ -0,0 +1,95 @@ +import { Navigate, useLocation } from 'react-router-dom'; +import { useState, useEffect } from 'react'; +import { useOpenedFile } from '@app/hooks/useOpenedFile'; +import { useBackendInitializer } from '@app/hooks/useBackendInitializer'; +import { fileOpenService } from '@app/services/fileOpenService'; +import { useAuth } from '@app/auth/UseSession'; +import { useAppConfig } from '@app/contexts/AppConfigContext'; +import HomePage from '@app/pages/HomePage'; +import Login from '@app/routes/Login'; + +/** + * Landing component - Smart router based on authentication status + * + * If login is disabled: Show HomePage directly (anonymous mode) + * If user is authenticated: Show HomePage + * If user is not authenticated: Show Login or redirect to /login + */ +export default function Landing() { + const { session, loading: authLoading } = useAuth(); + const { config, loading: configLoading } = useAppConfig(); + const location = useLocation(); + + const loading = authLoading || configLoading; + + console.log('[Landing] State:', { + pathname: location.pathname, + loading, + hasSession: !!session, + loginEnabled: config?.enableLogin, + }); + + // Initialize backend on app startup + useBackendInitializer(); + + // Handle file opened with app (Tauri mode) + const { openedFilePath, loading: openedFileLoading } = useOpenedFile(); + const [openedFile, setOpenedFile] = useState(null); + + // Load opened file once when path is available + useEffect(() => { + if (openedFilePath && !openedFileLoading) { + const loadOpenedFile = async () => { + try { + const fileData = await fileOpenService.readFileAsArrayBuffer(openedFilePath); + if (fileData) { + // Create a File object from the ArrayBuffer + const file = new File([fileData.arrayBuffer], fileData.fileName, { + type: 'application/pdf' + }); + setOpenedFile(file); + } + } catch (error) { + console.error('Failed to load opened file:', error); + } + }; + + loadOpenedFile(); + } + }, [openedFilePath, openedFileLoading]); + + // Show loading while checking auth and config + if (loading) { + return ( +
+
+
+
+ Loading... +
+
+
+ ); + } + + // If login is disabled, show app directly (anonymous mode) + if (config?.enableLogin === false) { + console.debug('[Landing] Login disabled - showing app in anonymous mode'); + return ; + } + + // If we have a session, show the main app + if (session) { + return ; + } + + // If we're at home route ("/"), show login directly (marketing/landing page) + // Otherwise navigate to login (fixes URL mismatch for tool routes) + const isHome = location.pathname === '/' || location.pathname === ''; + if (isHome) { + return ; + } + + // For non-home routes without auth, navigate to login (preserves from location) + return ; +} diff --git a/frontend/src/desktop/services/apiClientConfig.ts b/frontend/src/desktop/services/apiClientConfig.ts new file mode 100644 index 0000000000..3dfe2a4a7e --- /dev/null +++ b/frontend/src/desktop/services/apiClientConfig.ts @@ -0,0 +1,17 @@ +import { isTauri } from '@tauri-apps/api/core'; + +/** + * Desktop override: Determine base URL depending on Tauri environment + */ +export function getApiBaseUrl(): string { + if (!isTauri()) { + return import.meta.env.VITE_API_BASE_URL || '/'; + } + + if (import.meta.env.DEV) { + // During tauri dev we rely on Vite proxy, so use relative path to avoid CORS preflight + return '/'; + } + + return import.meta.env.VITE_DESKTOP_BACKEND_URL || 'http://localhost:8080'; +} diff --git a/frontend/src/desktop/services/fileOpenService.ts b/frontend/src/desktop/services/fileOpenService.ts new file mode 100644 index 0000000000..524776d326 --- /dev/null +++ b/frontend/src/desktop/services/fileOpenService.ts @@ -0,0 +1,147 @@ +import { invoke, isTauri } from '@tauri-apps/api/core'; + +export interface FileOpenService { + getOpenedFile(): Promise; + readFileAsArrayBuffer(filePath: string): Promise<{ fileName: string; arrayBuffer: ArrayBuffer } | null>; + clearOpenedFile(): Promise; + onFileOpened(callback: (filePath: string) => void): () => void; // Returns unlisten function +} + +class TauriFileOpenService implements FileOpenService { + async getOpenedFile(): Promise { + try { + console.log('๐Ÿ” Calling invoke(get_opened_file)...'); + const result = await invoke('get_opened_file'); + console.log('๐Ÿ” invoke(get_opened_file) returned:', result); + return result; + } catch (error) { + console.error('โŒ Failed to get opened file:', error); + return null; + } + } + + async readFileAsArrayBuffer(filePath: string): Promise<{ fileName: string; arrayBuffer: ArrayBuffer } | null> { + try { + const { readFile } = await import('@tauri-apps/plugin-fs'); + + const fileData = await readFile(filePath); + const fileName = filePath.split(/[\\/]/).pop() || 'opened-file.pdf'; + + return { + fileName, + arrayBuffer: fileData.buffer.slice(fileData.byteOffset, fileData.byteOffset + fileData.byteLength) + }; + } catch (error) { + console.error('Failed to read file:', error); + return null; + } + } + + async clearOpenedFile(): Promise { + try { + console.log('๐Ÿ” Calling invoke(clear_opened_file)...'); + await invoke('clear_opened_file'); + console.log('โœ… Successfully cleared opened file'); + } catch (error) { + console.error('โŒ Failed to clear opened file:', error); + } + } + + onFileOpened(callback: (filePath: string) => void): () => void { + let cleanup: (() => void) | null = null; + let isCleanedUp = false; + + const setupEventListeners = async () => { + try { + // Check if already cleaned up before async setup completes + if (isCleanedUp) { + return; + } + + // Only import if in Tauri environment + if (isTauri()) { + const { listen } = await import('@tauri-apps/api/event'); + + // Check again after async import + if (isCleanedUp) { + return; + } + + // Listen for macOS native file open events + const unlistenMacOS = await listen('macos://open-file', (event) => { + console.log('๐Ÿ“‚ macOS native file open event:', event.payload); + callback(event.payload as string); + }); + + // Listen for fallback file open events + const unlistenFallback = await listen('file-opened', (event) => { + console.log('๐Ÿ“‚ Fallback file open event:', event.payload); + callback(event.payload as string); + }); + + // Set up cleanup function only if not already cleaned up + if (!isCleanedUp) { + cleanup = () => { + try { + unlistenMacOS(); + unlistenFallback(); + console.log('โœ… File event listeners cleaned up'); + } catch (error) { + console.error('โŒ Error during file event cleanup:', error); + } + }; + } else { + // Clean up immediately if cleanup was called during setup + try { + unlistenMacOS(); + unlistenFallback(); + } catch (error) { + console.error('โŒ Error during immediate cleanup:', error); + } + } + } + } catch (error) { + console.error('โŒ Failed to setup file event listeners:', error); + } + }; + + setupEventListeners(); + + // Return cleanup function + return () => { + isCleanedUp = true; + if (cleanup) { + cleanup(); + } + }; + } +} + +class WebFileOpenService implements FileOpenService { + async getOpenedFile(): Promise { + // In web mode, there's no file association support + return null; + } + + async readFileAsArrayBuffer(_filePath: string): Promise<{ fileName: string; arrayBuffer: ArrayBuffer } | null> { + // In web mode, cannot read arbitrary file paths + return null; + } + + async clearOpenedFile(): Promise { + // In web mode, no file clearing needed + } + + onFileOpened(_callback: (filePath: string) => void): () => void { + // In web mode, no file events - return no-op cleanup function + console.log('โ„น๏ธ Web mode: File event listeners not supported'); + return () => { + // No-op cleanup for web mode + }; + } +} + +// Export the appropriate service based on environment +export const fileOpenService: FileOpenService = isTauri() + ? new TauriFileOpenService() + : new WebFileOpenService(); diff --git a/frontend/src/desktop/services/tauriBackendService.ts b/frontend/src/desktop/services/tauriBackendService.ts new file mode 100644 index 0000000000..98299d099c --- /dev/null +++ b/frontend/src/desktop/services/tauriBackendService.ts @@ -0,0 +1,61 @@ +import { invoke } from '@tauri-apps/api/core'; + +export class TauriBackendService { + private static instance: TauriBackendService; + private backendStarted = false; + + static getInstance(): TauriBackendService { + if (!TauriBackendService.instance) { + TauriBackendService.instance = new TauriBackendService(); + } + return TauriBackendService.instance; + } + + isBackendRunning(): boolean { + return this.backendStarted; + } + + async startBackend(backendUrl?: string): Promise { + if (this.backendStarted) { + return; + } + + try { + const result = await invoke('start_backend', { backendUrl }); + console.log('Backend started:', result); + this.backendStarted = true; + + // Wait for backend to be healthy + await this.waitForHealthy(); + } catch (error) { + console.error('Failed to start backend:', error); + throw error; + } + } + + async checkBackendHealth(): Promise { + if (!this.backendStarted) { + return false; + } + try { + return await invoke('check_backend_health'); + } catch (error) { + console.error('Health check failed:', error); + return false; + } + } + + private async waitForHealthy(maxAttempts = 60): Promise { + for (let i = 0; i < maxAttempts; i++) { + const isHealthy = await this.checkBackendHealth(); + if (isHealthy) { + console.log('Backend is healthy'); + return; + } + await new Promise(resolve => setTimeout(resolve, 1000)); + } + throw new Error('Backend failed to become healthy after 60 seconds'); + } +} + +export const tauriBackendService = TauriBackendService.getInstance(); diff --git a/frontend/tsconfig.core.json b/frontend/tsconfig.core.json index cb9b9902bc..a06e67c0f9 100644 --- a/frontend/tsconfig.core.json +++ b/frontend/tsconfig.core.json @@ -9,6 +9,7 @@ }, "exclude": [ "src/proprietary", + "src/desktop", "node_modules" ] } diff --git a/frontend/tsconfig.desktop.json b/frontend/tsconfig.desktop.json new file mode 100644 index 0000000000..fe0419a782 --- /dev/null +++ b/frontend/tsconfig.desktop.json @@ -0,0 +1,18 @@ +{ + "extends": "./tsconfig.proprietary.json", + "compilerOptions": { + "paths": { + "@app/*": [ + "src/desktop/*", + "src/proprietary/*", + "src/core/*" + ], + "@desktop/*": ["src/desktop/*"], + "@proprietary/*": ["src/proprietary/*"], + "@core/*": ["src/core/*"] + } + }, + "exclude": [ + "node_modules" + ] +} diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json index f0c859e078..4d151995b1 100644 --- a/frontend/tsconfig.json +++ b/frontend/tsconfig.json @@ -32,11 +32,13 @@ "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ "paths": { /* Specify a set of entries that re-map imports to additional lookup locations. */ "@app/*": [ + "src/desktop/*", "src/proprietary/*", "src/core/*" ], - "@core/*": ["src/core/*"], - "@proprietary/*": ["src/proprietary/*"] + "@desktop/*": ["src/desktop/*"], + "@proprietary/*": ["src/proprietary/*"], + "@core/*": ["src/core/*"] }, // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ diff --git a/frontend/tsconfig.proprietary.json b/frontend/tsconfig.proprietary.json index 09470b760c..29f1b62df3 100644 --- a/frontend/tsconfig.proprietary.json +++ b/frontend/tsconfig.proprietary.json @@ -8,5 +8,9 @@ ], "@core/*": ["src/core/*"] } - } + }, + "exclude": [ + "src/desktop", + "node_modules" + ] } diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts index e5f4ddc8ab..9e3bb0f2ac 100644 --- a/frontend/vite.config.ts +++ b/frontend/vite.config.ts @@ -2,36 +2,52 @@ import { defineConfig } from 'vite'; import react from '@vitejs/plugin-react-swc'; import tsconfigPaths from 'vite-tsconfig-paths'; -// When DISABLE_ADDITIONAL_FEATURES is false (or unset), enable proprietary features -const isProprietary = process.env.DISABLE_ADDITIONAL_FEATURES !== 'true'; +export default defineConfig(({ mode }) => { + // When DISABLE_ADDITIONAL_FEATURES is false (or unset), enable proprietary features + const isProprietary = process.env.DISABLE_ADDITIONAL_FEATURES !== 'true'; + const isDesktopMode = + mode === 'desktop' || + process.env.STIRLING_DESKTOP === 'true' || + process.env.VITE_DESKTOP === 'true'; -export default defineConfig({ - plugins: [ - react(), - tsconfigPaths({ - projects: [ - isProprietary ? './tsconfig.proprietary.json' : './tsconfig.core.json', - ], - }), - ], - server: { - proxy: { - '/api': { - target: 'http://localhost:8080', - changeOrigin: true, - secure: false, + const baseProject = isProprietary ? './tsconfig.proprietary.json' : './tsconfig.core.json'; + const desktopProject = isProprietary ? './tsconfig.desktop.json' : baseProject; + const tsconfigProject = isDesktopMode ? desktopProject : baseProject; + + return { + plugins: [ + react(), + tsconfigPaths({ + projects: [tsconfigProject], + }), + ], + server: { + // make sure this port matches the devUrl port in tauri.conf.json file + port: 5173, + // Tauri expects a fixed port, fail if that port is not available + strictPort: true, + watch: { + // tell vite to ignore watching `src-tauri` + ignored: ['**/src-tauri/**'], }, - '/oauth2': { - target: 'http://localhost:8080', - changeOrigin: true, - secure: false, - }, - '/login/oauth2': { - target: 'http://localhost:8080', - changeOrigin: true, - secure: false, + proxy: { + '/api': { + target: 'http://localhost:8080', + changeOrigin: true, + secure: false, + }, + '/oauth2': { + target: 'http://localhost:8080', + changeOrigin: true, + secure: false, + }, + '/login/oauth2': { + target: 'http://localhost:8080', + changeOrigin: true, + secure: false, + }, }, }, - }, - base: process.env.RUN_SUBPATH ? `/${process.env.RUN_SUBPATH}` : './', + base: process.env.RUN_SUBPATH ? `/${process.env.RUN_SUBPATH}` : './', + }; }); diff --git a/frontend/vitest.config.ts b/frontend/vitest.config.ts index de759c5f8f..bf98808486 100644 --- a/frontend/vitest.config.ts +++ b/frontend/vitest.config.ts @@ -2,45 +2,52 @@ import { defineConfig } from 'vitest/config'; import react from '@vitejs/plugin-react-swc'; import tsconfigPaths from 'vite-tsconfig-paths'; -// When DISABLE_ADDITIONAL_FEATURES is false (or unset), enable proprietary features -const isProprietary = process.env.DISABLE_ADDITIONAL_FEATURES !== 'true'; +export default defineConfig((configEnv) => { + const isProprietary = process.env.DISABLE_ADDITIONAL_FEATURES !== 'true'; + const isDesktopMode = + configEnv.mode === 'desktop' || + process.env.STIRLING_DESKTOP === 'true' || + process.env.VITE_DESKTOP === 'true'; -export default defineConfig({ - plugins: [ - react(), - tsconfigPaths({ - projects: [ - isProprietary ? './tsconfig.proprietary.json' : './tsconfig.core.json', + const baseProject = isProprietary ? './tsconfig.proprietary.json' : './tsconfig.core.json'; + const desktopProject = isProprietary ? './tsconfig.desktop.json' : baseProject; + const tsconfigProject = isDesktopMode ? desktopProject : baseProject; + + return { + plugins: [ + react(), + tsconfigPaths({ + projects: [tsconfigProject], + }), + ], + test: { + globals: true, + environment: 'jsdom', + setupFiles: ['./src/core/setupTests.ts'], + css: false, // Disable CSS processing to speed up tests + include: [ + 'src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}' ], - }), - ], - test: { - globals: true, - environment: 'jsdom', - setupFiles: ['./src/core/setupTests.ts'], - css: false, // Disable CSS processing to speed up tests - include: [ - 'src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}' - ], - exclude: [ - 'node_modules/', - 'src/**/*.spec.ts', // Exclude Playwright E2E tests - 'src/tests/test-fixtures/**' - ], - testTimeout: 10000, // 10 second timeout - hookTimeout: 10000, // 10 second timeout for setup/teardown - coverage: { - reporter: ['text', 'json', 'html'], exclude: [ 'node_modules/', - 'src/core/setupTests.ts', - '**/*.d.ts', - 'src/tests/test-fixtures/**', - 'src/**/*.spec.ts' // Exclude Playwright files from coverage - ] + 'src/**/*.spec.ts', // Exclude Playwright E2E tests + 'src/tests/test-fixtures/**' + ], + testTimeout: 10000, // 10 second timeout + hookTimeout: 10000, // 10 second timeout for setup/teardown + coverage: { + reporter: ['text', 'json', 'html'], + exclude: [ + 'node_modules/', + 'src/core/setupTests.ts', + '**/*.d.ts', + 'src/tests/test-fixtures/**', + 'src/**/*.spec.ts' // Exclude Playwright files from coverage + ] + } + }, + esbuild: { + target: 'es2020' // Use older target to avoid warnings } - }, - esbuild: { - target: 'es2020' // Use older target to avoid warnings - } + }; }); diff --git a/scripts/build-tauri-jlink.bat b/scripts/build-tauri-jlink.bat new file mode 100644 index 0000000000..d3a73f0587 --- /dev/null +++ b/scripts/build-tauri-jlink.bat @@ -0,0 +1,134 @@ +@echo off +REM Build script for Tauri with JLink runtime bundling +REM This script creates a self-contained Java runtime for Stirling-PDF + +echo ๐Ÿ”ง Building Stirling-PDF with JLink runtime for Tauri... + +echo โ–ถ Checking Java environment... +java -version >nul 2>&1 +if errorlevel 1 ( + echo โŒ Java is not installed or not in PATH + exit /b 1 +) + +jlink --version >nul 2>&1 +if errorlevel 1 ( + echo โŒ jlink is not available. Please ensure you have a JDK ^(not just JRE^) installed. + exit /b 1 +) + +echo โœ… Java and jlink detected + +echo โ–ถ Building Stirling-PDF JAR... +call gradlew.bat clean bootJar --no-daemon +if errorlevel 1 ( + echo โŒ Failed to build Stirling-PDF JAR + exit /b 1 +) + +REM Find the built JAR(s) +echo โ–ถ Listing all built JAR files in app\core\build\libs: +dir /b app\core\build\libs\stirling-pdf-*.jar +for %%f in (app\core\build\libs\stirling-pdf-*.jar) do set STIRLING_JAR=%%f +if not exist "%STIRLING_JAR%" ( + echo โŒ No Stirling-PDF JAR found in build/libs/ + exit /b 1 +) + +echo โœ… Built JAR: %STIRLING_JAR% + +echo โ–ถ Creating Tauri directories... +if not exist "frontend\src-tauri\libs" mkdir "frontend\src-tauri\libs" +if not exist "frontend\src-tauri\runtime" mkdir "frontend\src-tauri\runtime" + +echo โ–ถ Copying JAR to Tauri libs directory... +copy "%STIRLING_JAR%" "frontend\src-tauri\libs\" +echo โœ… JAR copied to frontend\src-tauri\libs\ + +REM Log out all JAR files now in the Tauri libs directory +echo โ–ถ Listing all JAR files in frontend\src-tauri\libs after copy: +dir /b frontend\src-tauri\libs\stirling-pdf-*.jar + +echo โ–ถ Creating custom JRE with jlink... +if exist "frontend\src-tauri\runtime\jre" rmdir /s /q "frontend\src-tauri\runtime\jre" + +REM Use predefined module list for Windows (jdeps may not be available) +set MODULES=java.base,java.compiler,java.desktop,java.instrument,java.logging,java.management,java.naming,java.net.http,java.prefs,java.rmi,java.scripting,java.security.jgss,java.security.sasl,java.sql,java.transaction.xa,java.xml,java.xml.crypto,jdk.crypto.ec,jdk.crypto.cryptoki,jdk.unsupported + +echo โ–ถ Creating JLink runtime with modules: %MODULES% + +jlink ^ + --add-modules %MODULES% ^ + --strip-debug ^ + --compress=2 ^ + --no-header-files ^ + --no-man-pages ^ + --output "frontend\src-tauri\runtime\jre" + +if not exist "frontend\src-tauri\runtime\jre" ( + echo โŒ Failed to create JLink runtime + exit /b 1 +) + +echo โœ… JLink runtime created at frontend\src-tauri\runtime\jre + +echo โ–ถ Creating launcher scripts for testing... + +REM Create Windows launcher script +echo @echo off > "frontend\src-tauri\runtime\launch-stirling.bat" +echo REM Launcher script for Stirling-PDF with bundled JRE >> "frontend\src-tauri\runtime\launch-stirling.bat" +echo. >> "frontend\src-tauri\runtime\launch-stirling.bat" +echo set SCRIPT_DIR=%%~dp0 >> "frontend\src-tauri\runtime\launch-stirling.bat" +echo set JRE_DIR=%%SCRIPT_DIR%%jre >> "frontend\src-tauri\runtime\launch-stirling.bat" +echo set LIBS_DIR=%%SCRIPT_DIR%%..\libs >> "frontend\src-tauri\runtime\launch-stirling.bat" +echo. >> "frontend\src-tauri\runtime\launch-stirling.bat" +echo REM Find the Stirling-PDF JAR >> "frontend\src-tauri\runtime\launch-stirling.bat" +echo for %%%%f in ("%%LIBS_DIR%%\Stirling-PDF-*.jar") do set STIRLING_JAR=%%%%f >> "frontend\src-tauri\runtime\launch-stirling.bat" +echo. >> "frontend\src-tauri\runtime\launch-stirling.bat" +echo if not exist "%%STIRLING_JAR%%" ^( >> "frontend\src-tauri\runtime\launch-stirling.bat" +echo echo โŒ Stirling-PDF JAR not found in %%LIBS_DIR%% >> "frontend\src-tauri\runtime\launch-stirling.bat" +echo exit /b 1 >> "frontend\src-tauri\runtime\launch-stirling.bat" +echo ^) >> "frontend\src-tauri\runtime\launch-stirling.bat" +echo. >> "frontend\src-tauri\runtime\launch-stirling.bat" +echo REM Launch with bundled JRE >> "frontend\src-tauri\runtime\launch-stirling.bat" +echo "%%JRE_DIR%%\bin\java.exe" ^^ >> "frontend\src-tauri\runtime\launch-stirling.bat" +echo -Xmx2g ^^ >> "frontend\src-tauri\runtime\launch-stirling.bat" +echo -DBROWSER_OPEN=true ^^ >> "frontend\src-tauri\runtime\launch-stirling.bat" +echo -DSTIRLING_PDF_DESKTOP_UI=false ^^ >> "frontend\src-tauri\runtime\launch-stirling.bat" +echo -jar "%%STIRLING_JAR%%" ^^ >> "frontend\src-tauri\runtime\launch-stirling.bat" +echo %%* >> "frontend\src-tauri\runtime\launch-stirling.bat" + +echo โœ… Created launcher scripts for testing + +echo โ–ถ Testing bundled JRE... +"frontend\src-tauri\runtime\jre\bin\java.exe" --version >nul 2>&1 +if errorlevel 1 ( + echo โŒ Bundled JRE test failed + exit /b 1 +) else ( + echo โœ… Bundled JRE works correctly +) + +echo. +echo โœ… ๐ŸŽ‰ JLink build setup completed successfully! +echo. +echo ๐Ÿ“Š Summary: +echo โ€ข JAR: %STIRLING_JAR% +echo โ€ข Runtime: frontend\src-tauri\runtime\jre +echo โ€ข Modules: %MODULES% +echo. +echo ๐Ÿ“‹ Next steps: +echo 1. cd frontend +echo 2. npm run tauri-build +echo. +echo ๐Ÿ’ก Testing: +echo โ€ข Test bundled runtime: frontend\src-tauri\runtime\launch-stirling.bat +echo โ€ข Tauri configuration already updated to include bundled JRE +echo. +echo ๐Ÿ’ก Benefits: +echo โ€ข No external JRE dependency +echo โ€ข Smaller distribution size with custom runtime +echo โ€ข Better security with minimal required modules +echo โ€ข Consistent Java version across all deployments +echo. +echo โœ… The application will now run without requiring users to install Java! \ No newline at end of file diff --git a/scripts/build-tauri-jlink.sh b/scripts/build-tauri-jlink.sh new file mode 100755 index 0000000000..2b83bb87a8 --- /dev/null +++ b/scripts/build-tauri-jlink.sh @@ -0,0 +1,230 @@ +#!/bin/bash + +# Build script for Tauri with JLink runtime bundling +# This script creates a self-contained Java runtime for Stirling-PDF + +set -e + +echo "๐Ÿ”ง Building Stirling-PDF with JLink runtime for Tauri..." + +# Colors for output +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +BLUE='\033[0;34m' +NC='\033[0m' # No Color + +# Function to print colored output +print_step() { + echo -e "${BLUE}โ–ถ $1${NC}" +} + +print_success() { + echo -e "${GREEN}โœ… $1${NC}" +} + +print_warning() { + echo -e "${YELLOW}โš ๏ธ $1${NC}" +} + +print_error() { + echo -e "${RED}โŒ $1${NC}" +} + +# Check if Java is installed and version +print_step "Checking Java environment..." +if ! command -v java &> /dev/null; then + print_error "Java is not installed or not in PATH" + exit 1 +fi + +if ! command -v jlink &> /dev/null; then + print_error "jlink is not available. Please ensure you have a JDK (not just JRE) installed." + exit 1 +fi + +JAVA_VERSION=$(java -version 2>&1 | head -n 1 | cut -d'"' -f2 | cut -d'.' -f1) +if [ "$JAVA_VERSION" -lt 17 ]; then + print_error "Java 17 or higher is required. Found Java $JAVA_VERSION" + exit 1 +fi + +print_success "Java $JAVA_VERSION detected with jlink support" + +# Check if jpackage is available (Java 14+) +if command -v jpackage &> /dev/null; then + print_success "jpackage is available for native packaging" +else + print_warning "jpackage is not available - using jlink only" +fi + +# Clean and build the Stirling-PDF JAR +print_step "Building Stirling-PDF JAR..." +./gradlew clean bootJar --no-daemon + +if [ ! -f compgen -G "app/core/build/libs/stirling-pdf-*.jar" ]; then + print_error "Failed to build stirling-pdf JAR" + exit 1 +fi + +# Find the built JAR +STIRLING_JAR=$(ls app/core/build/libs/stirling-pdf-*.jar | head -n 1) +print_success "Built JAR: $STIRLING_JAR" + +# Create directories for Tauri +TAURI_SRC_DIR="frontend/src-tauri" +TAURI_LIBS_DIR="$TAURI_SRC_DIR/libs" +TAURI_RUNTIME_DIR="$TAURI_SRC_DIR/runtime" + +print_step "Creating Tauri directories..." +mkdir -p "$TAURI_LIBS_DIR" +mkdir -p "$TAURI_RUNTIME_DIR" + +# Copy the JAR to Tauri libs directory +print_step "Copying JAR to Tauri libs directory..." +cp "$STIRLING_JAR" "$TAURI_LIBS_DIR/" +print_success "JAR copied to $TAURI_LIBS_DIR/" + +# Create a custom JRE using jlink +print_step "Creating custom JRE with jlink..." + +# Determine modules needed by analyzing the JAR +print_step "Analyzing JAR dependencies..." + +# Use jdeps to analyze module dependencies if available +if command -v jdeps &> /dev/null; then + print_step "Running jdeps analysis..." + REQUIRED_MODULES=$(jdeps --print-module-deps --ignore-missing-deps "$STIRLING_JAR" 2>/dev/null || echo "") + if [ -n "$REQUIRED_MODULES" ]; then + print_success "jdeps detected modules: $REQUIRED_MODULES" + # Add additional modules we know Stirling-PDF needs + MODULES="$REQUIRED_MODULES,java.compiler,java.instrument,java.management,java.naming,java.net.http,java.prefs,java.rmi,java.scripting,java.security.jgss,java.security.sasl,java.sql,java.transaction.xa,java.xml.crypto,jdk.crypto.ec,jdk.crypto.cryptoki,jdk.unsupported" + else + print_warning "jdeps analysis failed, using predefined module list" + MODULES="java.base,java.compiler,java.desktop,java.instrument,java.logging,java.management,java.naming,java.net.http,java.prefs,java.rmi,java.scripting,java.security.jgss,java.security.sasl,java.sql,java.transaction.xa,java.xml,java.xml.crypto,jdk.crypto.ec,jdk.crypto.cryptoki,jdk.unsupported" + fi +else + print_warning "jdeps not available, using predefined module list" + MODULES="java.base,java.compiler,java.desktop,java.instrument,java.logging,java.management,java.naming,java.net.http,java.prefs,java.rmi,java.scripting,java.security.jgss,java.security.sasl,java.sql,java.transaction.xa,java.xml,java.xml.crypto,jdk.crypto.ec,jdk.crypto.cryptoki,jdk.unsupported" +fi + +print_step "Creating JLink runtime with modules: $MODULES" + +# Remove existing runtime if present +rm -rf "$TAURI_RUNTIME_DIR/jre" + +# Create the custom JRE +jlink \ + --add-modules "$MODULES" \ + --strip-debug \ + --compress=2 \ + --no-header-files \ + --no-man-pages \ + --output "$TAURI_RUNTIME_DIR/jre" + +if [ ! -d "$TAURI_RUNTIME_DIR/jre" ]; then + print_error "Failed to create JLink runtime" + exit 1 +fi + +print_success "JLink runtime created at $TAURI_RUNTIME_DIR/jre" + +# Calculate runtime size +RUNTIME_SIZE=$(du -sh "$TAURI_RUNTIME_DIR/jre" | cut -f1) +print_success "Runtime size: $RUNTIME_SIZE" + +# Create launcher scripts for testing +print_step "Creating launcher scripts for testing..." + +LAUNCHER_SCRIPT="$TAURI_RUNTIME_DIR/launch-stirling.sh" +cat > "$LAUNCHER_SCRIPT" << 'EOF' +#!/bin/bash +# Launcher script for Stirling-PDF with bundled JRE + +# Get the directory of this script +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +JRE_DIR="$SCRIPT_DIR/jre" +LIBS_DIR="$(dirname "$SCRIPT_DIR")/libs" + +# Find the Stirling-PDF JAR +STIRLING_JAR=$(compgen -G "app/core/build/libs/stirling-pdf-*.jar") + +if [ ! -f "$STIRLING_JAR" ]; then + echo "โŒ Stirling-PDF JAR not found in $LIBS_DIR" + exit 1 +fi + +# Launch with bundled JRE +"$JRE_DIR/bin/java" \ + -Xmx2g \ + -DBROWSER_OPEN=true \ + -DSTIRLING_PDF_DESKTOP_UI=false \ + -jar "$STIRLING_JAR" \ + "$@" +EOF + +chmod +x "$LAUNCHER_SCRIPT" + +# Create Windows launcher +LAUNCHER_BAT="$TAURI_RUNTIME_DIR/launch-stirling.bat" +cat > "$LAUNCHER_BAT" << 'EOF' +@echo off +REM Launcher script for Stirling-PDF with bundled JRE + +set SCRIPT_DIR=%~dp0 +set JRE_DIR=%SCRIPT_DIR%jre +set LIBS_DIR=%SCRIPT_DIR%..\libs + +REM Find the Stirling-PDF JAR +for %%f in ("%LIBS_DIR%\Stirling-PDF-*.jar") do set STIRLING_JAR=%%f + +if not exist "%STIRLING_JAR%" ( + echo โŒ Stirling-PDF JAR not found in %LIBS_DIR% + exit /b 1 +) + +REM Launch with bundled JRE +"%JRE_DIR%\bin\java.exe" ^ + -Xmx2g ^ + -DBROWSER_OPEN=true ^ + -DSTIRLING_PDF_DESKTOP_UI=false ^ + -jar "%STIRLING_JAR%" ^ + %* +EOF + +print_success "Created launcher scripts for testing" + +# Test the bundled runtime +print_step "Testing bundled JRE..." +if [ -f "$TAURI_RUNTIME_DIR/jre/bin/java" ]; then + JAVA_VERSION_OUTPUT=$("$TAURI_RUNTIME_DIR/jre/bin/java" --version 2>&1 | head -n 1) + print_success "Bundled JRE works: $JAVA_VERSION_OUTPUT" +else + print_error "Bundled JRE executable not found" + exit 1 +fi + +# Display summary +echo "" +print_success "๐ŸŽ‰ JLink build setup completed successfully!" +echo "" +echo -e "${BLUE}๐Ÿ“Š Summary:${NC}" +echo " โ€ข JAR: $STIRLING_JAR" +echo " โ€ข Runtime: $TAURI_RUNTIME_DIR/jre ($RUNTIME_SIZE)" +echo " โ€ข Modules: $MODULES" +echo "" +echo -e "${BLUE}๐Ÿ“‹ Next steps:${NC}" +echo " 1. cd frontend" +echo " 2. npm run tauri-build" +echo "" +echo -e "${BLUE}๐Ÿ’ก Testing:${NC}" +echo " โ€ข Test bundled runtime: $LAUNCHER_SCRIPT" +echo " โ€ข Tauri configuration already updated to include bundled JRE" +echo "" +echo -e "${BLUE}๐Ÿ’ก Benefits:${NC}" +echo " โ€ข No external JRE dependency" +echo " โ€ข Smaller distribution size with custom runtime" +echo " โ€ข Better security with minimal required modules" +echo " โ€ข Consistent Java version across all deployments" +echo "" +print_success "The application will now run without requiring users to install Java!"