From f53498b34d6c60d636422e6108d743d0b0923c7c Mon Sep 17 00:00:00 2001 From: Mr Tung Date: Fri, 10 Apr 2026 15:37:24 +0700 Subject: [PATCH] chore: update version to 1.2.0, add UUIDv7 support, and enhance documentation --- CHANGELOG.md | 19 + DEPLOYMENT_GUIDE.md | 10 +- PUBLISHING.md | 53 +- QUICKSTART.md | 7 +- REACT_NATIVE_SETUP.md | 19 +- README.md | 25 +- examples/basic.html | 5 +- examples/react-example.tsx | 3 +- examples/react-native-expo-example.tsx | 6 +- examples/vanilla-js-example.js | 2 +- jest.config.cjs | 6 +- package-lock.json | 22 +- package.json | 12 +- pnpm-lock.yaml | 8127 ++++++++++++++++++++++++ src/__tests__/index.test.ts | 4 +- src/core/__tests__/analytics.test.ts | 70 +- src/core/analytics.ts | 23 +- src/types/index.ts | 7 + src/utils/__tests__/context.test.ts | 3 +- src/utils/__tests__/uuid.test.ts | 15 +- src/utils/context.ts | 2 +- src/utils/uuid.ts | 10 +- stickyqr-analytics-1.2.0.tgz | Bin 0 -> 87620 bytes test-globals.d.ts | 7 + tsconfig.test.json | 7 + 25 files changed, 8388 insertions(+), 76 deletions(-) create mode 100644 CHANGELOG.md create mode 100644 pnpm-lock.yaml create mode 100644 stickyqr-analytics-1.2.0.tgz create mode 100644 test-globals.d.ts create mode 100644 tsconfig.test.json diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..2a3285c --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,19 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +## [1.2.0] - 2026-04-10 + +### Added +- Added a persistent `deviceId` field to all SDK-generated events and to `analytics.user()`. +- Added `deviceIdKey` to `AnalyticsConfig` for customizing persisted storage keys. +- Added React Native guidance for `react-native-get-random-values` when `crypto.getRandomValues()` is unavailable. + +### Changed +- Switched SDK-generated IDs from UUIDv4 to UUIDv7 via the public `uuid()` helper. +- Updated runtime library context version to `1.2.0`. +- Updated README, quick start, React Native setup, deployment, examples, and publishing docs for `deviceId`, UUIDv7, and the `1.2.0` release. + +### Notes +- `analytics.reset()` still clears `userId` and traits, but now preserves the persisted `deviceId`. +- `anonymousId` remains overrideable per event; `deviceId` does not. diff --git a/DEPLOYMENT_GUIDE.md b/DEPLOYMENT_GUIDE.md index 12be7e0..e59d48f 100644 --- a/DEPLOYMENT_GUIDE.md +++ b/DEPLOYMENT_GUIDE.md @@ -29,7 +29,7 @@ npm publish --access public # Initialize git git init git add . -git commit -m "Initial release v1.0.0" +git commit -m "Release v1.2.0" # Create repo on GitHub: https://github.com/new # Repository name: analytics @@ -40,7 +40,7 @@ git branch -M main git push -u origin main # Create release -git tag v1.0.0 +git tag v1.2.0 git push --tags ``` @@ -62,14 +62,14 @@ npm install @stickyqr/analytics ```html - + ``` ### React Native / Expo ```bash npx expo install @stickyqr/analytics -npx expo install @react-native-async-storage/async-storage expo-constants expo-device +npx expo install @react-native-async-storage/async-storage expo-constants expo-device react-native-get-random-values ``` ### Node.js @@ -192,7 +192,7 @@ const userId = analytics.storage.getSync('userId'); - **Bundle Size**: 17KB (minified) - **TypeScript**: Full type support -- **Dependencies**: Zero runtime dependencies +- **Dependencies**: 1 runtime dependency (`uuid`) - **Peer Dependencies**: Optional (React Native only) --- diff --git a/PUBLISHING.md b/PUBLISHING.md index 5ca5ce5..f208ef4 100644 --- a/PUBLISHING.md +++ b/PUBLISHING.md @@ -44,7 +44,7 @@ git push -u origin main Before publishing, ensure: -- [ ] All tests pass: `npm test` +- [ ] All tests pass: `npm test -- --watchman=false` - [ ] Linter passes: `npm run lint` - [ ] Build succeeds: `npm run build` - [ ] Version updated in `package.json` @@ -52,6 +52,7 @@ Before publishing, ensure: - [ ] README.md is accurate - [ ] All examples work - [ ] Documentation is complete +- [ ] Runtime dependency list is correct (`uuid` is the only runtime dependency in 1.2.0) ## Publishing to NPM @@ -60,7 +61,7 @@ Before publishing, ensure: ```bash # 1. Ensure package.json is correct # - name: "@stickyqr/analytics" -# - version: "1.0.0" +# - version: "1.2.0" # - main, module, types fields set # - files array includes "dist" @@ -133,7 +134,7 @@ npm version major ```bash # Create release branch -git checkout -b release/1.1.0 +git checkout -b release/1.2.0 # Update version npm version minor @@ -142,10 +143,10 @@ npm version minor # Add release notes # Commit changes -git commit -am "chore: prepare release 1.1.0" +git commit -am "chore: prepare release 1.2.0" # Push for review -git push origin release/1.1.0 +git push origin release/1.2.0 ``` ### 2. Review & Test @@ -160,10 +161,10 @@ git push origin release/1.1.0 ```bash # Merge to main git checkout main -git merge release/1.1.0 +git merge release/1.2.0 # Tag release -git tag v1.1.0 +git tag v1.2.0 # Push git push origin main --tags @@ -180,8 +181,8 @@ npm publish # Create GitHub Release # Go to: https://github.com/stickyqr/analytics/releases/new -# - Tag: v1.1.0 -# - Title: v1.1.0 +# - Tag: v1.2.0 +# - Title: v1.2.0 # - Description: Copy from CHANGELOG.md ``` @@ -229,12 +230,12 @@ Fix: ```bash # 1. Create and push tag -git tag v1.1.0 -git push origin v1.1.0 +git tag v1.2.0 +git push origin v1.2.0 # 2. Create GitHub Release # Go to: https://github.com/stickyqr/analytics/releases/new -# - Select tag: v1.1.0 +# - Select tag: v1.2.0 # - Click "Publish release" # 3. GitHub Actions will automatically: @@ -270,6 +271,17 @@ All notable changes to this project will be documented in this file. ### Security - Security fixes +## [1.2.0] - 2026-04-10 + +### Added +- Persistent `deviceId` on SDK-generated events +- `deviceIdKey` config support +- React Native `react-native-get-random-values` setup guidance + +### Changed +- SDK-generated IDs now use UUIDv7 +- Release metadata and docs updated for 1.2.0 + ## [1.1.0] - 2024-12-20 ### Added @@ -312,17 +324,17 @@ npm view @stickyqr/analytics npm view @stickyqr/analytics versions # View specific version -npm view @stickyqr/analytics@1.0.0 +npm view @stickyqr/analytics@1.2.0 ``` ### Unpublish (Use Carefully!) ```bash # Unpublish specific version (only within 72 hours) -npm unpublish @stickyqr/analytics@1.0.0 +npm unpublish @stickyqr/analytics@1.2.0 # Deprecate instead (preferred) -npm deprecate @stickyqr/analytics@1.0.0 "This version has a critical bug, please upgrade to 1.0.1" +npm deprecate @stickyqr/analytics@1.2.0 "This version has a critical bug, please upgrade to 1.2.1" ``` ### Update Package Info @@ -338,7 +350,7 @@ npm publish --readme-only ```bash # Update version with pre-release tag -npm version 1.1.0-beta.1 +npm version 1.2.0-beta.1 # Publish with tag npm publish --tag beta @@ -351,7 +363,7 @@ npm install @stickyqr/analytics@beta ```bash # Tag as latest -npm dist-tag add @stickyqr/analytics@1.1.0 latest +npm dist-tag add @stickyqr/analytics@1.2.0 latest ``` ## Package Access Control @@ -442,7 +454,8 @@ npm publish 1. **Always test before publishing** ```bash - npm test && npm run build + pnpm exec jest --config jest.config.cjs --passWithNoTests --runInBand --watchman=false + pnpm run build ``` 2. **Use semantic versioning correctly** @@ -456,7 +469,7 @@ npm publish 4. **Tag releases in git** ```bash - git tag v1.0.0 + git tag v1.2.0 git push --tags ``` @@ -467,7 +480,7 @@ npm publish 6. **Deprecate, don't unpublish** ```bash - npm deprecate @stickyqr/analytics@1.0.0 "Upgrade to 1.0.1" + npm deprecate @stickyqr/analytics@1.2.0 "Upgrade to 1.2.1" ``` 7. **Test in multiple environments** diff --git a/QUICKSTART.md b/QUICKSTART.md index 431bdf9..a8798a7 100644 --- a/QUICKSTART.md +++ b/QUICKSTART.md @@ -51,7 +51,7 @@ analytics.identify('user-123', { ### Option 2: CDN (Browser) ```html - + + ``` ## Quick Start @@ -120,6 +121,7 @@ const analytics = new Analytics({ debug: false, // Enable debug logging trackPageViews: true, // Auto-track page views anonymousIdKey: 'stickyqr_analytics_anonymous_id', + deviceIdKey: 'stickyqr_analytics_device_id', userIdKey: 'stickyqr_analytics_user_id', // Plugins @@ -130,6 +132,15 @@ const analytics = new Analytics({ }); ``` +## Identity Fields + +The SDK manages two installation-scoped identifiers: + +- `anonymousId`: SDK-generated UUIDv7 that can still be overridden per event via `EventOptions`. +- `deviceId`: SDK-generated UUIDv7 that is persisted separately and is always attached to SDK-generated events. + +`analytics.reset()` rotates the `anonymousId`, clears `userId` and traits, and keeps the persisted `deviceId`. + ## Plugins ### Built-in Plugins @@ -286,12 +297,12 @@ analytics.group('company-123', { Get current user information. ```typescript -const { userId, anonymousId, traits } = analytics.user(); +const { userId, anonymousId, deviceId, traits } = analytics.user(); ``` ### `reset()` -Reset user (logout). +Reset user (logout). This clears the current user and traits, rotates `anonymousId`, and preserves `deviceId`. ```typescript analytics.reset(); @@ -342,9 +353,11 @@ function onUserConsent() { }); } -// Clear all data on user request +// Reset user identity while keeping the persisted deviceId analytics.reset(); -localStorage.clear(); // Remove stored IDs + +// If you also want to wipe the persisted deviceId, remove its storage key +localStorage.removeItem('stickyqr_analytics_device_id'); ``` ## Framework Integration diff --git a/examples/basic.html b/examples/basic.html index 6f7b638..074713d 100644 --- a/examples/basic.html +++ b/examples/basic.html @@ -136,7 +136,7 @@

Console Output

window.resetUser = function() { analytics.reset(); - showStatus('User reset (logged out)', 'success'); + showStatus('User reset (logged out, deviceId preserved)', 'success'); showUserInfo(); }; @@ -216,10 +216,11 @@

Console Output

}; window.showUserInfo = function() { - const { userId, anonymousId, traits } = analytics.user(); + const { userId, anonymousId, deviceId, traits } = analytics.user(); const info = ` User ID: ${userId || 'Not set'} Anonymous ID: ${anonymousId} + Device ID: ${deviceId} Traits: ${JSON.stringify(traits, null, 2)} `; document.getElementById('user-info').innerHTML = '
' + info + '
'; diff --git a/examples/react-example.tsx b/examples/react-example.tsx index 5237749..0cbc70e 100644 --- a/examples/react-example.tsx +++ b/examples/react-example.tsx @@ -149,12 +149,13 @@ export function ProductCard({ export function Dashboard() { usePageTracking('Dashboard'); const analytics = useAnalytics(); - const { userId, traits } = analytics.user(); + const { userId, deviceId, traits } = analytics.user(); return (

Dashboard

User ID: {userId}

+

Device ID: {deviceId}

Email: {traits.email}

diff --git a/examples/react-native-expo-example.tsx b/examples/react-native-expo-example.tsx index 663d43e..e105ae3 100644 --- a/examples/react-native-expo-example.tsx +++ b/examples/react-native-expo-example.tsx @@ -2,6 +2,7 @@ * React Native (Expo 54) Integration Example * Full example for @stickyqr/analytics in React Native */ +import 'react-native-get-random-values'; import React, { createContext, useContext, useEffect, useState } from 'react'; import { View, Text, Button, ScrollView, StyleSheet } from 'react-native'; import { Analytics } from '@stickyqr/analytics'; @@ -111,7 +112,7 @@ export function HomeScreen({ navigation }: any) { }); const analytics = useAnalytics(); - const { userId, traits } = analytics.user(); + const { userId, deviceId, traits } = analytics.user(); const handleButtonClick = () => { analytics.track('Button Clicked', { @@ -135,6 +136,7 @@ export function HomeScreen({ navigation }: any) { Home Screen User ID: {userId || 'Not logged in'} + Device ID: {deviceId} Email: {traits.email || 'N/A'} @@ -203,7 +205,7 @@ export function SettingsScreen() { const handleLogout = () => { analytics.track('User Logged Out'); - analytics.reset(); // Clear user data + analytics.reset(); // Clear user data, preserve deviceId }; const handleDebug = () => { diff --git a/examples/vanilla-js-example.js b/examples/vanilla-js-example.js index c2ecb9c..3528155 100644 --- a/examples/vanilla-js-example.js +++ b/examples/vanilla-js-example.js @@ -4,7 +4,7 @@ */ // Import from UMD build (for browser) -// +// // Initialize Analytics const analytics = new StickyQRAnalytics.Analytics({ diff --git a/jest.config.cjs b/jest.config.cjs index d7236fe..7d0c1fa 100644 --- a/jest.config.cjs +++ b/jest.config.cjs @@ -11,10 +11,7 @@ module.exports = { transform: { '^.+\\.ts$': ['ts-jest', { useESM: true, - tsconfig: { - module: 'ESNext', - moduleResolution: 'node' - } + tsconfig: './tsconfig.test.json' }] }, moduleNameMapper: { @@ -29,4 +26,3 @@ module.exports = { '!src/**/*.spec.ts' ] }; - diff --git a/package-lock.json b/package-lock.json index f1e10ac..7a8a87f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,13 +1,16 @@ { "name": "@stickyqr/analytics", - "version": "1.0.0", + "version": "1.2.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@stickyqr/analytics", - "version": "1.0.0", + "version": "1.2.0", "license": "MIT", + "dependencies": { + "uuid": "^11.1.0" + }, "devDependencies": { "@rollup/plugin-commonjs": "^25.0.7", "@rollup/plugin-node-resolve": "^15.2.3", @@ -28,7 +31,8 @@ "@react-native-async-storage/async-storage": "^1.21.0 || ^2.0.0", "expo-constants": ">=16.0.0", "expo-device": ">=6.0.0", - "react-native": ">=0.70.0" + "react-native": ">=0.70.0", + "react-native-get-random-values": "^1.11.0" }, "peerDependenciesMeta": { "@react-native-async-storage/async-storage": { @@ -42,6 +46,9 @@ }, "react-native": { "optional": true + }, + "react-native-get-random-values": { + "optional": true } } }, @@ -6570,6 +6577,15 @@ "requires-port": "^1.0.0" } }, + "node_modules/uuid": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz", + "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", + "license": "MIT", + "bin": { + "uuid": "dist/esm/bin/uuid" + } + }, "node_modules/v8-to-istanbul": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", diff --git a/package.json b/package.json index e7e1324..42de8d1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@stickyqr/analytics", - "version": "1.0.0", + "version": "1.2.0", "description": "Analytics SDK for Web & React Native - A Segment.js alternative", "type": "module", "main": "dist/index.js", @@ -38,11 +38,15 @@ "bugs": { "url": "https://github.com/StickyQR/analytics/issues" }, + "dependencies": { + "uuid": "^11.1.0" + }, "peerDependencies": { "@react-native-async-storage/async-storage": "^1.21.0 || ^2.0.0", "expo-constants": ">=16.0.0", "expo-device": ">=6.0.0", - "react-native": ">=0.70.0" + "react-native": ">=0.70.0", + "react-native-get-random-values": "^1.11.0" }, "peerDependenciesMeta": { "@react-native-async-storage/async-storage": { @@ -56,6 +60,9 @@ }, "react-native": { "optional": true + }, + "react-native-get-random-values": { + "optional": true } }, "devDependencies": { @@ -64,6 +71,7 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.6", "@types/jest": "^29.5.11", + "@types/node": "^25.6.0", "@typescript-eslint/eslint-plugin": "^6.18.1", "@typescript-eslint/parser": "^6.18.1", "eslint": "^8.56.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..9be3bfd --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,8127 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@react-native-async-storage/async-storage': + specifier: ^1.21.0 || ^2.0.0 + version: 2.2.0(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5)) + expo-constants: + specifier: '>=16.0.0' + version: 55.0.13(expo@55.0.13)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(typescript@5.9.3) + expo-device: + specifier: '>=6.0.0' + version: 55.0.14(expo@55.0.13) + react-native: + specifier: '>=0.70.0' + version: 0.85.0(@babel/core@7.29.0)(react@19.2.5) + react-native-get-random-values: + specifier: ^1.11.0 + version: 1.11.0(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5)) + uuid: + specifier: ^11.1.0 + version: 11.1.0 + devDependencies: + '@rollup/plugin-commonjs': + specifier: ^25.0.7 + version: 25.0.8(rollup@4.60.1) + '@rollup/plugin-node-resolve': + specifier: ^15.2.3 + version: 15.3.1(rollup@4.60.1) + '@rollup/plugin-terser': + specifier: ^0.4.4 + version: 0.4.4(rollup@4.60.1) + '@rollup/plugin-typescript': + specifier: ^11.1.6 + version: 11.1.6(rollup@4.60.1)(tslib@2.8.1)(typescript@5.9.3) + '@types/jest': + specifier: ^29.5.11 + version: 29.5.14 + '@types/node': + specifier: ^25.6.0 + version: 25.6.0 + '@typescript-eslint/eslint-plugin': + specifier: ^6.18.1 + version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/parser': + specifier: ^6.18.1 + version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + eslint: + specifier: ^8.56.0 + version: 8.57.1 + jest: + specifier: ^29.7.0 + version: 29.7.0(@types/node@25.6.0) + jest-environment-jsdom: + specifier: ^29.7.0 + version: 29.7.0 + rollup: + specifier: ^4.9.4 + version: 4.60.1 + ts-jest: + specifier: ^29.1.1 + version: 29.4.9(@babel/core@7.29.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.29.0))(jest-util@29.7.0)(jest@29.7.0(@types/node@25.6.0))(typescript@5.9.3) + tslib: + specifier: ^2.6.2 + version: 2.8.1 + typescript: + specifier: ^5.3.3 + version: 5.9.3 + +packages: + + '@babel/code-frame@7.29.0': + resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.29.0': + resolution: {integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.29.0': + resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.29.1': + resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-annotate-as-pure@7.27.3': + resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.28.6': + resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-create-class-features-plugin@7.28.6': + resolution: {integrity: sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-create-regexp-features-plugin@7.28.5': + resolution: {integrity: sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-define-polyfill-provider@0.6.8': + resolution: {integrity: sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + '@babel/helper-globals@7.28.0': + resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-member-expression-to-functions@7.28.5': + resolution: {integrity: sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.28.6': + resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.28.6': + resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-optimise-call-expression@7.27.1': + resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-plugin-utils@7.28.6': + resolution: {integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==} + engines: {node: '>=6.9.0'} + + '@babel/helper-remap-async-to-generator@7.27.1': + resolution: {integrity: sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-replace-supers@7.28.6': + resolution: {integrity: sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': + resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.28.5': + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.27.1': + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-wrap-function@7.28.6': + resolution: {integrity: sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.29.2': + resolution: {integrity: sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.29.2': + resolution: {integrity: sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-proposal-decorators@7.29.0': + resolution: {integrity: sha512-CVBVv3VY/XRMxRYq5dwr2DS7/MvqPm23cOCjbwNnVrfOqcWlnefua1uUs0sjdKOGjvPUG633o07uWzJq4oI6dA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-proposal-export-default-from@7.27.1': + resolution: {integrity: sha512-hjlsMBl1aJc5lp8MoCDEZCiYzlgdRAShOjAfRw6X+GlpLpUPU7c3XNLsKFZbQk/1cRzBlJ7CXg3xJAJMrFa1Uw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-async-generators@7.8.4': + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-bigint@7.8.3': + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-class-properties@7.12.13': + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-class-static-block@7.14.5': + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-decorators@7.28.6': + resolution: {integrity: sha512-71EYI0ONURHJBL4rSFXnITXqXrrY8q4P0q006DPfN+Rk+ASM+++IBXem/ruokgBZR8YNEWZ8R6B+rCb8VcUTqA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-dynamic-import@7.8.3': + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-export-default-from@7.28.6': + resolution: {integrity: sha512-Svlx1fjJFnNz0LZeUaybRukSxZI3KkpApUmIRzEdXC5k8ErTOz0OD0kNrICi5Vc3GlpP5ZCeRyRO+mfWTSz+iQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-flow@7.28.6': + resolution: {integrity: sha512-D+OrJumc9McXNEBI/JmFnc/0uCM2/Y3PEBG3gfV3QIYkKv5pvnpzFrl1kYCrcHJP8nOeFB/SHi1IHz29pNGuew==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-attributes@7.28.6': + resolution: {integrity: sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-meta@7.10.4': + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-json-strings@7.8.3': + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-jsx@7.28.6': + resolution: {integrity: sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4': + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-numeric-separator@7.10.4': + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-object-rest-spread@7.8.3': + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3': + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-chaining@7.8.3': + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-private-property-in-object@7.14.5': + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-top-level-await@7.14.5': + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-typescript@7.28.6': + resolution: {integrity: sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-arrow-functions@7.27.1': + resolution: {integrity: sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-async-generator-functions@7.29.0': + resolution: {integrity: sha512-va0VdWro4zlBr2JsXC+ofCPB2iG12wPtVGTWFx2WLDOM3nYQZZIGP82qku2eW/JR83sD+k2k+CsNtyEbUqhU6w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-async-to-generator@7.28.6': + resolution: {integrity: sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-block-scoping@7.28.6': + resolution: {integrity: sha512-tt/7wOtBmwHPNMPu7ax4pdPz6shjFrmHDghvNC+FG9Qvj7D6mJcoRQIF5dy4njmxR941l6rgtvfSB2zX3VlUIw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-class-properties@7.28.6': + resolution: {integrity: sha512-dY2wS3I2G7D697VHndN91TJr8/AAfXQNt5ynCTI/MpxMsSzHp+52uNivYT5wCPax3whc47DR8Ba7cmlQMg24bw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-class-static-block@7.28.6': + resolution: {integrity: sha512-rfQ++ghVwTWTqQ7w8qyDxL1XGihjBss4CmTgGRCTAC9RIbhVpyp4fOeZtta0Lbf+dTNIVJer6ych2ibHwkZqsQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + + '@babel/plugin-transform-classes@7.28.6': + resolution: {integrity: sha512-EF5KONAqC5zAqT783iMGuM2ZtmEBy+mJMOKl2BCvPZ2lVrwvXnB6o+OBWCS+CoeCCpVRF2sA2RBKUxvT8tQT5Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-computed-properties@7.28.6': + resolution: {integrity: sha512-bcc3k0ijhHbc2lEfpFHgx7eYw9KNXqOerKWfzbxEHUGKnS3sz9C4CNL9OiFN1297bDNfUiSO7DaLzbvHQQQ1BQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-destructuring@7.28.5': + resolution: {integrity: sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-export-namespace-from@7.27.1': + resolution: {integrity: sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-flow-strip-types@7.27.1': + resolution: {integrity: sha512-G5eDKsu50udECw7DL2AcsysXiQyB7Nfg521t2OAJ4tbfTJ27doHLeF/vlI1NZGlLdbb/v+ibvtL1YBQqYOwJGg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-for-of@7.27.1': + resolution: {integrity: sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-function-name@7.27.1': + resolution: {integrity: sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-literals@7.27.1': + resolution: {integrity: sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-logical-assignment-operators@7.28.6': + resolution: {integrity: sha512-+anKKair6gpi8VsM/95kmomGNMD0eLz1NQ8+Pfw5sAwWH9fGYXT50E55ZpV0pHUHWf6IUTWPM+f/7AAff+wr9A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-commonjs@7.28.6': + resolution: {integrity: sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-named-capturing-groups-regex@7.29.0': + resolution: {integrity: sha512-1CZQA5KNAD6ZYQLPw7oi5ewtDNxH/2vuCh+6SmvgDfhumForvs8a1o9n0UrEoBD8HU4djO2yWngTQlXl1NDVEQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-nullish-coalescing-operator@7.28.6': + resolution: {integrity: sha512-3wKbRgmzYbw24mDJXT7N+ADXw8BC/imU9yo9c9X9NKaLF1fW+e5H1U5QjMUBe4Qo4Ox/o++IyUkl1sVCLgevKg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-numeric-separator@7.28.6': + resolution: {integrity: sha512-SJR8hPynj8outz+SlStQSwvziMN4+Bq99it4tMIf5/Caq+3iOc0JtKyse8puvyXkk3eFRIA5ID/XfunGgO5i6w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-object-rest-spread@7.28.6': + resolution: {integrity: sha512-5rh+JR4JBC4pGkXLAcYdLHZjXudVxWMXbB6u6+E9lRL5TrGVbHt1TjxGbZ8CkmYw9zjkB7jutzOROArsqtncEA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-optional-catch-binding@7.28.6': + resolution: {integrity: sha512-R8ja/Pyrv0OGAvAXQhSTmWyPJPml+0TMqXlO5w+AsMEiwb2fg3WkOvob7UxFSL3OIttFSGSRFKQsOhJ/X6HQdQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-optional-chaining@7.28.6': + resolution: {integrity: sha512-A4zobikRGJTsX9uqVFdafzGkqD30t26ck2LmOzAuLL8b2x6k3TIqRiT2xVvA9fNmFeTX484VpsdgmKNA0bS23w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-parameters@7.27.7': + resolution: {integrity: sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-private-methods@7.28.6': + resolution: {integrity: sha512-piiuapX9CRv7+0st8lmuUlRSmX6mBcVeNQ1b4AYzJxfCMuBfB0vBXDiGSmm03pKJw1v6cZ8KSeM+oUnM6yAExg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-private-property-in-object@7.28.6': + resolution: {integrity: sha512-b97jvNSOb5+ehyQmBpmhOCiUC5oVK4PMnpRvO7+ymFBoqYjeDHIU9jnrNUuwHOiL9RpGDoKBpSViarV+BU+eVA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-display-name@7.28.0': + resolution: {integrity: sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx-development@7.27.1': + resolution: {integrity: sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx-self@7.27.1': + resolution: {integrity: sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx-source@7.27.1': + resolution: {integrity: sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx@7.28.6': + resolution: {integrity: sha512-61bxqhiRfAACulXSLd/GxqmAedUSrRZIu/cbaT18T1CetkTmtDN15it7i80ru4DVqRK1WMxQhXs+Lf9kajm5Ow==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-pure-annotations@7.27.1': + resolution: {integrity: sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-regenerator@7.29.0': + resolution: {integrity: sha512-FijqlqMA7DmRdg/aINBSs04y8XNTYw/lr1gJ2WsmBnnaNw1iS43EPkJW+zK7z65auG3AWRFXWj+NcTQwYptUog==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-runtime@7.29.0': + resolution: {integrity: sha512-jlaRT5dJtMaMCV6fAuLbsQMSwz/QkvaHOHOSXRitGGwSpR1blCY4KUKoyP2tYO8vJcqYe8cEj96cqSztv3uF9w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-shorthand-properties@7.27.1': + resolution: {integrity: sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-spread@7.28.6': + resolution: {integrity: sha512-9U4QObUC0FtJl05AsUcodau/RWDytrU6uKgkxu09mLR9HLDAtUMoPuuskm5huQsoktmsYpI+bGmq+iapDcriKA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-sticky-regex@7.27.1': + resolution: {integrity: sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-typescript@7.28.6': + resolution: {integrity: sha512-0YWL2RFxOqEm9Efk5PvreamxPME8OyY0wM5wh5lHjF+VtVhdneCWGzZeSqzOfiobVqQaNCd2z0tQvnI9DaPWPw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-regex@7.27.1': + resolution: {integrity: sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/preset-react@7.28.5': + resolution: {integrity: sha512-Z3J8vhRq7CeLjdC58jLv4lnZ5RKFUJWqH5emvxmv9Hv3BD1T9R/Im713R4MTKwvFaV74ejZ3sM01LyEKk4ugNQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/preset-typescript@7.28.5': + resolution: {integrity: sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/runtime@7.29.2': + resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==} + engines: {node: '>=6.9.0'} + + '@babel/template@7.28.6': + resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.29.0': + resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.29.0': + resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} + engines: {node: '>=6.9.0'} + + '@bcoe/v8-coverage@0.2.3': + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + + '@eslint-community/eslint-utils@4.9.1': + resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.12.2': + resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/eslintrc@2.1.4': + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@eslint/js@8.57.1': + resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@expo/cli@55.0.23': + resolution: {integrity: sha512-OTGFvb70OGOTa3KZm8f23cPw4X16qavPBNotsumWwdUvLPfKHEQIvbCNWCMs1eAVW/Act/8psnO7cscXnf6Iug==} + hasBin: true + peerDependencies: + expo: '*' + expo-router: '*' + react-native: '*' + peerDependenciesMeta: + expo-router: + optional: true + react-native: + optional: true + + '@expo/code-signing-certificates@0.0.6': + resolution: {integrity: sha512-iNe0puxwBNEcuua9gmTGzq+SuMDa0iATai1FlFTMHJ/vUmKvN/V//drXoLJkVb5i5H3iE/n/qIJxyoBnXouD0w==} + + '@expo/config-plugins@55.0.8': + resolution: {integrity: sha512-8WfWTRntTCcowfOS+tHdB0z98gKetTwktg4G5TWkCkXVa8Jt1NUnvzaaU4UHk2vbR2U4N84RyZJFizSwfF6C9g==} + + '@expo/config-types@55.0.5': + resolution: {integrity: sha512-sCmSUZG4mZ/ySXvfyyBdhjivz8Q539X1NondwDdYG7s3SBsk+wsgPJzYsqgAG/P9+l0xWjUD2F+kQ1cAJ6NNLg==} + + '@expo/config@55.0.14': + resolution: {integrity: sha512-CCIe6Suuy0DjC58PI6jBpK8Y3pW0BimXGP8tZrVKPqS5ECqVTei0Xp78nbC/fbO+79r6ak5Su6Os71U459j4dw==} + + '@expo/devcert@1.2.1': + resolution: {integrity: sha512-qC4eaxmKMTmJC2ahwyui6ud8f3W60Ss7pMkpBq40Hu3zyiAaugPXnZ24145U7K36qO9UHdZUVxsCvIpz2RYYCA==} + + '@expo/devtools@55.0.2': + resolution: {integrity: sha512-4VsFn9MUriocyuhyA+ycJP3TJhUsOFHDc270l9h3LhNpXMf6wvIdGcA0QzXkZtORXmlDybWXRP2KT1k36HcQkA==} + peerDependencies: + react: '*' + react-native: '*' + peerDependenciesMeta: + react: + optional: true + react-native: + optional: true + + '@expo/dom-webview@55.0.5': + resolution: {integrity: sha512-lt3uxYOCk3wmWvtOOvsC35CKGbDAOx5C2EaY8SH1JVSfBzqmF8Cs0Xp1MPxncDPMyxpMiWx5SvvV/iLF1rJU4A==} + peerDependencies: + expo: '*' + react: '*' + react-native: '*' + + '@expo/env@2.1.1': + resolution: {integrity: sha512-rVvHC4I6xlPcg+mAO09ydUi2Wjv1ZytpLmHOSzvXzBAz9mMrJggqCe4s4dubjJvi/Ino/xQCLhbaLCnTtLpikg==} + engines: {node: '>=20.12.0'} + + '@expo/fingerprint@0.16.6': + resolution: {integrity: sha512-nRITNbnu3RKSHPvKVehrSU4KG2VY9V8nvULOHBw98ukHCAU4bGrU5APvcblOkX3JAap+xEHsg/mZvqlvkLInmQ==} + hasBin: true + + '@expo/image-utils@0.8.13': + resolution: {integrity: sha512-1I//yBQeTY6p0u1ihqGNDAr35EbSG8uFEupFrIF0jd++h9EWH33521yZJU1yE+mwGlzCb61g3ehu78siMhXBlA==} + + '@expo/json-file@10.0.13': + resolution: {integrity: sha512-pX/XjQn7tgNw6zuuV2ikmegmwe/S7uiwhrs2wXrANMkq7ozrA+JcZwgW9Q/8WZgciBzfAhNp5hnackHcrmapQA==} + + '@expo/local-build-cache-provider@55.0.10': + resolution: {integrity: sha512-T7ekqxsjY6EL65Sldbo+RVehPQBC59R4J57OdgxHfQTpqe8DspfsmL2CEmJO0SaxItp/Kts9ga7R5ujUWE5EQw==} + + '@expo/log-box@55.0.10': + resolution: {integrity: sha512-7jdikExgIrCIF5e3P1qMwcUZ2tcxrNdVqE9Y8kNMUHqZ+ipMlin+SiZwJKHM1+am4CYGjhdyrzbnIpvEcLDYcg==} + peerDependencies: + '@expo/dom-webview': ^55.0.5 + expo: '*' + react: '*' + react-native: '*' + + '@expo/metro-config@55.0.15': + resolution: {integrity: sha512-MO0skYiGFOtmN4p+cds+tqWsuhGtApUpdBLVXdAw1U3cPW5qQ1IbHqgN+muEvSG+3gtC9CcoEEcSDd1mRCpXNQ==} + peerDependencies: + expo: '*' + peerDependenciesMeta: + expo: + optional: true + + '@expo/metro@55.0.0': + resolution: {integrity: sha512-wohGl+4y17rGHU+lq8UqC5neOXL/HOThorDYXTMbOcBL1jYwcK11MBc151gDMpjpgdVUzgHne0H5RfCIhIN4hA==} + + '@expo/osascript@2.4.2': + resolution: {integrity: sha512-/XP7PSYF2hzOZzqfjgkoWtllyeTN8dW3aM4P6YgKcmmPikKL5FdoyQhti4eh6RK5a5VrUXJTOlTNIpIHsfB5Iw==} + engines: {node: '>=12'} + + '@expo/package-manager@1.10.4': + resolution: {integrity: sha512-y9Mr4Kmpk4abAVZrNNPCdzOZr8nLLyi18p1SXr0RCVA8IfzqZX/eY4H+50a0HTmXqIsPZrQdcdb4I3ekMS9GvQ==} + + '@expo/plist@0.5.2': + resolution: {integrity: sha512-o4xdVdBpe4aTl3sPMZ2u3fJH4iG1I768EIRk1xRZP+GaFI93MaR3JvoFibYqxeTmLQ1p1kNEVqylfUjezxx45g==} + + '@expo/prebuild-config@55.0.14': + resolution: {integrity: sha512-88Ou8HF8sWcXD9wduQZ2XBwNMzD8t2x3FtlM0F++rhl9a+aNk2SAj8yhwuGsoEJpbxWG7qq35Yof1r7uU4Z16w==} + peerDependencies: + expo: '*' + + '@expo/require-utils@55.0.4': + resolution: {integrity: sha512-JAANvXqV7MOysWeVWgaiDzikoyDjJWOV/ulOW60Zb3kXJfrx2oZOtGtDXDFKD1mXuahQgoM5QOjuZhF7gFRNjA==} + peerDependencies: + typescript: ^5.0.0 || ^5.0.0-0 + peerDependenciesMeta: + typescript: + optional: true + + '@expo/router-server@55.0.14': + resolution: {integrity: sha512-YJjbeLMLp+ZjCnajHI+jEppNzXY372K0u4I4fLKGnA/loFX14aouDsg4tqZVGlZx6NUpnN8Bb3Tmw2BLTXT5Qw==} + peerDependencies: + '@expo/metro-runtime': ^55.0.9 + expo: '*' + expo-constants: ^55.0.13 + expo-font: ^55.0.6 + expo-router: '*' + expo-server: ^55.0.7 + react: '*' + react-dom: '*' + react-server-dom-webpack: ~19.0.1 || ~19.1.2 || ~19.2.1 + peerDependenciesMeta: + '@expo/metro-runtime': + optional: true + expo-router: + optional: true + react-dom: + optional: true + react-server-dom-webpack: + optional: true + + '@expo/schema-utils@55.0.3': + resolution: {integrity: sha512-l9KHVjTo6MvoeyvwNr6AjckGJm8NIcqZ3QSAh51cWozXW9v2AUjyCyqYtFtyntLWRZ0x/ByYJishpQo4ZQq45Q==} + + '@expo/sdk-runtime-versions@1.0.0': + resolution: {integrity: sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ==} + + '@expo/spawn-async@1.7.2': + resolution: {integrity: sha512-QdWi16+CHB9JYP7gma19OVVg0BFkvU8zNj9GjWorYI8Iv8FUxjOCcYRuAmX4s/h91e4e7BPsskc8cSrZYho9Ew==} + engines: {node: '>=12'} + + '@expo/sudo-prompt@9.3.2': + resolution: {integrity: sha512-HHQigo3rQWKMDzYDLkubN5WQOYXJJE2eNqIQC2axC2iO3mHdwnIR7FgZVvHWtBwAdzBgAP0ECp8KqS8TiMKvgw==} + + '@expo/vector-icons@15.1.1': + resolution: {integrity: sha512-Iu2VkcoI5vygbtYngm7jb4ifxElNVXQYdDrYkT7UCEIiKLeWnQY0wf2ZhHZ+Wro6Sc5TaumpKUOqDRpLi5rkvw==} + peerDependencies: + expo-font: '>=14.0.4' + react: '*' + react-native: '*' + + '@expo/ws-tunnel@1.0.6': + resolution: {integrity: sha512-nDRbLmSrJar7abvUjp3smDwH8HcbZcoOEa5jVPUv9/9CajgmWw20JNRwTuBRzWIWIkEJDkz20GoNA+tSwUqk0Q==} + + '@expo/xcpretty@4.4.3': + resolution: {integrity: sha512-wC562eD3gS6vO2tWHToFhlFnmHKfKHgF1oyvojeSkLK/ZYop1bMU+7cOMiF9Sq70CzcsLy/EMRy/uRc76QmNRw==} + hasBin: true + + '@humanwhocodes/config-array@0.13.0': + resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} + engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/object-schema@2.0.3': + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + deprecated: Use @eslint/object-schema instead + + '@isaacs/ttlcache@1.4.1': + resolution: {integrity: sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==} + engines: {node: '>=12'} + + '@istanbuljs/load-nyc-config@1.1.0': + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} + + '@istanbuljs/schema@0.1.3': + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + + '@jest/console@29.7.0': + resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/core@29.7.0': + resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + '@jest/environment@29.7.0': + resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/expect-utils@29.7.0': + resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/expect@29.7.0': + resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/fake-timers@29.7.0': + resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/globals@29.7.0': + resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/reporters@29.7.0': + resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + '@jest/schemas@29.6.3': + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/source-map@29.6.3': + resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/test-result@29.7.0': + resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/test-sequencer@29.7.0': + resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/transform@29.7.0': + resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/types@29.6.3': + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/source-map@0.3.11': + resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} + + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@react-native-async-storage/async-storage@2.2.0': + resolution: {integrity: sha512-gvRvjR5JAaUZF8tv2Kcq/Gbt3JHwbKFYfmb445rhOj6NUMx3qPLixmDx5pZAyb9at1bYvJ4/eTUipU5aki45xw==} + peerDependencies: + react-native: ^0.0.0-0 || >=0.65 <1.0 + + '@react-native/assets-registry@0.85.0': + resolution: {integrity: sha512-zfVwcEunuywcDR6EYSOcyPKzWMR/HXuByjfS4m7//Hs+Qh5r1j5yfDFNeqansNs3LKv+7EFnEEYFCfpLhYTIew==} + engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} + + '@react-native/babel-plugin-codegen@0.83.4': + resolution: {integrity: sha512-UFsK+c1rvT84XZfzpmwKePsc5nTr5LK7hh18TI0DooNlVcztDbMDsQZpDnhO/gmk7aTbWEqO5AB3HJ7tvGp+Jg==} + engines: {node: '>= 20.19.4'} + + '@react-native/babel-preset@0.83.4': + resolution: {integrity: sha512-SXPFn3Jp4gOzlBDnDOKPzMfxQPKJMYJs05EmEeFB/6km46xZ9l+2YKXwAwxfNhHnmwNf98U/bnVndU95I0TMCw==} + engines: {node: '>= 20.19.4'} + peerDependencies: + '@babel/core': '*' + + '@react-native/codegen@0.83.4': + resolution: {integrity: sha512-CJ7XutzIqJPz3Lp/5TOiRWlU/JAjTboMT1BHNLSXjYHXwTmgHM3iGEbpCOtBMjWvsojRTJyRO/G3ghInIIXEYg==} + engines: {node: '>= 20.19.4'} + peerDependencies: + '@babel/core': '*' + + '@react-native/codegen@0.85.0': + resolution: {integrity: sha512-5CHJkC9UpBxQokGju7gD6W615RO1zR17INuB1PB4kcXNy3rre7tyy6ufct+sllDD6ildRC9A//cyh6TI03+jxA==} + engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} + peerDependencies: + '@babel/core': '*' + + '@react-native/community-cli-plugin@0.85.0': + resolution: {integrity: sha512-OtNdU8xpZxnYmT17gik10eDO47MKYoy8wNlPigxL3lxv/+Hn2cxlvuBHIwoML6PJMgGXpuootOwEyj6MPl7WQQ==} + engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} + peerDependencies: + '@react-native-community/cli': '*' + '@react-native/metro-config': 0.85.0 + peerDependenciesMeta: + '@react-native-community/cli': + optional: true + '@react-native/metro-config': + optional: true + + '@react-native/debugger-frontend@0.83.4': + resolution: {integrity: sha512-mCE2s/S7SEjax3gZb6LFAraAI3x13gRVWJWqT0HIm71e4ITObENNTDuMw4mvZ/wr4Gz2wv4FcBH5/Nla9LXOcg==} + engines: {node: '>= 20.19.4'} + + '@react-native/debugger-frontend@0.85.0': + resolution: {integrity: sha512-57m1QfNlusZBV8C8dGx2JXdp0lXz8IWB44E5/NagM3AchMYPXBzWy+unlE/tPfvr7otOSdhRyyPC8Rw2NJuGiw==} + engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} + + '@react-native/debugger-shell@0.83.4': + resolution: {integrity: sha512-FtAnrvXqy1xeZ+onwilvxEeeBsvBlhtfrHVIC2R/BOJAK9TbKEtFfjio0wsn3DQIm+UZq48DSa+p9jJZ2aJUww==} + engines: {node: '>= 20.19.4'} + + '@react-native/debugger-shell@0.85.0': + resolution: {integrity: sha512-bL4JJwlTt4wwUgjOIjkdxyu0pMD9p6OLUJ/VWeG+/T6QhIu4x75mECgzodjOPvhgQ/TwsY4uRe7o2wMEjwShjA==} + engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} + + '@react-native/dev-middleware@0.83.4': + resolution: {integrity: sha512-3s9nXZc/kj986nI2RPqxiIJeTS3o7pvZDxbHu7GE9WVIGX9YucA1l/tEiXd7BAm3TBFOfefDOT08xD46wH+R3Q==} + engines: {node: '>= 20.19.4'} + + '@react-native/dev-middleware@0.85.0': + resolution: {integrity: sha512-jmiktFPyAZjzMTcyyr1+gnmaCrZH0lrjbbUsRk20p60XPTQ1eQtDLUGG4NQUlt8FzdKDmX7VlwAj8FuVl3Su4g==} + engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} + + '@react-native/gradle-plugin@0.85.0': + resolution: {integrity: sha512-C9+krvr9XtylwPrDUzVjlWh+DrILVYkSHDcWiAnHBaCvyRl8nbaSvzdaapuhOPT76395j0Aj83ENlLaExuhGXQ==} + engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} + + '@react-native/js-polyfills@0.85.0': + resolution: {integrity: sha512-h2nfIqNEA72Ebdcq5scJg1kyZ01B9xI+NJ2AA8ZpGN8SbxOBNAiZtWEqxzAUe6v5Iu7LE3+1WFBWcMQGtT4zLQ==} + engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} + + '@react-native/normalize-colors@0.83.4': + resolution: {integrity: sha512-9ezxaHjxqTkTOLg62SGg7YhFaE+fxa/jlrWP0nwf7eGFHlGOiTAaRR2KUfiN3K05e+EMbEhgcH/c7bgaXeGyJw==} + + '@react-native/normalize-colors@0.85.0': + resolution: {integrity: sha512-pULHg7h5ogY78oKvbyZM93UucljB3Tvo85o1h4mrfn/G2oQAruLbCWAiVdaI00G2EVdUke3wlOtrlaTez3vZ1A==} + + '@react-native/virtualized-lists@0.85.0': + resolution: {integrity: sha512-QpomR0B/LX/jUNKO3ptjQo0NM+JfBHXbKGRe45LaFpl2Wr6r031CKp5UJ4XAAWq148Do01SI4bFDGAScb0IdpA==} + engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} + peerDependencies: + '@types/react': ^19.2.0 + react: '*' + react-native: 0.85.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@rollup/plugin-commonjs@25.0.8': + resolution: {integrity: sha512-ZEZWTK5n6Qde0to4vS9Mr5x/0UZoqCxPVR9KRUjU4kA2sO7GEUn1fop0DAwpO6z0Nw/kJON9bDmSxdWxO/TT1A==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.68.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-node-resolve@15.3.1': + resolution: {integrity: sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.78.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-terser@0.4.4': + resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-typescript@11.1.6': + resolution: {integrity: sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.14.0||^3.0.0||^4.0.0 + tslib: '*' + typescript: '>=3.7.0' + peerDependenciesMeta: + rollup: + optional: true + tslib: + optional: true + + '@rollup/pluginutils@5.3.0': + resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/rollup-android-arm-eabi@4.60.1': + resolution: {integrity: sha512-d6FinEBLdIiK+1uACUttJKfgZREXrF0Qc2SmLII7W2AD8FfiZ9Wjd+rD/iRuf5s5dWrr1GgwXCvPqOuDquOowA==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.60.1': + resolution: {integrity: sha512-YjG/EwIDvvYI1YvYbHvDz/BYHtkY4ygUIXHnTdLhG+hKIQFBiosfWiACWortsKPKU/+dUwQQCKQM3qrDe8c9BA==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.60.1': + resolution: {integrity: sha512-mjCpF7GmkRtSJwon+Rq1N8+pI+8l7w5g9Z3vWj4T7abguC4Czwi3Yu/pFaLvA3TTeMVjnu3ctigusqWUfjZzvw==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.60.1': + resolution: {integrity: sha512-haZ7hJ1JT4e9hqkoT9R/19XW2QKqjfJVv+i5AGg57S+nLk9lQnJ1F/eZloRO3o9Scy9CM3wQ9l+dkXtcBgN5Ew==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.60.1': + resolution: {integrity: sha512-czw90wpQq3ZsAVBlinZjAYTKduOjTywlG7fEeWKUA7oCmpA8xdTkxZZlwNJKWqILlq0wehoZcJYfBvOyhPTQ6w==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.60.1': + resolution: {integrity: sha512-KVB2rqsxTHuBtfOeySEyzEOB7ltlB/ux38iu2rBQzkjbwRVlkhAGIEDiiYnO2kFOkJp+Z7pUXKyrRRFuFUKt+g==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.60.1': + resolution: {integrity: sha512-L+34Qqil+v5uC0zEubW7uByo78WOCIrBvci69E7sFASRl0X7b/MB6Cqd1lky/CtcSVTydWa2WZwFuWexjS5o6g==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.60.1': + resolution: {integrity: sha512-n83O8rt4v34hgFzlkb1ycniJh7IR5RCIqt6mz1VRJD6pmhRi0CXdmfnLu9dIUS6buzh60IvACM842Ffb3xd6Gg==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.60.1': + resolution: {integrity: sha512-Nql7sTeAzhTAja3QXeAI48+/+GjBJ+QmAH13snn0AJSNL50JsDqotyudHyMbO2RbJkskbMbFJfIJKWA6R1LCJQ==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.60.1': + resolution: {integrity: sha512-+pUymDhd0ys9GcKZPPWlFiZ67sTWV5UU6zOJat02M1+PiuSGDziyRuI/pPue3hoUwm2uGfxdL+trT6Z9rxnlMA==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-loong64-gnu@4.60.1': + resolution: {integrity: sha512-VSvgvQeIcsEvY4bKDHEDWcpW4Yw7BtlKG1GUT4FzBUlEKQK0rWHYBqQt6Fm2taXS+1bXvJT6kICu5ZwqKCnvlQ==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-loong64-musl@4.60.1': + resolution: {integrity: sha512-4LqhUomJqwe641gsPp6xLfhqWMbQV04KtPp7/dIp0nzPxAkNY1AbwL5W0MQpcalLYk07vaW9Kp1PBhdpZYYcEw==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-ppc64-gnu@4.60.1': + resolution: {integrity: sha512-tLQQ9aPvkBxOc/EUT6j3pyeMD6Hb8QF2BTBnCQWP/uu1lhc9AIrIjKnLYMEroIz/JvtGYgI9dF3AxHZNaEH0rw==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-ppc64-musl@4.60.1': + resolution: {integrity: sha512-RMxFhJwc9fSXP6PqmAz4cbv3kAyvD1etJFjTx4ONqFP9DkTkXsAMU4v3Vyc5BgzC+anz7nS/9tp4obsKfqkDHg==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.60.1': + resolution: {integrity: sha512-QKgFl+Yc1eEk6MmOBfRHYF6lTxiiiV3/z/BRrbSiW2I7AFTXoBFvdMEyglohPj//2mZS4hDOqeB0H1ACh3sBbg==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-riscv64-musl@4.60.1': + resolution: {integrity: sha512-RAjXjP/8c6ZtzatZcA1RaQr6O1TRhzC+adn8YZDnChliZHviqIjmvFwHcxi4JKPSDAt6Uhf/7vqcBzQJy0PDJg==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.60.1': + resolution: {integrity: sha512-wcuocpaOlaL1COBYiA89O6yfjlp3RwKDeTIA0hM7OpmhR1Bjo9j31G1uQVpDlTvwxGn2nQs65fBFL5UFd76FcQ==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.60.1': + resolution: {integrity: sha512-77PpsFQUCOiZR9+LQEFg9GClyfkNXj1MP6wRnzYs0EeWbPcHs02AXu4xuUbM1zhwn3wqaizle3AEYg5aeoohhg==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.60.1': + resolution: {integrity: sha512-5cIATbk5vynAjqqmyBjlciMJl1+R/CwX9oLk/EyiFXDWd95KpHdrOJT//rnUl4cUcskrd0jCCw3wpZnhIHdD9w==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-openbsd-x64@4.60.1': + resolution: {integrity: sha512-cl0w09WsCi17mcmWqqglez9Gk8isgeWvoUZ3WiJFYSR3zjBQc2J5/ihSjpl+VLjPqjQ/1hJRcqBfLjssREQILw==} + cpu: [x64] + os: [openbsd] + + '@rollup/rollup-openharmony-arm64@4.60.1': + resolution: {integrity: sha512-4Cv23ZrONRbNtbZa37mLSueXUCtN7MXccChtKpUnQNgF010rjrjfHx3QxkS2PI7LqGT5xXyYs1a7LbzAwT0iCA==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.60.1': + resolution: {integrity: sha512-i1okWYkA4FJICtr7KpYzFpRTHgy5jdDbZiWfvny21iIKky5YExiDXP+zbXzm3dUcFpkEeYNHgQ5fuG236JPq0g==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.60.1': + resolution: {integrity: sha512-u09m3CuwLzShA0EYKMNiFgcjjzwqtUMLmuCJLeZWjjOYA3IT2Di09KaxGBTP9xVztWyIWjVdsB2E9goMjZvTQg==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-gnu@4.60.1': + resolution: {integrity: sha512-k+600V9Zl1CM7eZxJgMyTUzmrmhB/0XZnF4pRypKAlAgxmedUA+1v9R+XOFv56W4SlHEzfeMtzujLJD22Uz5zg==} + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.60.1': + resolution: {integrity: sha512-lWMnixq/QzxyhTV6NjQJ4SFo1J6PvOX8vUx5Wb4bBPsEb+8xZ89Bz6kOXpfXj9ak9AHTQVQzlgzBEc1SyM27xQ==} + cpu: [x64] + os: [win32] + + '@sinclair/typebox@0.27.10': + resolution: {integrity: sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==} + + '@sinonjs/commons@3.0.1': + resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} + + '@sinonjs/fake-timers@10.3.0': + resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + + '@tootallnate/once@2.0.0': + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} + + '@types/babel__core@7.20.5': + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + + '@types/babel__generator@7.27.0': + resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} + + '@types/babel__template@7.4.4': + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + + '@types/babel__traverse@7.28.0': + resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} + + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + + '@types/graceful-fs@4.1.9': + resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} + + '@types/istanbul-lib-coverage@2.0.6': + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + + '@types/istanbul-lib-report@3.0.3': + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} + + '@types/istanbul-reports@3.0.4': + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + + '@types/jest@29.5.14': + resolution: {integrity: sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==} + + '@types/jsdom@20.0.1': + resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/node@25.6.0': + resolution: {integrity: sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==} + + '@types/resolve@1.20.2': + resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} + + '@types/semver@7.7.1': + resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==} + + '@types/stack-utils@2.0.3': + resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + + '@types/tough-cookie@4.0.5': + resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} + + '@types/yargs-parser@21.0.3': + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + + '@types/yargs@17.0.35': + resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==} + + '@typescript-eslint/eslint-plugin@6.21.0': + resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@6.21.0': + resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/scope-manager@6.21.0': + resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/type-utils@6.21.0': + resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/types@6.21.0': + resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/typescript-estree@6.21.0': + resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/utils@6.21.0': + resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + + '@typescript-eslint/visitor-keys@6.21.0': + resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@ungap/structured-clone@1.3.0': + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + + '@xmldom/xmldom@0.8.12': + resolution: {integrity: sha512-9k/gHF6n/pAi/9tqr3m3aqkuiNosYTurLLUtc7xQ9sxB/wm7WPygCv8GYa6mS0fLJEHhqMC1ATYhz++U/lRHqg==} + engines: {node: '>=10.0.0'} + + abab@2.0.6: + resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} + deprecated: Use your platform's native atob() and btoa() methods instead + + abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + + accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + + accepts@2.0.0: + resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==} + engines: {node: '>= 0.6'} + + acorn-globals@7.0.1: + resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn-walk@8.3.5: + resolution: {integrity: sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==} + engines: {node: '>=0.4.0'} + + acorn@8.16.0: + resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} + engines: {node: '>=0.4.0'} + hasBin: true + + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + + agent-base@7.1.4: + resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} + engines: {node: '>= 14'} + + ajv@6.14.0: + resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} + + anser@1.4.10: + resolution: {integrity: sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==} + + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + + ansi-regex@4.1.1: + resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} + engines: {node: '>=6'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + asap@2.0.6: + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + babel-jest@29.7.0: + resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.8.0 + + babel-plugin-istanbul@6.1.1: + resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} + engines: {node: '>=8'} + + babel-plugin-jest-hoist@29.6.3: + resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + babel-plugin-polyfill-corejs2@0.4.17: + resolution: {integrity: sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-polyfill-corejs3@0.13.0: + resolution: {integrity: sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-polyfill-regenerator@0.6.8: + resolution: {integrity: sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-react-compiler@1.0.0: + resolution: {integrity: sha512-Ixm8tFfoKKIPYdCCKYTsqv+Fd4IJ0DQqMyEimo+pxUOMUR9cVPlwTrFt9Avu+3cb6Zp3mAzl+t1MrG2fxxKsxw==} + + babel-plugin-react-native-web@0.21.2: + resolution: {integrity: sha512-SPD0J6qjJn8231i0HZhlAGH6NORe+QvRSQM2mwQEzJ2Fb3E4ruWTiiicPlHjmeWShDXLcvoorOCXjeR7k/lyWA==} + + babel-plugin-syntax-hermes-parser@0.32.0: + resolution: {integrity: sha512-m5HthL++AbyeEA2FcdwOLfVFvWYECOBObLHNqdR8ceY4TsEdn4LdX2oTvbB2QJSSElE2AWA/b2MXZ/PF/CqLZg==} + + babel-plugin-syntax-hermes-parser@0.32.1: + resolution: {integrity: sha512-HgErPZTghW76Rkq9uqn5ESeiD97FbqpZ1V170T1RG2RDp+7pJVQV2pQJs7y5YzN0/gcT6GM5ci9apRnIwuyPdQ==} + + babel-plugin-syntax-hermes-parser@0.33.3: + resolution: {integrity: sha512-/Z9xYdaJ1lC0pT9do6TqCqhOSLfZ5Ot8D5za1p+feEfWYupCOfGbhhEXN9r2ZgJtDNUNRw/Z+T2CvAGKBqtqWA==} + + babel-plugin-transform-flow-enums@0.0.2: + resolution: {integrity: sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==} + + babel-preset-current-node-syntax@1.2.0: + resolution: {integrity: sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==} + peerDependencies: + '@babel/core': ^7.0.0 || ^8.0.0-0 + + babel-preset-expo@55.0.16: + resolution: {integrity: sha512-WHeXG4QbYA809O5e6YcPhYVck/sxtTPF0InQjKiFfPnOkeb2Q/DHQcRQL0dFWOu4VeUUMyEiHeKtKA442Cg8+g==} + peerDependencies: + '@babel/runtime': ^7.20.0 + expo: '*' + expo-widgets: ^55.0.12 + react-refresh: '>=0.14.0 <1.0.0' + peerDependenciesMeta: + '@babel/runtime': + optional: true + expo: + optional: true + expo-widgets: + optional: true + + babel-preset-jest@29.6.3: + resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.0.0 + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + baseline-browser-mapping@2.10.17: + resolution: {integrity: sha512-HdrkN8eVG2CXxeifv/VdJ4A4RSra1DTW8dc/hdxzhGHN8QePs6gKaWM9pHPcpCoxYZJuOZ8drHmbdpLHjCYjLA==} + engines: {node: '>=6.0.0'} + hasBin: true + + better-opn@3.0.2: + resolution: {integrity: sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==} + engines: {node: '>=12.0.0'} + + big-integer@1.6.52: + resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} + engines: {node: '>=0.6'} + + bplist-creator@0.1.0: + resolution: {integrity: sha512-sXaHZicyEEmY86WyueLTQesbeoH/mquvarJaQNbjuOQO+7gbFcDEWqKmcWA4cOTLzFlfgvkiVxolk1k5bBIpmg==} + + bplist-parser@0.3.1: + resolution: {integrity: sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==} + engines: {node: '>= 5.10.0'} + + bplist-parser@0.3.2: + resolution: {integrity: sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==} + engines: {node: '>= 5.10.0'} + + brace-expansion@1.1.13: + resolution: {integrity: sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==} + + brace-expansion@2.0.3: + resolution: {integrity: sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==} + + brace-expansion@5.0.5: + resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==} + engines: {node: 18 || 20 || >=22} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browserslist@4.28.2: + resolution: {integrity: sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + bs-logger@0.2.6: + resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} + engines: {node: '>= 6'} + + bser@2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + + caniuse-lite@1.0.30001787: + resolution: {integrity: sha512-mNcrMN9KeI68u7muanUpEejSLghOKlVhRqS/Za2IeyGllJ9I9otGpR9g3nsw7n4W378TE/LyIteA0+/FOZm4Kg==} + + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + + chrome-launcher@0.15.2: + resolution: {integrity: sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==} + engines: {node: '>=12.13.0'} + hasBin: true + + chromium-edge-launcher@0.2.0: + resolution: {integrity: sha512-JfJjUnq25y9yg4FABRRVPmBGWPZZi+AQXT4mxupb67766/0UlhG8PAZCz6xzEMXTbW3CsSoE8PcCWA49n35mKg==} + + chromium-edge-launcher@0.3.0: + resolution: {integrity: sha512-p03azHlGjtyRvFEee3cyvtsRYdniSkwjkzmM/KmVnqT5d7QkkwpJBhis/zCLMYdQMVJ5tt140TBNqqrZPaWeFA==} + + ci-info@2.0.0: + resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} + + ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + + cjs-module-lexer@1.4.3: + resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} + + cli-cursor@2.1.0: + resolution: {integrity: sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==} + engines: {node: '>=4'} + + cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + + co@4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + + collect-v8-coverage@1.0.3: + resolution: {integrity: sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==} + + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + engines: {node: '>=18'} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + + commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + + compressible@2.0.18: + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + engines: {node: '>= 0.6'} + + compression@1.8.1: + resolution: {integrity: sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==} + engines: {node: '>= 0.8.0'} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + connect@3.7.0: + resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} + engines: {node: '>= 0.10.0'} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + core-js-compat@3.49.0: + resolution: {integrity: sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==} + + create-jest@29.7.0: + resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + cssom@0.3.8: + resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} + + cssom@0.5.0: + resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} + + cssstyle@2.3.0: + resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} + engines: {node: '>=8'} + + data-urls@3.0.2: + resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} + engines: {node: '>=12'} + + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decimal.js@10.6.0: + resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} + + dedent@1.7.2: + resolution: {integrity: sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==} + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + + defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + + define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + engines: {node: '>=8'} + + detect-newline@3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} + + diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + dnssd-advertise@1.1.4: + resolution: {integrity: sha512-AmGyK9WpNf06WeP5TjHZq/wNzP76OuEeaiTlKr9E/EEelYLczywUKoqRz+DPRq/ErssjT4lU+/W7wzJW+7K/ZA==} + + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + + domexception@4.0.0: + resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} + engines: {node: '>=12'} + deprecated: Use your platform's native DOMException instead + + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + + electron-to-chromium@1.5.334: + resolution: {integrity: sha512-mgjZAz7Jyx1SRCwEpy9wefDS7GvNPazLthHg8eQMJ76wBdGQQDW33TCrUTvQ4wzpmOrv2zrFoD3oNufMdyMpog==} + + emittery@0.13.1: + resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} + engines: {node: '>=12'} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + + entities@6.0.1: + resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} + engines: {node: '>=0.12'} + + error-ex@1.3.4: + resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} + + error-stack-parser@2.1.4: + resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + escodegen@2.1.0: + resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} + engines: {node: '>=6.0'} + hasBin: true + + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint@8.57.1: + resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. + hasBin: true + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esquery@1.7.0: + resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + + event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + + exit@0.1.2: + resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} + engines: {node: '>= 0.8.0'} + + expect@29.7.0: + resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + expo-asset@55.0.14: + resolution: {integrity: sha512-8jeWHW39/UOQytGoXXFIrpE+DhK72RhMu09iuTxYuGluqGzGgs+DgcaP9jTvCPwkAXxSfWZdsTttuKXE5nDUCQ==} + peerDependencies: + expo: '*' + react: '*' + react-native: '*' + + expo-constants@55.0.13: + resolution: {integrity: sha512-imSsHm94KWsJbBLvjsUNgubcPQ3H6dXaAm0IZj2Y6+XEdJmjWo2JreriYmeSu/azmpiYUd3Y7K+/Hq9WXQ2Elg==} + peerDependencies: + expo: '*' + react-native: '*' + + expo-device@55.0.14: + resolution: {integrity: sha512-p13T9U2jLlv9OUTCdEDK3+2iiFJnQEfxE3Mccdq4q7j512onLcEE5/OqAxwXkK7R/CB33U72t1nOyHIn1FM9Qw==} + peerDependencies: + expo: '*' + + expo-file-system@55.0.16: + resolution: {integrity: sha512-EetQ/zVFK07Vmz4Yke0fvoES4xVwScTdd0PMoLekuMX7puE4op75pNnEdh1M0AeWzkqLrBoZIaU2ynSrKN5VZg==} + peerDependencies: + expo: '*' + react-native: '*' + + expo-font@55.0.6: + resolution: {integrity: sha512-x9czUA3UQWjIwa0ZUEs/eWJNqB4mAue/m4ltESlNPLZhHL0nWWqIfsyHmklTLFH7mVfcHSJvew6k+pR2FE1zVw==} + peerDependencies: + expo: '*' + react: '*' + react-native: '*' + + expo-keep-awake@55.0.6: + resolution: {integrity: sha512-acJjeHqkNxMVckEcJhGQeIksqqsarscSHJtT559bNgyiM4r14dViQ66su7bb6qDVeBt0K7z3glXI1dHVck1Zgg==} + peerDependencies: + expo: '*' + react: '*' + + expo-modules-autolinking@55.0.16: + resolution: {integrity: sha512-9FV2fd5MiqGM1m45wrA/w6QRZc/LBA+Tl9NQixZIn2zaUFVYol11byfTue6C7cVFU7VJOAH5b2rRsLhP6jVrWQ==} + hasBin: true + + expo-modules-core@55.0.22: + resolution: {integrity: sha512-NC5GyvCHvnOvi5MtgLv68oUSrRP/0UORGzU/MX+7BIA8ctgBPxKSjPXPSfhwk3gMzj7eHBhYwlu0HJsIEnVd9A==} + peerDependencies: + react: '*' + react-native: '*' + react-native-worklets: ^0.7.4 || ^0.8.0 + peerDependenciesMeta: + react-native-worklets: + optional: true + + expo-server@55.0.7: + resolution: {integrity: sha512-Cc1btFyPsD9P4DT2xd1pG/uR96TLVMx0W+dPm9Gjk1uDV9xuzvMcUsY7nf9bt4U5pGyWWkCXmPJcKwWfdl51Pw==} + engines: {node: '>=20.16.0'} + + expo@55.0.13: + resolution: {integrity: sha512-enh44GrRlKgTVvTlygrvzPeWKpxCnta60JHFN3nzsN5kClRTlkPgS2+20dn9KBdiOxR1zFRQQ9FgGHoWC2tbPw==} + hasBin: true + peerDependencies: + '@expo/dom-webview': '*' + '@expo/metro-runtime': '*' + react: '*' + react-native: '*' + react-native-webview: '*' + peerDependenciesMeta: + '@expo/dom-webview': + optional: true + '@expo/metro-runtime': + optional: true + react-native-webview: + optional: true + + exponential-backoff@3.1.3: + resolution: {integrity: sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==} + + fast-base64-decode@1.0.0: + resolution: {integrity: sha512-qwaScUgUGBYeDNRnbc/KyllVU88Jk1pRHPStuF/lO7B0/RTRLj7U0lkdTAutlBblY08rwZDff6tNU9cjv6j//Q==} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fastq@1.20.1: + resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} + + fb-dotslash@0.5.8: + resolution: {integrity: sha512-XHYLKk9J4BupDxi9bSEhkfss0m+Vr9ChTrjhf9l2iw3jB5C7BnY4GVPoMcqbrTutsKJso6yj2nAB6BI/F2oZaA==} + engines: {node: '>=20'} + hasBin: true + + fb-watchman@2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + fetch-nodeshim@0.4.10: + resolution: {integrity: sha512-m6I8ALe4L4XpdETy7MJZWs6L1IVMbjs99bwbpIKphxX+0CTns4IKDWJY0LWfr4YsFjfg+z1TjzTMU8lKl8rG0w==} + + file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + finalhandler@1.1.2: + resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} + engines: {node: '>= 0.8'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + + flatted@3.4.2: + resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==} + + flow-enums-runtime@0.0.6: + resolution: {integrity: sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==} + + fontfaceobserver@2.3.0: + resolution: {integrity: sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg==} + + form-data@4.0.5: + resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} + engines: {node: '>= 6'} + + fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} + + get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + getenv@2.0.0: + resolution: {integrity: sha512-VilgtJj/ALgGY77fiLam5iD336eSWi96Q15JSAG1zi8NRBysm3LXKdGnHb4m5cuyxvOLQQKWpBZAT6ni4FI2iQ==} + engines: {node: '>=6'} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob@13.0.6: + resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} + engines: {node: 18 || 20 || >=22} + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + + glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + handlebars@4.7.9: + resolution: {integrity: sha512-4E71E0rpOaQuJR2A3xDZ+GM1HyWYv1clR58tC8emQNeQe3RH7MAzSbat+V0wG78LQBo6m6bzSG/L4pBuCsgnUQ==} + engines: {node: '>=0.4.7'} + hasBin: true + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + hermes-compiler@250829098.0.10: + resolution: {integrity: sha512-TcRlZ0/TlyfJqquRFAWoyElVNnkdYRi/sEp4/Qy8/GYxjg8j2cS9D4MjuaQ+qimkmLN7AmO+44IznRf06mAr0w==} + + hermes-estree@0.32.0: + resolution: {integrity: sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ==} + + hermes-estree@0.32.1: + resolution: {integrity: sha512-ne5hkuDxheNBAikDjqvCZCwihnz0vVu9YsBzAEO1puiyFR4F1+PAz/SiPHSsNTuOveCYGRMX8Xbx4LOubeC0Qg==} + + hermes-estree@0.33.3: + resolution: {integrity: sha512-6kzYZHCk8Fy1Uc+t3HGYyJn3OL4aeqKLTyina4UFtWl8I0kSL7OmKThaiX+Uh2f8nGw3mo4Ifxg0M5Zk3/Oeqg==} + + hermes-parser@0.32.0: + resolution: {integrity: sha512-g4nBOWFpuiTqjR3LZdRxKUkij9iyveWeuks7INEsMX741f3r9xxrOe8TeQfUxtda0eXmiIFiMQzoeSQEno33Hw==} + + hermes-parser@0.32.1: + resolution: {integrity: sha512-175dz634X/W5AiwrpLdoMl/MOb17poLHyIqgyExlE8D9zQ1OPnoORnGMB5ltRKnpvQzBjMYvT2rN/sHeIfZW5Q==} + + hermes-parser@0.33.3: + resolution: {integrity: sha512-Yg3HgaG4CqgyowtYjX/FsnPAuZdHOqSMtnbpylbptsQ9nwwSKsy6uRWcGO5RK0EqiX12q8HvDWKgeAVajRO5DA==} + + hosted-git-info@7.0.2: + resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} + engines: {node: ^16.14.0 || >=18.0.0} + + html-encoding-sniffer@3.0.0: + resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} + engines: {node: '>=12'} + + html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + + http-errors@2.0.1: + resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} + engines: {node: '>= 0.8'} + + http-proxy-agent@5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} + + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + + https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} + engines: {node: '>= 14'} + + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + image-size@1.2.1: + resolution: {integrity: sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==} + engines: {node: '>=16.x'} + hasBin: true + + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} + + import-local@3.2.0: + resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} + engines: {node: '>=8'} + hasBin: true + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + invariant@2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + engines: {node: '>= 0.4'} + + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-generator-fn@2.1.0: + resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} + engines: {node: '>=6'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-module@1.0.0: + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + + is-plain-obj@2.1.0: + resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + engines: {node: '>=8'} + + is-potential-custom-element-name@1.0.1: + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + + is-reference@1.2.1: + resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + + istanbul-lib-instrument@5.2.1: + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} + engines: {node: '>=8'} + + istanbul-lib-instrument@6.0.3: + resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} + engines: {node: '>=10'} + + istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + + istanbul-lib-source-maps@4.0.1: + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} + + istanbul-reports@3.2.0: + resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} + engines: {node: '>=8'} + + jest-changed-files@29.7.0: + resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-circus@29.7.0: + resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-cli@29.7.0: + resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + jest-config@29.7.0: + resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@types/node': '*' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + ts-node: + optional: true + + jest-diff@29.7.0: + resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-docblock@29.7.0: + resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-each@29.7.0: + resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-environment-jsdom@29.7.0: + resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + + jest-environment-node@29.7.0: + resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-get-type@29.6.3: + resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-haste-map@29.7.0: + resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-leak-detector@29.7.0: + resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-matcher-utils@29.7.0: + resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-message-util@29.7.0: + resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-mock@29.7.0: + resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-pnp-resolver@1.2.3: + resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} + engines: {node: '>=6'} + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true + + jest-regex-util@29.6.3: + resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-resolve-dependencies@29.7.0: + resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-resolve@29.7.0: + resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-runner@29.7.0: + resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-runtime@29.7.0: + resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-snapshot@29.7.0: + resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-util@29.7.0: + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-validate@29.7.0: + resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-watcher@29.7.0: + resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-worker@29.7.0: + resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest@29.7.0: + resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + jimp-compact@0.16.1: + resolution: {integrity: sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@3.14.2: + resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} + hasBin: true + + js-yaml@4.1.1: + resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} + hasBin: true + + jsc-safe-url@0.2.4: + resolution: {integrity: sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q==} + + jsdom@20.0.3: + resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} + engines: {node: '>=14'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + + lan-network@0.2.1: + resolution: {integrity: sha512-ONPnazC96VKDntab9j9JKwIWhZ4ZUceB4A9Epu4Ssg0hYFmtHZSeQ+n15nIwTFmcBUKtExOer8WTJ4GF9MO64A==} + hasBin: true + + leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lighthouse-logger@1.4.2: + resolution: {integrity: sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==} + + lightningcss-android-arm64@1.32.0: + resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [android] + + lightningcss-darwin-arm64@1.32.0: + resolution: {integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + + lightningcss-darwin-x64@1.32.0: + resolution: {integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.32.0: + resolution: {integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.32.0: + resolution: {integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.32.0: + resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-arm64-musl@1.32.0: + resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-x64-gnu@1.32.0: + resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-linux-x64-musl@1.32.0: + resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-win32-arm64-msvc@1.32.0: + resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.32.0: + resolution: {integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + + lightningcss@1.32.0: + resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==} + engines: {node: '>= 12.0.0'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + + lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash.throttle@4.1.1: + resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} + + log-symbols@2.2.0: + resolution: {integrity: sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==} + engines: {node: '>=4'} + + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + lru-cache@11.3.3: + resolution: {integrity: sha512-JvNw9Y81y33E+BEYPr0U7omo+U9AySnsMsEiXgwT6yqd31VQWTLNQqmT4ou5eqPFUrTfIDFta2wKhB1hyohtAQ==} + engines: {node: 20 || >=22} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + + make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + + make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + + makeerror@1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + + marky@1.3.0: + resolution: {integrity: sha512-ocnPZQLNpvbedwTy9kNrQEsknEfgvcLMvOtz3sFeWApDq1MXH1TqkCIx58xlpESsfwQOnuBO9beyQuNGzVvuhQ==} + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + memoize-one@5.2.1: + resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} + + merge-options@3.0.4: + resolution: {integrity: sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==} + engines: {node: '>=10'} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + metro-babel-transformer@0.83.5: + resolution: {integrity: sha512-d9FfmgUEVejTiSb7bkQeLRGl6aeno2UpuPm3bo3rCYwxewj03ymvOn8s8vnS4fBqAPQ+cE9iQM40wh7nGXR+eA==} + engines: {node: '>=20.19.4'} + + metro-babel-transformer@0.84.2: + resolution: {integrity: sha512-UZqjh1VMRDm0WasifM0aN+JreCn3CW0BaPoZgDXb0xOMFSF9dKZJsKhcrpzkjL1+qwmHFYjlhGiQ+tvXdSx+OQ==} + engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} + + metro-cache-key@0.83.5: + resolution: {integrity: sha512-Ycl8PBajB7bhbAI7Rt0xEyiF8oJ0RWX8EKkolV1KfCUlC++V/GStMSGpPLwnnBZXZWkCC5edBPzv1Hz1Yi0Euw==} + engines: {node: '>=20.19.4'} + + metro-cache-key@0.84.2: + resolution: {integrity: sha512-+yJxLYu5nhKp7jZD6wtx4dMoSqLzK6MeYVkjMaUgjuh2Lu8DwGrxRnbmIVnn5Z9AQOs/K4eOWmuD7N2p64UCMw==} + engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} + + metro-cache@0.83.5: + resolution: {integrity: sha512-oH+s4U+IfZyg8J42bne2Skc90rcuESIYf86dYittcdWQtPfcaFXWpByPyTuWk3rR1Zz3Eh5HOrcVImfEhhJLng==} + engines: {node: '>=20.19.4'} + + metro-cache@0.84.2: + resolution: {integrity: sha512-jPX2fwOc/MmP2KRScSg2jFtVN9BTd+QN6j/3qZ+HIbEAsePLONozbKR2kCIBGvVeBTe7js48WXziI4+AdfwfFQ==} + engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} + + metro-config@0.83.5: + resolution: {integrity: sha512-JQ/PAASXH7yczgV6OCUSRhZYME+NU8NYjI2RcaG5ga4QfQ3T/XdiLzpSb3awWZYlDCcQb36l4Vl7i0Zw7/Tf9w==} + engines: {node: '>=20.19.4'} + + metro-config@0.84.2: + resolution: {integrity: sha512-ze7IgJwLJoXoTxeXW86xqqKoxXjE0gZg5w8kW2mawaWLSfuvI0KgVaaERXgoVuWl+DQU2q22tIeAEdsCyUZvBQ==} + engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} + + metro-core@0.83.5: + resolution: {integrity: sha512-YcVcLCrf0ed4mdLa82Qob0VxYqfhmlRxUS8+TO4gosZo/gLwSvtdeOjc/Vt0pe/lvMNrBap9LlmvZM8FIsMgJQ==} + engines: {node: '>=20.19.4'} + + metro-core@0.84.2: + resolution: {integrity: sha512-s9Ko372nzfbu5Y2uhWDlB/g3E6mba3Es95QzF/8IwNM4ynZgqM9rfnU0PR54onGvDGDfj44jbooSxaA1D09rDA==} + engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} + + metro-file-map@0.83.5: + resolution: {integrity: sha512-ZEt8s3a1cnYbn40nyCD+CsZdYSlwtFh2kFym4lo+uvfM+UMMH+r/BsrC6rbNClSrt+B7rU9T+Te/sh/NL8ZZKQ==} + engines: {node: '>=20.19.4'} + + metro-file-map@0.84.2: + resolution: {integrity: sha512-ZgX1lXO9YJCgTY6OSuwvRcHdhXjAFd1DdYC4g2B+d7yAtLUW1/OqwTLpW6ixl1zqZDDQSDSYZXDsN7DL2IumBw==} + engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} + + metro-minify-terser@0.83.5: + resolution: {integrity: sha512-Toe4Md1wS1PBqbvB0cFxBzKEVyyuYTUb0sgifAZh/mSvLH84qA1NAWik9sISWatzvfWf3rOGoUoO5E3f193a3Q==} + engines: {node: '>=20.19.4'} + + metro-minify-terser@0.84.2: + resolution: {integrity: sha512-1TNGPN4oUose+XSHsdDUvcvPHQxKP5lZNbiS6UteTXX+6zFNu+IzxqSokyrDoj9BSjVbdClrB3okuI+Fpls3LA==} + engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} + + metro-resolver@0.83.5: + resolution: {integrity: sha512-7p3GtzVUpbAweJeCcUJihJeOQl1bDuimO5ueo1K0BUpUtR41q5EilbQ3klt16UTPPMpA+tISWBtsrqU556mY1A==} + engines: {node: '>=20.19.4'} + + metro-resolver@0.84.2: + resolution: {integrity: sha512-2i6OQJIv18+olvLnmcM20uhi1T729+25izZozqOugSaV0YGzMV/EXkYFqxkXC9iNsantGcI/w9PgaI89wLK6JQ==} + engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} + + metro-runtime@0.83.5: + resolution: {integrity: sha512-f+b3ue9AWTVlZe2Xrki6TAoFtKIqw30jwfk7GQ1rDUBQaE0ZQ+NkiMEtb9uwH7uAjJ87U7Tdx1Jg1OJqUfEVlA==} + engines: {node: '>=20.19.4'} + + metro-runtime@0.84.2: + resolution: {integrity: sha512-NzzORY2+mmN3tLhsZ7N4GDOBERusalyM1o1k36euulUIEe8UkDhwzcsRexvxKaSkrGLiRQ9PYDLp9uxPkQ+A0Q==} + engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} + + metro-source-map@0.83.5: + resolution: {integrity: sha512-VT9bb2KO2/4tWY9Z2yeZqTUao7CicKAOps9LUg2aQzsz+04QyuXL3qgf1cLUVRjA/D6G5u1RJAlN1w9VNHtODQ==} + engines: {node: '>=20.19.4'} + + metro-source-map@0.84.2: + resolution: {integrity: sha512-m6rRVBefzaAyn6dBk5GOabVchCQ3VIS1/MhCj61dJB5cqLOOx34BV3DRFwnDBkuPw2RR/LUoul0U1sixlS9VQg==} + engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} + + metro-symbolicate@0.83.5: + resolution: {integrity: sha512-EMIkrjNRz/hF+p0RDdxoE60+dkaTLPN3vaaGkFmX5lvFdO6HPfHA/Ywznzkev+za0VhPQ5KSdz49/MALBRteHA==} + engines: {node: '>=20.19.4'} + hasBin: true + + metro-symbolicate@0.84.2: + resolution: {integrity: sha512-o0RY49012YcGE1E4GsZtgzFCBPeoxlASzIsD5CNOTmAoKDIroHfTFFiYCGPLCGwRwQjMaCChhoH0TZCjAyyCKA==} + engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} + hasBin: true + + metro-transform-plugins@0.83.5: + resolution: {integrity: sha512-KxYKzZL+lt3Os5H2nx7YkbkWVduLZL5kPrE/Yq+Prm/DE1VLhpfnO6HtPs8vimYFKOa58ncl60GpoX0h7Wm0Vw==} + engines: {node: '>=20.19.4'} + + metro-transform-plugins@0.84.2: + resolution: {integrity: sha512-/821YLQv4PgD1NOruzPkr0r3HDALXqwCEECewyEQZ5hmSb8jzf1VdEpf3F8fx8zI4/5dHY/rARDVVuHCEb/Xrg==} + engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} + + metro-transform-worker@0.83.5: + resolution: {integrity: sha512-8N4pjkNXc6ytlP9oAM6MwqkvUepNSW39LKYl9NjUMpRDazBQ7oBpQDc8Sz4aI8jnH6AGhF7s1m/ayxkN1t04yA==} + engines: {node: '>=20.19.4'} + + metro-transform-worker@0.84.2: + resolution: {integrity: sha512-aR09svo3WC7OTYk5YB0VY0iSXOGrPdfmQWIxG8ADD2cKf/B95VR+y4GgVUbqB31buNvgtU+iCx9186i/YaNGlw==} + engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} + + metro@0.83.5: + resolution: {integrity: sha512-BgsXevY1MBac/3ZYv/RfNFf/4iuW9X7f4H8ZNkiH+r667HD9sVujxcmu4jvEzGCAm4/WyKdZCuyhAcyhTHOucQ==} + engines: {node: '>=20.19.4'} + hasBin: true + + metro@0.84.2: + resolution: {integrity: sha512-Qw7sl+e34cf/0LYEvDfVPiWvXmkvpuVgFqjzhPCc9Mw30NsvRFYZEH6I9zEHlpjugIveV+Jzdqt3YSPMU+Hx/w==} + engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} + hasBin: true + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-db@1.54.0: + resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mime-types@3.0.2: + resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==} + engines: {node: '>=18'} + + mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + + mimic-fn@1.2.0: + resolution: {integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==} + engines: {node: '>=4'} + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + minimatch@10.2.5: + resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} + engines: {node: 18 || 20 || >=22} + + minimatch@3.1.5: + resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} + + minimatch@5.1.9: + resolution: {integrity: sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==} + engines: {node: '>=10'} + + minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass@7.1.3: + resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} + engines: {node: '>=16 || 14 >=14.17'} + + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + multitars@0.2.4: + resolution: {integrity: sha512-XgLbg1HHchFauMCQPRwMj6MSyDd5koPlTA1hM3rUFkeXzGpjU/I9fP3to7yrObE9jcN8ChIOQGrM0tV0kUZaKg==} + + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + + negotiator@0.6.4: + resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} + engines: {node: '>= 0.6'} + + negotiator@1.0.0: + resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} + engines: {node: '>= 0.6'} + + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + node-forge@1.4.0: + resolution: {integrity: sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==} + engines: {node: '>= 6.13.0'} + + node-int64@0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + + node-releases@2.0.37: + resolution: {integrity: sha512-1h5gKZCF+pO/o3Iqt5Jp7wc9rH3eJJ0+nh/CIoiRwjRxde/hAHyLPXYN4V3CqKAbiZPSeJFSWHmJsbkicta0Eg==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + npm-package-arg@11.0.3: + resolution: {integrity: sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==} + engines: {node: ^16.14.0 || >=18.0.0} + + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + nullthrows@1.1.1: + resolution: {integrity: sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==} + + nwsapi@2.2.23: + resolution: {integrity: sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==} + + ob1@0.83.5: + resolution: {integrity: sha512-vNKPYC8L5ycVANANpF/S+WZHpfnRWKx/F3AYP4QMn6ZJTh+l2HOrId0clNkEmua58NB9vmI9Qh7YOoV/4folYg==} + engines: {node: '>=20.19.4'} + + ob1@0.84.2: + resolution: {integrity: sha512-JID0ti8tDRQZJdQ3l+UeVAsKP+dW5Ucmktes/J9FwqP5KarafoTMqWvw4LRKrMtA7yWT3r/+E2w5wapd89GToA==} + engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} + + on-finished@2.3.0: + resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} + engines: {node: '>= 0.8'} + + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + + on-headers@1.1.0: + resolution: {integrity: sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==} + engines: {node: '>= 0.8'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@2.0.1: + resolution: {integrity: sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==} + engines: {node: '>=4'} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + open@7.4.2: + resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} + engines: {node: '>=8'} + + open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + ora@3.4.0: + resolution: {integrity: sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==} + engines: {node: '>=6'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + parse-png@2.1.0: + resolution: {integrity: sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ==} + engines: {node: '>=10'} + + parse5@7.3.0: + resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} + + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-scurry@2.0.2: + resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} + engines: {node: 18 || 20 || >=22} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.2: + resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} + engines: {node: '>=8.6'} + + picomatch@4.0.4: + resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} + engines: {node: '>=12'} + + pirates@4.0.7: + resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} + engines: {node: '>= 6'} + + pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + + plist@3.1.0: + resolution: {integrity: sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==} + engines: {node: '>=10.4.0'} + + pngjs@3.4.0: + resolution: {integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==} + engines: {node: '>=4.0.0'} + + postcss@8.4.49: + resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} + engines: {node: ^10 || ^12 || >=14} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + proc-log@4.2.0: + resolution: {integrity: sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + progress@2.0.3: + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} + + promise@8.3.0: + resolution: {integrity: sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==} + + prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + + psl@1.15.0: + resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + pure-rand@6.1.0: + resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} + + querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + queue@6.0.2: + resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} + + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + react-devtools-core@6.1.5: + resolution: {integrity: sha512-ePrwPfxAnB+7hgnEr8vpKxL9cmnp7F322t8oqcPshbIQQhDKgFDW4tjhF2wjVbdXF9O/nyuy3sQWd9JGpiLPvA==} + + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + + react-native-get-random-values@1.11.0: + resolution: {integrity: sha512-4BTbDbRmS7iPdhYLRcz3PGFIpFJBwNZg9g42iwa2P6FOv9vZj/xJc678RZXnLNZzd0qd7Q3CCF6Yd+CU2eoXKQ==} + peerDependencies: + react-native: '>=0.56' + + react-native@0.85.0: + resolution: {integrity: sha512-z2ltUAS9xzdL4HQeG7wpsYMv2o35R4D8qZwbXu0SbeamZ4+ZIBxc84Ay4Vb6fRExBpsT06aZFV+W030W9JxDFQ==} + engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0} + hasBin: true + peerDependencies: + '@react-native/jest-preset': 0.85.0 + '@types/react': ^19.1.1 + react: ^19.2.3 + peerDependenciesMeta: + '@react-native/jest-preset': + optional: true + '@types/react': + optional: true + + react-refresh@0.14.2: + resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} + engines: {node: '>=0.10.0'} + + react@19.2.5: + resolution: {integrity: sha512-llUJLzz1zTUBrskt2pwZgLq59AemifIftw4aB7JxOqf1HY2FDaGDxgwpAPVzHU1kdWabH7FauP4i1oEeer2WCA==} + engines: {node: '>=0.10.0'} + + regenerate-unicode-properties@10.2.2: + resolution: {integrity: sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==} + engines: {node: '>=4'} + + regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + + regenerator-runtime@0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + + regexpu-core@6.4.0: + resolution: {integrity: sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==} + engines: {node: '>=4'} + + regjsgen@0.8.0: + resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} + + regjsparser@0.13.1: + resolution: {integrity: sha512-dLsljMd9sqwRkby8zhO1gSg3PnJIBFid8f4CQj/sXx+7cKx+E7u0PKhZ+U4wmhx7EfmtvnA318oVaIkAB1lRJw==} + hasBin: true + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + + resolve-cwd@3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + engines: {node: '>=8'} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + resolve-workspace-root@2.0.1: + resolution: {integrity: sha512-nR23LHAvaI6aHtMg6RWoaHpdR4D881Nydkzi2CixINyg9T00KgaJdJI6Vwty+Ps8WLxZHuxsS0BseWjxSA4C+w==} + + resolve.exports@2.0.3: + resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} + engines: {node: '>=10'} + + resolve@1.22.11: + resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} + engines: {node: '>= 0.4'} + hasBin: true + + restore-cursor@2.0.0: + resolution: {integrity: sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==} + engines: {node: '>=4'} + + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + rollup@4.60.1: + resolution: {integrity: sha512-VmtB2rFU/GroZ4oL8+ZqXgSA38O6GR8KSIvWmEFv63pQ0G6KaBH9s07PO8XTXP4vI+3UJUEypOfjkGfmSBBR0w==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + sax@1.6.0: + resolution: {integrity: sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==} + engines: {node: '>=11.0.0'} + + saxes@6.0.0: + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} + + scheduler@0.27.0: + resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.7.4: + resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} + engines: {node: '>=10'} + hasBin: true + + send@0.19.2: + resolution: {integrity: sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==} + engines: {node: '>= 0.8.0'} + + serialize-error@2.1.0: + resolution: {integrity: sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==} + engines: {node: '>=0.10.0'} + + serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + + serve-static@1.16.3: + resolution: {integrity: sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==} + engines: {node: '>= 0.8.0'} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + shell-quote@1.8.3: + resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} + engines: {node: '>= 0.4'} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + simple-plist@1.3.1: + resolution: {integrity: sha512-iMSw5i0XseMnrhtIzRb7XpQEXepa9xhWxGUojHBL43SIpQuDQkh3Wpy67ZbDzZVr6EKxvwVChnVpdl8hEVLDiw==} + + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + slugify@1.6.9: + resolution: {integrity: sha512-vZ7rfeehZui7wQs438JXBckYLkIIdfHOXsaVEUMyS5fHo1483l1bMdo0EDSWYclY0yZKFOipDy4KHuKs6ssvdg==} + engines: {node: '>=8.0.0'} + + smob@1.6.1: + resolution: {integrity: sha512-KAkBqZl3c2GvNgNhcoyJae1aKldDW0LO279wF9bk1PnluRTETKBq0WyzRXxEhoQLk56yHaOY4JCBEKDuJIET5g==} + engines: {node: '>=20.0.0'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + source-map-support@0.5.13: + resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + + stackframe@1.3.4: + resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} + + stacktrace-parser@0.1.11: + resolution: {integrity: sha512-WjlahMgHmCJpqzU8bIBy4qtsZdU9lRlcZE3Lvyej6t4tuOuv1vk57OW3MBrj6hXBFx/nNoC9MPMTcr5YA7NQbg==} + engines: {node: '>=6'} + + statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + + statuses@2.0.2: + resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} + engines: {node: '>= 0.8'} + + stream-buffers@2.2.0: + resolution: {integrity: sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg==} + engines: {node: '>= 0.10.0'} + + string-length@4.0.2: + resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} + engines: {node: '>=10'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + strip-ansi@5.2.0: + resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} + engines: {node: '>=6'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + structured-headers@0.4.1: + resolution: {integrity: sha512-0MP/Cxx5SzeeZ10p/bZI0S6MpgD+yxAhi1BOQ34jgnMXsCq3j1t6tQnZu+KdlL7dvJTLT3g9xN8tl10TqgFMcg==} + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + supports-hyperlinks@2.3.0: + resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} + engines: {node: '>=8'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + symbol-tree@3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + + terminal-link@2.1.1: + resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==} + engines: {node: '>=8'} + + terser@5.46.1: + resolution: {integrity: sha512-vzCjQO/rgUuK9sf8VJZvjqiqiHFaZLnOiimmUuOKODxWL8mm/xua7viT7aqX7dgPY60otQjUotzFMmCB4VdmqQ==} + engines: {node: '>=10'} + hasBin: true + + test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + throat@5.0.0: + resolution: {integrity: sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==} + + tinyglobby@0.2.16: + resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==} + engines: {node: '>=12.0.0'} + + tmpl@1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + toqr@0.1.1: + resolution: {integrity: sha512-FWAPzCIHZHnrE/5/w9MPk0kK25hSQSH2IKhYh9PyjS3SG/+IEMvlwIHbhz+oF7xl54I+ueZlVnMjyzdSwLmAwA==} + + tough-cookie@4.1.4: + resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} + engines: {node: '>=6'} + + tr46@3.0.0: + resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} + engines: {node: '>=12'} + + ts-api-utils@1.4.3: + resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + + ts-jest@29.4.9: + resolution: {integrity: sha512-LTb9496gYPMCqjeDLdPrKuXtncudeV1yRZnF4Wo5l3SFi0RYEnYRNgMrFIdg+FHvfzjCyQk1cLncWVqiSX+EvQ==} + engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@babel/core': '>=7.0.0-beta.0 <8' + '@jest/transform': ^29.0.0 || ^30.0.0 + '@jest/types': ^29.0.0 || ^30.0.0 + babel-jest: ^29.0.0 || ^30.0.0 + esbuild: '*' + jest: ^29.0.0 || ^30.0.0 + jest-util: ^29.0.0 || ^30.0.0 + typescript: '>=4.3 <7' + peerDependenciesMeta: + '@babel/core': + optional: true + '@jest/transform': + optional: true + '@jest/types': + optional: true + babel-jest: + optional: true + esbuild: + optional: true + jest-util: + optional: true + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + + type-fest@0.7.1: + resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==} + engines: {node: '>=8'} + + type-fest@4.41.0: + resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} + engines: {node: '>=16'} + + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} + hasBin: true + + ua-parser-js@0.7.41: + resolution: {integrity: sha512-O3oYyCMPYgNNHuO7Jjk3uacJWZF8loBgwrfd/5LE/HyZ3lUIOdniQ7DNXJcIgZbwioZxk0fLfI4EVnetdiX5jg==} + hasBin: true + + uglify-js@3.19.3: + resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} + engines: {node: '>=0.8.0'} + hasBin: true + + undici-types@7.19.2: + resolution: {integrity: sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==} + + unicode-canonical-property-names-ecmascript@2.0.1: + resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} + engines: {node: '>=4'} + + unicode-match-property-ecmascript@2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} + + unicode-match-property-value-ecmascript@2.2.1: + resolution: {integrity: sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==} + engines: {node: '>=4'} + + unicode-property-aliases-ecmascript@2.2.0: + resolution: {integrity: sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==} + engines: {node: '>=4'} + + universalify@0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + + unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + + update-browserslist-db@1.2.3: + resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + + utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + + uuid@11.1.0: + resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==} + hasBin: true + + uuid@7.0.3: + resolution: {integrity: sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==} + hasBin: true + + v8-to-istanbul@9.3.0: + resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} + engines: {node: '>=10.12.0'} + + validate-npm-package-name@5.0.1: + resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + + vlq@1.0.1: + resolution: {integrity: sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==} + + w3c-xmlserializer@4.0.0: + resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} + engines: {node: '>=14'} + + walker@1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + + wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + + webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + + whatwg-encoding@2.0.0: + resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} + engines: {node: '>=12'} + deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation + + whatwg-fetch@3.6.20: + resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==} + + whatwg-mimetype@3.0.0: + resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} + engines: {node: '>=12'} + + whatwg-url-minimum@0.1.1: + resolution: {integrity: sha512-u2FNVjFVFZhdjb502KzXy1gKn1mEisQRJssmSJT8CPhZdZa0AP6VCbWlXERKyGu0l09t0k50FiDiralpGhBxgA==} + + whatwg-url@11.0.0: + resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} + engines: {node: '>=12'} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + write-file-atomic@4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + ws@7.5.10: + resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.20.0: + resolution: {integrity: sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + xcode@3.0.1: + resolution: {integrity: sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==} + engines: {node: '>=10.0.0'} + + xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + + xml2js@0.6.0: + resolution: {integrity: sha512-eLTh0kA8uHceqesPqSE+VvO1CDDJWMwlQfB6LuN6T8w6MaDJ8Txm8P7s5cHD0miF0V+GGTZrDQfxPZQVsur33w==} + engines: {node: '>=4.0.0'} + + xmlbuilder@11.0.1: + resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} + engines: {node: '>=4.0'} + + xmlbuilder@15.1.1: + resolution: {integrity: sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==} + engines: {node: '>=8.0'} + + xmlchars@2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yaml@2.8.3: + resolution: {integrity: sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==} + engines: {node: '>= 14.6'} + hasBin: true + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + zod@3.25.76: + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} + +snapshots: + + '@babel/code-frame@7.29.0': + dependencies: + '@babel/helper-validator-identifier': 7.28.5 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/compat-data@7.29.0': {} + + '@babel/core@7.29.0': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helpers': 7.29.2 + '@babel/parser': 7.29.2 + '@babel/template': 7.28.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + '@jridgewell/remapping': 2.3.5 + convert-source-map: 2.0.0 + debug: 4.4.3 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.29.1': + dependencies: + '@babel/parser': 7.29.2 + '@babel/types': 7.29.0 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 + + '@babel/helper-annotate-as-pure@7.27.3': + dependencies: + '@babel/types': 7.29.0 + + '@babel/helper-compilation-targets@7.28.6': + dependencies: + '@babel/compat-data': 7.29.0 + '@babel/helper-validator-option': 7.27.1 + browserslist: 4.28.2 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-create-class-features-plugin@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-member-expression-to-functions': 7.28.5 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0) + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/traverse': 7.29.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-create-regexp-features-plugin@7.28.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + regexpu-core: 6.4.0 + semver: 6.3.1 + + '@babel/helper-define-polyfill-provider@0.6.8(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + debug: 4.4.3 + lodash.debounce: 4.0.8 + resolve: 1.22.11 + transitivePeerDependencies: + - supports-color + + '@babel/helper-globals@7.28.0': {} + + '@babel/helper-member-expression-to-functions@7.28.5': + dependencies: + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-imports@7.28.6': + dependencies: + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-optimise-call-expression@7.27.1': + dependencies: + '@babel/types': 7.29.0 + + '@babel/helper-plugin-utils@7.28.6': {} + + '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-wrap-function': 7.28.6 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-replace-supers@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-member-expression-to-functions': 7.28.5 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': + dependencies: + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-string-parser@7.27.1': {} + + '@babel/helper-validator-identifier@7.28.5': {} + + '@babel/helper-validator-option@7.27.1': {} + + '@babel/helper-wrap-function@7.28.6': + dependencies: + '@babel/template': 7.28.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helpers@7.29.2': + dependencies: + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 + + '@babel/parser@7.29.2': + dependencies: + '@babel/types': 7.29.0 + + '@babel/plugin-proposal-decorators@7.29.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-decorators': 7.28.6(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-export-default-from@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-decorators@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-export-default-from@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-flow@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-import-attributes@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-typescript@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-async-generator-functions@7.29.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.0) + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-async-to-generator@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-block-scoping@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-class-properties@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-class-static-block@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-classes@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-globals': 7.28.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0) + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-computed-properties@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/template': 7.28.6 + + '@babel/plugin-transform-destructuring@7.28.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-flow-strip-types@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-flow': 7.28.6(@babel/core@7.29.0) + + '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-literals@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-logical-assignment-operators@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-modules-commonjs@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-named-capturing-groups-regex@7.29.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-nullish-coalescing-operator@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-numeric-separator@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-object-rest-spread@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-optional-catch-binding@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-optional-chaining@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-private-methods@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-private-property-in-object@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-react-display-name@7.28.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-react-jsx-development@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-react-jsx@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-react-pure-annotations@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-regenerator@7.29.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-runtime@7.29.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + babel-plugin-polyfill-corejs2: 0.4.17(@babel/core@7.29.0) + babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.29.0) + babel-plugin-polyfill-regenerator: 0.6.8(@babel/core@7.29.0) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-spread@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-typescript@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/preset-react@7.28.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-validator-option': 7.27.1 + '@babel/plugin-transform-react-display-name': 7.28.0(@babel/core@7.29.0) + '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-react-pure-annotations': 7.27.1(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/preset-typescript@7.28.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-validator-option': 7.27.1 + '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/runtime@7.29.2': {} + + '@babel/template@7.28.6': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/parser': 7.29.2 + '@babel/types': 7.29.0 + + '@babel/traverse@7.29.0': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.29.2 + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.29.0': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + + '@bcoe/v8-coverage@0.2.3': {} + + '@eslint-community/eslint-utils@4.9.1(eslint@8.57.1)': + dependencies: + eslint: 8.57.1 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.2': {} + + '@eslint/eslintrc@2.1.4': + dependencies: + ajv: 6.14.0 + debug: 4.4.3 + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.2 + import-fresh: 3.3.1 + js-yaml: 4.1.1 + minimatch: 3.1.5 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@8.57.1': {} + + '@expo/cli@55.0.23(@expo/dom-webview@55.0.5)(expo-constants@55.0.13(expo@55.0.13)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(typescript@5.9.3))(expo-font@55.0.6(expo@55.0.13)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5))(expo@55.0.13)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5)(typescript@5.9.3)': + dependencies: + '@expo/code-signing-certificates': 0.0.6 + '@expo/config': 55.0.14(typescript@5.9.3) + '@expo/config-plugins': 55.0.8 + '@expo/devcert': 1.2.1 + '@expo/env': 2.1.1 + '@expo/image-utils': 0.8.13(typescript@5.9.3) + '@expo/json-file': 10.0.13 + '@expo/log-box': 55.0.10(@expo/dom-webview@55.0.5)(expo@55.0.13)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5) + '@expo/metro': 55.0.0 + '@expo/metro-config': 55.0.15(expo@55.0.13)(typescript@5.9.3) + '@expo/osascript': 2.4.2 + '@expo/package-manager': 1.10.4 + '@expo/plist': 0.5.2 + '@expo/prebuild-config': 55.0.14(expo@55.0.13)(typescript@5.9.3) + '@expo/require-utils': 55.0.4(typescript@5.9.3) + '@expo/router-server': 55.0.14(expo-constants@55.0.13(expo@55.0.13)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(typescript@5.9.3))(expo-font@55.0.6(expo@55.0.13)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5))(expo-server@55.0.7)(expo@55.0.13)(react@19.2.5) + '@expo/schema-utils': 55.0.3 + '@expo/spawn-async': 1.7.2 + '@expo/ws-tunnel': 1.0.6 + '@expo/xcpretty': 4.4.3 + '@react-native/dev-middleware': 0.83.4 + accepts: 1.3.8 + arg: 5.0.2 + better-opn: 3.0.2 + bplist-creator: 0.1.0 + bplist-parser: 0.3.2 + chalk: 4.1.2 + ci-info: 3.9.0 + compression: 1.8.1 + connect: 3.7.0 + debug: 4.4.3 + dnssd-advertise: 1.1.4 + expo: 55.0.13(@babel/core@7.29.0)(@expo/dom-webview@55.0.5)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5)(typescript@5.9.3) + expo-server: 55.0.7 + fetch-nodeshim: 0.4.10 + getenv: 2.0.0 + glob: 13.0.6 + lan-network: 0.2.1 + multitars: 0.2.4 + node-forge: 1.4.0 + npm-package-arg: 11.0.3 + ora: 3.4.0 + picomatch: 4.0.4 + pretty-format: 29.7.0 + progress: 2.0.3 + prompts: 2.4.2 + resolve-from: 5.0.0 + semver: 7.7.4 + send: 0.19.2 + slugify: 1.6.9 + source-map-support: 0.5.21 + stacktrace-parser: 0.1.11 + structured-headers: 0.4.1 + terminal-link: 2.1.1 + toqr: 0.1.1 + wrap-ansi: 7.0.0 + ws: 8.20.0 + zod: 3.25.76 + optionalDependencies: + react-native: 0.85.0(@babel/core@7.29.0)(react@19.2.5) + transitivePeerDependencies: + - '@expo/dom-webview' + - '@expo/metro-runtime' + - bufferutil + - expo-constants + - expo-font + - react + - react-dom + - react-server-dom-webpack + - supports-color + - typescript + - utf-8-validate + + '@expo/code-signing-certificates@0.0.6': + dependencies: + node-forge: 1.4.0 + + '@expo/config-plugins@55.0.8': + dependencies: + '@expo/config-types': 55.0.5 + '@expo/json-file': 10.0.13 + '@expo/plist': 0.5.2 + '@expo/sdk-runtime-versions': 1.0.0 + chalk: 4.1.2 + debug: 4.4.3 + getenv: 2.0.0 + glob: 13.0.6 + resolve-from: 5.0.0 + semver: 7.7.4 + slugify: 1.6.9 + xcode: 3.0.1 + xml2js: 0.6.0 + transitivePeerDependencies: + - supports-color + + '@expo/config-types@55.0.5': {} + + '@expo/config@55.0.14(typescript@5.9.3)': + dependencies: + '@expo/config-plugins': 55.0.8 + '@expo/config-types': 55.0.5 + '@expo/json-file': 10.0.13 + '@expo/require-utils': 55.0.4(typescript@5.9.3) + deepmerge: 4.3.1 + getenv: 2.0.0 + glob: 13.0.6 + resolve-workspace-root: 2.0.1 + semver: 7.7.4 + slugify: 1.6.9 + transitivePeerDependencies: + - supports-color + - typescript + + '@expo/devcert@1.2.1': + dependencies: + '@expo/sudo-prompt': 9.3.2 + debug: 3.2.7 + transitivePeerDependencies: + - supports-color + + '@expo/devtools@55.0.2(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5)': + dependencies: + chalk: 4.1.2 + optionalDependencies: + react: 19.2.5 + react-native: 0.85.0(@babel/core@7.29.0)(react@19.2.5) + + '@expo/dom-webview@55.0.5(expo@55.0.13)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5)': + dependencies: + expo: 55.0.13(@babel/core@7.29.0)(@expo/dom-webview@55.0.5)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5)(typescript@5.9.3) + react: 19.2.5 + react-native: 0.85.0(@babel/core@7.29.0)(react@19.2.5) + + '@expo/env@2.1.1': + dependencies: + chalk: 4.1.2 + debug: 4.4.3 + getenv: 2.0.0 + transitivePeerDependencies: + - supports-color + + '@expo/fingerprint@0.16.6': + dependencies: + '@expo/env': 2.1.1 + '@expo/spawn-async': 1.7.2 + arg: 5.0.2 + chalk: 4.1.2 + debug: 4.4.3 + getenv: 2.0.0 + glob: 13.0.6 + ignore: 5.3.2 + minimatch: 10.2.5 + resolve-from: 5.0.0 + semver: 7.7.4 + transitivePeerDependencies: + - supports-color + + '@expo/image-utils@0.8.13(typescript@5.9.3)': + dependencies: + '@expo/require-utils': 55.0.4(typescript@5.9.3) + '@expo/spawn-async': 1.7.2 + chalk: 4.1.2 + getenv: 2.0.0 + jimp-compact: 0.16.1 + parse-png: 2.1.0 + semver: 7.7.4 + transitivePeerDependencies: + - supports-color + - typescript + + '@expo/json-file@10.0.13': + dependencies: + '@babel/code-frame': 7.29.0 + json5: 2.2.3 + + '@expo/local-build-cache-provider@55.0.10(typescript@5.9.3)': + dependencies: + '@expo/config': 55.0.14(typescript@5.9.3) + chalk: 4.1.2 + transitivePeerDependencies: + - supports-color + - typescript + + '@expo/log-box@55.0.10(@expo/dom-webview@55.0.5)(expo@55.0.13)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5)': + dependencies: + '@expo/dom-webview': 55.0.5(expo@55.0.13)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5) + anser: 1.4.10 + expo: 55.0.13(@babel/core@7.29.0)(@expo/dom-webview@55.0.5)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5)(typescript@5.9.3) + react: 19.2.5 + react-native: 0.85.0(@babel/core@7.29.0)(react@19.2.5) + stacktrace-parser: 0.1.11 + + '@expo/metro-config@55.0.15(expo@55.0.13)(typescript@5.9.3)': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/core': 7.29.0 + '@babel/generator': 7.29.1 + '@expo/config': 55.0.14(typescript@5.9.3) + '@expo/env': 2.1.1 + '@expo/json-file': 10.0.13 + '@expo/metro': 55.0.0 + '@expo/spawn-async': 1.7.2 + browserslist: 4.28.2 + chalk: 4.1.2 + debug: 4.4.3 + getenv: 2.0.0 + glob: 13.0.6 + hermes-parser: 0.32.1 + jsc-safe-url: 0.2.4 + lightningcss: 1.32.0 + picomatch: 4.0.4 + postcss: 8.4.49 + resolve-from: 5.0.0 + optionalDependencies: + expo: 55.0.13(@babel/core@7.29.0)(@expo/dom-webview@55.0.5)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5)(typescript@5.9.3) + transitivePeerDependencies: + - bufferutil + - supports-color + - typescript + - utf-8-validate + + '@expo/metro@55.0.0': + dependencies: + metro: 0.83.5 + metro-babel-transformer: 0.83.5 + metro-cache: 0.83.5 + metro-cache-key: 0.83.5 + metro-config: 0.83.5 + metro-core: 0.83.5 + metro-file-map: 0.83.5 + metro-minify-terser: 0.83.5 + metro-resolver: 0.83.5 + metro-runtime: 0.83.5 + metro-source-map: 0.83.5 + metro-symbolicate: 0.83.5 + metro-transform-plugins: 0.83.5 + metro-transform-worker: 0.83.5 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@expo/osascript@2.4.2': + dependencies: + '@expo/spawn-async': 1.7.2 + + '@expo/package-manager@1.10.4': + dependencies: + '@expo/json-file': 10.0.13 + '@expo/spawn-async': 1.7.2 + chalk: 4.1.2 + npm-package-arg: 11.0.3 + ora: 3.4.0 + resolve-workspace-root: 2.0.1 + + '@expo/plist@0.5.2': + dependencies: + '@xmldom/xmldom': 0.8.12 + base64-js: 1.5.1 + xmlbuilder: 15.1.1 + + '@expo/prebuild-config@55.0.14(expo@55.0.13)(typescript@5.9.3)': + dependencies: + '@expo/config': 55.0.14(typescript@5.9.3) + '@expo/config-plugins': 55.0.8 + '@expo/config-types': 55.0.5 + '@expo/image-utils': 0.8.13(typescript@5.9.3) + '@expo/json-file': 10.0.13 + '@react-native/normalize-colors': 0.83.4 + debug: 4.4.3 + expo: 55.0.13(@babel/core@7.29.0)(@expo/dom-webview@55.0.5)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5)(typescript@5.9.3) + resolve-from: 5.0.0 + semver: 7.7.4 + xml2js: 0.6.0 + transitivePeerDependencies: + - supports-color + - typescript + + '@expo/require-utils@55.0.4(typescript@5.9.3)': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/core': 7.29.0 + '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.0) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@expo/router-server@55.0.14(expo-constants@55.0.13(expo@55.0.13)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(typescript@5.9.3))(expo-font@55.0.6(expo@55.0.13)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5))(expo-server@55.0.7)(expo@55.0.13)(react@19.2.5)': + dependencies: + debug: 4.4.3 + expo: 55.0.13(@babel/core@7.29.0)(@expo/dom-webview@55.0.5)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5)(typescript@5.9.3) + expo-constants: 55.0.13(expo@55.0.13)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(typescript@5.9.3) + expo-font: 55.0.6(expo@55.0.13)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5) + expo-server: 55.0.7 + react: 19.2.5 + transitivePeerDependencies: + - supports-color + + '@expo/schema-utils@55.0.3': {} + + '@expo/sdk-runtime-versions@1.0.0': {} + + '@expo/spawn-async@1.7.2': + dependencies: + cross-spawn: 7.0.6 + + '@expo/sudo-prompt@9.3.2': {} + + '@expo/vector-icons@15.1.1(expo-font@55.0.6(expo@55.0.13)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5))(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5)': + dependencies: + expo-font: 55.0.6(expo@55.0.13)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5) + react: 19.2.5 + react-native: 0.85.0(@babel/core@7.29.0)(react@19.2.5) + + '@expo/ws-tunnel@1.0.6': {} + + '@expo/xcpretty@4.4.3': + dependencies: + '@babel/code-frame': 7.29.0 + chalk: 4.1.2 + js-yaml: 4.1.1 + + '@humanwhocodes/config-array@0.13.0': + dependencies: + '@humanwhocodes/object-schema': 2.0.3 + debug: 4.4.3 + minimatch: 3.1.5 + transitivePeerDependencies: + - supports-color + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/object-schema@2.0.3': {} + + '@isaacs/ttlcache@1.4.1': {} + + '@istanbuljs/load-nyc-config@1.1.0': + dependencies: + camelcase: 5.3.1 + find-up: 4.1.0 + get-package-type: 0.1.0 + js-yaml: 3.14.2 + resolve-from: 5.0.0 + + '@istanbuljs/schema@0.1.3': {} + + '@jest/console@29.7.0': + dependencies: + '@jest/types': 29.6.3 + '@types/node': 25.6.0 + chalk: 4.1.2 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + slash: 3.0.0 + + '@jest/core@29.7.0': + dependencies: + '@jest/console': 29.7.0 + '@jest/reporters': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 25.6.0 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + ci-info: 3.9.0 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-changed-files: 29.7.0 + jest-config: 29.7.0(@types/node@25.6.0) + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-resolve-dependencies: 29.7.0 + jest-runner: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + jest-watcher: 29.7.0 + micromatch: 4.0.8 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-ansi: 6.0.1 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + - ts-node + + '@jest/environment@29.7.0': + dependencies: + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 25.6.0 + jest-mock: 29.7.0 + + '@jest/expect-utils@29.7.0': + dependencies: + jest-get-type: 29.6.3 + + '@jest/expect@29.7.0': + dependencies: + expect: 29.7.0 + jest-snapshot: 29.7.0 + transitivePeerDependencies: + - supports-color + + '@jest/fake-timers@29.7.0': + dependencies: + '@jest/types': 29.6.3 + '@sinonjs/fake-timers': 10.3.0 + '@types/node': 25.6.0 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-util: 29.7.0 + + '@jest/globals@29.7.0': + dependencies: + '@jest/environment': 29.7.0 + '@jest/expect': 29.7.0 + '@jest/types': 29.6.3 + jest-mock: 29.7.0 + transitivePeerDependencies: + - supports-color + + '@jest/reporters@29.7.0': + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@jest/console': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@jridgewell/trace-mapping': 0.3.31 + '@types/node': 25.6.0 + chalk: 4.1.2 + collect-v8-coverage: 1.0.3 + exit: 0.1.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-instrument: 6.0.3 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.2.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + jest-worker: 29.7.0 + slash: 3.0.0 + string-length: 4.0.2 + strip-ansi: 6.0.1 + v8-to-istanbul: 9.3.0 + transitivePeerDependencies: + - supports-color + + '@jest/schemas@29.6.3': + dependencies: + '@sinclair/typebox': 0.27.10 + + '@jest/source-map@29.6.3': + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + callsites: 3.1.0 + graceful-fs: 4.2.11 + + '@jest/test-result@29.7.0': + dependencies: + '@jest/console': 29.7.0 + '@jest/types': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.6 + collect-v8-coverage: 1.0.3 + + '@jest/test-sequencer@29.7.0': + dependencies: + '@jest/test-result': 29.7.0 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + slash: 3.0.0 + + '@jest/transform@29.7.0': + dependencies: + '@babel/core': 7.29.0 + '@jest/types': 29.6.3 + '@jridgewell/trace-mapping': 0.3.31 + babel-plugin-istanbul: 6.1.1 + chalk: 4.1.2 + convert-source-map: 2.0.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + micromatch: 4.0.8 + pirates: 4.0.7 + slash: 3.0.0 + write-file-atomic: 4.0.2 + transitivePeerDependencies: + - supports-color + + '@jest/types@29.6.3': + dependencies: + '@jest/schemas': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 25.6.0 + '@types/yargs': 17.0.35 + chalk: 4.1.2 + + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/source-map@0.3.11': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.20.1 + + '@react-native-async-storage/async-storage@2.2.0(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))': + dependencies: + merge-options: 3.0.4 + react-native: 0.85.0(@babel/core@7.29.0)(react@19.2.5) + + '@react-native/assets-registry@0.85.0': {} + + '@react-native/babel-plugin-codegen@0.83.4(@babel/core@7.29.0)': + dependencies: + '@babel/traverse': 7.29.0 + '@react-native/codegen': 0.83.4(@babel/core@7.29.0) + transitivePeerDependencies: + - '@babel/core' + - supports-color + + '@react-native/babel-preset@0.83.4(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/plugin-proposal-export-default-from': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-syntax-export-default-from': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-async-generator-functions': 7.29.0(@babel/core@7.29.0) + '@babel/plugin-transform-async-to-generator': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-block-scoping': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-class-properties': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-classes': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-computed-properties': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0) + '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-logical-assignment-operators': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-named-capturing-groups-regex': 7.29.0(@babel/core@7.29.0) + '@babel/plugin-transform-nullish-coalescing-operator': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-numeric-separator': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-object-rest-spread': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-optional-catch-binding': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-optional-chaining': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) + '@babel/plugin-transform-private-methods': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-private-property-in-object': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-react-display-name': 7.28.0(@babel/core@7.29.0) + '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-regenerator': 7.29.0(@babel/core@7.29.0) + '@babel/plugin-transform-runtime': 7.29.0(@babel/core@7.29.0) + '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-spread': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.29.0) + '@babel/template': 7.28.6 + '@react-native/babel-plugin-codegen': 0.83.4(@babel/core@7.29.0) + babel-plugin-syntax-hermes-parser: 0.32.0 + babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.29.0) + react-refresh: 0.14.2 + transitivePeerDependencies: + - supports-color + + '@react-native/codegen@0.83.4(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/parser': 7.29.2 + glob: 7.2.3 + hermes-parser: 0.32.0 + invariant: 2.2.4 + nullthrows: 1.1.1 + yargs: 17.7.2 + + '@react-native/codegen@0.85.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/parser': 7.29.2 + hermes-parser: 0.33.3 + invariant: 2.2.4 + nullthrows: 1.1.1 + tinyglobby: 0.2.16 + yargs: 17.7.2 + + '@react-native/community-cli-plugin@0.85.0': + dependencies: + '@react-native/dev-middleware': 0.85.0 + debug: 4.4.3 + invariant: 2.2.4 + metro: 0.84.2 + metro-config: 0.84.2 + metro-core: 0.84.2 + semver: 7.7.4 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@react-native/debugger-frontend@0.83.4': {} + + '@react-native/debugger-frontend@0.85.0': {} + + '@react-native/debugger-shell@0.83.4': + dependencies: + cross-spawn: 7.0.6 + fb-dotslash: 0.5.8 + + '@react-native/debugger-shell@0.85.0': + dependencies: + cross-spawn: 7.0.6 + debug: 4.4.3 + fb-dotslash: 0.5.8 + transitivePeerDependencies: + - supports-color + + '@react-native/dev-middleware@0.83.4': + dependencies: + '@isaacs/ttlcache': 1.4.1 + '@react-native/debugger-frontend': 0.83.4 + '@react-native/debugger-shell': 0.83.4 + chrome-launcher: 0.15.2 + chromium-edge-launcher: 0.2.0 + connect: 3.7.0 + debug: 4.4.3 + invariant: 2.2.4 + nullthrows: 1.1.1 + open: 7.4.2 + serve-static: 1.16.3 + ws: 7.5.10 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@react-native/dev-middleware@0.85.0': + dependencies: + '@isaacs/ttlcache': 1.4.1 + '@react-native/debugger-frontend': 0.85.0 + '@react-native/debugger-shell': 0.85.0 + chrome-launcher: 0.15.2 + chromium-edge-launcher: 0.3.0 + connect: 3.7.0 + debug: 4.4.3 + invariant: 2.2.4 + nullthrows: 1.1.1 + open: 7.4.2 + serve-static: 1.16.3 + ws: 7.5.10 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@react-native/gradle-plugin@0.85.0': {} + + '@react-native/js-polyfills@0.85.0': {} + + '@react-native/normalize-colors@0.83.4': {} + + '@react-native/normalize-colors@0.85.0': {} + + '@react-native/virtualized-lists@0.85.0(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5)': + dependencies: + invariant: 2.2.4 + nullthrows: 1.1.1 + react: 19.2.5 + react-native: 0.85.0(@babel/core@7.29.0)(react@19.2.5) + + '@rollup/plugin-commonjs@25.0.8(rollup@4.60.1)': + dependencies: + '@rollup/pluginutils': 5.3.0(rollup@4.60.1) + commondir: 1.0.1 + estree-walker: 2.0.2 + glob: 8.1.0 + is-reference: 1.2.1 + magic-string: 0.30.21 + optionalDependencies: + rollup: 4.60.1 + + '@rollup/plugin-node-resolve@15.3.1(rollup@4.60.1)': + dependencies: + '@rollup/pluginutils': 5.3.0(rollup@4.60.1) + '@types/resolve': 1.20.2 + deepmerge: 4.3.1 + is-module: 1.0.0 + resolve: 1.22.11 + optionalDependencies: + rollup: 4.60.1 + + '@rollup/plugin-terser@0.4.4(rollup@4.60.1)': + dependencies: + serialize-javascript: 6.0.2 + smob: 1.6.1 + terser: 5.46.1 + optionalDependencies: + rollup: 4.60.1 + + '@rollup/plugin-typescript@11.1.6(rollup@4.60.1)(tslib@2.8.1)(typescript@5.9.3)': + dependencies: + '@rollup/pluginutils': 5.3.0(rollup@4.60.1) + resolve: 1.22.11 + typescript: 5.9.3 + optionalDependencies: + rollup: 4.60.1 + tslib: 2.8.1 + + '@rollup/pluginutils@5.3.0(rollup@4.60.1)': + dependencies: + '@types/estree': 1.0.8 + estree-walker: 2.0.2 + picomatch: 4.0.4 + optionalDependencies: + rollup: 4.60.1 + + '@rollup/rollup-android-arm-eabi@4.60.1': + optional: true + + '@rollup/rollup-android-arm64@4.60.1': + optional: true + + '@rollup/rollup-darwin-arm64@4.60.1': + optional: true + + '@rollup/rollup-darwin-x64@4.60.1': + optional: true + + '@rollup/rollup-freebsd-arm64@4.60.1': + optional: true + + '@rollup/rollup-freebsd-x64@4.60.1': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.60.1': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.60.1': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.60.1': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.60.1': + optional: true + + '@rollup/rollup-linux-loong64-gnu@4.60.1': + optional: true + + '@rollup/rollup-linux-loong64-musl@4.60.1': + optional: true + + '@rollup/rollup-linux-ppc64-gnu@4.60.1': + optional: true + + '@rollup/rollup-linux-ppc64-musl@4.60.1': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.60.1': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.60.1': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.60.1': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.60.1': + optional: true + + '@rollup/rollup-linux-x64-musl@4.60.1': + optional: true + + '@rollup/rollup-openbsd-x64@4.60.1': + optional: true + + '@rollup/rollup-openharmony-arm64@4.60.1': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.60.1': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.60.1': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.60.1': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.60.1': + optional: true + + '@sinclair/typebox@0.27.10': {} + + '@sinonjs/commons@3.0.1': + dependencies: + type-detect: 4.0.8 + + '@sinonjs/fake-timers@10.3.0': + dependencies: + '@sinonjs/commons': 3.0.1 + + '@tootallnate/once@2.0.0': {} + + '@types/babel__core@7.20.5': + dependencies: + '@babel/parser': 7.29.2 + '@babel/types': 7.29.0 + '@types/babel__generator': 7.27.0 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.28.0 + + '@types/babel__generator@7.27.0': + dependencies: + '@babel/types': 7.29.0 + + '@types/babel__template@7.4.4': + dependencies: + '@babel/parser': 7.29.2 + '@babel/types': 7.29.0 + + '@types/babel__traverse@7.28.0': + dependencies: + '@babel/types': 7.29.0 + + '@types/estree@1.0.8': {} + + '@types/graceful-fs@4.1.9': + dependencies: + '@types/node': 25.6.0 + + '@types/istanbul-lib-coverage@2.0.6': {} + + '@types/istanbul-lib-report@3.0.3': + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + + '@types/istanbul-reports@3.0.4': + dependencies: + '@types/istanbul-lib-report': 3.0.3 + + '@types/jest@29.5.14': + dependencies: + expect: 29.7.0 + pretty-format: 29.7.0 + + '@types/jsdom@20.0.1': + dependencies: + '@types/node': 25.6.0 + '@types/tough-cookie': 4.0.5 + parse5: 7.3.0 + + '@types/json-schema@7.0.15': {} + + '@types/node@25.6.0': + dependencies: + undici-types: 7.19.2 + + '@types/resolve@1.20.2': {} + + '@types/semver@7.7.1': {} + + '@types/stack-utils@2.0.3': {} + + '@types/tough-cookie@4.0.5': {} + + '@types/yargs-parser@21.0.3': {} + + '@types/yargs@17.0.35': + dependencies: + '@types/yargs-parser': 21.0.3 + + '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)': + dependencies: + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/type-utils': 6.21.0(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/utils': 6.21.0(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.4.3 + eslint: 8.57.1 + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare: 1.4.0 + semver: 7.7.4 + ts-api-utils: 1.4.3(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3)': + dependencies: + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.4.3 + eslint: 8.57.1 + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@6.21.0': + dependencies: + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 + + '@typescript-eslint/type-utils@6.21.0(eslint@8.57.1)(typescript@5.9.3)': + dependencies: + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.9.3) + '@typescript-eslint/utils': 6.21.0(eslint@8.57.1)(typescript@5.9.3) + debug: 4.4.3 + eslint: 8.57.1 + ts-api-utils: 1.4.3(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@6.21.0': {} + + '@typescript-eslint/typescript-estree@6.21.0(typescript@5.9.3)': + dependencies: + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.4.3 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.3 + semver: 7.7.4 + ts-api-utils: 1.4.3(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@6.21.0(eslint@8.57.1)(typescript@5.9.3)': + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1) + '@types/json-schema': 7.0.15 + '@types/semver': 7.7.1 + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.9.3) + eslint: 8.57.1 + semver: 7.7.4 + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/visitor-keys@6.21.0': + dependencies: + '@typescript-eslint/types': 6.21.0 + eslint-visitor-keys: 3.4.3 + + '@ungap/structured-clone@1.3.0': {} + + '@xmldom/xmldom@0.8.12': {} + + abab@2.0.6: {} + + abort-controller@3.0.0: + dependencies: + event-target-shim: 5.0.1 + + accepts@1.3.8: + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + + accepts@2.0.0: + dependencies: + mime-types: 3.0.2 + negotiator: 1.0.0 + + acorn-globals@7.0.1: + dependencies: + acorn: 8.16.0 + acorn-walk: 8.3.5 + + acorn-jsx@5.3.2(acorn@8.16.0): + dependencies: + acorn: 8.16.0 + + acorn-walk@8.3.5: + dependencies: + acorn: 8.16.0 + + acorn@8.16.0: {} + + agent-base@6.0.2: + dependencies: + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + agent-base@7.1.4: {} + + ajv@6.14.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + anser@1.4.10: {} + + ansi-escapes@4.3.2: + dependencies: + type-fest: 0.21.3 + + ansi-regex@4.1.1: {} + + ansi-regex@5.0.1: {} + + ansi-styles@3.2.1: + dependencies: + color-convert: 1.9.3 + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@5.2.0: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.2 + + arg@5.0.2: {} + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + argparse@2.0.1: {} + + array-union@2.1.0: {} + + asap@2.0.6: {} + + asynckit@0.4.0: {} + + babel-jest@29.7.0(@babel/core@7.29.0): + dependencies: + '@babel/core': 7.29.0 + '@jest/transform': 29.7.0 + '@types/babel__core': 7.20.5 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 29.6.3(@babel/core@7.29.0) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-istanbul@6.1.1: + dependencies: + '@babel/helper-plugin-utils': 7.28.6 + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-instrument: 5.2.1 + test-exclude: 6.0.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-jest-hoist@29.6.3: + dependencies: + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 + '@types/babel__core': 7.20.5 + '@types/babel__traverse': 7.28.0 + + babel-plugin-polyfill-corejs2@0.4.17(@babel/core@7.29.0): + dependencies: + '@babel/compat-data': 7.29.0 + '@babel/core': 7.29.0 + '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.0) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.29.0): + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.0) + core-js-compat: 3.49.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-polyfill-regenerator@0.6.8(@babel/core@7.29.0): + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + babel-plugin-react-compiler@1.0.0: + dependencies: + '@babel/types': 7.29.0 + + babel-plugin-react-native-web@0.21.2: {} + + babel-plugin-syntax-hermes-parser@0.32.0: + dependencies: + hermes-parser: 0.32.0 + + babel-plugin-syntax-hermes-parser@0.32.1: + dependencies: + hermes-parser: 0.32.1 + + babel-plugin-syntax-hermes-parser@0.33.3: + dependencies: + hermes-parser: 0.33.3 + + babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.29.0): + dependencies: + '@babel/plugin-syntax-flow': 7.28.6(@babel/core@7.29.0) + transitivePeerDependencies: + - '@babel/core' + + babel-preset-current-node-syntax@1.2.0(@babel/core@7.29.0): + dependencies: + '@babel/core': 7.29.0 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.29.0) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.29.0) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.29.0) + '@babel/plugin-syntax-import-attributes': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.29.0) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.29.0) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.29.0) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.29.0) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.29.0) + + babel-preset-expo@55.0.16(@babel/core@7.29.0)(@babel/runtime@7.29.2)(expo@55.0.13)(react-refresh@0.14.2): + dependencies: + '@babel/generator': 7.29.1 + '@babel/helper-module-imports': 7.28.6 + '@babel/plugin-proposal-decorators': 7.29.0(@babel/core@7.29.0) + '@babel/plugin-proposal-export-default-from': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-syntax-export-default-from': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-class-static-block': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-object-rest-spread': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) + '@babel/plugin-transform-private-methods': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-private-property-in-object': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-runtime': 7.29.0(@babel/core@7.29.0) + '@babel/preset-react': 7.28.5(@babel/core@7.29.0) + '@babel/preset-typescript': 7.28.5(@babel/core@7.29.0) + '@react-native/babel-preset': 0.83.4(@babel/core@7.29.0) + babel-plugin-react-compiler: 1.0.0 + babel-plugin-react-native-web: 0.21.2 + babel-plugin-syntax-hermes-parser: 0.32.1 + babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.29.0) + debug: 4.4.3 + react-refresh: 0.14.2 + resolve-from: 5.0.0 + optionalDependencies: + '@babel/runtime': 7.29.2 + expo: 55.0.13(@babel/core@7.29.0)(@expo/dom-webview@55.0.5)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5)(typescript@5.9.3) + transitivePeerDependencies: + - '@babel/core' + - supports-color + + babel-preset-jest@29.6.3(@babel/core@7.29.0): + dependencies: + '@babel/core': 7.29.0 + babel-plugin-jest-hoist: 29.6.3 + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.0) + + balanced-match@1.0.2: {} + + balanced-match@4.0.4: {} + + base64-js@1.5.1: {} + + baseline-browser-mapping@2.10.17: {} + + better-opn@3.0.2: + dependencies: + open: 8.4.2 + + big-integer@1.6.52: {} + + bplist-creator@0.1.0: + dependencies: + stream-buffers: 2.2.0 + + bplist-parser@0.3.1: + dependencies: + big-integer: 1.6.52 + + bplist-parser@0.3.2: + dependencies: + big-integer: 1.6.52 + + brace-expansion@1.1.13: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.3: + dependencies: + balanced-match: 1.0.2 + + brace-expansion@5.0.5: + dependencies: + balanced-match: 4.0.4 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browserslist@4.28.2: + dependencies: + baseline-browser-mapping: 2.10.17 + caniuse-lite: 1.0.30001787 + electron-to-chromium: 1.5.334 + node-releases: 2.0.37 + update-browserslist-db: 1.2.3(browserslist@4.28.2) + + bs-logger@0.2.6: + dependencies: + fast-json-stable-stringify: 2.1.0 + + bser@2.1.1: + dependencies: + node-int64: 0.4.0 + + buffer-from@1.1.2: {} + + bytes@3.1.2: {} + + call-bind-apply-helpers@1.0.2: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + callsites@3.1.0: {} + + camelcase@5.3.1: {} + + camelcase@6.3.0: {} + + caniuse-lite@1.0.30001787: {} + + chalk@2.4.2: + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + char-regex@1.0.2: {} + + chrome-launcher@0.15.2: + dependencies: + '@types/node': 25.6.0 + escape-string-regexp: 4.0.0 + is-wsl: 2.2.0 + lighthouse-logger: 1.4.2 + transitivePeerDependencies: + - supports-color + + chromium-edge-launcher@0.2.0: + dependencies: + '@types/node': 25.6.0 + escape-string-regexp: 4.0.0 + is-wsl: 2.2.0 + lighthouse-logger: 1.4.2 + mkdirp: 1.0.4 + rimraf: 3.0.2 + transitivePeerDependencies: + - supports-color + + chromium-edge-launcher@0.3.0: + dependencies: + '@types/node': 25.6.0 + escape-string-regexp: 4.0.0 + is-wsl: 2.2.0 + lighthouse-logger: 1.4.2 + mkdirp: 1.0.4 + transitivePeerDependencies: + - supports-color + + ci-info@2.0.0: {} + + ci-info@3.9.0: {} + + cjs-module-lexer@1.4.3: {} + + cli-cursor@2.1.0: + dependencies: + restore-cursor: 2.0.0 + + cli-spinners@2.9.2: {} + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + clone@1.0.4: {} + + co@4.6.0: {} + + collect-v8-coverage@1.0.3: {} + + color-convert@1.9.3: + dependencies: + color-name: 1.1.3 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.3: {} + + color-name@1.1.4: {} + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + commander@12.1.0: {} + + commander@2.20.3: {} + + commander@7.2.0: {} + + commondir@1.0.1: {} + + compressible@2.0.18: + dependencies: + mime-db: 1.54.0 + + compression@1.8.1: + dependencies: + bytes: 3.1.2 + compressible: 2.0.18 + debug: 2.6.9 + negotiator: 0.6.4 + on-headers: 1.1.0 + safe-buffer: 5.2.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + concat-map@0.0.1: {} + + connect@3.7.0: + dependencies: + debug: 2.6.9 + finalhandler: 1.1.2 + parseurl: 1.3.3 + utils-merge: 1.0.1 + transitivePeerDependencies: + - supports-color + + convert-source-map@2.0.0: {} + + core-js-compat@3.49.0: + dependencies: + browserslist: 4.28.2 + + create-jest@29.7.0(@types/node@25.6.0): + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-config: 29.7.0(@types/node@25.6.0) + jest-util: 29.7.0 + prompts: 2.4.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + cssom@0.3.8: {} + + cssom@0.5.0: {} + + cssstyle@2.3.0: + dependencies: + cssom: 0.3.8 + + data-urls@3.0.2: + dependencies: + abab: 2.0.6 + whatwg-mimetype: 3.0.0 + whatwg-url: 11.0.0 + + debug@2.6.9: + dependencies: + ms: 2.0.0 + + debug@3.2.7: + dependencies: + ms: 2.1.3 + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + decimal.js@10.6.0: {} + + dedent@1.7.2: {} + + deep-is@0.1.4: {} + + deepmerge@4.3.1: {} + + defaults@1.0.4: + dependencies: + clone: 1.0.4 + + define-lazy-prop@2.0.0: {} + + delayed-stream@1.0.0: {} + + depd@2.0.0: {} + + destroy@1.2.0: {} + + detect-libc@2.1.2: {} + + detect-newline@3.1.0: {} + + diff-sequences@29.6.3: {} + + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + + dnssd-advertise@1.1.4: {} + + doctrine@3.0.0: + dependencies: + esutils: 2.0.3 + + domexception@4.0.0: + dependencies: + webidl-conversions: 7.0.0 + + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + + ee-first@1.1.1: {} + + electron-to-chromium@1.5.334: {} + + emittery@0.13.1: {} + + emoji-regex@8.0.0: {} + + encodeurl@1.0.2: {} + + encodeurl@2.0.0: {} + + entities@6.0.1: {} + + error-ex@1.3.4: + dependencies: + is-arrayish: 0.2.1 + + error-stack-parser@2.1.4: + dependencies: + stackframe: 1.3.4 + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-object-atoms@1.1.1: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.1.0: + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + escalade@3.2.0: {} + + escape-html@1.0.3: {} + + escape-string-regexp@1.0.5: {} + + escape-string-regexp@2.0.0: {} + + escape-string-regexp@4.0.0: {} + + escodegen@2.1.0: + dependencies: + esprima: 4.0.1 + estraverse: 5.3.0 + esutils: 2.0.3 + optionalDependencies: + source-map: 0.6.1 + + eslint-scope@7.2.2: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint@8.57.1: + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1) + '@eslint-community/regexpp': 4.12.2 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.1 + '@humanwhocodes/config-array': 0.13.0 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.3.0 + ajv: 6.14.0 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.3 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.7.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.1 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.5 + natural-compare: 1.4.0 + optionator: 0.9.4 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + + espree@9.6.1: + dependencies: + acorn: 8.16.0 + acorn-jsx: 5.3.2(acorn@8.16.0) + eslint-visitor-keys: 3.4.3 + + esprima@4.0.1: {} + + esquery@1.7.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + estree-walker@2.0.2: {} + + esutils@2.0.3: {} + + etag@1.8.1: {} + + event-target-shim@5.0.1: {} + + execa@5.1.1: + dependencies: + cross-spawn: 7.0.6 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + + exit@0.1.2: {} + + expect@29.7.0: + dependencies: + '@jest/expect-utils': 29.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + + expo-asset@55.0.14(expo@55.0.13)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5)(typescript@5.9.3): + dependencies: + '@expo/image-utils': 0.8.13(typescript@5.9.3) + expo: 55.0.13(@babel/core@7.29.0)(@expo/dom-webview@55.0.5)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5)(typescript@5.9.3) + expo-constants: 55.0.13(expo@55.0.13)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(typescript@5.9.3) + react: 19.2.5 + react-native: 0.85.0(@babel/core@7.29.0)(react@19.2.5) + transitivePeerDependencies: + - supports-color + - typescript + + expo-constants@55.0.13(expo@55.0.13)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(typescript@5.9.3): + dependencies: + '@expo/config': 55.0.14(typescript@5.9.3) + '@expo/env': 2.1.1 + expo: 55.0.13(@babel/core@7.29.0)(@expo/dom-webview@55.0.5)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5)(typescript@5.9.3) + react-native: 0.85.0(@babel/core@7.29.0)(react@19.2.5) + transitivePeerDependencies: + - supports-color + - typescript + + expo-device@55.0.14(expo@55.0.13): + dependencies: + expo: 55.0.13(@babel/core@7.29.0)(@expo/dom-webview@55.0.5)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5)(typescript@5.9.3) + ua-parser-js: 0.7.41 + + expo-file-system@55.0.16(expo@55.0.13)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5)): + dependencies: + expo: 55.0.13(@babel/core@7.29.0)(@expo/dom-webview@55.0.5)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5)(typescript@5.9.3) + react-native: 0.85.0(@babel/core@7.29.0)(react@19.2.5) + + expo-font@55.0.6(expo@55.0.13)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5): + dependencies: + expo: 55.0.13(@babel/core@7.29.0)(@expo/dom-webview@55.0.5)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5)(typescript@5.9.3) + fontfaceobserver: 2.3.0 + react: 19.2.5 + react-native: 0.85.0(@babel/core@7.29.0)(react@19.2.5) + + expo-keep-awake@55.0.6(expo@55.0.13)(react@19.2.5): + dependencies: + expo: 55.0.13(@babel/core@7.29.0)(@expo/dom-webview@55.0.5)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5)(typescript@5.9.3) + react: 19.2.5 + + expo-modules-autolinking@55.0.16(typescript@5.9.3): + dependencies: + '@expo/require-utils': 55.0.4(typescript@5.9.3) + '@expo/spawn-async': 1.7.2 + chalk: 4.1.2 + commander: 7.2.0 + transitivePeerDependencies: + - supports-color + - typescript + + expo-modules-core@55.0.22(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5): + dependencies: + invariant: 2.2.4 + react: 19.2.5 + react-native: 0.85.0(@babel/core@7.29.0)(react@19.2.5) + + expo-server@55.0.7: {} + + expo@55.0.13(@babel/core@7.29.0)(@expo/dom-webview@55.0.5)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5)(typescript@5.9.3): + dependencies: + '@babel/runtime': 7.29.2 + '@expo/cli': 55.0.23(@expo/dom-webview@55.0.5)(expo-constants@55.0.13(expo@55.0.13)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(typescript@5.9.3))(expo-font@55.0.6(expo@55.0.13)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5))(expo@55.0.13)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5)(typescript@5.9.3) + '@expo/config': 55.0.14(typescript@5.9.3) + '@expo/config-plugins': 55.0.8 + '@expo/devtools': 55.0.2(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5) + '@expo/fingerprint': 0.16.6 + '@expo/local-build-cache-provider': 55.0.10(typescript@5.9.3) + '@expo/log-box': 55.0.10(@expo/dom-webview@55.0.5)(expo@55.0.13)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5) + '@expo/metro': 55.0.0 + '@expo/metro-config': 55.0.15(expo@55.0.13)(typescript@5.9.3) + '@expo/vector-icons': 15.1.1(expo-font@55.0.6(expo@55.0.13)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5))(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5) + '@ungap/structured-clone': 1.3.0 + babel-preset-expo: 55.0.16(@babel/core@7.29.0)(@babel/runtime@7.29.2)(expo@55.0.13)(react-refresh@0.14.2) + expo-asset: 55.0.14(expo@55.0.13)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5)(typescript@5.9.3) + expo-constants: 55.0.13(expo@55.0.13)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(typescript@5.9.3) + expo-file-system: 55.0.16(expo@55.0.13)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5)) + expo-font: 55.0.6(expo@55.0.13)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5) + expo-keep-awake: 55.0.6(expo@55.0.13)(react@19.2.5) + expo-modules-autolinking: 55.0.16(typescript@5.9.3) + expo-modules-core: 55.0.22(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5) + pretty-format: 29.7.0 + react: 19.2.5 + react-native: 0.85.0(@babel/core@7.29.0)(react@19.2.5) + react-refresh: 0.14.2 + whatwg-url-minimum: 0.1.1 + optionalDependencies: + '@expo/dom-webview': 55.0.5(expo@55.0.13)(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5) + transitivePeerDependencies: + - '@babel/core' + - bufferutil + - expo-router + - expo-widgets + - react-dom + - react-native-worklets + - react-server-dom-webpack + - supports-color + - typescript + - utf-8-validate + + exponential-backoff@3.1.3: {} + + fast-base64-decode@1.0.0: {} + + fast-deep-equal@3.1.3: {} + + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fastq@1.20.1: + dependencies: + reusify: 1.1.0 + + fb-dotslash@0.5.8: {} + + fb-watchman@2.0.2: + dependencies: + bser: 2.1.1 + + fdir@6.5.0(picomatch@4.0.4): + optionalDependencies: + picomatch: 4.0.4 + + fetch-nodeshim@0.4.10: {} + + file-entry-cache@6.0.1: + dependencies: + flat-cache: 3.2.0 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + finalhandler@1.1.2: + dependencies: + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.3.0 + parseurl: 1.3.3 + statuses: 1.5.0 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat-cache@3.2.0: + dependencies: + flatted: 3.4.2 + keyv: 4.5.4 + rimraf: 3.0.2 + + flatted@3.4.2: {} + + flow-enums-runtime@0.0.6: {} + + fontfaceobserver@2.3.0: {} + + form-data@4.0.5: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + hasown: 2.0.2 + mime-types: 2.1.35 + + fresh@0.5.2: {} + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + gensync@1.0.0-beta.2: {} + + get-caller-file@2.0.5: {} + + get-intrinsic@1.3.0: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + math-intrinsics: 1.1.0 + + get-package-type@0.1.0: {} + + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 + + get-stream@6.0.1: {} + + getenv@2.0.0: {} + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob@13.0.6: + dependencies: + minimatch: 10.2.5 + minipass: 7.1.3 + path-scurry: 2.0.2 + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.5 + once: 1.4.0 + path-is-absolute: 1.0.1 + + glob@8.1.0: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.9 + once: 1.4.0 + + globals@13.24.0: + dependencies: + type-fest: 0.20.2 + + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.3 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 + + gopd@1.2.0: {} + + graceful-fs@4.2.11: {} + + graphemer@1.4.0: {} + + handlebars@4.7.9: + dependencies: + minimist: 1.2.8 + neo-async: 2.6.2 + source-map: 0.6.1 + wordwrap: 1.0.0 + optionalDependencies: + uglify-js: 3.19.3 + + has-flag@3.0.0: {} + + has-flag@4.0.0: {} + + has-symbols@1.1.0: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + hermes-compiler@250829098.0.10: {} + + hermes-estree@0.32.0: {} + + hermes-estree@0.32.1: {} + + hermes-estree@0.33.3: {} + + hermes-parser@0.32.0: + dependencies: + hermes-estree: 0.32.0 + + hermes-parser@0.32.1: + dependencies: + hermes-estree: 0.32.1 + + hermes-parser@0.33.3: + dependencies: + hermes-estree: 0.33.3 + + hosted-git-info@7.0.2: + dependencies: + lru-cache: 10.4.3 + + html-encoding-sniffer@3.0.0: + dependencies: + whatwg-encoding: 2.0.0 + + html-escaper@2.0.2: {} + + http-errors@2.0.1: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.2 + toidentifier: 1.0.1 + + http-proxy-agent@5.0.0: + dependencies: + '@tootallnate/once': 2.0.0 + agent-base: 6.0.2 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + https-proxy-agent@5.0.1: + dependencies: + agent-base: 6.0.2 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + https-proxy-agent@7.0.6: + dependencies: + agent-base: 7.1.4 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + human-signals@2.1.0: {} + + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + + ignore@5.3.2: {} + + image-size@1.2.1: + dependencies: + queue: 6.0.2 + + import-fresh@3.3.1: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + import-local@3.2.0: + dependencies: + pkg-dir: 4.2.0 + resolve-cwd: 3.0.0 + + imurmurhash@0.1.4: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + invariant@2.2.4: + dependencies: + loose-envify: 1.4.0 + + is-arrayish@0.2.1: {} + + is-core-module@2.16.1: + dependencies: + hasown: 2.0.2 + + is-docker@2.2.1: {} + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-generator-fn@2.1.0: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-module@1.0.0: {} + + is-number@7.0.0: {} + + is-path-inside@3.0.3: {} + + is-plain-obj@2.1.0: {} + + is-potential-custom-element-name@1.0.1: {} + + is-reference@1.2.1: + dependencies: + '@types/estree': 1.0.8 + + is-stream@2.0.1: {} + + is-wsl@2.2.0: + dependencies: + is-docker: 2.2.1 + + isexe@2.0.0: {} + + istanbul-lib-coverage@3.2.2: {} + + istanbul-lib-instrument@5.2.1: + dependencies: + '@babel/core': 7.29.0 + '@babel/parser': 7.29.2 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + istanbul-lib-instrument@6.0.3: + dependencies: + '@babel/core': 7.29.0 + '@babel/parser': 7.29.2 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 7.7.4 + transitivePeerDependencies: + - supports-color + + istanbul-lib-report@3.0.1: + dependencies: + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 + + istanbul-lib-source-maps@4.0.1: + dependencies: + debug: 4.4.3 + istanbul-lib-coverage: 3.2.2 + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color + + istanbul-reports@3.2.0: + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + + jest-changed-files@29.7.0: + dependencies: + execa: 5.1.1 + jest-util: 29.7.0 + p-limit: 3.1.0 + + jest-circus@29.7.0: + dependencies: + '@jest/environment': 29.7.0 + '@jest/expect': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 25.6.0 + chalk: 4.1.2 + co: 4.6.0 + dedent: 1.7.2 + is-generator-fn: 2.1.0 + jest-each: 29.7.0 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + p-limit: 3.1.0 + pretty-format: 29.7.0 + pure-rand: 6.1.0 + slash: 3.0.0 + stack-utils: 2.0.6 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-cli@29.7.0(@types/node@25.6.0): + dependencies: + '@jest/core': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + chalk: 4.1.2 + create-jest: 29.7.0(@types/node@25.6.0) + exit: 0.1.2 + import-local: 3.2.0 + jest-config: 29.7.0(@types/node@25.6.0) + jest-util: 29.7.0 + jest-validate: 29.7.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + + jest-config@29.7.0(@types/node@25.6.0): + dependencies: + '@babel/core': 7.29.0 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.29.0) + chalk: 4.1.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 29.7.0 + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.8 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 25.6.0 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-diff@29.7.0: + dependencies: + chalk: 4.1.2 + diff-sequences: 29.6.3 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + + jest-docblock@29.7.0: + dependencies: + detect-newline: 3.1.0 + + jest-each@29.7.0: + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + jest-get-type: 29.6.3 + jest-util: 29.7.0 + pretty-format: 29.7.0 + + jest-environment-jsdom@29.7.0: + dependencies: + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/jsdom': 20.0.1 + '@types/node': 25.6.0 + jest-mock: 29.7.0 + jest-util: 29.7.0 + jsdom: 20.0.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + jest-environment-node@29.7.0: + dependencies: + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 25.6.0 + jest-mock: 29.7.0 + jest-util: 29.7.0 + + jest-get-type@29.6.3: {} + + jest-haste-map@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/graceful-fs': 4.1.9 + '@types/node': 25.6.0 + anymatch: 3.1.3 + fb-watchman: 2.0.2 + graceful-fs: 4.2.11 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + jest-worker: 29.7.0 + micromatch: 4.0.8 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.3 + + jest-leak-detector@29.7.0: + dependencies: + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + + jest-matcher-utils@29.7.0: + dependencies: + chalk: 4.1.2 + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + + jest-message-util@29.7.0: + dependencies: + '@babel/code-frame': 7.29.0 + '@jest/types': 29.6.3 + '@types/stack-utils': 2.0.3 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.8 + pretty-format: 29.7.0 + slash: 3.0.0 + stack-utils: 2.0.6 + + jest-mock@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/node': 25.6.0 + jest-util: 29.7.0 + + jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): + optionalDependencies: + jest-resolve: 29.7.0 + + jest-regex-util@29.6.3: {} + + jest-resolve-dependencies@29.7.0: + dependencies: + jest-regex-util: 29.6.3 + jest-snapshot: 29.7.0 + transitivePeerDependencies: + - supports-color + + jest-resolve@29.7.0: + dependencies: + chalk: 4.1.2 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) + jest-util: 29.7.0 + jest-validate: 29.7.0 + resolve: 1.22.11 + resolve.exports: 2.0.3 + slash: 3.0.0 + + jest-runner@29.7.0: + dependencies: + '@jest/console': 29.7.0 + '@jest/environment': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 25.6.0 + chalk: 4.1.2 + emittery: 0.13.1 + graceful-fs: 4.2.11 + jest-docblock: 29.7.0 + jest-environment-node: 29.7.0 + jest-haste-map: 29.7.0 + jest-leak-detector: 29.7.0 + jest-message-util: 29.7.0 + jest-resolve: 29.7.0 + jest-runtime: 29.7.0 + jest-util: 29.7.0 + jest-watcher: 29.7.0 + jest-worker: 29.7.0 + p-limit: 3.1.0 + source-map-support: 0.5.13 + transitivePeerDependencies: + - supports-color + + jest-runtime@29.7.0: + dependencies: + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/globals': 29.7.0 + '@jest/source-map': 29.6.3 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 25.6.0 + chalk: 4.1.2 + cjs-module-lexer: 1.4.3 + collect-v8-coverage: 1.0.3 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + slash: 3.0.0 + strip-bom: 4.0.0 + transitivePeerDependencies: + - supports-color + + jest-snapshot@29.7.0: + dependencies: + '@babel/core': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) + '@babel/types': 7.29.0 + '@jest/expect-utils': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.0) + chalk: 4.1.2 + expect: 29.7.0 + graceful-fs: 4.2.11 + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + natural-compare: 1.4.0 + pretty-format: 29.7.0 + semver: 7.7.4 + transitivePeerDependencies: + - supports-color + + jest-util@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/node': 25.6.0 + chalk: 4.1.2 + ci-info: 3.9.0 + graceful-fs: 4.2.11 + picomatch: 2.3.2 + + jest-validate@29.7.0: + dependencies: + '@jest/types': 29.6.3 + camelcase: 6.3.0 + chalk: 4.1.2 + jest-get-type: 29.6.3 + leven: 3.1.0 + pretty-format: 29.7.0 + + jest-watcher@29.7.0: + dependencies: + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 25.6.0 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + emittery: 0.13.1 + jest-util: 29.7.0 + string-length: 4.0.2 + + jest-worker@29.7.0: + dependencies: + '@types/node': 25.6.0 + jest-util: 29.7.0 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + jest@29.7.0(@types/node@25.6.0): + dependencies: + '@jest/core': 29.7.0 + '@jest/types': 29.6.3 + import-local: 3.2.0 + jest-cli: 29.7.0(@types/node@25.6.0) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + + jimp-compact@0.16.1: {} + + js-tokens@4.0.0: {} + + js-yaml@3.14.2: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + js-yaml@4.1.1: + dependencies: + argparse: 2.0.1 + + jsc-safe-url@0.2.4: {} + + jsdom@20.0.3: + dependencies: + abab: 2.0.6 + acorn: 8.16.0 + acorn-globals: 7.0.1 + cssom: 0.5.0 + cssstyle: 2.3.0 + data-urls: 3.0.2 + decimal.js: 10.6.0 + domexception: 4.0.0 + escodegen: 2.1.0 + form-data: 4.0.5 + html-encoding-sniffer: 3.0.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.23 + parse5: 7.3.0 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 4.1.4 + w3c-xmlserializer: 4.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 2.0.0 + whatwg-mimetype: 3.0.0 + whatwg-url: 11.0.0 + ws: 8.20.0 + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + jsesc@3.1.0: {} + + json-buffer@3.0.1: {} + + json-parse-even-better-errors@2.3.1: {} + + json-schema-traverse@0.4.1: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + json5@2.2.3: {} + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + kleur@3.0.3: {} + + lan-network@0.2.1: {} + + leven@3.1.0: {} + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + lighthouse-logger@1.4.2: + dependencies: + debug: 2.6.9 + marky: 1.3.0 + transitivePeerDependencies: + - supports-color + + lightningcss-android-arm64@1.32.0: + optional: true + + lightningcss-darwin-arm64@1.32.0: + optional: true + + lightningcss-darwin-x64@1.32.0: + optional: true + + lightningcss-freebsd-x64@1.32.0: + optional: true + + lightningcss-linux-arm-gnueabihf@1.32.0: + optional: true + + lightningcss-linux-arm64-gnu@1.32.0: + optional: true + + lightningcss-linux-arm64-musl@1.32.0: + optional: true + + lightningcss-linux-x64-gnu@1.32.0: + optional: true + + lightningcss-linux-x64-musl@1.32.0: + optional: true + + lightningcss-win32-arm64-msvc@1.32.0: + optional: true + + lightningcss-win32-x64-msvc@1.32.0: + optional: true + + lightningcss@1.32.0: + dependencies: + detect-libc: 2.1.2 + optionalDependencies: + lightningcss-android-arm64: 1.32.0 + lightningcss-darwin-arm64: 1.32.0 + lightningcss-darwin-x64: 1.32.0 + lightningcss-freebsd-x64: 1.32.0 + lightningcss-linux-arm-gnueabihf: 1.32.0 + lightningcss-linux-arm64-gnu: 1.32.0 + lightningcss-linux-arm64-musl: 1.32.0 + lightningcss-linux-x64-gnu: 1.32.0 + lightningcss-linux-x64-musl: 1.32.0 + lightningcss-win32-arm64-msvc: 1.32.0 + lightningcss-win32-x64-msvc: 1.32.0 + + lines-and-columns@1.2.4: {} + + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash.debounce@4.0.8: {} + + lodash.memoize@4.1.2: {} + + lodash.merge@4.6.2: {} + + lodash.throttle@4.1.1: {} + + log-symbols@2.2.0: + dependencies: + chalk: 2.4.2 + + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + + lru-cache@10.4.3: {} + + lru-cache@11.3.3: {} + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + + make-dir@4.0.0: + dependencies: + semver: 7.7.4 + + make-error@1.3.6: {} + + makeerror@1.0.12: + dependencies: + tmpl: 1.0.5 + + marky@1.3.0: {} + + math-intrinsics@1.1.0: {} + + memoize-one@5.2.1: {} + + merge-options@3.0.4: + dependencies: + is-plain-obj: 2.1.0 + + merge-stream@2.0.0: {} + + merge2@1.4.1: {} + + metro-babel-transformer@0.83.5: + dependencies: + '@babel/core': 7.29.0 + flow-enums-runtime: 0.0.6 + hermes-parser: 0.33.3 + nullthrows: 1.1.1 + transitivePeerDependencies: + - supports-color + + metro-babel-transformer@0.84.2: + dependencies: + '@babel/core': 7.29.0 + flow-enums-runtime: 0.0.6 + hermes-parser: 0.33.3 + nullthrows: 1.1.1 + transitivePeerDependencies: + - supports-color + + metro-cache-key@0.83.5: + dependencies: + flow-enums-runtime: 0.0.6 + + metro-cache-key@0.84.2: + dependencies: + flow-enums-runtime: 0.0.6 + + metro-cache@0.83.5: + dependencies: + exponential-backoff: 3.1.3 + flow-enums-runtime: 0.0.6 + https-proxy-agent: 7.0.6 + metro-core: 0.83.5 + transitivePeerDependencies: + - supports-color + + metro-cache@0.84.2: + dependencies: + exponential-backoff: 3.1.3 + flow-enums-runtime: 0.0.6 + https-proxy-agent: 7.0.6 + metro-core: 0.84.2 + transitivePeerDependencies: + - supports-color + + metro-config@0.83.5: + dependencies: + connect: 3.7.0 + flow-enums-runtime: 0.0.6 + jest-validate: 29.7.0 + metro: 0.83.5 + metro-cache: 0.83.5 + metro-core: 0.83.5 + metro-runtime: 0.83.5 + yaml: 2.8.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + metro-config@0.84.2: + dependencies: + connect: 3.7.0 + flow-enums-runtime: 0.0.6 + jest-validate: 29.7.0 + metro: 0.84.2 + metro-cache: 0.84.2 + metro-core: 0.84.2 + metro-runtime: 0.84.2 + yaml: 2.8.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + metro-core@0.83.5: + dependencies: + flow-enums-runtime: 0.0.6 + lodash.throttle: 4.1.1 + metro-resolver: 0.83.5 + + metro-core@0.84.2: + dependencies: + flow-enums-runtime: 0.0.6 + lodash.throttle: 4.1.1 + metro-resolver: 0.84.2 + + metro-file-map@0.83.5: + dependencies: + debug: 4.4.3 + fb-watchman: 2.0.2 + flow-enums-runtime: 0.0.6 + graceful-fs: 4.2.11 + invariant: 2.2.4 + jest-worker: 29.7.0 + micromatch: 4.0.8 + nullthrows: 1.1.1 + walker: 1.0.8 + transitivePeerDependencies: + - supports-color + + metro-file-map@0.84.2: + dependencies: + debug: 4.4.3 + fb-watchman: 2.0.2 + flow-enums-runtime: 0.0.6 + graceful-fs: 4.2.11 + invariant: 2.2.4 + jest-worker: 29.7.0 + micromatch: 4.0.8 + nullthrows: 1.1.1 + walker: 1.0.8 + transitivePeerDependencies: + - supports-color + + metro-minify-terser@0.83.5: + dependencies: + flow-enums-runtime: 0.0.6 + terser: 5.46.1 + + metro-minify-terser@0.84.2: + dependencies: + flow-enums-runtime: 0.0.6 + terser: 5.46.1 + + metro-resolver@0.83.5: + dependencies: + flow-enums-runtime: 0.0.6 + + metro-resolver@0.84.2: + dependencies: + flow-enums-runtime: 0.0.6 + + metro-runtime@0.83.5: + dependencies: + '@babel/runtime': 7.29.2 + flow-enums-runtime: 0.0.6 + + metro-runtime@0.84.2: + dependencies: + '@babel/runtime': 7.29.2 + flow-enums-runtime: 0.0.6 + + metro-source-map@0.83.5: + dependencies: + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + flow-enums-runtime: 0.0.6 + invariant: 2.2.4 + metro-symbolicate: 0.83.5 + nullthrows: 1.1.1 + ob1: 0.83.5 + source-map: 0.5.7 + vlq: 1.0.1 + transitivePeerDependencies: + - supports-color + + metro-source-map@0.84.2: + dependencies: + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + flow-enums-runtime: 0.0.6 + invariant: 2.2.4 + metro-symbolicate: 0.84.2 + nullthrows: 1.1.1 + ob1: 0.84.2 + source-map: 0.5.7 + vlq: 1.0.1 + transitivePeerDependencies: + - supports-color + + metro-symbolicate@0.83.5: + dependencies: + flow-enums-runtime: 0.0.6 + invariant: 2.2.4 + metro-source-map: 0.83.5 + nullthrows: 1.1.1 + source-map: 0.5.7 + vlq: 1.0.1 + transitivePeerDependencies: + - supports-color + + metro-symbolicate@0.84.2: + dependencies: + flow-enums-runtime: 0.0.6 + invariant: 2.2.4 + metro-source-map: 0.84.2 + nullthrows: 1.1.1 + source-map: 0.5.7 + vlq: 1.0.1 + transitivePeerDependencies: + - supports-color + + metro-transform-plugins@0.83.5: + dependencies: + '@babel/core': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/template': 7.28.6 + '@babel/traverse': 7.29.0 + flow-enums-runtime: 0.0.6 + nullthrows: 1.1.1 + transitivePeerDependencies: + - supports-color + + metro-transform-plugins@0.84.2: + dependencies: + '@babel/core': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/template': 7.28.6 + '@babel/traverse': 7.29.0 + flow-enums-runtime: 0.0.6 + nullthrows: 1.1.1 + transitivePeerDependencies: + - supports-color + + metro-transform-worker@0.83.5: + dependencies: + '@babel/core': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/parser': 7.29.2 + '@babel/types': 7.29.0 + flow-enums-runtime: 0.0.6 + metro: 0.83.5 + metro-babel-transformer: 0.83.5 + metro-cache: 0.83.5 + metro-cache-key: 0.83.5 + metro-minify-terser: 0.83.5 + metro-source-map: 0.83.5 + metro-transform-plugins: 0.83.5 + nullthrows: 1.1.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + metro-transform-worker@0.84.2: + dependencies: + '@babel/core': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/parser': 7.29.2 + '@babel/types': 7.29.0 + flow-enums-runtime: 0.0.6 + metro: 0.84.2 + metro-babel-transformer: 0.84.2 + metro-cache: 0.84.2 + metro-cache-key: 0.84.2 + metro-minify-terser: 0.84.2 + metro-source-map: 0.84.2 + metro-transform-plugins: 0.84.2 + nullthrows: 1.1.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + metro@0.83.5: + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/core': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/parser': 7.29.2 + '@babel/template': 7.28.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + accepts: 2.0.0 + chalk: 4.1.2 + ci-info: 2.0.0 + connect: 3.7.0 + debug: 4.4.3 + error-stack-parser: 2.1.4 + flow-enums-runtime: 0.0.6 + graceful-fs: 4.2.11 + hermes-parser: 0.33.3 + image-size: 1.2.1 + invariant: 2.2.4 + jest-worker: 29.7.0 + jsc-safe-url: 0.2.4 + lodash.throttle: 4.1.1 + metro-babel-transformer: 0.83.5 + metro-cache: 0.83.5 + metro-cache-key: 0.83.5 + metro-config: 0.83.5 + metro-core: 0.83.5 + metro-file-map: 0.83.5 + metro-resolver: 0.83.5 + metro-runtime: 0.83.5 + metro-source-map: 0.83.5 + metro-symbolicate: 0.83.5 + metro-transform-plugins: 0.83.5 + metro-transform-worker: 0.83.5 + mime-types: 3.0.2 + nullthrows: 1.1.1 + serialize-error: 2.1.0 + source-map: 0.5.7 + throat: 5.0.0 + ws: 7.5.10 + yargs: 17.7.2 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + metro@0.84.2: + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/core': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/parser': 7.29.2 + '@babel/template': 7.28.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + accepts: 2.0.0 + chalk: 4.1.2 + ci-info: 2.0.0 + connect: 3.7.0 + debug: 4.4.3 + error-stack-parser: 2.1.4 + flow-enums-runtime: 0.0.6 + graceful-fs: 4.2.11 + hermes-parser: 0.33.3 + image-size: 1.2.1 + invariant: 2.2.4 + jest-worker: 29.7.0 + jsc-safe-url: 0.2.4 + lodash.throttle: 4.1.1 + metro-babel-transformer: 0.84.2 + metro-cache: 0.84.2 + metro-cache-key: 0.84.2 + metro-config: 0.84.2 + metro-core: 0.84.2 + metro-file-map: 0.84.2 + metro-resolver: 0.84.2 + metro-runtime: 0.84.2 + metro-source-map: 0.84.2 + metro-symbolicate: 0.84.2 + metro-transform-plugins: 0.84.2 + metro-transform-worker: 0.84.2 + mime-types: 3.0.2 + nullthrows: 1.1.1 + serialize-error: 2.1.0 + source-map: 0.5.7 + throat: 5.0.0 + ws: 7.5.10 + yargs: 17.7.2 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.2 + + mime-db@1.52.0: {} + + mime-db@1.54.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mime-types@3.0.2: + dependencies: + mime-db: 1.54.0 + + mime@1.6.0: {} + + mimic-fn@1.2.0: {} + + mimic-fn@2.1.0: {} + + minimatch@10.2.5: + dependencies: + brace-expansion: 5.0.5 + + minimatch@3.1.5: + dependencies: + brace-expansion: 1.1.13 + + minimatch@5.1.9: + dependencies: + brace-expansion: 2.0.3 + + minimatch@9.0.3: + dependencies: + brace-expansion: 2.0.3 + + minimist@1.2.8: {} + + minipass@7.1.3: {} + + mkdirp@1.0.4: {} + + ms@2.0.0: {} + + ms@2.1.3: {} + + multitars@0.2.4: {} + + nanoid@3.3.11: {} + + natural-compare@1.4.0: {} + + negotiator@0.6.3: {} + + negotiator@0.6.4: {} + + negotiator@1.0.0: {} + + neo-async@2.6.2: {} + + node-forge@1.4.0: {} + + node-int64@0.4.0: {} + + node-releases@2.0.37: {} + + normalize-path@3.0.0: {} + + npm-package-arg@11.0.3: + dependencies: + hosted-git-info: 7.0.2 + proc-log: 4.2.0 + semver: 7.7.4 + validate-npm-package-name: 5.0.1 + + npm-run-path@4.0.1: + dependencies: + path-key: 3.1.1 + + nullthrows@1.1.1: {} + + nwsapi@2.2.23: {} + + ob1@0.83.5: + dependencies: + flow-enums-runtime: 0.0.6 + + ob1@0.84.2: + dependencies: + flow-enums-runtime: 0.0.6 + + on-finished@2.3.0: + dependencies: + ee-first: 1.1.1 + + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 + + on-headers@1.1.0: {} + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + onetime@2.0.1: + dependencies: + mimic-fn: 1.2.0 + + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + + open@7.4.2: + dependencies: + is-docker: 2.2.1 + is-wsl: 2.2.0 + + open@8.4.2: + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + ora@3.4.0: + dependencies: + chalk: 2.4.2 + cli-cursor: 2.1.0 + cli-spinners: 2.9.2 + log-symbols: 2.2.0 + strip-ansi: 5.2.0 + wcwidth: 1.0.1 + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + p-try@2.2.0: {} + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.29.0 + error-ex: 1.3.4 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + parse-png@2.1.0: + dependencies: + pngjs: 3.4.0 + + parse5@7.3.0: + dependencies: + entities: 6.0.1 + + parseurl@1.3.3: {} + + path-exists@4.0.0: {} + + path-is-absolute@1.0.1: {} + + path-key@3.1.1: {} + + path-parse@1.0.7: {} + + path-scurry@2.0.2: + dependencies: + lru-cache: 11.3.3 + minipass: 7.1.3 + + path-type@4.0.0: {} + + picocolors@1.1.1: {} + + picomatch@2.3.2: {} + + picomatch@4.0.4: {} + + pirates@4.0.7: {} + + pkg-dir@4.2.0: + dependencies: + find-up: 4.1.0 + + plist@3.1.0: + dependencies: + '@xmldom/xmldom': 0.8.12 + base64-js: 1.5.1 + xmlbuilder: 15.1.1 + + pngjs@3.4.0: {} + + postcss@8.4.49: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + prelude-ls@1.2.1: {} + + pretty-format@29.7.0: + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.3.1 + + proc-log@4.2.0: {} + + progress@2.0.3: {} + + promise@8.3.0: + dependencies: + asap: 2.0.6 + + prompts@2.4.2: + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + + psl@1.15.0: + dependencies: + punycode: 2.3.1 + + punycode@2.3.1: {} + + pure-rand@6.1.0: {} + + querystringify@2.2.0: {} + + queue-microtask@1.2.3: {} + + queue@6.0.2: + dependencies: + inherits: 2.0.4 + + randombytes@2.1.0: + dependencies: + safe-buffer: 5.2.1 + + range-parser@1.2.1: {} + + react-devtools-core@6.1.5: + dependencies: + shell-quote: 1.8.3 + ws: 7.5.10 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + react-is@18.3.1: {} + + react-native-get-random-values@1.11.0(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5)): + dependencies: + fast-base64-decode: 1.0.0 + react-native: 0.85.0(@babel/core@7.29.0)(react@19.2.5) + + react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5): + dependencies: + '@react-native/assets-registry': 0.85.0 + '@react-native/codegen': 0.85.0(@babel/core@7.29.0) + '@react-native/community-cli-plugin': 0.85.0 + '@react-native/gradle-plugin': 0.85.0 + '@react-native/js-polyfills': 0.85.0 + '@react-native/normalize-colors': 0.85.0 + '@react-native/virtualized-lists': 0.85.0(react-native@0.85.0(@babel/core@7.29.0)(react@19.2.5))(react@19.2.5) + abort-controller: 3.0.0 + anser: 1.4.10 + ansi-regex: 5.0.1 + babel-plugin-syntax-hermes-parser: 0.33.3 + base64-js: 1.5.1 + commander: 12.1.0 + flow-enums-runtime: 0.0.6 + hermes-compiler: 250829098.0.10 + invariant: 2.2.4 + memoize-one: 5.2.1 + metro-runtime: 0.84.2 + metro-source-map: 0.84.2 + nullthrows: 1.1.1 + pretty-format: 29.7.0 + promise: 8.3.0 + react: 19.2.5 + react-devtools-core: 6.1.5 + react-refresh: 0.14.2 + regenerator-runtime: 0.13.11 + scheduler: 0.27.0 + semver: 7.7.4 + stacktrace-parser: 0.1.11 + tinyglobby: 0.2.16 + whatwg-fetch: 3.6.20 + ws: 7.5.10 + yargs: 17.7.2 + transitivePeerDependencies: + - '@babel/core' + - '@react-native-community/cli' + - '@react-native/metro-config' + - bufferutil + - supports-color + - utf-8-validate + + react-refresh@0.14.2: {} + + react@19.2.5: {} + + regenerate-unicode-properties@10.2.2: + dependencies: + regenerate: 1.4.2 + + regenerate@1.4.2: {} + + regenerator-runtime@0.13.11: {} + + regexpu-core@6.4.0: + dependencies: + regenerate: 1.4.2 + regenerate-unicode-properties: 10.2.2 + regjsgen: 0.8.0 + regjsparser: 0.13.1 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.2.1 + + regjsgen@0.8.0: {} + + regjsparser@0.13.1: + dependencies: + jsesc: 3.1.0 + + require-directory@2.1.1: {} + + requires-port@1.0.0: {} + + resolve-cwd@3.0.0: + dependencies: + resolve-from: 5.0.0 + + resolve-from@4.0.0: {} + + resolve-from@5.0.0: {} + + resolve-workspace-root@2.0.1: {} + + resolve.exports@2.0.3: {} + + resolve@1.22.11: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + restore-cursor@2.0.0: + dependencies: + onetime: 2.0.1 + signal-exit: 3.0.7 + + reusify@1.1.0: {} + + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + + rollup@4.60.1: + dependencies: + '@types/estree': 1.0.8 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.60.1 + '@rollup/rollup-android-arm64': 4.60.1 + '@rollup/rollup-darwin-arm64': 4.60.1 + '@rollup/rollup-darwin-x64': 4.60.1 + '@rollup/rollup-freebsd-arm64': 4.60.1 + '@rollup/rollup-freebsd-x64': 4.60.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.60.1 + '@rollup/rollup-linux-arm-musleabihf': 4.60.1 + '@rollup/rollup-linux-arm64-gnu': 4.60.1 + '@rollup/rollup-linux-arm64-musl': 4.60.1 + '@rollup/rollup-linux-loong64-gnu': 4.60.1 + '@rollup/rollup-linux-loong64-musl': 4.60.1 + '@rollup/rollup-linux-ppc64-gnu': 4.60.1 + '@rollup/rollup-linux-ppc64-musl': 4.60.1 + '@rollup/rollup-linux-riscv64-gnu': 4.60.1 + '@rollup/rollup-linux-riscv64-musl': 4.60.1 + '@rollup/rollup-linux-s390x-gnu': 4.60.1 + '@rollup/rollup-linux-x64-gnu': 4.60.1 + '@rollup/rollup-linux-x64-musl': 4.60.1 + '@rollup/rollup-openbsd-x64': 4.60.1 + '@rollup/rollup-openharmony-arm64': 4.60.1 + '@rollup/rollup-win32-arm64-msvc': 4.60.1 + '@rollup/rollup-win32-ia32-msvc': 4.60.1 + '@rollup/rollup-win32-x64-gnu': 4.60.1 + '@rollup/rollup-win32-x64-msvc': 4.60.1 + fsevents: 2.3.3 + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + safe-buffer@5.2.1: {} + + safer-buffer@2.1.2: {} + + sax@1.6.0: {} + + saxes@6.0.0: + dependencies: + xmlchars: 2.2.0 + + scheduler@0.27.0: {} + + semver@6.3.1: {} + + semver@7.7.4: {} + + send@0.19.2: + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.1 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.2 + transitivePeerDependencies: + - supports-color + + serialize-error@2.1.0: {} + + serialize-javascript@6.0.2: + dependencies: + randombytes: 2.1.0 + + serve-static@1.16.3: + dependencies: + encodeurl: 2.0.0 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.19.2 + transitivePeerDependencies: + - supports-color + + setprototypeof@1.2.0: {} + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + shell-quote@1.8.3: {} + + signal-exit@3.0.7: {} + + simple-plist@1.3.1: + dependencies: + bplist-creator: 0.1.0 + bplist-parser: 0.3.1 + plist: 3.1.0 + + sisteransi@1.0.5: {} + + slash@3.0.0: {} + + slugify@1.6.9: {} + + smob@1.6.1: {} + + source-map-js@1.2.1: {} + + source-map-support@0.5.13: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map@0.5.7: {} + + source-map@0.6.1: {} + + sprintf-js@1.0.3: {} + + stack-utils@2.0.6: + dependencies: + escape-string-regexp: 2.0.0 + + stackframe@1.3.4: {} + + stacktrace-parser@0.1.11: + dependencies: + type-fest: 0.7.1 + + statuses@1.5.0: {} + + statuses@2.0.2: {} + + stream-buffers@2.2.0: {} + + string-length@4.0.2: + dependencies: + char-regex: 1.0.2 + strip-ansi: 6.0.1 + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + strip-ansi@5.2.0: + dependencies: + ansi-regex: 4.1.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-bom@4.0.0: {} + + strip-final-newline@2.0.0: {} + + strip-json-comments@3.1.1: {} + + structured-headers@0.4.1: {} + + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + supports-hyperlinks@2.3.0: + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + symbol-tree@3.2.4: {} + + terminal-link@2.1.1: + dependencies: + ansi-escapes: 4.3.2 + supports-hyperlinks: 2.3.0 + + terser@5.46.1: + dependencies: + '@jridgewell/source-map': 0.3.11 + acorn: 8.16.0 + commander: 2.20.3 + source-map-support: 0.5.21 + + test-exclude@6.0.0: + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 7.2.3 + minimatch: 3.1.5 + + text-table@0.2.0: {} + + throat@5.0.0: {} + + tinyglobby@0.2.16: + dependencies: + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 + + tmpl@1.0.5: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + toidentifier@1.0.1: {} + + toqr@0.1.1: {} + + tough-cookie@4.1.4: + dependencies: + psl: 1.15.0 + punycode: 2.3.1 + universalify: 0.2.0 + url-parse: 1.5.10 + + tr46@3.0.0: + dependencies: + punycode: 2.3.1 + + ts-api-utils@1.4.3(typescript@5.9.3): + dependencies: + typescript: 5.9.3 + + ts-jest@29.4.9(@babel/core@7.29.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.29.0))(jest-util@29.7.0)(jest@29.7.0(@types/node@25.6.0))(typescript@5.9.3): + dependencies: + bs-logger: 0.2.6 + fast-json-stable-stringify: 2.1.0 + handlebars: 4.7.9 + jest: 29.7.0(@types/node@25.6.0) + json5: 2.2.3 + lodash.memoize: 4.1.2 + make-error: 1.3.6 + semver: 7.7.4 + type-fest: 4.41.0 + typescript: 5.9.3 + yargs-parser: 21.1.1 + optionalDependencies: + '@babel/core': 7.29.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.29.0) + jest-util: 29.7.0 + + tslib@2.8.1: {} + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + type-detect@4.0.8: {} + + type-fest@0.20.2: {} + + type-fest@0.21.3: {} + + type-fest@0.7.1: {} + + type-fest@4.41.0: {} + + typescript@5.9.3: {} + + ua-parser-js@0.7.41: {} + + uglify-js@3.19.3: + optional: true + + undici-types@7.19.2: {} + + unicode-canonical-property-names-ecmascript@2.0.1: {} + + unicode-match-property-ecmascript@2.0.0: + dependencies: + unicode-canonical-property-names-ecmascript: 2.0.1 + unicode-property-aliases-ecmascript: 2.2.0 + + unicode-match-property-value-ecmascript@2.2.1: {} + + unicode-property-aliases-ecmascript@2.2.0: {} + + universalify@0.2.0: {} + + unpipe@1.0.0: {} + + update-browserslist-db@1.2.3(browserslist@4.28.2): + dependencies: + browserslist: 4.28.2 + escalade: 3.2.0 + picocolors: 1.1.1 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + url-parse@1.5.10: + dependencies: + querystringify: 2.2.0 + requires-port: 1.0.0 + + utils-merge@1.0.1: {} + + uuid@11.1.0: {} + + uuid@7.0.3: {} + + v8-to-istanbul@9.3.0: + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + '@types/istanbul-lib-coverage': 2.0.6 + convert-source-map: 2.0.0 + + validate-npm-package-name@5.0.1: {} + + vary@1.1.2: {} + + vlq@1.0.1: {} + + w3c-xmlserializer@4.0.0: + dependencies: + xml-name-validator: 4.0.0 + + walker@1.0.8: + dependencies: + makeerror: 1.0.12 + + wcwidth@1.0.1: + dependencies: + defaults: 1.0.4 + + webidl-conversions@7.0.0: {} + + whatwg-encoding@2.0.0: + dependencies: + iconv-lite: 0.6.3 + + whatwg-fetch@3.6.20: {} + + whatwg-mimetype@3.0.0: {} + + whatwg-url-minimum@0.1.1: {} + + whatwg-url@11.0.0: + dependencies: + tr46: 3.0.0 + webidl-conversions: 7.0.0 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + word-wrap@1.2.5: {} + + wordwrap@1.0.0: {} + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrappy@1.0.2: {} + + write-file-atomic@4.0.2: + dependencies: + imurmurhash: 0.1.4 + signal-exit: 3.0.7 + + ws@7.5.10: {} + + ws@8.20.0: {} + + xcode@3.0.1: + dependencies: + simple-plist: 1.3.1 + uuid: 7.0.3 + + xml-name-validator@4.0.0: {} + + xml2js@0.6.0: + dependencies: + sax: 1.6.0 + xmlbuilder: 11.0.1 + + xmlbuilder@11.0.1: {} + + xmlbuilder@15.1.1: {} + + xmlchars@2.2.0: {} + + y18n@5.0.8: {} + + yallist@3.1.1: {} + + yaml@2.8.3: {} + + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yocto-queue@0.1.0: {} + + zod@3.25.76: {} diff --git a/src/__tests__/index.test.ts b/src/__tests__/index.test.ts index 1cca253..9d9a5cb 100644 --- a/src/__tests__/index.test.ts +++ b/src/__tests__/index.test.ts @@ -43,7 +43,7 @@ describe('SDK Exports', () => { it('should export uuid function', () => { expect(uuid).toBeDefined(); expect(typeof uuid).toBe('function'); - expect(uuid()).toMatch(/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i); + expect(uuid()).toMatch(/^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i); }); it('should export messageId function', () => { @@ -108,9 +108,9 @@ describe('SDK Exports', () => { expect(analytics).toBeInstanceOf(Analytics); expect(analytics.user()).toBeDefined(); + expect(analytics.user().deviceId).toBeDefined(); analytics.destroy(); }); }); }); - diff --git a/src/core/__tests__/analytics.test.ts b/src/core/__tests__/analytics.test.ts index c3c666d..b68dbc9 100644 --- a/src/core/__tests__/analytics.test.ts +++ b/src/core/__tests__/analytics.test.ts @@ -1,4 +1,5 @@ import { Analytics } from '../analytics'; +import { Storage } from '../../utils/storage'; import { Plugin, TrackEvent, IdentifyEvent, PageEvent } from '../../types'; describe('Analytics', () => { @@ -31,7 +32,13 @@ describe('Analytics', () => { it('should generate anonymous ID', () => { const user = analytics.user(); expect(user.anonymousId).toBeDefined(); - expect(user.anonymousId).toMatch(/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i); + expect(user.anonymousId).toMatch(/^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i); + }); + + it('should generate device ID', () => { + const user = analytics.user(); + expect(user.deviceId).toBeDefined(); + expect(user.deviceId).toMatch(/^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i); }); it('should not have userId initially', () => { @@ -76,6 +83,17 @@ describe('Analytics', () => { expect(user.userId).toBe('user-123'); expect(user.traits.email).toBe('new@test.com'); }); + + it('should include deviceId in identify events', async () => { + await analytics.identify('user-123', { email: 'test@test.com' }); + await analytics.flush(); + + const callArgs = mockFetch.mock.calls[0]; + const body = JSON.parse(callArgs[1].body); + const identifyEvent = body.batch.find((e: any) => e.type === 'identify'); + + expect(identifyEvent.deviceId).toBe(analytics.user().deviceId); + }); }); describe('track()', () => { @@ -110,6 +128,16 @@ describe('Analytics', () => { expect(body.batch[0].anonymousId).toBeDefined(); }); + it('should include deviceId in events', async () => { + await analytics.track('Test Event'); + await analytics.flush(); + + const callArgs = mockFetch.mock.calls[0]; + const body = JSON.parse(callArgs[1].body); + + expect(body.batch[0].deviceId).toBe(analytics.user().deviceId); + }); + it('should include userId in events after identify', async () => { await analytics.identify('user-123'); await analytics.track('Test Event'); @@ -163,6 +191,7 @@ describe('Analytics', () => { const body = JSON.parse(callArgs[1].body); expect(body.batch[0].properties).toEqual({ section: 'hero' }); + expect(body.batch[0].deviceId).toBe(analytics.user().deviceId); }); }); @@ -184,6 +213,7 @@ describe('Analytics', () => { expect(body.batch[0].type).toBe('screen'); expect(body.batch[0].name).toBe('Profile'); expect(body.batch[0].category).toBe('User'); + expect(body.batch[0].deviceId).toBe(analytics.user().deviceId); }); }); @@ -215,6 +245,7 @@ describe('Analytics', () => { expect(aliasEvent).toBeDefined(); expect(aliasEvent.userId).toBe('new-user-id'); expect(aliasEvent.previousId).toBe(originalAnonymousId); + expect(aliasEvent.deviceId).toBe(analytics.user().deviceId); }); }); @@ -236,6 +267,7 @@ describe('Analytics', () => { expect(body.batch[0].type).toBe('group'); expect(body.batch[0].groupId).toBe('company-123'); expect(body.batch[0].traits).toEqual({ name: 'Acme Inc', plan: 'enterprise' }); + expect(body.batch[0].deviceId).toBe(analytics.user().deviceId); }); }); @@ -264,6 +296,14 @@ describe('Analytics', () => { expect(analytics.user().anonymousId).toBeDefined(); expect(analytics.user().anonymousId).not.toBe(originalAnonymousId); }); + + it('should preserve deviceId', () => { + const originalDeviceId = analytics.user().deviceId; + + analytics.reset(); + + expect(analytics.user().deviceId).toBe(originalDeviceId); + }); }); describe('user()', () => { @@ -272,8 +312,34 @@ describe('Analytics', () => { expect(user).toHaveProperty('userId'); expect(user).toHaveProperty('anonymousId'); + expect(user).toHaveProperty('deviceId'); expect(user).toHaveProperty('traits'); }); + + it('should read existing deviceId from a custom storage key', () => { + analytics.destroy(); + + const getSyncSpy = jest.spyOn(Storage.prototype, 'getSync').mockImplementation((key: string) => { + if (key === 'custom_anonymous_id') return 'existing-anon-id'; + if (key === 'custom_device_id') return 'existing-device-id'; + return null; + }); + const setSyncSpy = jest.spyOn(Storage.prototype, 'setSync').mockImplementation(); + + analytics = new Analytics({ + ...defaultConfig, + anonymousIdKey: 'custom_anonymous_id', + deviceIdKey: 'custom_device_id' + }); + + expect(analytics.user().anonymousId).toBe('existing-anon-id'); + expect(analytics.user().deviceId).toBe('existing-device-id'); + expect(getSyncSpy).toHaveBeenCalledWith('custom_device_id'); + expect(setSyncSpy).not.toHaveBeenCalledWith('custom_device_id', expect.any(String)); + + getSyncSpy.mockRestore(); + setSyncSpy.mockRestore(); + }); }); describe('flush()', () => { @@ -387,6 +453,7 @@ describe('Analytics', () => { const body = JSON.parse(callArgs[1].body); expect(body.batch[0].anonymousId).toBe('custom-anon-id'); + expect(body.batch[0].deviceId).toBe(analytics.user().deviceId); }); }); @@ -402,4 +469,3 @@ describe('Analytics', () => { }); }); }); - diff --git a/src/core/analytics.ts b/src/core/analytics.ts index 983e339..a228357 100644 --- a/src/core/analytics.ts +++ b/src/core/analytics.ts @@ -31,6 +31,7 @@ const DEFAULT_CONFIG: Partial = { debug: false, trackPageViews: true, anonymousIdKey: 'analytics_anonymous_id', + deviceIdKey: 'analytics_device_id', userIdKey: 'analytics_user_id', integrations: {} }; @@ -42,6 +43,7 @@ export class Analytics { private plugins: Map = new Map(); private _userId?: string; private _anonymousId: string; + private _deviceId: string; private _traits: UserTraits = {}; private isReady = false; @@ -51,6 +53,7 @@ export class Analytics { // Initialize or retrieve IDs this._anonymousId = this.getOrCreateAnonymousId(); + this._deviceId = this.getOrCreateDeviceId(); this._userId = this.storage.getSync(this.config.userIdKey!) || undefined; this._traits = this.storage.getSync('analytics_traits') || {}; @@ -105,11 +108,22 @@ export class Analytics { * Get or create anonymous ID */ private getOrCreateAnonymousId(): string { - let id = this.storage.getSync(this.config.anonymousIdKey!); + return this.getOrCreateId(this.config.anonymousIdKey!); + } + + /** + * Get or create device ID + */ + private getOrCreateDeviceId(): string { + return this.getOrCreateId(this.config.deviceIdKey!); + } + + private getOrCreateId(storageKey: string): string { + let id = this.storage.getSync(storageKey); if (!id) { id = uuid(); - this.storage.setSync(this.config.anonymousIdKey!, id); + this.storage.setSync(storageKey, id); } return id; @@ -160,6 +174,7 @@ export class Analytics { return { userId: options.userId || this._userId, anonymousId: options.anonymousId || this._anonymousId, + deviceId: this._deviceId, context, timestamp: options.timestamp ? new Date(options.timestamp).toISOString() @@ -313,10 +328,11 @@ export class Analytics { /** * Get user info */ - user(): { userId?: string; anonymousId: string; traits: UserTraits } { + user(): { userId?: string; anonymousId: string; deviceId: string; traits: UserTraits } { return { userId: this._userId, anonymousId: this._anonymousId, + deviceId: this._deviceId, traits: this._traits }; } @@ -348,6 +364,7 @@ export class Analytics { console.log('[Analytics] Debug Info:', { userId: this._userId, anonymousId: this._anonymousId, + deviceId: this._deviceId, traits: this._traits, queueSize: this.queue.size(), plugins: Array.from(this.plugins.keys()), diff --git a/src/types/index.ts b/src/types/index.ts index 2e7d6a9..37e5a11 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -79,6 +79,7 @@ export interface IdentifyEvent { type: 'identify'; userId?: string; anonymousId?: string; + deviceId?: string; traits?: UserTraits; context?: AnalyticsContext; timestamp: string; @@ -91,6 +92,7 @@ export interface TrackEvent { properties?: EventProperties; userId?: string; anonymousId?: string; + deviceId?: string; context?: AnalyticsContext; timestamp: string; messageId: string; @@ -103,6 +105,7 @@ export interface PageEvent { properties?: EventProperties; userId?: string; anonymousId?: string; + deviceId?: string; context?: AnalyticsContext; timestamp: string; messageId: string; @@ -115,6 +118,7 @@ export interface ScreenEvent { properties?: EventProperties; userId?: string; anonymousId?: string; + deviceId?: string; context?: AnalyticsContext; timestamp: string; messageId: string; @@ -124,6 +128,7 @@ export interface AliasEvent { type: 'alias'; userId: string; previousId: string; + deviceId?: string; context?: AnalyticsContext; timestamp: string; messageId: string; @@ -135,6 +140,7 @@ export interface GroupEvent { traits?: JsonMap; userId?: string; anonymousId?: string; + deviceId?: string; context?: AnalyticsContext; timestamp: string; messageId: string; @@ -172,6 +178,7 @@ export interface AnalyticsConfig { debug?: boolean; trackPageViews?: boolean; anonymousIdKey?: string; + deviceIdKey?: string; userIdKey?: string; plugins?: Plugin[]; integrations?: { diff --git a/src/utils/__tests__/context.test.ts b/src/utils/__tests__/context.test.ts index 71272c7..bf782ef 100644 --- a/src/utils/__tests__/context.test.ts +++ b/src/utils/__tests__/context.test.ts @@ -14,7 +14,7 @@ describe('context', () => { expect(context.library).toBeDefined(); expect(context.library?.name).toBe('@stickyqr/analytics'); - expect(context.library?.version).toBe('1.0.0'); + expect(context.library?.version).toBe('1.2.0'); }); it('should return consistent library info on multiple calls', () => { @@ -43,4 +43,3 @@ describe('context', () => { }); }); }); - diff --git a/src/utils/__tests__/uuid.test.ts b/src/utils/__tests__/uuid.test.ts index 88a166f..87cbd07 100644 --- a/src/utils/__tests__/uuid.test.ts +++ b/src/utils/__tests__/uuid.test.ts @@ -2,10 +2,10 @@ import { uuid, messageId } from '../uuid'; describe('uuid', () => { describe('uuid()', () => { - it('should generate a valid UUID v4 format', () => { + it('should generate a valid UUID v7 format', () => { const id = uuid(); - // UUID v4 format: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx - const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i; + // UUID v7 format: xxxxxxxx-xxxx-7xxx-yxxx-xxxxxxxxxxxx + const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i; expect(id).toMatch(uuidRegex); }); @@ -17,10 +17,10 @@ describe('uuid', () => { expect(uuids.size).toBe(1000); }); - it('should have version 4 in the correct position', () => { + it('should have version 7 in the correct position', () => { const id = uuid(); - // Position 14 should be '4' - expect(id[14]).toBe('4'); + // Position 14 should be '7' + expect(id[14]).toBe('7'); }); it('should have correct variant bits', () => { @@ -33,7 +33,7 @@ describe('uuid', () => { describe('messageId()', () => { it('should generate a message ID with correct prefix', () => { const id = messageId(); - expect(id).toMatch(/^analytics-\d+-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i); + expect(id).toMatch(/^analytics-\d+-[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i); }); it('should include a timestamp', () => { @@ -58,4 +58,3 @@ describe('uuid', () => { }); }); }); - diff --git a/src/utils/context.ts b/src/utils/context.ts index 2e61dea..2896ae1 100644 --- a/src/utils/context.ts +++ b/src/utils/context.ts @@ -11,7 +11,7 @@ export function getDefaultContext(): AnalyticsContext { const context: AnalyticsContext = { library: { name: '@stickyqr/analytics', - version: '1.0.0' + version: '1.2.0' } }; diff --git a/src/utils/uuid.ts b/src/utils/uuid.ts index b0573d1..4402882 100644 --- a/src/utils/uuid.ts +++ b/src/utils/uuid.ts @@ -1,12 +1,10 @@ +import { v7 as uuidv7 } from 'uuid'; + /** - * Generate UUID v4 + * Generate UUID v7 */ export function uuid(): string { - return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => { - const r = (Math.random() * 16) | 0; - const v = c === 'x' ? r : (r & 0x3) | 0x8; - return v.toString(16); - }); + return uuidv7(); } /** diff --git a/stickyqr-analytics-1.2.0.tgz b/stickyqr-analytics-1.2.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..9d8f17b67986f29a323511facad929d7f3f564a5 GIT binary patch literal 87620 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

d%CXV;)wuCHvkfTDFX}uZ zp#?T_o~b6Ri6ef=AGxCatmesxjpq=nWbJJSGow^>Lv!^*=@B29JS3UunZ*rrwEaU6 zlLWte7&D`F|2j;QXt*H*o0lngenVec&9u{WgtjDgB&lq;QgEx+S$~6^2dSXqVks!K zhm7J9aC^Tg^AlpzH6&8;nZyT<=2~nyucnp$(&UQzln2U2s%7ekwZHI+U&#QyR%&UI#5T_RUoPNuT9C2RUcvSNNQ_&aB@Xz z>EV}4j9G8FJ0mueqtmz9$H(*vRG7h9sZge^+i_sf!?E=PyS2yp1+ZSMmmyW_z>EuCT=_GnBt^_yc{R_NJ zz{#$X^Dp8DQOur)5zLjw95lqv;e2-l1?4inNAf|~c7)8$g=*yJtz!}*W91g^HARL` zkHa-*8S}ivHHBpH&8ee7p+Qf%;ZIzWa2_k9uZ$b(DVE#N*isg#(O z!)G~HvAPwVwkAy*F zjP)86B+Lc3y+J*GPKKf>Sa+>meYq#7c7FiVVY#=Pepikxo9$co%W+N3EwAmQwewc^ zxsz@wMk|7weh-*QT(z9}CG?a2qYW+xRJLUrUKWQ-^Zbtpl{OS=8MG;-mO~K&i zyGN&P2jow$0{eO|X7Zgj$dm|Aa@PFO&8m$||4YbrexHGIOC(%z)}p8~VEAhGcJIb4 z3x&@-wU(^SQtb=7Sm>(G?fdAJ=o6HTdV`D?$Smc^HvjKaejY|WdAXNvH}22gY3r&d zzHja9$?Fbv+%ZZk*W?Krt2;R0j5HCU-`!hW{CkrI-*(y;`dDxlUQIvtqz+!lL=eNL zi6hK?NXbX5@V#Qoqy>rVVmx9g2K|a^p9ymAVovRN@F^b_UG9ZZMY$&I!5Gt)pd8cA z|JEXwr zQPqZV9w|!|=BTkv@F;iVJ_RG?)ai@SrXrR17aH=}tXgN5%^77}f>XI6SHeNs!4gbq z3p&dT1glxZ?TF*X22=IuuCy1ySlEeT-^(?aAXH`U@gc&dk8^7dW;^NsM!;0P=^pKx zgUS1F+gN_M-!E07IZKZG=sDK6p_x<}$YXZkhb-hx#>QH{_Tmq{6l<(FghnBfrWY7K zJF`>~U1gYkpr@+(yJN$~STy(=>g}3&CeKNLEV)=knTE#1>&5jK zgmf&7Hq0cQ)mxi7OlU4b@b!o*U` zU6q_~TIQe6s8N-@_xQ=P?d%!a*(q#>I>1V7Y`NMR>aA9hR)`TSVrX~t zLWrB_laKu;C(k;=a(v0=0pRpBCm-=&2+j}hRCBptTDOJQ6J%MlDw-(b3raWmv13#W zQ>-*JN5`3f$Eb;kD^@a>HqhPj6TNKNq-CL-mD!n&(pu|ya?i!(vd!m~rN93-F%lVQ3?cG=6(8E&uU9-2nooX zqCBG){r2&L32&FTi^{;fu1IqGLR>Fr!e;kb2+U#dX@ET&npdQ*MB@m!obDyV@3mypX~)~m)%w& zp5V*wCrR@LxjpNQgzdFR)I<;1ZHvL`8Q)Au4~Bqz6?VGue|0O`7ekny@Z$#rZCJ_U zFvPHkSGc|&Xw0B+HR?W3rdxxsUUs+J#|ZXAs1swto!G!+H$;Wv!}+NVMPYNv{0nK! zVPh{D70e+TFI;|Ik4CPK{?OmrH}eCAp+7J6=3?B|B+SJgS;XuA4Lq>z5yZX!8=rE_CE?Lni~o)9ROS-MND<4I z3#`T9|E}Wyp7F2$zw7$nV=b~`Y?FjN_{+gr-lnEvvlc6JnrP2z6rsDM(UHhAlE{B+ zh~>nEi+(*X#K%U74KM%y!(VTBd3`1y_l#|9s;|S<$?^Pfe|2J{HaS{{vhR6yLi2I| z^-~(FZ;DF!lS|A8vJ6i(Ba%+9Q|;cw<1`Ah{Enz7RZvRNC|;d}{1eqy?c;@yUrif( z%<@La*Yw8l->CrU$;1A0`s>l~Hv#+>Aui}gQ&zlxb&5M5{YF_v=A-@;Zp-#dlWR?s`*Ja0z9v-IZ)@64z=Hd8 zDG$?@GTxLYQ?zAwVTQu*`+1Ly8_P{#rQAnf?Z6ih&SM^}2 zOCj@=bI9p0<1`g=^^4@oQu8r7f2*x!%3(VH|7<^8wNJbjGfzoGXB_=tE=nse7L|c= z+5gAdj?MHP5u;h>FHSShlvu5uui1>F;_GOw9e<}acZ6tn?*cz= zHXj!b)0pgHH-A))F8jOx_!IH*@#AkjYIDyo0W;6%3FfI^@ndv^K0o(n`%HflXQMRt zuPEjz$p5NefXeJuaF~vem(U(cVP{B6_!X_eQs6S=nMQo%QY<0PSg z-r~E=Ftz`vFd3&IhZGMC{?4ZSL6yJwx>RwkUKzpv{=a9 z{}1fl0p-3myXOn}15bSNpV%h5fVF&~XT7>lY@6Mq?fikC(3Ai5`k_K(USovZS9+w} zm(PG)=zN&~2?uwqaq=i6(_1Uiu1)Ely&G)dDXP4}o}kl*s;end_~? zUJ=`!cUXdb-y?t;$(lC^aqNKVpdI4qc4Vwcq0@@@Saong@$xK6JRFNnll96I4;*jg zEtq)1Q}9eo^G;x&^1wg3k78K)W5Jad@4LH0X+w8v_*$d6qFzn(p`42N#ugAIH3rgcTB4amj*0ai+oM(C5Gd}hP^iC*`8#IN389Q z)@Ud=gx)Z!ewf5pI6DATIX^y>kP|1Gi!*FcCb;M;yFlpfmM&u z?t|(=L|UE+4Ley6xdbyr7TJ>#OOY4zbGhgnHop-rgsDY*n~M018?DAmiLD5Rm;qcQ zB4Ml7)_+fy0s;k|f|MnJ4<5dk8&|9kqE*=4F0o557x zw4ku;8#*#`u=@e6^Nemj=!^x_yC#qZ8|QSar(pr|>pmL+TsAY^ah+e-zedR&o%>Yi zZs|&!m{i7!UD?AMLg+JeoJYR=+B*T-9xJ*g%d~z^{ywOy-Vp8vUP9KLjQSKWH7kSi zWQ_{{gV4bEsz>KTh+sUyS;Facrd^5{jPDl`c(AxNF2zAd};hFa~m{9?7)lPk@M;8n|4lx5LIAB?oCz z3d!@rg0`MmvWG_Upw2u{U)a1f(4O`W#3lO=C>;TmGA!j13A;_ z7C-}4=icWY!(RrwROqZv-)4@+&cDCEvHRYK+YC78=T}lX5C$PuUj{$Ops+3+C!Qr~ z^R3G|t+J|>)@P*=_0NN4U<10@T7V7KB($}f={7euHkz%xb<#|)ap9+|u-K>gnJP?` zip_jau*}n3AuI_^v$mQ2nrn9do#u}gn&RWISG!H;Bdxd5c~3P3S@l`@RBERgv(Z;~ zsItybT2mW8`zyWbJ>`X{KuAQX3OiBGI{uoK?rbZv3dqf&!~L?HO&MMt z&snoVn8ydCI9ZGA3v6<0&D7ehRE^LzS&jGCcD3q0Ue?w^IDB$WeVO<))hOt=TC09) zqfb0`up$|&w$?z=RQ2V8GFND?0uisO(cn)xwVkb&JIFT{z-+guwe$B>RiOb({KyKl zvs4;vwJvMBT=h(0`txoFn)pk8tsT=VcqB|9Et;;N9lk{6HkoUAON(zeo#}R+t(v*| zYSd~+#hkRr);8)=;NQx%wte!oE^^6uPA=y(93qlbYJT?AFQzcP7)YQ#KHtAnkV1N< zQee;3Jal=nN|1zTzl$6;__kLgBu+y~RtcjiI#k>BDj*t*hHDWzQAHaNuZf!`W(TqZ zepZ!@4KI7G*4nNW6YBj$V`z5Q^BVRc#pzjdu}`%}A)CHdvlOW$Tb)OJwfFi~X_cq^ z7e7b#&zU{<&A|9||I)`r@zF2uPpjUJhVQQ!gSyZ3rEdjx5J1E{CsuIOYERv)wrA^C z9Mc_yg>1m!M~I=t%H<954w_q-uf`EHyIOHxB%Y7GllAx&;BS;+#EM;&?%$CrC>I6V z1@il4l}Wa@{@STg2{F^+(Ls#jwpj~bpVW@GHkLl#;w>w+%(Q%^D_gZp%si#K=Svs< zz8u?2=J!60aQ`{R(r=0B^Mm909yoC#**qdEDgjaMa{jC0-PrK8c zPrK!?1kK+Z(b=cBed@Zj3?KgflZ@^kfah;#xqdA=g?ShqZ}m?tH$#)LFrtoXacq%! z1-JoZoS^e6Vk$ld^D4+I1s1T-=gY1$fcLB!YW)&})agpIz0<{%Qfqk`OrKWESd-o8 z&rDQ$&jCGG(~`G6I0KvwI(^PH>N-FAKS4dYX9dNde#g$l)_gJAF|2<7IH2(jc=~o; z`G!lfZ-HjD6ZMhSy)3{1tVg$YYsZ0%>1AO+4omF^n|5oZyRt|h=@LV*@RK8m?_Gq* zk#(9Hn-?M<_nN-1&~G-m2R7i#!*{9vK6?vdU7DY56R&`JFPoIPwY-A8nk*^r^kbRX z3xl`8Az#8PN?qF8ESGma^%OhaQg`&OR8`}luoL;L{*+@qNVm!ms3tnXzNFRx1)p1& zuUj3tnn{r{DYnb)ZF4q9zZjA2>@aV)IbQ;NH;{`$d_#yo@dv&6`>MPIqnytO`#8?d~9Nt^IBGcehz`%d8L%^x^ zPahKZfTOgO1W~;4iAch{S80nDWJmjV6a!IinqilwwbN(V`p6M@G~DGo!Cbyt-M>Ed zfaum}t20;rRwGZfb_Dk*w$j3dc7S0Oz$pN-SEsjTB_^$LM4*^lYI-WE{siy-)VMJGO}9}~ zrMa7F40qP`mq5L_jO`f=G%00{Xklpa<5_J@uqes&NsirmrW^yYxm4vZbswx5r3$nF zaGE=uxY@ILlM?*o#iKnS?uK)OHkcc%BR=t2aue0shod`rJ|lVa?YIp3JLB`L@hpGM zzVc#jch+-H5fswc$j&4yk6DYXX^wR~gb*Rk5z+mC)Yg~m{r8qXQt|A+e2R$tWe9^y z39pCWJcQVz@se-u6N~M40sD69QPB36V_08$@UQC9BfsV5rLg&p%MDLe)k-sw(|Sg` zJw6(0=U0x&2w^)yqf`%I>Jmax7Q z$oLicZH2g|G8oC=&iC{$8)xsNO~F&;iSAv4oU=7{QOSeh8Fz5(L5oHHc|Z24*MpIS zRVp}W%QGo9c}E1PS(oJt_3F^Jo5CR~G|?sXbGSC##DFT)T5UUW{9jf#J~Jfd<^&nP zX|xdngTDmwF&x9fGqtYN23=jfKwGQ;1g1^GC2xc5Rv!vSv>-fZUIH!lqek$2vB( zp<4iHbLJdx71#p7KZSJ5GOSGgZdmJH;3X4y;ukU-DBJaN1(GnF7Gxv!Z0kzj_x!Gy z$KK|E1D@A50cmKPd=jnN1rZ(uu{aDHFv6EW*!L2|nBy1U6XR8aD3m z?e+>0**tdP8V+;RfH*W!NJTFe@zm{DfHfCPxRB^X?U)xC)U7>}QHcokEy-drv2Cmr zr;CsHc1Fu1-2nmC|mi?O@1iss z82T+)9MQ$zLAFgab6bG^0IzJ$7D6=-0{MaHD0GUi%N(+X(MqaJ>^QHvMns>x1&Sw{ zFfkapo``HZ_PZY>gAfOwB~#Ml1^sFQec0G^U_~u6#~_LNmdQdD7vyIDG0()3x-My) zC(?TKNHVmgZCrJ(Aden&s0D}~2W2jttX{+7!3`} zm&2KUb&=AbQ|vsEb_2cJ^_D6)T3L-Il|mchKiP|P$h&FO9(FnpEQiV;Bsv3Yqkdk3K6(CmKIWQn#w!ZfkyT!|ymM7*) zG6)#Bdje=k?vx|;7EzE76jfoL+sINKXRr&`t3*`iQsI!Ii-f`=1CESnMS0Sbev`0v z4uX`>T>g4yXp9tmfJ+t)*>mKpdMySXks(J_7gFMj)^|AB>PC|dD)-5hnwSFpyjtYI zGH4+p2x4M^avo$bh3G6Z4i+R^j8SZH4oeggOm3N&Gs(4qg)50ERl^_Lz3=QLRi_ow zRHT{*#|ZAw;oi`kE-M-W9iC!$!s$<;&qaqX;e~yI54zV+KMfqj%t8HNs1I$sehKrWCMrR)|-|^R1_}8|7*&Wd;7I#r235B zM4~D3?+!MJZ`U|)>G_ZHc!4{e%b9f2Vps=F`F5Fz`U%k9ygz=>YG*bWctaUlN~ z%zA3Z>2^XJw(D={c+axw2_mhvJVX#w&VdlHL(Iwu*_t+)y|M||SeyHF*w~bn56PK$ z(XY@jj`7g8)WuI9B#m*I)Y5s?7Th*eqglolsMvVeOO!?8?ihcx^MV*2A~lg9%&{Ql z2@{e~a%NtF6%1(Se<65q3GbD8RX3AF47$NuKdd^!g}Ig0SRKrZgZb#9$3v>#`x1h)=pr|Znv|v6T+sBqo%qV*l1~{4{@5qv&fNRo7)qu z5uq{{K635j@pv!&aP+!|SB{nremclf{&Is9{tJ&5L_9C$R!3WG$4pBTS%Z&&GWavr z&%_Cy+RJ56Mq+WQUr?zZCzG6buV?*3dm6J z%H(gI|9JY6-i)c)mP_Y(r*C=0RbsfL5rQoN>dI5RJXTDZ*$9tFv7W9^I~+Kzp(2I6 zC;>*g`UN;$Ls~Dw!Kt2`zeBsn_|TC}7lXK*AX?^`p)f;!Oa9u?`*ROM#L{|Bg8ZE^ zIRa`yl0(U6dJpeZs3+_x@3nd}oxX#R0wRla6(~x^b|cy^ z1QeJ9Xarvx^W-R)4n+C_f4w2NkbAvjCf(R=noj7rOT*4#)EW=B@SKKox5JNLU`l+e z_V~a)Tqn{yTdGmY!)mc(G6Cn#BlpzZK+oT8WC1gT;AS8@4v2`EjXo&uhrH^m%@hJ3 zfgQ8h!cUHJ2{?PB6AunS^T>HTmF$?U*u8!8J)?MNc96Z28a`=2;@o^V&9xz!7uj$i zC8LIlDhvZb$@>+YK6d1Jn?#qG)MESZ>z~K%ut6EbgF2YLO)%I{M0Yd%BJ=n<(KONa zFe-6QmQ%-A-17w$#io?L7TRjESX`c3klrC`Wdbfv8;saCk)D{giI-H#y|DCXmYpQ{ zkgrlR7(IQW@N*6zE3e>^`&G>qPk&($bw7!|6_RzK}o zmr$Jxzu|pMH^MXYftxsRmt+d1wMll2O0N=zCokU>-@LIV3wW%){OC+fqg?>A0fli2 z=(Ja)7#UEKUJ&qzhAL~Ee(E8!J=KyF5dYMDhEZ_Dg1~uxoE@L42voK)V6gsDGzD$y z!@g3Mi?dCVwq*7ZZnR@qJX1H5OF2FLpwXQXU~hwIV4wc#^sCuKX3r~iko|ZYxHzM| z#iNtmUkZ)XQ}6hnh8a`L^lv7*6P?3JFnXe00#TAWCtASK1pmM7u|%8@cT<})Cy9A( z6+B2?06c>DBpmA3rkxCfOvfJJ5nbU}GI_5Up8b!@haJn^OLn zRijK0M(HKt3shLg44^^T*>@ODBKln1K7Ga8SA*$_y*pkXczyhd;5S=OeUK{w$*Me~mvywhk!s@R7}N*S2e3IVBVPH6 zNGEfTp9t!)mh{Ae{t0A8v!f_v@1(!Glj;rx-hG>f%CI=SQIbj8g;j%MDI>jD;kTnV zl_d{`Gh~H-Jo0q0gxU?6JQm`mM+AGd#D+_8H6&6KsNW!j*Je{y_ou!E$u6kL&~n~V zj3C^eL+O?WQC7l7u}Z`??cY46XB=C)og!kzq>QWJ;+~U_cHn0C2-|l7VL{qC)^u&|ln>%hM3AcFNP^M_P8+cg};lBbO+;S5fJ3G$17Un3&6$qz33!zRgsKCPKN zh(!Mq^^DQGOiOEs2o;Tp?he&tRpYGEDF-@q?;4;E^n6X_;~G4`R#DZ zRAL*hq>$0i!+aM4e;xq(U7EAt}hm}G7f8z|YXF*C;mvc_qGA9V_|Rahk?vsEZNS&D()aaMfkgi zcpkr5y$bbb*$Mh{0bSBr91X6V$6Xk|%m+wNUtNia3$T%MxKqEygi&ljxUKmMKdlN8 zbUGNCVd&kW-f`|^zv@`>#(kfYGw#8RNQ7|OnhEe956?bKc6y?4|-%zm#iiUV!^et)!m#g1u05wcxKGf)-XuJI)A${i_>4~YTp3{4nc+`5 z#Ql8GVlW$>4mkgzyADkEPOeKjkGAH+tb?A=jwr3?($1m~Z|3?`=_t3wWgxjBg$!%N) zv=fsqf*-FO0UoY;9hk5kgPM>c1$hIU$I|(CpIX7>aqMsDZhp}@VD9qNQz zQ(C}?PXe9Z;T^j|cD2l=)2uW^$&=;&eM1bdMj`-@Qo#*Ym08Lc=cdChcl(l*69gSW zojHot5TbLy6!t^TmXp5#%1p6Cm~}eWxa9pve0w{_^g|q`b*ft3yhP&A?KjhXe|$bgLJ)07ApDmVH$Al7=d(-B zTZFh8y_8#>Im)b_Xk|UJa%t%m($wO|z4uy!A5@-W62Vp|PYu;+3cn~p^M-JM*G!HSj0RXli24nrr&RxskSeJCtMG9c;fDRCmRHzX)TrRA|k>4mOnoj@C)lmex#wL#0*t& zziO+k2pT7iJ6w%C#KZBoIz{rN;lAWVM zG9L9%x$ce^4TA`V!wKcz(ifeJDQ}1r8-C@(B2h%TY8bfz0Kxn*I1k zD48?hGY4&Oa~9i2;Uut6!>ue?+4iNJpX!2x^J(s91391%t;*z2P$vh*c@CNfKCHxV z86<{z%+I#QeNsc*?{0&eM}CIw*eCGS3Wt5Tr9wnxb~?g+ljm*U?y`MGyGBaU%>%2yXDnZQMm z!T0%Qy()Z*ICqO#wn#`IoK?zEQ@Q)SvHl9VT7=nx`=3hjLQQNuW@H>b2F-d%goDJN z`RqxpDom7QE;%H-9*heJD=51wo?nR=rg0l46*vqzG6|eioVOkCFyw(&y04@c4H8I>4f27wL$GCOz#!H{K!bl7*=w6J<{VHQ|)r~fo56t>G37pALk>*DeJ z|IF3PbV~nghhAgZA7ta4{~~3TC5R#?V>aj58IfZqdRf3 z#{3-Nlgkf%!ohM_(*VwGG5|NTOO~M?j2>cQM3MHuWWhmjOGDd`Or*KeiXt;j8n~krMdEt#`zECyyt?y0KJEQ zGgoDT`8oRA)`gG3l}KyM=xMM|?}YE)N2hk5GS!8>_G)vBEH8U7DPRlYQr!G1cx0Ir z?@Gm@Zn8i`hbnFA{P<3x1jly#>Fks`@*}51n=*J}!3jfy1f355(7G5`Cw)>w(_?p6xw(a>Q~=_dh$%d?x~{bTG_a@jR_WE{rJgojxTq^9TON~cJ`f=mCww?Qe@FmkB9};VFc+Yl z9^)eMiRi>J@;8aiqb@l+tM3pz35OW|CXr54BMp$IhO9KA;?`_|=Fvb;bSXP=d^Z^I z`6kvZq3=d-#H#(w^Vu7I9L9sbTYkBMjt(YRa|a=~B1w}{(qn8Gl~-509_x)-W;@^kT0ip`tN+`j zEJPgKN?Gv(wi08A`#|Xj_+=`F$SAoKnJv$E3p_8sJF`u|t`UN&#S=#8cjLK&2cLy$ zLS)`&B@;dd62NNo+hk_B5J+&%)Jnc6G?DG?3R$W99f)i(-cs`;`UP`~N*@Cs->KzOy`7Y+ z5N!YX<|X<0XR@}glZi-qjVYzgB;^gJynzIKe|x!=MafC6KvN#>?Gy#c%Q84JCUHw- zYZT~;s_SzqUtXRa{^{;Q;LNm=mIWaM+1^i0Gw6x(-S~((XVuKSp(sGEGlckwQiBl~ zjTFA}DQ#wF4^-H#Q71i6N1b`IfCNdXeYg)$7jW30`S&ZyM7&AfK~?ct$+_D7#PPdg zX8avzLuelfA(i}e&k;_`@(JhoDa@F#%?oi=N1YB0Nh=unZuEPO>K1>JF)*VWr1%$N zN&Y)2-o5VVDA60=B+;!=M_47x%W%%7!0TV-X1V<7WQi2-I-O?}dUla#7I+r;BfuQ? zL6G9z>mqQo0G;se-8-`Oh9fO@^m!!2ppVsGynB;IUfSR#)*nZ{`4}S*5(Gp7CQ?zt zuWgHW#r1jBaIn%mY2n#x4`;7GoW1dI_A8m4%t5&p=FRJ^oJDQ=ALVjcEp|a^h9s%AZ<)}>p9UU&v%1c&CqV;L(hqJf;P4Y zYlhwoZ@6;PmUhOWtdVUu<=Y$O3>pr95jnjwPMo|y=c*C3E zF$(Q=7^8zBb{O*pG-A#Gm=4+#8is6eX=~IKWCeXl?+0C6hk(+TlvqqYX>j%M9X6)v zeZ{VXQ}w`ECxl*V!3GB;Q{SzMXDa$Bq%0g;2~|jMgeZZqQP{_B_V$AaE2OO5Yj9H% zfbbv^^bmDi8bXpaV!a^rzG75C&Cseil|a!j01lwX=RF0fkzN!akp&L?30%ndrP(+_ zz6zs_)6THTET}gdak*-VvCLT^g}4fOZ@NZKvPlcXL>-Gh{-XtQ*JcgWnCB zNF&BM)K{Pdd0dV{ItXs4ceGmIB^ajXo49E-_qgEulk=_lx5OJWp zzTf|i^R1hDqkay47Mz{hu{<2oK@g4;V&N7PAo38U*`*NO67*HvVn^)*U`B@P395L( z9k)5j8#*D%U6-;Z#}UzxZ(g{(Q6ialhj@wIEl@jvfg_P)QCG514A!!mp(Vy8sDCt> zL4&^rQI7{@YXt1&lar`L;sDZd361YUcOee6Dl|irOBtm43p86@6KRH)Se96GRbY2Q zoSPCK5ppcG^n#R;=ZZf_v^e5WcX_LYJKg5d6uAl%PkpZyIw9bY7x@_4D59a&Vsyu_od$HB zog6gNDQ#ykbiA$~CvX=$veorQ1Jooq+qT7RGKM%kBxikI2-|U^AOuEv1MY-J5W!k! zI7EGbAFbge!8Z^201j+9abAHcziOcPACo=wRcnu!M;}Rok`B4og_BzCL!k^rJ^_ zkxPEyj|aghs=HjRb3)`Bh_QTz*{I7S^5SGF?-0VO@#Y|C9}681`H$8QPMJ}x(XN#0 z_^@h(Hf}yzsf;U0MH*-)NxkBfNgF8c-+th@$1ye7T(MazTP63d%ZXW7 z6NZ|2rLIiqIUr@+rtSBo@K&9ON{EX9MB}7eJM8Kz0h+fbQ zQ0F;)&p{ao>5UinY#5A&@^76twF~VE1x;MP;Uw@yu@2?@aZSgO7|%hU9^i#m$0~bq z?((7o`PdJ-vdLIy4b7uHyzVNN)EEN~6ofMl^iHi$MZY^@nvKFX>MAE1g_u{DmL%6T z)OYP3*B`Jof8dO}*ikS5p7tOG<5b>6OstT+C~+JjP^m5skan zkuwwarQZR~EUp{lIaU55vQWi=Og2S=PuXn{Uh~u={vxt^PUyl7Sv+rFyot=X&Qrct z=~8x>qqRhic)X#$i}NyAkQqG}@p+3;ToMfAlE4{6BfonnUWYIN$rtK(J)g!8i4tsu z&J9A>@iWR@G;`hCv_u7?bbQ0ImU++LdbcHp;1VMzV<7%L8iB@3+Q#w5z9 zd~ohggHgM89C%#vnDTasi>9IHcO$K=S=RM_18?B8;0n$&ydt!T|Ne&m?!hggwYN6E z4YY1q@9{R=LjJ$vw+n<#*uP0^=Us?+Ilv;r$UNH}I;^U7l%+%Rd`e(CL4aF?uCMSALZ6)V3d`6#|G_zda!gbe(!Cn4&e ztDGe#kn#y}enJxW_5uD75&Xt`$-$dad)1ibRvXJUjfQ3SYevnoe=%(9&EfTqF{oPB zu-Y)Zs%3e$Wpt}HJ6+{h8YAx_+h|+0QWdUbwp~D0-vJD}*yT{+-YM1xc&#^8BdA)| zuOJY%UquYpHm0?p+wG921w74#tAh6!rrEzhciYQVykq-q6>kx~uENdKdmSwF;RLF8 zYCv4K3inp;g*LM5>=gd(a-{z}Gd@_gp`Enh3tWWjRlmZYUbTLJ^z(i(sAbpop>3yo zJfUIjowkI$*p}UKpefeA@xijKU7*dj_Mj!!sqvd-<5jjczZiV){SlNnHO{PBw|Zv8 zx0;^yAoTE8xLlWCtNa`E@xd=B zh?WhV@udo^46Ar;Grv1Jfalt9XBU(3mTw0*=vVhqIPgwy9OkymuXnBkH|=A?w%%Jn z1h4Epj^Tama^AhjCRW`+4sjUI3b~d{C4?e z-{KzdjjCmBR#Eg1KLY3>+%8@Bca9W%Z76ZpQ80OMd9dxn9n6sE!7an}{m<1@A!xN) zXix=_=)?W(3D`9hwU7Pk96I^fG>SXGPhi*~a(Ulavtg{kpb^y~;{$9L6P!;dv3tm; z-A)1ueFU@!Dq@8ZR%5=}H@u%YBDlo82DiuCA9!k1MJ>Do>7T3Nye0@%k8I1jwHwIl zBLMnfG_4w|CHnFM_W#X1JZJox=D@bBFSZ5U6rwhHFO|}J%lgoUR(-Czs950|^V-gi zcy3zOrxOMD7;eb6-&XIcxw2y)&&Up_7^PFXJC^0`;D~+?*HZ6&1sSz#M=FzTyqw+! zwN~ST{@wvntO29~_tsFzMeTf&0Uo_aw)rsLtPhr`1bgxe_7=Z3dtK$$W)-w%WRXa_|0bCqjOm|5{MbsHLG-QuO}!zxoSqo~-2g19Q5 zJ2`P*_*Loq3UQ_Cmm27(`i(^Kn`O6l6+%HYq&UagJKEti0M@&ml;$}U;O{L|TSZRo z*OXSNS$2nmG%U*+b7Uoz-r!?97b!}q(frC`^^{IzGM3~>HNe%q&sq6*QTIF=XHV-_-`25QN& z#_$ZHwFk*{&R?K-1NzURyx@D(%5}-P8dm!r$w52lZ8fQ}q}EuUt#O0bh|O?bBX9?; z&$Vh&vHcNit10b9%jErQC}+Q_rcGD-_)ALN4Q!ZSUZF+h?ibq%*<>-t}+p;!M z724~{l=C^Sp_@BgB6<5z&sv+d=u*(uCu*PadfIWHu2y-ULQ`*45a*YqZ@=1^hS#8P zcdR)a-?QwJt@OLlM|{OG)A>MRSXH|p39vun+?}TBWJU~b?B|O?LQhH-fRJBRVVFqA%s z2y0-^a@IirfBk>z-i51iTv-&}KSh)8tl4Da&Vx7f?&)nSjxizc1e(|7hQuU>#16I- z0yF*Jzg1PTEjtO&Gd<^?Giyx~TT-c1Dpi%LN*3x=^;MJE04OLrr)Jef*v=%Y1=t~? zuD(oML08e*qt<0<`2|`$=%FDA)nvbPeCgh=LL8$Y4>(mCUFS+1K0)favNLk zm2oeFy&`qEqXh)`piCRAx@ufvI}i4XWG#+p?tPpcpOBv7`WxZO+~H41fd$9eceO*R z1NK8vd(h>+VPSJvT>LcN-48Vhr7|tk01)Dx3%M~EiTeG6u{4-dpxPW2wYn%L2E=h~ zz(w$ft zEB;3!&sK@x9*ZeW31O^yELj_&%tgykJ%A$B)*g7I`^|AQv9QIAP2Rk)dEFB1obh*& zR`B}K3oPI3nf(_Yk9t|k3ds&{#qvy_(a}ffKJZS zO6-@zjkH0&VjMTRpTL~~%4=*OfQdonpoylWLlDA~E->TA5N*^cN@Jl@7(gIrd_Hq218Usd`@HhyIDk`rX3ouR9L_5UMny8uk==*7o z}|4B95LkYA^cGL~kqB3Q-11!rJH171&!(1ziIc;bd)5}!Cs92(R%EdELf zn?|t2;OQsQ(0nk2_b&prV-VYt;e}4mu4p#l>S><*WmRF05{JWnqC$0a^+mf=>grgd zI^BIE=GFTHq@|0zeHPDL{|9GoTStmpcH zSQSH@t|~N1DDbgdNaJf&(E!qCuNO0vs6ZC55&omc=&IwHCi`K&`m(e;ZlAjZybjjK`MX3qPa!tYfPZYqv>i^nim37VjI|@Jy^}q=L zyL|ofQ9~nPsNG>Sf-7BqHq`oYkV+U2U9~a{1BJjV=rdS^Q4UbEPsg|y1qi1Q=GxIh z5t?#_M;>tULRJ-DQ+cgWqJpkkxkI744|W4DZ=vXJ8eq{}Je;86Wy2qSNX*_eQDTp& zXada1w`q6YtO~_PSYjYl<=CW>ljV{jMKDei zB^LnAHgHh2bVtTQdo%=H>S)VAFj)lLQSYC_`x18r;uw3Ib=W#QWkbm9qRxI5%c<^7Melkw&oF4d`^}ESNSFFT7mVTwqKDz>C@ zxPvzFp{p0XWIAj&4K?0vO;FEYIAZ+a+Js0Af5c#Uc`o;F;MP@bsTY)5OxHA?3F;Ie#1ahKU@PnlAB$OI_c;s>B0t&)&s0Ie1ck+^cytv6DLP8gpM5=7;5V(y@uWJCHadW%DZ8)491 zwQFIPi80b1YH{eb?N;8IUA3}}?E=DKTc3+>MhOhNv9s$E_g& zUbQJbKh;oTd-UYjkRpK=(DRJI&TCR9%{+-Q$B>f(s>le|F2+Rir4bbp4Z5RM?IB94 z&LZ*{!g26~e7S}CC$BA#!0nM7pQiY%rwMNGN=vcpZB1~;SZ+7bfc=Xaamzw3qAZPV z&BWezQ|S)a8|D#qou$MB9%yq?6ql(?4&Bo(-i zLgb0`YjIoMD@lQOOb%$A$@xG}m=Cm94VwU)co<~$ApT;MMM6=yw8@1ZXLR@)X02h6 z5U>)f&#z;8L?9!)RR!_Cz=ln9ppg5K8V2hd?o`1}#D;nk*q>IB+Q;q9GZkj({djJOEevrca8yyQm*>Rv7g0!h#=Sanze8?RzfJ-qfWLZP ziy7?zY1b9(5poibW~@jt(&sQ(RD~rh<#nLHpniyaQ#}K&+(%(NqX6Tj-9Y_|S{=9vN@k&Ijc{(BahJYN z-nl0YY!+Sup~=-Lt>q`k0y6GstwYRg2lo@r2eSTclcabf)(K$wX(%SfROit|E%VTb zbq;@pY*--fxDo3be*aL0KkD`|s$B~AH3Kw6?gfux?Wh3UgEpvdE`mkmX@s1uzRK^P z%LoXpDgBXYV~$_|H&Z`;Jg+jvZ9&b(04as0Ne8ka9fzp^}h zwTm_Ry?7~>#34zgsh-q~pkOg)(wK7-VNDy7daUpB_q2XSRa$E(C`;KJ@o<1R*G z-BQg5?j&{xe?k-*=s*DcPkt)BtXNXmlyHwCALupuAxSZ8qK;~za6=k&qq)DI{=HLQ zBK3u~Tl*EWn;I#bWv%tg4=IQr+s+m6P)Av`2Mx-ijWj(vz?%uxekU}0LYI%VmAZUW zONsv`=9ERbxSN!Vn~&i4U^{tC43pR+#sO`yTMYND;ONw+TFUrDwNv*}>~#*__ucA> znz*~4YNEj#Op4~WYHP)+G6WgkF*x@L}-zBFL-N$2Vow#(?rEu(&WLn^8(r*cerEq@E``I(W*Q62Nf7^?9#gvdIdQgIQ6PeW+=QV z2lUEqhLM(Mj&9h1>$rM&oGk7UA>1bVZz<&jmO@^m<1Jo2EDwV=qd3W=j?gg0t~~;b z&3mP;9wT0A^PnzvhZ+i+hS(T1!SuB?dDda>T9lDNO$)dODm^sA4Us}rE+NUke zop9*mmJcJ$fQ2rS4#RXl~)pyoe#AGt!tm4)_ph;`L`d% zbJ9ROoyHH~3GJS!o%g|ZO@63#AK_J1jaQhGIEud^jjBki@4rSrl#Yn~` z2PwQO;aNYx5DZ`FuLP~o5~~<8Ytc1T)aEU!+Cr6m7(L1XRvU8PR=H*7` z+eoM89;#AI+|t!iTWVAxeTzAnNR~hod01gNESrZ`5_JpC+Uz&qShVOpRv$EJCDmai z)y!!G9{f_<=#i=xP{_=+!$zWSRFRM9i#Rk=#=@A-C>XadgSafx!LtK!a~QS5dSYk3 zYN6K8meAszd@F$mbR#fDUwP$yQ*T?NpjFjwfc6mkF$vkOY5=k+^iuMmq_zQi>wWZq zan6^Bbf`V!-u>c``t^}Tw-6UcqrA8tJlr7%s|&*U;5ZJa6qX`Jc{*PU*-ELBBC6m# zADYUuhOu}6J;iR+?Pb_|%P}#oY-y@mogP!B&Q=5X_&^~1AR$aqpwa0P(8p35=p2`o zNoSary7V}?k&0$KUq8(#hUZAwL){c%R;R8G0pjSftqu4@v}82;OgQc z^!d0&N&2#sBer^uwxGJI7fIMnaI_Vt9mku&69=^0c{l!532@_ke1P_NeRFLCu*ZXl zFWSN)9%&S5Yd(+xSRhebqO?1mmLu{0P75~xnC!Z*nUv8%MI-{dX#Y7H1u^neG;E`p zGa$d?1EtJAw(-!Ir^U|O7W!_X-{us&kPWgLUp4AN>>eg+`!wVZ5xhfYI#_GwNb)C7s)!SGrXx<^Ovf`%7Q(z2sfHCu zdEe9^GA0$|!MAUo;u_nM3$``oe7ObYYM}2gd;>>s5y80a$r#AkK2;82yRSJ)(k)RrWM;_av{R7Eca!DtPgvTFj=8Pu94-1pG0No#bH1N!4C-4#eD{Yy zlm9U+uSRFB!g7$#FY>sGZ_%Z>L>J)Hu#}Dr$)&KUq$%4@mcr@?OMA$YAE&5~@yd8y z#)7XW3&`V#_4D{07QHN1KGIrbvnd>q99&87}n!n;@Cc=JQ$Dk5*9Ij&>_sQrG<$PX|nB} zh8@(y4C)CvS>VXIip*)0iMsvB?j)@sj$Z9kAP0E8QJ~WSPwSFHBGP=B$$Uibe}3TM@D#F0Z(02#m|Ze@g7ntJ$`598$`bMtt1fAf_W;9h`i9Ob- zW*a_l@x~B9IzDUZL5%bd4r1>w4I)9^b4>P0;<2mAy!u5WrdjV>I(}7@eQj!X%vb= zfXAykDIk?ilBOq1ozT&5k<_AEK*?_+B!J(edIR#)-v;^O1AxQxx>Y2$MfvEvM8&x{ zb5$WSiqmGWq1r9QuKr_;Y8B8+t8P_bI@Dtk;DGJnVU<4Cvq=e3_|n$$RSZvvT>yMj z=HL{+DT8~P(c21cPkiaiz|1<#t~T%+Lx`k{hT>&f)I|(geVd(zE7ns?H=|2gW)*o| zk4j}i2*mEUxZ`U01sSzz$#3g)nt;FRDY=-I&mWeHPj4cPlZ{`bkvlt%SL{!ZQ{J7n@%;2GD ze<5Gc!0P}d4>Xljo86_1Uasm3Jf&9}YKI-Ej9=18156m6#?p}_-J&jwx;^qEqddEC zYLtrWVsx>uQs&zf-s)o>Tk*px<=ja)7I9y^1^WP9>=qs|Cf^@-3AM*AP{+~2=Sdeo z#-=&q+3muL1*cyfKM$$H0SQ3Zz~Q29IEUZ7C{EtsYB@Kb zCrve{T2Tye2L~)p=v8o^*WHiHCYoxN$LJ~D7iLWN0GnLms4Ace)qcJ!l}t5(<@k(F zJ?(X+s-R8=wNwmkS6>%Hdv2j58MnlDfj$~TTi@>O7~1-FZ^zKy#&dlP?d^8!V`!_| zWt7a~c8DJqzO{#r>sj!@=FHJmLD^AumA#wq|M;>0#Mi*{1KSVscn3l5!Ou;4(;tNM z)_;XUVQ*)L{ex}@O8qVFZ0+t9Sz&v3uTU)R?G<)dp}12h?y`Rrej*NQ|C_-jCI2Y= z<-XE``(N_k@6ojZN83u~-X2?-qfE#L(WmqAuAN*i@3;f&cH$0ZW6RIyrp|Pd|BvU6 z$Fu1seSiEDeBGQraQ&ZRF;~p(-BS5~c5-`#T=6#W$M)TSwsHsXJFdH%JIrk-!DCJO zH)r{KgibD(_q~387T9AyAAU?Z7f40$rQ$q()jRQ;T8NLJMV;%66worU z{K+Trsq4h;hd&D@UBCFVpw0JJkPfP@ppUp#Vws@5@GIttBJt(@ytt6((-=RMzOo8^ zIQmoko%@xwNV0uO^mY?5As4qb99?Dd|N5!_!BxuKoxXT*{{-9UXIa(md#>-^2aLPk z)TNsTa^dCj4a=L@J}es+xNPQI3hTSm7llpSfqnm?u%0u>yB>qd@a(%;U@^Efi2*?P zxHf}(mV3?%z?#lHxG0)E+rfyr9{z>f=I$*EE}k1%o^|)ahF;Hs`$j_yI>$O|*UO!A zwWTw&%^I!xnOV|H>^h^inc2S1Ftt`%HS^T$TmU%e zzHD}Cdb^!tW{uVAOh40W9o9YuI1*->&Q48LJJnga-ePL)g0&kuH`P;xmCTmTJ9y!> zSrZSe-eSC7YwOLfUhA0ZDJ!Y)ji)vft;5IjW3|(+>t}k4we)uPv;$)(x9U{@cUo^F z=H0fgu#(zQp>?BGFPojV!p@KN&avJCyww_0dB?2Rpf<19IxR3KSWP!hO+&A7oz+_a zu#OEn^;XBMciW`_625EuzZ>f!+CZ%*4@*Vr-%NKT?2^(E!fFSf1?$680V~%gejIWHo&hT;1_XT=B!z*#v zb%t#+al89nmTkfd+sEsWdrZ114rCZ~bDhb4UOCayKoeBIy@ku4QBdY&cwgAyGy5J^ zAH;+Q!r~39&>j04vJYLW0XQD9joaH~{rE}2QA4MK=qZ}RwBO#+MLseQOGKB7Mc?B2 zk3ZyL(aViMYKa36nafw0&Azar!T?fqe}}lt^fR;BznSxy*_)dw2zZ^S+~mr>`JAqh zIBiqVL zG`o^BfGr9No5l>b6558JB`%r9JhPHn099#xSN07K5s+RYlDKl`#q@P&HnBXogD)l( zG|i^L3kqG?H-bp;Yc-h=`dfw0q6!vJnC~RQ){S;I5S1coi zfh6g(f3t1&RX|`z*jkn$^t_tdC9zv^y$uP2tbn4h!RHmySZGr*;V!}@iJYvE3rD)l z8i;wi+B*b^MK9cCjZ>Dhf+Xnt?0=p~mP$Xs%D8!0C zF|WVJZIT$oV6#Fqy@844m%=Fnbw=|;Y-BnTT0ZO{aQg+XZMrwiezl;$S_EFtlwL_= zh`Q?a`_?qrfcv*`{_auZ&s}>!D_ro~{gQc*U1J55L&(-*iuc`uN{?tJ>15!nN8160 ziH4Aa7f3JmMHFJULkq52y3Vk#^l+VFM{>C@m;0jpny%%$&U{YDepN{`ezgme}xkS6alxfqVO4f&BhG zo9OUXVQ`T!*c-jEZ!PP!k1pVZ=tr4IeJ9oBvdWB5%!WTn<4wi%0F(JXPS5Y(frb%@ zQ`W&6usH${K^M=|NxD`VX4GadkQRevoUxeufsE@IoA(?vTL**0I%9a%UPxX5H|qJU z?@p$0J1TMi(n`$1ea0K%+5^5o8#^nT`{5kWWzir*3rb3~Zb(aj2Jg}$_?-={;7DS= z9I}$1dI^`+e`oTmt4HhQCgQnl0vRCC$`04q3?br?JfZosotd>{Z>H*_Uj5^bQ2L0H zUlQ7I-8|8{N{F9Ty}^D?OaOrg62ayxK{NJ+-F~pSpKk8|P;=m^Y&OAKxtW7^PjB32 z*W1vjs#k){u9+8U4)1Mi3>5lMw^45?c3B!^gkSUnO&gSF*>{w6QrgLSFGfZPyTB8S z^w!STn>q5r+YtA?r*$Q2ij+Y(^DVqGc!gcaeq&p!#cY9W>I6O4o7ZyzKkDjhqUDu+ zL&kH2wZQY}&1%`T`zfg(>iS45&3EYthJD3)*;p(aLSm6FLS2m83lu{O)WX*p*qQfx z!N%f!PX*psO;2!(=f=Ilh!Liqb#E_LJ1?L{s`spTiGOk-7eOCjB3#8drOOp|ow_C~OFK&8Cd< z*q|M_(_kZ9&mnrm?UK*0AuR#WAdQXK91z!7Q*-<&;DP(^^U|V%<{J$(?i%b%=m5=T zmmw<5vw+5FpH5isem1_h$75>{;~#i0?04n|)^sBpcFwUD;Sd2I)`vSr*@nOvde}f@ zlbRyxhN`^R%hh!T73_89<}dVxFoixMdV;b;3H~*ru6P>>H=4u5+gvcRoQ;S;N;C+0 zLf}8_FdhZ_60?isMM|+1Oy1Q^HcOPvN&@s&P}nf`Lq!uLh-o*GF7TUjL(FyxC` zM(EdH*~ajSN^`cr?Iz_>jR-TceOQ_b8!kJDu}4R$9k0r{^cLCX%2C+-2CeXzsgkVh zPE(5)H_hv8Q6pkQ+h@HoUY^aYh1H)0wlmD7ZPVwGJ+|1!kcLlgJa>vb@hcg4g=|(~ zw^>@StBkvQ@(E)&V*{p0v}arFD|<=I#*rwa_tETu9K)80+UVsB$jo@jDqzeXu@~e6 zEcykTgcT6&A}lD{Q7t)oWt3lNph1?o;Iq7nFjkmY{mcGo|Jg<{gmqWgx$s}V=Uc3B zM1PA%jHvOM-Fa5;aS3A7V&{n6=5VEMZbobG_fUW1xM;t9MBDAumMsBmHv#K~rUOK+peX z!PWLnmbxJl$JC`6{%CJ|05yd1Zxpjhs3drk?DID8APsVB3FOwz=Ws^B7vN5_9|VoC zWL{WT`-3d9)EhDz=&;n@BfSevm;%JmdkV8|h|vpR6WrTQZ#)Lu0_0L4UZ=%pxZrm~ zF)F5U#o9x0MH~=rUBbl(X125zS9(|}JV$C#vz>wMENM&jl|_czhO4lN!X6d&xRtV? zAGeTqW)AHH23ZDgSS(jUPv8gQ0?Sk&F|zx^Xo1d!%2Y=&!(FYK``&p{3^_Y z@Ht588->NHV9A;khUkVPd2i86{pl0f1H$41Kz6ug5|&=iBYozHecQ6Q2(<=~9t4a< zq6i+3=ugu84poSZ-&*q*!-2new7~=;0;p>z4B2c*5Bm+TYOJ_0`W-4JD~AYvUg6>t z)bFK&jQM~4i~VO{O+BmM3#@_2d0OH3nj(L!l1|ZtN&dwZ`5v2_iO@Q>>Up7yN${VX z^pRcK*Zno*F^$S!IRu|fe36-8kJo0b*kj=)_1R`JMJ24Z1RKVQU2phVg*{3=B|#>p zH==DS5k_GT1mFR2jBtBk|7H*4&+K7yQ(=!OXh^}UM^H(w>H4I4BfG+h@&_@(D% ziN_FcNi+ImyDxG+Xdo~h%T{X7yRvTte(4OPwW}*|Lw+Vi-|2fzl2+Q)h>n1CPmp;l z`3pr=unsZTYz~@A!D?CILX4rk+pGWL^o?c5k?iMO<>W-d3q61^La)s_|HG=f>r_{$ zF@`_nGEe9=VoKR>`;b0jc19?NMWqBs{D^Q^+2aul+~pP@A^ zAmdmHHwwca#hVYLAK{WHSz~L60xG>Fu@yF5wc3CG{@$`wBqpWE1KCyNzD=!Id6BO2 z0e^UXCKnEIt_y#@u30l1;LZ4Dn#EKKvEc~CyDNA%>l6&oFg{>Om99&>a*po z-+zm&pCBPt%0Zcs;XaXljrS6;nRnx@OSpYqCC%ln?a_*z3~=qo*yn8?`B6c>BAq;r z7RYRpI2!Q2Y+a7_vAF<+i&d=RR5gXoaoYla6XC`;1i=!BfshPqbxi1fnak15h{xw4 zQxB+XStGr}$CKWp)v+dUyv`zZz0r5wM-0{Vo>Ppy(q#k~t@b5_fUYxM@0mjE0%5QB zOqfz;3WVOFY7X9ifzsu0E!9W`)yXmFTLHP%O62@`&o?OBjcdJNk}FAB>2nKd9|ap> zm8|Q=y^`QzL~X@L+-Ij^y(A9N$f6}KUg?>HybC{Z8X?g-lpSJQx;lUF5%v%64`kAV zyD$qoimRR{6xdC|>9@R1WeLYl=>4Fvh0d(E(kARl>=<+hDGr^u16cMGcOZFNV~?3T zNXXGBM^8$V455e||Ex@$FA<*5b7H&tm`oQ!hbZinQeMerHzVPIrwJ7XO=9u3%-M47 zB{u+-y|;-W@`dn{6b#kq8Y+H;H;~90#isDZ_xHN&!wI8?XU}_qRfg0x!-A3YEqiWx z3WIE2OJS5le4q9zOPPzpsk=68E4pA|iX(gO`JoPtj#~Cun3bILn+k=9$gI+aA-*`H zR13D;_w0!Mf{(C1qEThvNk;|G0hf+aZAm54x@w~_B?`D&|L1-q0QIzzQ{tdk2{}13D7_OCOp1}Pptdl0y5}QaVj54=;VM(s>6Z0<8kHn83 zW+Kzs5S$Y;Yl3GYvdX!~8&UGHMDvwda;X|pcHBD?F!L?;Puuw?15Jqby6Z5k`96xUoyW4ZYKLnx^n@TEi>49?>CEXV|QEbns~t@QX3&QE#6L3CPsY+yyzw{~UW ze*(L3VO*^M^TxqSJj)P5SV#QyXa*k|$lx!JVXzAQ6xnf3;M5A$eS4&WMZ)fWkV$Y9 z5w9-|1Uf)$veI}G5pwctVVyW*VnwcG%K0a!P9}P^oO#Xmwr$(CZ5tEYnAo;$^UtcaYgetqeh=QmuI{e;dhSm#hsmK#W(_xx$ig)LcoVUQ zP;Xr%hsY_YDuc7)D=?0+Qng$u{PDdYn!aqMvx^?oU1I+Y29peSZYb=kpJ$@oyzC!7>yc7MFGv#?Pr%wKba5X>Cu1b@Fd#N4l! zkhw)aB}(a#dHgd8gZI3~bSrFf( z?b&m{Wjw_}L54RtT}WJwMFt;8I;nZ^VX`8s$a7J3x1-cc7czd_f+rBAcCIEVd zt4bU|sl4HOR_bB@9*@-cvNc}AiU17ez4#oZkzA|v!Q8r|OeHwU$(cud&x5cUdFmY$ zbLu2qFx63v5(KDGzkv~L*XQ%V!e6AYUV%StFxmH14T#b1;PB(j;|m+r7$>|TzT*A`&Z@#gRmH;_x9Ru? zO){kHW6lU)$zX-DS8<;>Dw0kuu~Q5t?*ieT!oftP;5|gK+1f#)M+mXKTIo=8HU6HI z2#WJVipS1&jS7_vVI+U#3(`^;T-q)P)#v~hF)7LAu4l z!Fk1G#gk{LuDE0G;D&3n$@i9wrezk(p3Mm-m1d?x@NS1xuf`gFbYM!u8?&JfFx&28 ziI}bG{J~*!QUB_;2f2`w9}~|D%3r)t$lyr?V}V3VS`;HD%}yhS!%RiJ;g6Bm#7csAQMf{rOOP`kaRn! z-CUxX>+oam2ttfNs@kX~<{=S4Rm)h&l01AS?t&rL! zy~AxRQ+B_w;Q%b)zZn((Ra|+}&-aRSyyeac1o|fIhKsbd0M!cy{!g^Ukxa`tlW`zCnagr_9A=e?b)pJL1oPe4$@t z^ujVG6>Z~Q$NCX-XQ$E#z@?%LKM60)9Oft|aBna4g&>L#-pO=3OmU@@9v>Xb6wTfF zVML2g{G)dqx}5Q6G#B=c*fj1efF7lqRrla!fq=nS9l(wFne_#2=^s+|sw#&v$ri^z zZCf-=r{I%fK|;9gJjZzY=XA9@j!vI@=&4)*+<#x{rpCJDUBINGbjDk6ckhwGZ@(Wvn1H1eQLw%|C#LLmq{b&1! zr7m5NOuzs`DKh2DH<>{>geyRGBwkF|iUTA32iNCQuxJD!S_oe172#=q=@0U5|N`n_H7U=$Xg-{@%o3B8fr3kL7rJD%4_AeJD3L1>0G6np0D{RMShH8>S2 zS|hYdosTZJPwPY6wiwqTL-ha+bN#7jzS@-qvhOy9n{^&H0)c~oF$ygE3Zg=zJwtdb z()m$}^id@6=>w4|3ankRVcnhApD!noBv`?}*`byRz?N7F^#GQl{{|Q9k=-wuB_WV$ zk)UCtsCZ1{73S>Aq7qJ@-+o!nApTH!8~+EEv)AKhX1iQw$s^7W#oCmiBN7QA+x;-d!fWwtrar&5g1+%{ynCECH{Kk&RY#5 zJFbC58b17}*iud49)n^ztoFw#ZkQUt346glkuATwiz685cWAZGTFJYH*5sJi8xReX zl(0w#w4Y~FG9GR@h2|(dp6X?`@zgd`{%!tSa1OiuJY5-fzrTP^z~LK(18?Bw%M!I@ zY~l^_zk0iU2{>Vs=24%5dGTMrya^+ySQ>oPF);c;^Zb7!HhAiG&Ql0$3y_`evomYgCY#CL#ugj(!~lTh5rqG$B!uoW5^ z>?05IWlRwEJ^L>finz0b-X%C7cLgy3Id2H=H^gZ}fmTOEB|x_@g*~FcX>OqyCrMkW z8%$^TZQaYW5B(-CQZqOQw>5d<{}3n=i3sG(Q-F2lDy^kVfI{sVe#&0H2NHD)k4;E_ zO(_M0!`n^Ct2|}xMjfG(Tu`4<&qEIjP6a^GcWf1547S@NMzWYWNko@`K?K+oKoZUG zMDO@ax3}=bx=o(BQ#gZg^DBww1V?Q>(=4P+KLHU%)3kbmzs}x}o^HE!};Ydd_@SY?r)dwh$H z-kRZRs5UK1*yo~0aXrceMLrJ_e*v??{erM&DWbnCV1l=W?60}qBgE9*d9*6x)8H#( z`V=qNl-!*CTj7Zt7;90m!!}5)UXI$+MLHpfLy@svzy9+UVrAD#tcDY#v7+W|>j&1| za3ujZ;z|r%Y{tEt(T{-qi!Y#q0RmxK9!`W_8l?N>;Bva6dI!WCri4nm$_TLzXxa?Y?o5W5sf4;8L4 z_9QouYv_sz0OX&WLCs!>6kY`j;)I@V1kNC{+be{NA{0QW@=2>|cG^|#tUltOT1Vpx z&z2p-@7z&Paihx>Fq}0AnS9K^R8XTgQXugir!ey;gAXf9g1wN;fx=cFN|@0;lYLEK zsSNF-8ack`aSE;17ZB8YwcdL;CNLn>kcY$9AxQ7lx}kv0Z2)M5L5^XVwdG+RMjC*b z1d8@0yYj>eHtOFDCZ#u2>G=3GU1MG1+>AH32d>@4tNh#9|ZijL)I_}kR`p$HVbTe z`ZlK)Tta+~DCYkV#Ga-&bh0%^x~?|gZo_^o`*Hg}3UvyjT_aZ~?dZ01Z!X+k$#rSHD z(^lriN>*w;U0OmUXpmf<8Ytd;5fqao`h6_kTY|L2K)^yQA+^B~`3wshG0dog8wEsX zmg3>ocOf1rUh`CMjbpQicWzhvGp$EU5uqZMwDZQjV)69NqJ~N+8Zw(_svvyuzHLtR zk$B5(9MX-NQHyVUoa1<=aJCNsT<5`$@!$g*vlA17h|k&GvA?_6W{1Sxg=1G-i4EMn zPtLII^(SzBa8W3FUb~4)E7U7CI)nD4yA;$xsIzGEhGVXB-QPD9>;c&(KE!gakddd4 zwY~X?%4VKdT&vw#0GKFTM<~RbOp! zH%3o66r_;2rsuNaP5vCY?`#yWq~dAaF7Q#SaLz$%t#__{E>bGG^#M-mmiVTvWWinj z47gy?)=r99hZ5FuR$fjn4n?^W{uSC5`>7GRdoI5Mw&&5jJgOG1)uNJ`UaP-qPonjjm|}-PsA(gkL-M;5lkbpVptkxUe+#H4hqcffA~1Z`ZC+RV;hdvjSDqq6#O!yBFWDMX5-uiDDfs;$lMV z6ULqJP~^p16=my+NukN!N3l13$lk#F zcxil#1tDljVp|k5FW6x$jHs8U)T+W(5_DmYLGfw2S%U z3N93Hh+_FDY?gJ%mv^vIPk(AWI1cU77}J$Zk)0&onhH+}nAhea2YeNHr&?iLiG3l? z$}4-uV!~?8yDUY%Pczwj>`6*EXFAo>>_Nx(u|J^8`ZiK$*bz8X^bY1*!8`@DBXb9! z5jkXXe8j!e@~-6e7PR$!S>GHugD)g*z=*G8%mW@g*o=SN%-6i4D3#pUM!mdP3}_%X_4n#VG$k9;G#pzOA25zfu(LY6+4Tjes_oDj}uX4y` z4<}fpDi3;xR(vL(5y2SEQA&`mSP@xL1~934FPiB}M8Klsic|7K zvr2Tuyful=!#p+I_M-F)!QGWN3fiPmw)qDh))pC?VnZwTKA}H_;H z_FK!4(0C1YgwP0REs9VOR#nzPBQE*nKQ;RU_vFhe>$0Z9`vnv@TBv9TT}uDe@WUfM zI~yNFb3&`;wa`vU(ajqQ#K%sMmwA%n+DBV_M{O*y*YSf)bg>OJMh>mx^V24zZ>fLO z!Fpy|p;ip#*5LO;7;EgSs2nD3zSpZ2U)l>h+8SBCg+8UM=|QTQ!21e9RkO?TR^=|@ z(&IyIg4DjkL1zmc8j{=J{FG0WrPi^B2M5`2MfUD=i6G= z@A;D4StUbV)u+uRAr4oJBs3w7X*I$vf>J12U;2x+Z{v!gz-msc98AJyF4Oi+VfkX1 zgVz$s=)8N1q0D-qB#Y7KPXL-$V%B-kw+QQertd}$f{AKVPBPgr05-#-9uCsAcM+Zk z=G>OgZpplP0-;5=Pp?#G*U)F&S{mma;!J-YzPD(ELA|KFz5GJP0-qsUUzkA$p(V^5 zJ5Z&FW>*DKP$Z5FrITtRx}j<+j{h9wPK9#(l~;VMPdPq+gJKamu60KCmphl}svNyAhEWSB{Eff4bXf-w8=#C#@ykZg&u3~AP>qbA;a z)6xkc)Jb+^j5=D018nXb!8O2Eg%joj(tpV=x&;pQ@Zv=1SO}PY-~bv>-VsMe4ZByo z3&gynF0QBKIlJ%D#?}{t{~DIPDXmk*$5!JktAy?z*@wNaFk-6`acJF(hg-|+YIzHa z894)GPmLbRZ<9&g{TzXM%^42Bb{dlfhpVt>m##13sH}sXK7!X-;8mi~na#7@9v(1t`O5*+GP`>^v?&S!4bVBe$U-yA2;0%ong8*sD#d zGY6A`%kd$GpM(^0`zF@ohN!2-(m8p!h%iB^$vOI`tAch!Vb5_vPNgKKs@uq2Toc1u zF~7-fpwq?2uhBlbZhAZM=xcY>>`c-Y9*{@gk9APMq))w|M#l@uyr}eQpscUiN*ACU ztjsugS|OMi1VS(#%+jrb22UtM)!O?e!vq13O`dxn1ExyHB2eq{CG9A{;X}cGZCL0b ztc*c=*J6hKLYF$~kuP@5dwK26$1n2@uOe$+rrkSdPP~PxT~TP7N+SJ9jBej5{!&R2 zBpIP_mDTIiZN^*WfK^>c{K|l-j575AgFIAc!0$j2%tIj7cc&;%1wT6&{Te)4 z)O<=)w*z2udL!jq*5qXvQmT`RWNy@ocRlu-JM@UF5@7Vnp#f-Y9k!3%(7_8C6w;@( z2(sQRuS}QY$qIR|AW{fH))+b?Ojk`-T%=x_fV{(OB9H9M6AiJEJ-p^>{2W4BHn|{y zS%`b!(9OwtZkql&iYkA5k(yX+JprHFHzDxt)t&O)U)63=mRTlx0@pfJ;sDgLWJ=#?#Ml8)j?f(`fmc9( zFirC10%7J(Ou$PXLo|ZVKbqo<*3A=HSs5`c#DDsxi zHoI&G(^e8E1TjcxtdFr+4~Ro#tmU)F$1<|9#8((PHlnmk)}5y1CJuqMoV*}RAFYjMQP>B@p6;faBeZBYlY(c|xej$Dhc$iuw` zFcE^pPGpQ*T+6 zCIx%=-X}JyYA@ujd1_q~zhZH(?n)<4p}ek*PYw2~!vxX&8Wq4@G@%J&WRM8Gs>?JA zHre&xa$BgZ-&uZh3~N8UzSzx(4z%zYI~>d70PD=Jw$-7s#F(4}I;$Hq?VZkLnY7jT zxEg&EBwBnku_Yx|E7M=hh3*=)fnBx-#gB2ZqBz6${DPNRP^ECLa880M+FDbZtzwh+ zn=q&U$jh81dIW^{>>W^rPFC{$^P6ktELY%l6MCQuIz3AT=ihzzP}d02Z$? z!@-RF0(8VCnyfMYDaQv_xQhi=$swaEtHR4KWS4(=)9B~@jp!(FmhvW+3&NorksvOW zJJ3ziF@Ig=qlfCO+Z<-EDpPZ}vSymqDzAMe?D>%sUNr(Mje!H<5_x2**j87ZIg*X&_Cai>*L3o5!uOh+j~2 zMnfD+gbOJ*nyOjmd$$Gxy@CJl);wa`BVz}mwh^^sYYEIX>d*xRex;`jsfFf%cx-NE zN&3Q?J^9M7OP^SOSzVH6$DfT{#6ErOV21Zn5g;(HgRzNNM-|o9OxWJJkkoCFq(drO zhEXxvNj!V8jw?QLoTa!6!y(gJMU|GHrx*Zfj2kDCRVz6Y!YUchKq&0!KL)j2Ho8W* zjby?#BNyKW$~TJ$v26uCG$!v!h;tbq2BznB;tjGGZZ506L2xF3C)O?T2J}9AOi29b z%`02sE-F>*DJbgzx1KJUl&N+L1Vvzpxlub4VQG_j&_KxB*&C+vh^3hPP{3AQYC@b$ zBAg@MgWj^(m4NCta^N?do`vub^vdtKSO;Af9x9-MutzVdPJ$XNm8tb&FB)2_zl03| z4NP7C_Q6#m2FBE{sf_pyYqcT_3DZVUu3y)^D~om^Y*ohY|7ng^?!B=kZK#^3p}vrc zaUkzVB+-Zu^e0Qjj=)Kp$<&{1>~u6q^KzcaXRxi^?`*iHBxLJJ5(O(2r0{nYk8?hF zQuO-*Kl?s4Q9U$zkx#qadhBt?Nh$8!>XkeABi zrnFf=oQrlJJ`wq?*>D8vFK{;k2`y%tsm^bP$GYo^y8vH^}+2U*! zGGLsHk*P*X`tM<=;=^hsZ39kSWbM!e*+CXQM68^F_8Un8o1xBmr4f3?64db#mh0*J zLAK{yugNYcVun`soQ6*T4dH&w64&5_iyhyr7vcFfn?wY=K{ilIZis<_v@^cU0uw^C z+VPF*XbAXT3{HK`?lXe%OQ8)x;aahsE;GN-fzA!ZQVdKluUX*R5wV(Zj_By>S>?x9 zTa;gK#@scfXFaqA`T(iX`FfhokN3(czpxX3{Q=^g(IY`e6R^g3Bev@m_OAgC)Z+uH z9cqc&k*Nj}xCu%bXA+Z8FzAkC(VXl^ON~V3BX7Tb<<8k%sr3WdfCpB#os_RfBWuXw zF#AWNv@<@4nHHqixz&FrQ!a^?9yGMdzcSLk%80Xw`Us8?R+y|0vKVZ9v+e^sD;G8t zB0XQvNv;#iMTB}7Wxl_(bmG{^??;Vd(XE=(aM&-PUgWWI1SXwykJQHn|&`4~7(8;(a$F^|9#_kg5&|NElu!nVFHg zo4pA^lkRT9I#>vRo(|)6^UGd!>yhnajrrY!Q~e$bxRw@aG$|FV*;cjiQxNiL4n{Yz zjahrLk<_Qh$Oz+kF-VV7CqCpMHr76D(#N_VbJaT^T%7yX8vbo}Ea}>T%FLF&7N0(wLaC@08qtpu4DHxiTPG zqFwabku`9=As5c~2Y~f{AC%6GNBl(lpr0x3{B;Tm5>N-o&dShX*oy?%Gv41%x49ol z6?M%znsgaE%H#j4FKP6A#09+6Uupp(I46mC&g9XoiO&~;cBac;x(YUsJH4uDmXEVH zCB4`h$f_qrc1X0fzC!sRG$)P>GKBLQ;Lf0T4B2hN#K?MA6i3M^aXZrw=^XEPZ&%lp zg?GG{lVNxE6`A=|Hmg)g7LHu{bD%NS7$gMbaD*|Us!z|62x?EH&!c3<2B2Tr@P4U% zpDrA`3Q0$C5U`Ryn2pyiNzQ-DU8gWH1VU74W1^*NE)LmU5^WY z!o{-qan3{KbP+SLn)XT%PnC5%u3L}Dsvs-~u?X^(i|os6K-D5dac6yuGaa(O2z{OI z{Ra-06`WsNyi&%l*IA zs73=JCwP>b<>kb|*E1ZtH$Z-6vUcQ^88$PK!V4%|5|x{0S0s{W?AG61w` z@d(?>YXNSh+Oi(XmAW%&LVf$^Oq?){jE~Enk%#nvN7C*;jSS@*koP+Hz%pD;_1#&y z;t^B$EaQBMqbpy~wKJrgfMwyODC>3Tf<;JWR$cz0s)(tr38j2+hbH_4!lI6z7w7{k5<*Q22t?+p?dkIi}}+4`0FiU98fbJmOs7{H`r zG)pwS3>F~CLKduo2#M-Kxdhd@MIjHMP0E=(Nh1*j5`hDeC*p&Yku)?{6x4fU0DsAA zkII9h+B{T1(`<^$n`wcEy z?l(YX4&(i2NdwnQ_ium`9H?uH5qAqebS~j`ghmGJ;oL`Tl1kBBO$B|cn&l2ws}?ae z1*7Gu^&i%!N42ria6GBkNP-sbR4g9UOZo#?Y-xKjkG%4twGg~9&;5$--UgcD{O0YH zu@}iH9>&?Bl& zV%B}X`7t`caX{5RLjn0F`>Cb4v|c_JJLHj#^=>&%dP8UUqC?cZ`dmKK7YqO2JKxQl z2dC{qwolwdnjN3)V~1;$Jxu>_XNKK2^%!1!x2Ocbjp}owT4=Y$RJgdkS90P%ZEH=h z=gu8hRWDhrjQ2%8@w1PIGV|y5yUW7V)Wo5*9FaWytS#6BH>nj zJ#5}M@!HCdlZ3?cJ;7CVJrqS#RC|f19<|-^CyRLtIXr=u%D3@P^1STaZ628n;hHNV zRSG3lVlG8;Lj-o@@>k)%>U#X` z(aUixCCs&;#l!2NP~_unG)vpKgBu;A^SrYQ;8fEV_K%`4?5T62Ad<_q3j(eG8Dt{r ze(zNp0DzKoY{$ueQ)o%mzosSV*g09Lm5n`RIQhv=`}4bPMNLM)gACR8=nEOKP=A-v6fPYOi zI!P9|5ty6#P{LOpE0|x`(lGEP&;nNch3?wy^6c`zB)vg(#rVge7kzDi*g{|=e-z%N zzDpup`Tq0m5mSZ4wWdz@^t3XLVPYZ>&Yc#pCcV|cyStyeZz3@zDUv8<=t zKiybJTy0ug&u_2lda<8gFNY^uglK)H>GvyHHvPzi85&;Pz&`hsUKRso_Dk2mxiT&}k2cEFpXcU2u2Y!4oQ4Q_0M8O|m34xOv4 zO4{sn>m{?r>4^j#gJrCy$%!ZDkn$$vKnsf&M=jg>gw>zUDRpb+$A_fs%IXx2^E8jl z?96OKpw&6}CS`+cu5;W>YiN(?To);m$=(o?CVPuBQY`+ii3*QMg36|tiu6*GV~}2f zXXA!H^Xr$m%$8Lurf=yw=XFnvz3~k5PA(P|Yvog8kLZ6aF{(Ca+RAgNs*IYQw)!G# zCo|mi9?|z7H8gEq9yLakP1hxze_s&{+D!yb3hk8)gYEwqgFG_HOKO9D`;8;nbDk2mC$liQlj@ zdsK3vex%-)n0~);9M;g5+`QXIc9z}YrDKOv&ieWp^YU=xev=sWy=40B@@`s|k zi`PJv{ervU_AB|f7F3ifXPvHZbS(q?yHTLlLX5Y*Ywqf^70iPJPA58^D2s73XzdQ2 zr2ip{Fyjw;eKai{ZeyIh!qpDz zFJm?T8>GE z^F~C$hl*sc7IeL^9R2N-53=Jn$Yx`k__$9FE(V_sQ&4IKnD_CN!gw3yp+VB7Lidh5 z=KG2Z6`^MbDJKQ+7}4qKv%U96z<`R+PQvdg&QDL6e49*}n%LTu5biV;I3!ZPA33%Q zCWL+x?C9sZaS-A^`G*?sY#&1Q%?c>(dqyk^F&*4Q48o`V#8SN;QN>vvX!wAFXu`o5 z%J{Wd@tEdyacF2zsmW`M*3(RO`&SPf)CFKWUsFGcS8kSd)73%?G+TE`ucAmwW38y^ zXD=kDfSM^Ntgx9^B+YPqQd*6$?j>fqfDU3Z$& z3`-^iJ%y9;HWYDR?IKU&PAdBmUd_zC9%m#$%`r92iMtTB{7T_tL7o5M^B?J1-TEk0 zh=ii)ugT_BRbYQSeM|L_nR^S1)Ipn}M>Z0;zaSC)5V@-2hWRo>K^;)3Bo2QC>2Ob( zED4WJEv^ws(7Wt19Rl+ALUxO1a@CMtj@ery(pPhT&;G?CIU}wGBE}(ths42;>YDaJ ziG`-Aqq(JneM@mSCl$Z+{Y-X8#+jQ8AljXeLjyj9?@sT>v%`6*g}$g66pBw1$wQ?6 z8tnYSZ;>!S44j0Se1ITJ(S<36Tfmw`sE|bVe62aJ2YR(T{MsQF&F6XvTy589`z&=N;1Z1{4i3M21m_oQ z-mr=uonc=)H@+{Y)AdGcQ;in|8Dm~DIhQ=e#}-%9j9UzWW@O*iDpNe2bDg0=iu$}g~S#m zkyVGZ>^*|w2h-;HLw>4Zo~Dr5$FBjGU_Wed_5Ho-`TW#uZDjxQaVh8D{$5oal0u`4 z(q;~j`1g13oz{HsEp-N&WVS>+y~v2#y!-uq0uCqu_+mw!XfnoMt?8zg}@r<+MzQ6TThr4b!{6!`e5hcPE!_5WI&A_hGTQ#Lk z*2KwX_a9q5dJwOvYIjL2b~@FHyQ|2DQ#LrE^zl(@d zD?(62FLd{}Isq=ev5nMAcg<>jxM?i~(XA<=cbjZjV8%r1r#Rq!&R=l{CS~eM6(Rom z6R!m3?H6H}-kUVZzG54xDxb?gO_ejWupX!}GiMtK@eU)r;rMRY=yN7sYH)OBfC(iG z0!k`~1BV^wfG>7)X`cn}e$i_gL;7ln@F4SgODDAEJ2(+%jh2oTlxp?Qy^g0Og!?%L z=bj<|P0r#I>taRE+s%=!Fo_(-njLe9v@M6!P53fn`dUpBgis(xDx8Zjr=jHR?62`WV(8(O5-J|>OtmGMVdB19*bT<)) z9+ODsBN4ST*LcdSt_GN}XqHOQX35bO`hS%dOZh|He`1q}D38WV&U%q8h$QF>Ep zi{VBqKPFw%KSiJuZ@`tKAW$yw=&0&SoMN?ryCewgRP~<%cPa4tzQMEU_tHX7j8()G z+8M{)+I``y>V?y7jcg>g=2hp>>~*ckieZmz?}{Bs?_0s@u3AN({npW~n#8tj##KdY z>!P)cIj3H#lK2`e>uI)drC*xPRA1%DQ3YcZn8{=77k|K8{XR0*#Z#ZN>M@oh?+$Qh z9ux{83d@x$=r{xD3@7dRANWs37CWGw61{2yZvC}vMFQz2%NrO-nr0hR--tvtgrn+p z)o7N0y}u{+#+xdcoP{W4>!g@J7Pi>(l~;$SM@{Cdk@sa1r$2`Gtr9ES$W&{a52OCm z;hvnk!qQwk-(NK+M-s1PD{e(Nz|<_Z1S3-pB0Q4`v9Bt8LY;^5ptXI=Gehe~KSazq z{`)XsJI+c;+OTg;$VCK|PzIw7Q($sw$sj*8x%pU}Mx$oi`7^80$Tm%JL(;!51fqj= z<ZnkTcOt_hGQ4Oj6KWrqpB;iGQ1{J~oU0a0}F7>Z=AqEZpF z7}%ctFj;=#{-fd*$bmbSLcSy>FTzUhhU8;N_IgQQ)S0dW&%@p{5ESJoZ~ zSpD~(v8Ty>$O>`uWWmH5cdXa69_6X20tATI1S|)Vi4tZWvf_6%s4kj0+T!KFWsnd9 z;Xl`->@SJRZN;FIn@J^Kd+wXiI5=r}VxSHi$#_~RuU5y-itwHOO(Yc#eKuwOI6(@1E(1O$>|1Od?zjDVE$K^$fvGKo30dQrl{6{@n=VT;su7@pkNrSk zA@gmM;-caK#%YdXiDTKY!2XQ9~!YD_B8B{;&U$69EzGsk#&27pCsXadVG&%TOdU5Y(VOLvz# zgs$0~%iW9ckg7by_ON+%Ap#dFncjmJ8O}n)_K8CA$>$!sXg{_8jw64Fzx%TCIV$q) z8+AX_N+xy+VeN77=(KlewY6)3q8a}*)F=-Ns5sPo8kL(c(!!{cnY%jdrPP)Zs&xgl z<`<+RqCHwe;8u``wJE47sd7x-D}x_SRZ{1jLr3jtC6O5iZYrCNqx(u)Ycxg~s<$y= zewAtS5`93W3I}?2#==oqCbUA}pjAKBZsTjFgoqY3-t&8)wb?RLtLPSq{1mv?PCxV$ zjlu8avNJD9Lw92FMU7!f62SrfZGj4OV38A6HsCixUM{Q}Wh&-`ow>TtU)%0J3JD7n z5iB54UJ5^v)syz7At29-WYmgmXt7(LgQvjBU(S!3{*LBJjmHQ|B<}#{N-v6m;F;3A z@9?%F&gdVaQn4>d>mxI3?(HeR9OjH7TozWf3rS}ZZPz7xyDBNT4JSFHbFP*u5<77_ z*|>B39klP9HRxQ90@l*1e7s=_)iGlXhKTl_U?kK-8#2XfT@ULgbeuz2Jc_#F5n6yI z?hD`cdZ|Gbzp6w&qBm&hP{}&_dY@)1zl>w*(Z`~ipm5@t*s7WtT_= zK4KP2%?p$gakS#8gkg8xP}^lEXx9EjHY@F#|3o8lK%8qM`({QDv3eX{lyR`DN>x2l z3srVAeZ9E=mP`nDwF^Z8t0G2&OInn)^s_{ekeESaPQE{qS+cnI;HsYM9hgtwyG$XO z0Qx^{9S7Pi6!+t=nIiLuDeBC?6{MXas{Kg2jVc8g9zsk~dp)2#jSXH|2&^qNrrCw! zrzRIfiHaW$OGPN~)bh_mnSNI0PD26oFd&CvdSF$cU`zic@R0M6H@I%#A^1w`s} z`>)gd#B%&LzH;IE`8LvJErYDteiZoy6cEv@#Z!W(YQ1rpY$OWeGcDHw&WO@9JgJ}ZyW@taMs*M z`E~b16~Srb=P|e|^P?0~!gx|Hxoj80<3&?b~6poD(4dkojCMB(ABX(~O8XXe<#b zU<6^ut|Bm8iBrn42d-<0Fqw`gOUll`t_IsAX~g2@T=uF1%vY8$n!Z#qT|%lriOP8K zIZJLk3YtlH9M}KZKVKx7obZjyldggi9UpOwtUeAeko8y@ke#E1c?pNYa8j+5Za5ma z_OF}Kv+pXxwt|+iIOvI?s}LiQe^|5ZTfw3xnrhzQ!z)Hsd|$V0Q}ukRxZkhaE?SU= zL;~`RTyCNKh$@lq;*Xu&%HP&)lNE7!lfG{~%O6UYO)WyGAvOJ7m*M4i+cuu@7e`p!Wneck*OYbp# z+O3{X(mSFfUG?OrmYF$+RnI4Bh2`;{y7pT~5uN9$CqK1JwbfkLKePfVFIPRApyNjc z`qfikS`pfZsHQKS%*A}>8upq@*~7FC;e z^;}A}=sSfB?NguCoJYT2n5tDtT&nfdSFT7y`u#Eq`n(r7`|2~&=T$qKQSEGgwYFba ztF15aLMypGD??`i8D+3ukd~s&d6K05XbB@xP8SU@&9(n568=G*ce~&(K=0vFr79CD zH__7eZ$4hG#IC0?KM!{KgYf_<+IpUKM;OHLRXEa>&m1rZ@gb)0V z68hcfrLfvBTt9wE@sPDm=rYr65=-OvOKLDU&`k5Gk!o6XC!CJr0QKr6b{m z%xj3H0?7s1itCli=wJeyI|#uQ$<8=ugE$^V^=h^6#)I*7r4!Hvtv7VX>W_UMhu8*b zDa(EkFRK>R9BA_Zf0>TqW|TsRD%Y;xEm2i-1e3IKNbB7@4;d&38NaKM$kAw} zU+cWSpz{|m^246OUdfZDd)NyZ?6p%#{Xy?xX@&YRRGo4>a1o0;O1-eqPk~6vcspI#BWc-ZM z5XQ$sNM--{N)3Li%U>wtzk$SrZCRmkX;93zZ-onVBO-MWDVqagCzfwqU4|0 z%EMN#j1;~8hba1b+!I>Kix&`QQ=q?XISGW#c6dFb_?QR&%Lo>}2p#UCk5W#<-I zdDvP3Y?fdWe);7Ww)&D9UFnr)fuM>$*8j@G%XH(lb*i!Uc;lOoAp%PRfyjahRn+jb z?aIT-+N^G+`cWWOgEh3N_5h)^>qWoBq$0fp_!Zdj!e_wP-Ag zQw@v8Vsflu(O5iQG!~U33cksUyl5;6KQjIT&&Q&%sBR=#H0ZiPc>W;fqeTN_SQm}O zq&OBLul=I22!WOe1P7%G&si)Q*?p)*W3l6O2E2PLo-IJwV(n|-MDJa{8{97%i}&)! zz=;|`2Sy(UkuIHe!I~rcRKMQIuI6(#Zee^$2dkede5)%-@~9QvLLtx zpr4K);RK#e09cb7nCYwM_64FBjm0}rs^^WP!MQu+)a?#@x_%!q=Y%nSxBZxh6UT$z z#?b)qIH4i9F^6$Gam}+>D?u2?7ng~qBDUISVfN|^x9mhMPw>iwN zGl~T{nG?tL!0!e_=x^`7^E@YYX#alfGbIJh{s6+ImAVGvFeVBr-M0P+B-xy#{pOW;>( z#Ew1(fQ$^*lctoxt;U?>jhqnauFvB$Y9rzyZC-R~P$HS8LwqQA3-k`fz>!F;=$0&0 z16y{{SWJ{lVE?Ex0|(y%Qdf)edJO0#;Us#IZ2;(KLgTmKUDyU{6^q8AG-VL#I~cZZ z6D=BxiDrpCTcUL*MA?-1h!A5b(+g6@Zdd$+K#LHEc9%vi-03#mrbsMM{PNuE&dxFmb3*QOCp%W*vv74|osPvI4ji?#e zbQ3)Yo(3s``a|C1VMw&boe;TB?8XSnAmm8sosgrnym!0U(tyL;D@c!iM7X9mV~*Vi z?wvv}s<~s>P6N0uPWR8!DII4xa@@YJ637LQXzjY=A#xIwwjJ@Bj3J_jq|~QMIF5|sGM2wV8ujT$UKFPCbs+2-9}a@?#i8RO z{!#lukr^qD_DSoGmeo;caOR0zS zA+iQe*oDWVC~sGMiA>e!IjQk|9v>7eXptj+PPpGikp;?Ch6O~#(qoR=@=$8a&M+GL z{R8ni0^Te?xZihuu6`u^;W~6C#9?lNP-7dQAGC?S5+ew>xf^o?0_O@NU62cOym1$a zK*_j<6FbDpeclmkW*B_2_3wLree1@lB;M=6?}RDc{mTooxyS7l5B`mUvzC0>L0LHn;sWjz!6GU6n3yV zCmM&C*Oqn#NgnQZ?Ey&>2-MhjrbK43(??V$mN1~~6E1xa;Gd*4#*dT`@AFS6+po~t z8M%HxTC6YLADg$kNB9OUK8JaM?`odme?Q=VTkv3S^A*0Ei7#yKHSk$mEZ%P7Bg^l-0tG*?eH9|y@OK@9k$M~KWG;oW5pMefgo((!WM3AOuM$_6XQ+O3@EK@ z!&A30rrB>{y6qSAfb1*FrZ>IeY1~#1E1jG|_f8Xl>s#<5Yb&%7T^Hx@-##_^5nh9C zj_hO%ckuMAYkd)~j_)J)}DAK{K9PZtqVff5fVq+G&^U;9z0`AxjRYjG3Fk@OTaR>mE^v| zTzuMhVi`wv+;9NUgJ1F0Y+JpWz5kY8&Bo`b@9;(T&}v{(6N(1#yE$s?U{VVny>$SC zzO|crBD-nYU2JKu4cN5dsoOmhpU1_{_HYgF;*`_$BAQ~WffynhhF0F;1irV$+to*A z%d>tJA5a+|>)vYu|M+;UJt2+w?%Mb^HO-;1Zkgt$g`|J*4j-kyFj{8YZyajvb?_nZ zp4O6U!94l!^fV;8@KA7j_r^+9f>G<0h8B>7XM1|FTc~Ou`_>FNX>A%S4ZtTL>;SR6 zn>-!f7TqG^0~}W@FrPqT4-ii~y`(725x^p#Pz)oq6khEK%`-IwPntKc;YsfkN{uY! z!VO5jvBFtH5U3v8rg?AEJK2ZyWciudjGGC+#5dD-C$rkYr@Ie~z&6c0+k|Nfk(=yE zrnG08Cmk5ojnzfQY8&s(W}_i~pPAyHS{Ya!lY#e_= zr@L674eh?iIXK%h9JBeQp=OSrg*UfQH#x+bFAA`l%`;} zh5Txn_94LAOeD&Mac7w=#KVqhgU000ipIrx291My;Gix5WPtJ;@ok?cj4DKZ;+RxZ zk%b6p0$Vc8Df|Y~YC&?F@Cy*H!~B_?D()dyZcEHHvD-Za2lb#=R?=fl@3Eclah-a^ zVK`e@xQE*3s+DwXzr)^|+PG0O+1rA8_J);KUG3w$6uTSRAYV36qw*UX00*XNZXy6j zpfcL~*t0(5RL_K2oT^%Wi0M8f+cd|b&$uDkXp3h1CH{Vk)BS)e9Td1`lR6$_Z=9Ml zHf__~L{@08X(H#QXrP-7qDUGa@>z4!7E=n``c$7&>ZhaTv})0u!cZrA5$A0(w_ohc zz?(3)4RZ#@Tc%yJwRso(h%AoW- zX2Wru5Ji~9&C`g&gzpxqkGHLa5p;HcEgLPNp(X6d@eXjAk<})-vnTBd68CSRiwi(Q^9E+H zVG?IDg%NpV+Q5U&FBX}VB)DL~0ha=hP?8)Sp?p20X$Aecbz`TPhZy8tqkwO;GkgOF zYkwgrJGO|C0<>QMBlgIeqJ?&1qqIW+PEfe?(OB59Z(4HbpcA9sa*nobU_Yil z>m}KxZJ;t*sDi(ER>EJ*WG299diT&QXnxp0vqmwC2;n|Nk|3(Oz*c}+AAk`cw1JlC ztN{W3iZa#wV(DZ67!;jTwSxy)uT5GDkb}Z*Gml(>S5Z5p+B@3vi>+kP{g%d5)BTdn z_=4hn1X8i}eg!_-WWBxGA$AD%0a$_d&KcI;+(BCgdqwQnz72HS4CS_YDi%hQ(#?C)R!6(m>jw zWf}uO_W1|BGAN17-c2hvn0>(71O>JEu#*~)jcWs*aDTN^P!DmCtI|YkOECW}Bm#$+ z{|(_{3mfT(`J^UKHWDfVHr5hy;T=vb3{o(S=9-lV{#!!NYJ=L{6;qmF!dP@y(>5f} zMa|HB30bCV-PlU@w>>qnU}7dJZ&m2LK?5vj{9U6JJbN@%>#rS+!u1Oj9!^S_y|NNL z?!~U~27&hbuDVNJ7;AEJje776PU9pbCPzI%tl@r#{cd5yX- z)>~$CWUV&H$99pFHv7_e?4up)p>idg!!?hXShEbZ&4N<6Vnn$F>pvxV`dSuS|hF{_vmxgQ;I@^He zT3yi(wY{7Crpf@(NBHc@tUc2{+!f87m~GTUeCq@ya|eAtC!Rj&HKehjbqa%a2`%K; zIYJ&wv$rQmrG*Qwg*zIMJZecD#_lE)*B6s`XT!vyLhZuh-)mr1)s`4M{X`tLZ(73p zry5&t5!sUBg-*{4QEh0O`&IIn9SC)lC>-pGJu1^Qr`EM`WO^2rx!7tYwAy=#xD1fC z-z78GdFITmH4)`)WCV`b%^(+58%&|&eC~TtQ`@HfP?UKlTo-Xs=7AXEs3@~dOu_c_ zOd8+m0V+V2mhl10pO7-xqH)?2`&?^R&uoKSJ^v%s1>)>idi4%gI#O5-kR$)9rorB@ zHMD+cs`SwMYty?Z>3@Zl)970tVCkG7+_brLgq~gEFh?H}7Ke+({-QCVhSAzNe+$z& zwHz$+QLUpI`8lzb3)1%6BDW38az@7F4`jf9&HvbHd$X$j9T~ue9B=}FmEZh$YoU_R zx2|zF!Zt4KcYUjqY*Gp3;lkYO%Z);y74#WA$XyN)vv<2_i$V+gu+6n@Nfw%MhAR&^ zc_9ys$TIE2l?G*8n0wdARJTBHuy+87GSt11{Y3$uY!BcZf-eR6J1`g0 zRMs+sJOOtU><JIv3ORVjXNeWug#CnOwJh}W;RtLNsFDU12KBrGR82hQ5 z573(1!a*HoJ8C^xw=IE}Bh+PJGg)l7quhTF>4)GQw`)NEh+|TifCrLE+s1H(_5`^) zjn20=pG}!i5IhAF8{MR2PT{mVgBH0-3AKGt5$w>8aj0hz{_}p)qH$dSHAUo?a;;2O z^OZGh&Y%=>O(BJJi9mLQUUY_IcGzHtVKa$l7qz9#=J*~+J zrHz3)$cUG&UhtAN!Q5<_iM2IEIsd^I50QbT!ZLzvtR-^fErE zqI<9tZku+Od=4wPRXPIVYN8JWI=T>h-$!IGi2pV{R5~{-Vo960AvUt6*tGdJSHGF9 z{{_LXS}WLcpBT;;(nQTeQQw8#{XNi{TE$S<;3HkfN!b#S6#^1!=+_(|XN65*?2fsU z&1-=S80?@46{JDz%>c2WePEt$18WN)P1^XA)h`kdj`G#to2}|jLLrmGA_}=jl$|~7 z5`}PBd-u36w6j6J&P{Xz9K5n-k%lw~&jo#KHh`u6iW^NGxdt5Kn-{q2)I?9o1sHg= zE^ywD+Ay;N!Chrw5iK65N7~eZtmh&zqk4LD1p0ofs;!5r8m-*N0S>kPRybvBzlBc7 zg8-NFD%z-3dt;B})Mh>_Te>3dAgP7bwBPO8Ml{FWXRaDarsH*im+ z+89tK;oxFWR3COp&9OpHOE?bhkSlc;V*)5A4{Qkf8XOiR5U8)<=B{nrvNkL%^zN zO{@pP%k%%{^)=7jMZ)j@x!^Lxm>ph0uuYS-82sM=S1RtxY}) zlEV+Uqjhi(p-Rn~H9E@7L?%dxJdx31Qnwj4w2gNR4mf_N#{=DAJkaKWtO8^b;wEbd z`!B5>5l|$THo5SVh>pm@s5RUq1gOO7i;gfnBGv(3JplIqfE7>BfkN&_su<6%xPAb7 zB35jk0Qu7@GCOGAj1pI%x%Y6CUyyw(fEdxE7>Htj5AC2`;yDkfqwEjbdaW&5#4&DJ(ZXq)s(+1;5_Za0bN_AALgv0WL2pQKU#@O1gwB6_MFi&nkE|Haxo8WUz zxq19Hk)?McXfvU;j!9~v$p<($_h_YWk$3LS0-eQf0MoS15v}DrhyrR|(^`i;vvss5 zPHss1ciY6pj}w^ynxBPi!lN>`ZIm)M$BE3bzd$rBAlExiWR2as*@1t|wOtguwB2_S zqaxB1G>WBF2Dk@Z5Z|`gEFw=M#B6m;yLZ2X4S_b*>{0aM2}oJoE+Jjt#c*5m&I;Sc zx(yNEZW{w{lQE$>Go_&8B=yW}eViixcJ$$!7g*BniA1p^UJ+LsHPez21T4l(wkCEP z+Zr8f;_+z9eoX40Z0yMjXVe(({f&xxM_LRl0Yo20*4m)SuOUH=t-uQI4$H5&pZgAq~_d zB65sNc9bwq95ror&>9@lih5~1v~kS~rQu79Y=_jq0L%w9m=n`JBo|;Gm+3JHJd<`D zZDCwZtjTe1#4X?2-2HAN0yAL?IoF<#oQALO(a;+D(3&?5B#q|_A)xSQ?U4@k)u zQ;cMMhdki@0}4KhfOy&loFR{&K+9DHqufXSh9 zqELBc+K2rej4NLU)5$g){~}z%)?r9nhih|i2|*qSncU^a_C<~D?B8Z=K=}?*{yE8` z3j%(Ph9q_~3n{Cpjxk`nFLLb9i1xn~v1@)uTy{hwe=nTo}IL9w`1)xHDf zbL1ywF7PR zXdZ}D5#9j?DKt|DG5R9vS(`*Ci!pP}l<~1*N$WPWZ;!q^_U-FF21dLeoM_;U8{`%r zljU+tYoSVr7IF82wuX2R=En9Zr^y6oc(N_$I55WRtuZbqblLds4|Ny8Jl$8v9@12(psxNhtuOngKr z7@nZ#mV!-S5xlbKU`u!;^W}EUAPFxy!qzaj?yL%{rrk4+%w2@bJb8H}>_Q7!%&{;D zPC)5(Eq%UW)=nuFgQ`x^`e_VKq^Z;-eRcB)``RL7=32P&akg=98K7v2a6=ggi%Sga z9aO2_yC>BHEKKpB;NBNvkLORS2lCc^i}Lp7t%$sRDxAY(gwsEM2Aojuj_QR^taoeM zZ+DT-P7BB^$dj4#G%~yWfMhoK@V&_lK*gzu?3)t`W!1xNNJYC>idxfb*2JkU+M)MO zlU*6GS7CXsKk6mki%~t?eTh=*=*7$mAhl=<p~H8)B1FjGX8+C^!XC zbXFt0te&8l#E`Hp3zgaS24!uYAn3>?eT!UuuPE!q39^JPS?2>fQstiF(TdPYTpXw9 z;edWmMqsNS6L0-uQ5QnS-ku_O@1UbE5Q~b=LBZiqg`4=3&?L#X>_D9mvCsy)!WF1Py#6Li)@n84+PCj&UP*%JXddk`4uLxv;3TDO*eD!s?K@4wB^4F&d#)KN(l+!Jds4V8=JJ=j+zW zH4my$0$OWeC+c4C zfBwAwhS~l^S1rO3oxT!VZiol&ryCgCX*_k3wjA&g#CB5G8KvuPTG+vnj58dPDFO#G zO(f3N4q+D@l&DM!sUQw0Y|vgK(E9NT#n3|TyD=S;#2rAf2LYgvpMxglI5#P>u_GA* z{PLg(VN*odh&H?fij2Xt9RhI&@-m16QWk(^Qot$RM(`{6i1!jW4i#56j|!=!YD>UQ z<^wjgzZ+n5NJkS6y0lPa)sTRl%?E7#PhjlCZ0)D;1Sgx+RDmMq(mpsG+PLaiVd=E|7r~L4WeO_ELgFiW8(Q;03BDh}f!`ww$g9*e z&w=B`Gf~nMuAL^v47he}A6DOnRcp}&98(Afv}=}sn5;WVWscc8%+F%M;}gM9Ph2$yR$g}eU#wIEa}dDuwh%LN{1Az=sQT&)?b&4Pl=95#uU_B*xYh6$*#-6^e2aO#92-xng zNyi8Bo(1!S>#0W+b8CNTX82;3KR=l--pvIXCmZi=&^y~rR_jFTr@1ROlvfi?%6_nD z+wy{TuUnfI9n2Y`JBPdgduU1!TkR%Q2ezmRBW{R%_ia&u_8%#*rx$?jM@b!Ylp-}9 z2PDl~ujq6Ko{Y`ne9L;G#u5DqLfHd{RazDL)tISq*jt(w)WmJzi&b6EU7>(a;BPf6 zONDxF^*OnFTJD9}e6Yn@1JA(699lt$@m%VO+1hF*Tt18Jgv)<;zTTN9aLL-I!xt)i3w{zzyZs(@i?)l^pl^2|m`xsX;%;Me2(;d;eTiHKW zZe=(if>G+Y!F+}kWS-q#AY%mH5YvHs451fS=}=sg=D^aH&=D-5!}dru4=i9pC(u?< z`cAA@$Em)N72l$EQp@f~d-jkv>%Qnse5}#kW-q})X&t^gN(FxvtWwKR^P z8v!ZGhrP$63DzvJDc~N1MR$JR%m8~~wgA`+co{~}Fwda%)5pOB!g-%V(km;#)1x11 z)Nh0&x{4Z{Z_&|f2R^Qmg3SlDk)a~?S8|6Es&s`T9Ei>2)Nq%#YOn911A@Ywt_LW7 z%(Z;moB3lGHahkXM!R$vbd2Kqr2u%Vod8S+4F>zUMsFM0Mklze+H_4;u1hqx>@BO- zPUfq1cypXg&7!gR@TngJeUE=~`+g8|xKw$uez{_-8ym*v)wloo_xTgIfmge36j#Tw z>qS+05pShiiKEKU8U5KlR#sLv*Vozq&;fPgskK4v07XGFaQ5L{tEejLIO`^{u<@X zXZ)rKe7^~N-`+LE;X;$HH6?BBfHvqUgb|olE7Tc1{0F#c&C+Toa)Eer!p~DVvCe^0 zIpMrIv->#_$GtK+H^rg`Z64yn5a{M$A<>d5MKx`3PHwlw9ndmMV&w((qP4C1??BFm zRZ!_{yKlkPdm_;UD)*|^_Vy9X2}CfFP)Hz2W~U_%^|rU$=BjmLCzV=xfn?fAL)&e0 zXm7|)KA84<6rS5{(*@C|^_^5EH|}=Zd|ykI5T}{iLO};uF23a9Z;Lym4z}B7yQ^m> zkc#T<>l_40wr%bWtpCe$u|WS9FU5R65%3uQ->j`<`Ty41fA#;r<*$(c>lE-j^i7*TwdB+k9#HIx3SM6Y%B(T0GSEUZb$g{8rO# zZMRK+V?PhL%mgJhiY3k2!!yC0*}eeSnb^;tVvs8jiR>+|CnU_ltAC+{Dd7L`2;twU z|F5jAAvRmdc;88GHzmYPo(tX`zD%W%QD`XbB&?lojEX zP==4ALM3w?2SX=zJJz4;KsL%G);PfZ9llRS5dW78fy z6_ZGf;?wQypX?OgVo#$4pKgc2Kz)3xoq0ju?I4YX+;ic{aMtDU1bR3n5Cs+N02M%M z`g7J*dbyhQ9M8LUI=2R+=kCWLHYDsCY$qW-Xat_&X7HvfgEyVyDFOr!o_n5q#{Gy( z`oy{y7wyJmi?tg#Iq>50asY3^@-8fpcqSYC1|;Dcz#p%PawN74d}r2-J#>L z)3FbaGqVPV#~``iaXB`>pDayAPXaS|ex0VkVUg?iJjOF=NleNm*F< z{Q2{>6Ac#p(U7^6!~QqIRel#%9l6S(+`__92qeQMuEXrcVI6A^;-RW%SB;*sa_|i@*F_rAB_CzJC0Xos8YiEjx>y zFoy3RndL-ohn?|wJi@+VcBs;VJA|oVUp2<`jrGD{$d(F*v$Vai(1BN-nMz`>na}T& z>ZPv>jNONB3@_`}+0rx^hs*fAe9Nax#sXtqem(BjSsae}!ng9ag!@Oq6_Q1t1-4q% z2tK{=OWX&#?6T`A6ED)2q5M%O7=<^b!dNd_Q1DlfSuE`aL%vkr&ZQrRZpZceO9opy zaKc+2)5ljf@*Ka;mbf4Da1^=`Ut+1Th{vX<>;jlY!AMjA;3itXij^)w#&T_S4fM;-_IK%9bpS!YXcgMrT)0mn1};wa=pcRXA|Ttm+n_)t5e_l0p$ z(d(`8Oi-V*N|jIF19K z*`C|EujkLJIf%j#v>Y~(}$4{f+2^WVwkyBkH=wW;6$9+0U$0`EhD?Z zhVd66e1WkL#L}48*{fHTSFa#NzHwV;OBZJi>O2g(<4zpa+2xY>y<7ugksqr|S7}t} z@`#lH`De#wRGy6$A(oaJPBgd`88bv8uTIvMDk>gJ_niphk zc7~j_{fjg8M|j%;V?A#i z4a~UCR#yyG@K>#}9Vo)^8FO|hv>#a$1Z6mJygI9a+H4fnAsa%iq4RJepX|m; zMy|gD=RxXNuFr5&3h6rzr)C`U;Rxt=EekD<8q|oM;{sz1`Q4aD2&rJ;J;#f9(IBf; z*7SwGaXs#XBGPyL{sLp^7w<_1WX1>_emP;)Y=V-2G4088!oCzwpVaIn588inyF%2^ z%jz?0Pytz--e;d#SiBca6J4z`@%B8@B>t+i%LNz)az$*psT4aZTq+x?L<>Wr6s?H@ zUs>vD>pEL%E&rP4NRzN@xX~$$MIPdyPn6cIRnNMy4^1K*@%ZkYN+gdMvi|pLaq37 z1v-!uGPiX%f`%e^p}xx^K60RlN1CJ?F~_@irV(@E*y#*-7pDf?xp%UY_8Ambj)|ug^q8AvgFt@$eX5S|AoZ zmpfsZJcs&G_)d~_V22!ZPymPp_sYrz_1y*i44MbM9#<*V`pjGqjyoc)PMGew8 z$?xzO3Oy%^*uj(_6lhm4M50Bdjj-2jX*gXbc$c<8rcFm2^$|%tOHfApghIlp3^}#R zN@WET(G3%W5$kk$m%S#5x((9BjrK9IRIan@An>?DAfVhHhdzr3Zd9R)(9}1m|Vq^jRbSGHrZ>G&6%c2mqseDYbe$_OA@s% z4}vZjIzh-H4lH%RX{G4nk>pjWR4~sF-=i=X@i2Blv6E$zQk5jzP?_XbLRna6OB2T% z^Cgk_jR=&6^$i#HDenU(SBTI>2IZ7sQKSi^RMv@GkO=regyZa*_kxgv&*3=a%cC&p z@Ce)sj536b?7$)br4*_p1cTlp{7SjToNm{J(vHWvPV8VM%~6ETEkLiR69 z5m*KtPEI6LJQ1`YignmXBLzMd!~=y86k5zYZnIO~<6r=B8g=6IBYFA85W@0}!2*)` zZ_1w+7Set*8cRIjZpa)oT_R1+R%Y7>-^VUabEVH3K^q#WWkx{etCR9q&Vf`|obTK& z55P@4Rkr2?l8|fSFJ)_Xg>_PAwbhjji0FraVZ1R|$BB7A2&ZqJ0IX7;=Ri8&#{sx~ z81c{@;(A}2IHBwK@v@V}qA*ea0Fc5H3t(!-@EnMxHGIZn05h6p43EM9_U^KflJ!dT z3gGdHi^^XHJhY0DT8Zjl1ap9zYZGS;;?HF4;(q~%C$AZYoXvCK_>*RI23OECc*7T3 zJWhFtP~{1SNU=F+NF({mB#t!=+fe4195wsKUMJd1g?iLskXrk~!YTZs?n_?K55{r1 z!p;Y7B(-*sDk&&+?OiJU8HJzrLO8HT$kbK&SvVFD=|H04jzAtrS0g4Rf{u*te5?14 zt7&f)(U9IY8qnDGap?N7FsQW&06yO#m3$7=qM5{GB-KcmW(x}@`0S-Gb;#pE(2bbW z>F^Q2CrH!r*k?hcpBWfsLmu-mr;FtnA@z0W3^{pD!(gQ3GW$jp3Lf_;c7`L(rMR@Z zvbw&!Qd?fBEuq=m3H+Ep#8MG(p_$sN)k4Lr` zRiQHNm=8>;ReG2jMO5LCGn@#dXS^&TPZ2-Y+HiFJPEIV5f>Q5@Rh4K(z=>E+aQ*6a2 z(942S*-KdA=j<>l5(b7#{PkDW<+opi8va$nM*8^A)tPNT4IU%_6pQklJ$w$EdG8)Y;^be#T7 z8yzh0vCQkQTI1h-p+1KE=PDKZ1%{)9#k(>8S8wl;yF^Tt*oQ-02=8Ob8I8&kIipd9 z_LM7qFSvHRW2G%t{-Fb)@j_W|MC4IgN?W1g&J z)r>Ifs7NJ)CfP>G9F5ALxs)>X%9UX-_T$phkIrbcB)8sx?7$1(k>pl{EFplUc#4%x zT`DUZ7;W``Jc+=_>_vPiS~-M8c2l$?Xt=Z@g(2y9?^GHb;q808>Du>Nq&p#bs zSo>}J)7g33-urNJ`sw{?`@H#SuleBz<&^sbv=B!R35?^2H+wza$unKO$Z0SJQ&$%8 z`9oX{F-z80VY4>o0Z$r-p4Onwn9u}->}}~9A+HRARS}-_z%MO@NsDp| zb;-#0CfboABGqfA(O&Plt&-!$V3(q4ckK1+*KDcFC)^80=+89fZgWD`agd2D5k!#L;AlR8 z-53FBr1Z+d+2&MO%(M8?In8s4VKic|WvjqCzAKIVV9dgn;=9C-z$d77g@F@;6fA}O z4z&5mV8B+@`X>+}wlsz)FZLR3yow*(m*ny#KGSo3HySJ%^A#!bM`GW?$3c4&AUNv) zRfT>lH?k8CC>?&u)F^i1abyQwUdR5EZ&@Po%q8Hm{ck`j>LA!cA{DX&Hy1QRtGFHazqOfL-i+!;?h#p8M#&Iqz3&5ee`MqGN}Jb zj#7hmF~IQxFkA=S>9#6^_TOtpehE@>0Dw}aE`gehVPY)n&`5cRD{fcLlyKQ%Dz!|T zPw1w?RQO4W@&biATXIIOW`!s^q+pGwK_%JacKHQ`0$aMTIGw#L?x=BQy{1i*N{1jrzjlO_f zET?k|eqF!I-UinZ`zN!*nS!Ph2GU;fgDzi&Z?aYbzY;;P#MtAdr4_cqeuDo?XiCvi zZWrJ6=iYV14@+P=GB*!wiU}ZdBu`f@<2gDQ!u8xEgj(zOIrbbFa*P8=Ko~DX` z(U~i3N^}OS#KSNM%d><^(!&nMJk4!h(g8MEr++F#9-(7F>sqWDrPXK((M@oTh9Hb3 zDp*L$ADkwM_xySg1h;G#wd8`hx`ch)Q&BjF8oDF?C=VfTwazeLSLNO%l64y{kVce&bz$3RL@x(G8mI;urpOO!F0lxsXy53tOVCLyc1VC;si#r z*Xy8>T~wBGSQTU9w7p@;KZ;tXJh@ja2$8YtkUO`+Frpz#Kq}Grny?OgA;d=KjQdP0 z&1_Nnj}DzSaPlP~z2bIfjY5#5#+5?e;qHWYi7gfIpjPN~cyH{nv%xs-2KPQ}7+?%m zPp9g@m#TLp%H{S3Kv74kWqsMEEW04pQcwcV+O6~E=|KU1l6xIq&{xIO2n+&Jd3Rs=cnqsGOD|7JUNunS(`bs?De#-fg!bMG~%DD*|`{Xp} zp7I;o1%|PP+=&7oH=-dtW!|Vob*9&s5jW6Cor&0X`Yb;_z>Fa0QOu4*h zM6CiRmGJlpc<+uKIOBp59U@LD@bw@vbf)?p+(^;SjV-J~JI%!IW$$3i{@SDCFBcI9 zqnJ%#yA;FzQ<2eYP+6GKbkJzu9l9}AZTrC6BF;YRM)>EM=Jq5b}eNv$-rVc@%Q0Q0r52`%inAzya< z?($9$_Bn>w&@LP;Lv`$ojeT(buuka4ZpZP2)QgxCa@xi1mKV05Md>ntcx5`Xq8}DJ zCC8x(+zGGK?xqFl zS9&c}aUealb1KhNo{1x36h$izS1vPq5C%hDZFc*dy;^wzV|GK{3m(|Zm+*Dw^qkOT zwRQM#kIvEwrr!+%w<}t~22zf|Wu~EKPUM6{2U~oan3FQMQ_hOAu`X}XO&_1 zs#K}wQ_D!|T^>_}z641?N=z6(tHLCZWEaN<+bwP7*;D=|mCnnNIv9!aFmmS|n8_M+S9dk|_XIK&ihLE1l>@ zr`#dGlrTZVaVHMK5{;ssMW`@laFXEfCkA2CbTA}|YaXd{IZ&jU>Jh@5kM&_{Z9$+L zs70i6C8y%rjl!n-JU$9ZK{K<+nAs{J=Lt9T8(9MobGAX?biHI%oUh!;1Pbw4K!WJ8nd zEJEd7gBI|8$&+>-AO3B>|Kj0Ca00?T#JXT=h?xZf?~#GtKi`T2o<0E zx4=~#;hO?d4C;lGA-v!@>P?$x;m z%Bu^>RIW2&mU1VlqMrSK_5#WUZggqL9oz8Z|^lPEhRDQdc;I3 zgk002lMP@IZ%Ar2d(Cpuzd+-eD51>B|3ufxh1EP7QWJ}-1ir~#<%6Je%cLuWKpY00 z+Z}XQy=FJC;(9*$$0=O2(i3^A9JWP!YfYy!NcoYm0X!;VdLDEZ$&E%;y#l{Zc@%gP z-hBtL%cZX@xYf2r7@HSxpF*h~)PV=LfF)nMIkX7&k60MT21MbrYK< z=Of0mLu5{6s?+hVPMk!p!X+*iZ;Pr&y(E5G2H=&&Hkj76Ja?Zmm~vgE159#9ep2vY z@Pwuj5LgYmg62u34`92uRQ-RKE6cB(<=)lTm*1Av@AYrXTk2!&+w$ehSI+fSDn`?M-j`=Z8)$(!ej|r9-7Tupk_8 zg~?PNDf^DlP>TRf^KR^TrLW&KND5YJatq$(Qv{t^UfD0yN#|NaPdJTJIUa0k*V7{`*e!~q-Yx0QW|B{MrlQM=?!jmzivh4}w# z7G4pyDL_)zNWn7)t*+nk#$B#VXVAG6l4(oxZ>CTc-;hEbtQ9ltN4gq^dRPTl(dEk3 zcB(uCC9&7+?b*>`W#ohrFUb}zYgZVuR8CiLb}#-7ITwoF(a%?SsF<4=SmK-{XAQ2kn15%9F9+&zPaau6dl8jU5Fsj-L>58 zerz&Rtq26Ei3FVNIumYj?!(Uid{Hh*mOR54Y3zziT9Hit)PR9xwL1i(@%7M+|E%B=qnAZs3){s7yYg*9b`$T&p0$3`*m@2@iad!jqb(05#M*HWC_rV_0t z=SrU;7mL|X($pU?E#yS1SUS4jo8k-G-T&w{@C4p2M?K%%PghdNnaN`clnlBS{V^Q_ zU3JgmKGg1`$Sy*~pHvkPR@4-LV&snDbHJvHpYi4+*Z)tU7)=|%E05>X3gAZ;m)Bg+ zDK4=ntLTV%bS@J0;g3v0$^uL7avJb3_>WQ5iWR8YgZW<4v0%N+2Mr!u@nVbqS!+Ij zEA_vG0SM6lC<~CII2N~s84M2#{s-~_8p$&_fgJMlm_Zsle;uJ3qSs9XVbm0Vci zcbdU}q5iEADS9*poL*~5b%BMRtBe!fWT!M~YQ9RDlzW^2iYg@&FDe#H@to@4hfz?h z)T4|7i#?A~6x^oxFOhKs`m_As#TP;5uYsKPipjs%T6$FY;cy=jOCp+1RwFqvgJDA4%*KJYer!@!j zQ}@X7n@P_`&)og#ENWDw0tBsSQuZ$r+K-Ltk)b^~`eS}gKZqX_O+~npcfu-i&m*Xf*(@TtG?5~B866}4W6=|N-BQXt5veVfSv#*- z6c^SB^=UQKls&Du;1zR-0nfPc2RFjAZOTWFae3-aaP7|09OeoGy;4~1^Z0D)cg{vr z8R`~|rbm8BUVJ(VgE#<*XRswvcBza)wk;njz+-)-(k;a9QIvEF2FBbTgIrP^3F`EF zIb}%-OLDNwkPk}W_S{yqdsp*KP-eOjQ3x(Gm5B*66c|BZX!=n@RQx;{TtwFF~eV?a@so zDz}=~o&ExgqiBzSj&{ux7vkUuxZB_`9ZRar)*}F*`kf-Afd5EM8VgmXdg1 zh2na(booR|UG#`|Dydumt)7Gp7sU1|Z*y6$#zGM-&cY-kn1gdFfKRAA&(<61=j@{F zLA$>iwc1-Xe+7EA{zAMaBwZ~l!t&3{qy?FhAL6JDs8P^wNiULrNQVAW&&d=%BO~78 zO|HYy>L*f4ymFK#o6I$gz~9u2JYV7@FEb@me3cg*)hc@rtO3r}$yb!(04FHLIsgEH zv68?T;5FiSk6|#5WvanyE9FPnPcpP;?7M1}vaW>u8p390FQUAGp|zfhr=Q8{#A^bx zS)Fvih=Tt|qB2t0D|Y&eyV9SrA1$g>Joh?u|}&hmj8Y03SkAh^IP&5Y#laDR(q)3bS(7xc9k zlV-TI#0`EqSA$45*pe6YXF3;(m67DZr6OD=Jw8FfNea(5XyJeV>cg}D2mW&BzqK{} zT`qrm^!)eg>gMKp=KS~iR_(v{Km9F#)t?xTJlBtxyW#-z|0b7fE>l+350?1@T)XJT z%Z@*VyBPk|y-^D+cXO1U)RcB?`k43v)6bAEu;kb{e4JrKkoq*$#yfoB#UtuVyH8|+ z`pz>rK(8#P(8cQXzrL7`{$qRqr;tctIm#{5Kfx@oSC{`g#X1Exw}CG zuh7Z6?3|HXkr&tDjdsa(0@*h;WQ7hCxrEgi|w);b3f3XKUIMAL{6S_Taws z@8lfa3dp>#JMHC83Tn>W1$pU9whW}o5}8N&=;4J#rlFalx<#{=9MnB8jcZlYH5eChHGm>}prf*5p@2DxdE3GiU=z^Qfy=nR#H$Y(D z^fKZawbTpJPq|G^J}?DuNp;js5a5$a)4Bmk9l2tis0iVr8MzTgXcEX(YHRxa=^#W( zb@>Di&PPcjI>O*3YDg=-ZB6PyRIQur!)EKq&C+xQVL81{!Cn!23?&UO6-C59l;IH_ z<=xa3W`nYMMa`2l-x_Amy)UKu@+)+dJ#%O+Zk<`}i5Y#CfZUSD8GcR?KNz!8}VoLK~_RoK!CqC%0d)My<_v{DQT~#Eu zlzH{7=;l6U52z;x=>DijFG$2|q$D3n9*|eVD}G0wXi~bHU#CzmQ-A-RU0x;FIRj=c z^RA~jVtV*OYY`HU#M2~S#Z@kKwj!PK^bmE;VA{Lqb+&3y7;T-c$w?NQ$N{`pajc*e zy;mT;RB{YUebrpf?m2KZMM`)7l}bXO16lQB(xm` zM52O`$Kw7qdX7X?Ozi(WRUxgHQ#&Q8+vzVA*S?ZFMILSOEXn36L|ohCkRH*(2Q>5^ zFr)NY?}HxEked+_UH|y1b@i?O*`QmzRj1zs9Vg2zk#3-)Z09I^{MoccpBX&RXZP~q*NB_W{pw2+ZZpKy(oJ4-wY z&FB}c9pzK&vClMn5(NyvQdCGaOkz0r!n@xB*M%6GyK&-7XqY`>>nr^RTo8 zYeIRXv{q&^@<;DtEnwyPZLB|^GyV{BzZ+#N%U{%%tH$lm<(tDADTvlM4W-Ux8F-A2 zE@++2B2&x_9|n#}WsN|9V$$uGQ}3>%pSKJZH@{3?r2)nCmQRD8;BHrt;P}&Rtq&n* zRVy&7@&(T&ov)>NH_MD&y__W)LT{_!*G8tS&Q52t(YcKDxQKI#*En+gQ)Ai%t0xUw zekDC}LvM=2(zo-Lgo8YN5hs7<i?Dmj08fw=P$W~Ie8M- zOkEsQDubSJGlmdV{lXx6=L8>iij#|Wk=uyr2IX6u?sA4ar0^5jDTxHlWNT&YO1)NI z=FPA$4z4W99M2AVpS|>__u&u*5gJ+W{(j+6vKQT%`b5;=jf9-u~ciTp?=y(5$ z&OJFHIi|R1b);xCvg{aR z(tmSFM$J{$Yo~|v4KG}tpA^j1{RLOoWKZN$A)wUew>Osm)XOGtQ)WYwW8hKP@BmbI zElp84LnP~Pj!3uw0B!sZIkYQq#_DjF^^}%bwPTCOZtO0Z({`>q<#Fuj3~FrU&@kT> z5pCy(klzqG)NXD+u-FPXJ!spSJM-&J3N896G!}_~u9nyg17gspU-}~~S zL4A`8oJ)s*R&?PB5nQXbiyfiA)B|tZTwCEz@8l))XgAT{PUc-NnjVvuXTIfZCgv?= z0*MkHaCQ#x8^jSaZ3RM*#V4+CVTe{<=eIR?1(u5~Mv~(rIYT_(2G+fQlWXHh?7{nKkH}B`|O2 z2kXG1qSPyh?6{M!$T0hQAM)LVJg3Z_%;YSreIqdoqD4-f3a|enI*m6`Qs=LOgE~vS zsk-GLNQ2+07WpW1hutLct~+1`(=;f-IlTs9EfQ8SEi_tMj`B{J=5yBw$QpTTFv{~W zT236sfS8-VT*8}$nmro%A4Pv%vE)l(JRCyQ{acy>R^)%|_g8HDzx9o^)d%~(`*?&M z-yUCa@{+B%l)x{+?-aaNl&4-S=>Zc3LPB$%ll5dW9D+v8%nvzZjz=*HJ_u1akS55f zY>jW72+5DcmSHT>|1jP7|L|8AG)bAx9GAnX5#{M3z5if;p2TrTy@-Ec2fjPcm2PK< z^7SbRt>E4uj*+hJMc1M>5``5PV)BiOGUDD@QHtMXDhhFawxm!&vMmR_c*wZ*$9S;) zwz4bLIgnr~m!s-inp~Yq`I?@j(CY+j~bu2Xp%GNS0PlslM-zA!N{Vc6R?f@(Wr)m&LMVVXWzd`~H{- z%tSSzLT9!;N_;`K1u`^c$}#MF#$2^nyeobHYo&9!k{GFo8>4iHn$T{xH^spv$cSd1 z?`2-G-xka2G>DUg4tOSrqReI3YE4CUGd5<4yC3U?8IA}ZsiGGga*kD~Y+SHg743>r zvgv-O*XdPw?P~U{GO!a*$j3JwF^rDfqtQ)^0kH;3<0EmyGzgZ!!q$+}oIUL@0OU9Z=i$l`QnHLOP73(GFsil7}*1&6t z1PXYkYYACGanw3p7JLFsdebb5iILEB5^AZaTw~*Ekc$R^JRcbmEeb@WWiVWnd`xii zo}wnhcv#dRH*bSLM27uV!LXi3CBa@)Ee-)4s}DClZ&Dz@nHnj9sto`NOaPP-KrWk( zDqzM_apj3wAikh0;sTMyozY?um@>zjSLJAcC9lrVP^sZ|>$p|4ARdojy_E{lO_3&{ zVEGrh)cT^oz?F6;OZZ9)T^*bsmby-8{u(;(BCWSta2>|qx$3*)@qH{hmfS3G*$ZOh zf2D=5jBF3#seM-kVqf}LpNSkrcNEjesCHLn0(>xI6{bQQ^*IhD71|W5moD+I6w{ar?gqJDg`Ne z%rQH|t31S4`SU+6`M)jozik|t3jObLe|^o?|E{dBJjnm==suj`9m_&P} z7uoorTDF(4t(2D9ToaNl`-Nre!}*WTc^2aPFWUd`=Ci4y;1)toM!{(Jd8EWe0t)m3 zJLg&MRE6qjCnWK#TUL`5D)*V&E7#7?++39+f93`&bpA89S79Ddx4p$0Fg-lCdJOw7 zBM{WB&A!xAasI>6Z=L^Z%e}RS^Zz~`agP5Yv*n23+$uORoYMRZhhoATD<$vg2@A6F zhI)gHy!Nu-f)W~C1W6o?L}_%M=RBONEyARidOmbnvz2$5-YPUqQmFi3k>q+X|IfF- zVg19PH>cT;daC&UwT)$K|8J}0>ESjbVwYL(Im`*aY$K2XFD9b1*m>Gq>Qr5b3nC^!OG=hvNiRk z+~6T1uVbHfeoOHgSd8vboSAvV-MJa&!50=)PmTsWPG~|KDT!hcnWrm*{g5;^`X+pA zQ6uBYzjS+(D1il2dSh3Il)%E^^{O?|#y7IpZFIf^hDCP3M zTgeT-f%}Fk9Hj5*Nt*|i9b}?y9jJL6dKsMPNZ2^r-GtGux*?wgP1#fgPv{w4WJM~P zl$VP*m^rag2FQ>xiJo9+J>ssoY~ng9ncVoG{@xvO{aEB(1Vb;26a99}C>+KEFQi7v z(2Ir>5n@;u1Qq)4aRfzQL|NDY9Xe!U`k66HO=W863(siKuLmRge{n>$6Z!!mNdl2KQOG?0N*7A0mkb=u z@%PxKAPXsKiTy@K3rU!7<1C@4T7gJ(j1P#E!fj`4=!hn`a4`=HVR3_@aT)js9K1k> zz0{*SqrvbjvkURJI4fk72HCYL#yvR?f-4%nfeC?2dcSBsd){d51;dDoZ6Qcw^X<_q zGWHU0L^GP8pe`1eS{Ap!A%6fBWirgSZ(bgvw{{C+v1}Goj7YVlVJ5uMP?He1t=X7l zqffG01KEghNkvf&{xGX~j5a|{SpMP%THP-<8eRe;R z5e`iVwK{1$qRk87-!9m;gy@MaE1W9N=_D6>+lI0k(@@6vlYY0|!V^K!I7HR&j@AJt zH)yo<_OPL;)lqT{imxHfq+y#Mj9^PZcprAW;K6gv4hqBA?UHA@{O-XE;$3(_$PU{e z%GZ@>iYjeOt`~BrdxLB#V#OP+jxJ>4xQNKSjauQTz&|vsEuqMVU0fTX)h0OQl%|Tr zi0>&|B9pFYc5z;lo_Z1T+GryerdF1M#e3)uT@3YZna@TM7(_Y z5$B-flu@rTyo!@@- z693Xm(8&LaAv4@0_WpI$b-TOwwCGOA#r~;mcPF6yY9eVXO#u@!HWF+|{MpNOIy3!$3<8*jphy;gU)b1om3U zqS~aP3Zw99Owh84xN0S<0B^(`@KFWV#x&MEnY4$k8i**i<(5$*PudmZ+F z>v&z zaI)!1{urml0@jyj?^8N81HzoP*8#6|4lIVPxa;?S?ouS%w z@`GNk7{WumjRnQq$dkBwAvX{MIYZoy8M>J(_{Q=>@QpuN@C_j<@M*^HVZ}q_MWE_= z7LTQr2(a(#xY6CORxviJfMVG$74RO#CqXE$&;^h#I}SREEok$QChYV_ zCxSW?Onx9ZI0IcO**kbk_}{<{^fx~B_+c;E1CuRS@2z$Eo&K7WF%V*~ZhxcGBd^%J zy8X51{naOuMOg2xcKT?+9j6ll)}I^241D2OPy<~UxU#Q-E}qYkOA*{RmaX< z;LUqhJ0-7=08x5df9aip}z;+Ma*;4Qb(mT;pnN2nzSu!$tC2U*(|Ie&6Lri1)b4FN0`u zwIw?y{nagU_-g6!$NrP2^Y3>qQF_?+We6dcy8IND`dMbWReTIf&sC$i_IUp59Lo{_ zGab&dQqCDhtkrVe`hz&3f-h)3saq-2`gKvYR~5chnC%g6W>JV0TvPc?#dN>N*zLF1 zDa|9FD&PxUG+!*wy~oo28WFSab}>qz`!&N?f1N1R^+8<%wtJ5LTowBHj}!NKA<+Lu z0xI8E_~hAO<~R|h|JWFE*d`aQKraZ$q7>ypHNcBi*Owdit20fdc3XG057a9{29q?4 zM?XVg4!{)l>m3VCY`EBXLom-1?%Itm*djN`jVdwQ#+rfAL&H;Pm(Un14igwQj=XFQ zzm}~@1%l2Wt=VP&?Xdd3!~Czy8~t@V{@+G#^}+u8UY_~mc-Zx#7*0_y zY#6YEJ&l+jqw$8DUZYnxc!0=-M@2t2Yv-JqM&566qC6iX=0FSYx&FuKo4*oei-y2G zh3fV$ohFTbAUZ(+qN_q;;3}?^&b4^r%;6KA5Jgf*ZyI7KkDeU zJ35kPx1t-;3`XN5zMy^!^~lflX)yNu={WSRPvZD|ng-!{1q?YmVD~BYBEsai8O553 z2qN-!7j-QnNT6=W4?mFay1e{6y}y!n>1xIXQ-=EHC8uJz)8L>93cG3Sx295~%T##N zr=d4Ee@c_&dU{Du_7A7~W14v6RWm*bra=^xLrF~C7^nOuxhU7Zv9>VUIs6ZTcBDa4 zFhziXDIdguc;J{&Dv#I=E~81bNxEEDIR#_sX>btxQ)Q{t4caP46tm?7FEQQVp*Kn= z(a_PP_%c0wwe(?k>Hm65KOR4x{^Et+)ir8Ul(Jgo8`{w*V=1Pu>D44fjqu`D8+&I# zM8S(E@gfx_6Swv2#Ji-y^w&6w6Vw=gjq)GiI{yy5coa-u1s~Jt8|sgO>B0WqKB~E$m)RcI7n#M4)C7AJA&u|IG< z_PL<$?%~_R>HpE_=QzR>hSvo(em&a52ywJmQ0{en9(brE`)z^nJxw!ybt?eht6-4C zX?&WYhSa-)j-SymM8)A}(NqqmztYQ)X4%pKh)5D2&+Ne7ciu>d_TbcVjTW7Q)?yR% zsc83{#8<9a68KOAV{y)6FpF1GW_Bz%5eR(Mm5@MNOySED)s~R9w+& zXvYrUhH1H?#ZFo-_^diayxSF~BV8cJoMTJ%sU^NShAOE)MBmva6R*Smlr=u4JI#;& z;}7kR>G4PZacifmBz9s3yyg!1EG$>P|H9sU=pVDNaE+VKoh%7P%@zS=CM#o}YGQnz zKilX$AC0SURD3MGW8S&v=MH{xlwg2~;BNfGt6bNPqv>M`Z@i`7drLolOpn!YU~0G> zb&tX?KlCIjsxyqR6AKMy48QY3VZ}bCI{*o9>G$KE=EwBkFIzj^01ZIbRo&}Xy7M{+ zX2mol!wTiy787nNdtI86hU^xj+2a zb@EqoOw2BGs{+fO`@;_(yC2hI*aNMP9rlmLH9ZTp2{iWKbmZU5$2Xq=|5SH+p4_iN z;-ox3flp*VC^!_e3GE-eF(w3itIG-s`Nl`@T+FA`^U}mod?`X=#G_A8V!d0VcX~cHF+qE&k zpr$W80<8HWQ&kNvewJ!BPZNlG(FDOGD1f-!qD>OYH9wxDEG=`gO(mfd zp@mzW6V?*MCss#)e)g=px{!YHob>w^kdG2(LuL_>E_g2WOW`gN48nefae}~)(^2*v zV-sEGPS?;UFP>Y&dv*BY`JBTj!UAaWV_LcDidlA}vONjKCu(*{w5gaMS$SKNxN3eH z*&idU)dRP=u#(~5Xt?5`2p7)Ek>pP0MGiuEY*h{-x!Al#-&j9_HHl;!0=TF2MU*wg zs&&$F2nI8qM(acGxJ~*!#@hAV>JuC?*op^?`)M0v-js-fh4F3Iv^K3-x}^8{OMz0H zp!)#Qcg}YekSb8?HCBRJcY$F4(7x_!$zRR-g$C+jwXF!w$Cuomu6rTD@9{wfb?(bS!7?#3%`V9$v;0$Fon z?{e3xI(wGYw6?+9lS!0KjB0pH{IljZ)F__Olfa7#>+#QydOuS?wj>d_9{=p9w@0JQ zy3FEw{Ii~$Mg6;1Pu4$iv~nXpFN5|mvB*aO-8)5L?f z5D&4U;+A_Md3_Zt9{3Ji!leVP!4b*kHVJMx#{uDGl39r(Zp&&yjqb8A31 z-r{OGItM0$B;|&!jyapbbBm-IYzWBu&;WtiMD7;Zh$B`L45l+?k;0d%wDrD=bOj>x zJ2L#Mjsfp5Aw=eW%8=h^wIX8tJWZCzm!GG_s%Z4{v{@0mex4>PBHho>WZm2(56|5{ z&ipS!rh;8knI>gHCzv=GnaIBCCT!vwM;)RlHR2KLAZjSEZFo>N^((H6P zUNTG>ar$t~TeDELe7n)y<&GV*M?k*4*!7Y-1dru8%!icUw=OD74lvIi$O z?T6sZKx4HuZvq;hg8Lw|5}GvwjeIv?li1R%Suz=9anj`PH{ElVW)yQ|v9Zr|W93m5 z_DyVnGSy`Nf@BWjr+~ZT8|0M^HdD6dB(EtA0N`KYP|FXW^ zf1v;O@ywF{#ZAc&1-H><*6c6UiCvsSD9r2PEWM?&Sr~MjSqv=wTRn}k^e-&$Y)Uio zZ2#3Geg_v>oX@D|cY-LQ34|^}x*MN{G@~+CvAXiX;Z<5d9a_8;r*t^`jB}FBFV^h- zggHQ@kc)eTt5aUOSD%@INJP4A7N3M+91alyxwac;SvF2LyIp$a!QtE)#3SB_66?$V zex1xCx!qMS@d#!dX2?8(s@+ZMk^V#Kk-JGf;`u(~i3xY&X2vmsJP{yIvk%!2b@Nt1 zwqp{#|4wLfeMmzJJmqc}vK-LCII~km!_W@-$hOIDl6co0Ao@+wZmV+|M1E84%@oF% zcG6^kG?jcSWZrP(Mc$AmY_CGY-QQA`sN5dD0KD$MJS31Vw*$RH;k`J@ydY{Cq_qTP zf+)xWFARRC`tC6|^u@5GcvQAmJ_!!rAZ7pN>$-8SWEu>wPAAczB-mT+sTdBo>?D-5 zLG@5FssXtCv+-O8*_pW9%sr%Tm$x;Zq-T`faut-y;lI-fX*A5v_|Si0hhuVd=0#PJ z)zt0C-pYvQm}xF9AOVj8`X?0ng#<8HW91kW(|Z;55<@L+eGhWkGj5#XAe_ zM(D^3;LwH($v@bwWDt)UZBTSY5SuK)UQKr&|4l#vklzSvTfDu4%o+f>RR3Vrjlnys5&C znbBdc^^f8#hXWM>rMRf$ZmB@z%P5Xae0L8^IA6f3lS!7v(WgNe7@v*6RYVkGn=4N!C&%UwoN?lfR%1zBK~fH0WTM&NQyReiLlY);rBCX1pAXI|uo zGKM5OdgDp$U}j$vwNfT>{Ul)SMy*?sh(#cRIY?2v<3-m^9*?v^v)>>^z!K< zpqKYeQ~sFYNb9b>0;@p**jp^Tz_WpGVLV{B^fC#CRmBjIEQ&CkdSQ6t4bA}_RE$Fi zH_HakI0!Hm1HJ+RX#_sK4^Cnhlvx}pSTHsSG7vKoATFUGEGxkhF5*&aTY9_W;k-TH z4*-w6@P4WJ9Gm(eiT%l-kcz`E_|8v2cHHB$@;Qhok~jhp+U=Oa`(NhV#9Yh(o}dc@ z90!Ly$Jv5$-C>y!ld%Boyd%TJ8&H?5tx|RA^IV zM*W<{m`HkNIJELQ<|kJ36$Sn5R|fsGZHx+RiL@5EmgNzS`^ig^ZDhoBbBD1;YsUlC z2I(*kjj)!w3~S5yN%@?wn5`w_zdC$`I?Ac~kS6f@v%KkDUS4*}lwmu8zy19e1i_Ah zXg8k)3LBa{Z#<@vzjqddzR=3G^fX_X%AiMx-%uNYZ0BE1r$idune2(w^)y>H|Dq~? z*8#PR*oADMspJ5}z)+LT#&2+K(e?$cT(2yMKi3u&f<{icBD4Wb{T)x0{r_6OZ}I;ttLw`T{QrGCfM%N!%%#C7hLtan0ZyD|93(s)Gqm7c!^6LW^n@26kTqT1!3Av`FmV+G70>) zwmr;Mf$z9H3(|e+O+qHE1A(_)L(o;L(t+^CZId8Sb!&`^ zhZ_<9z`R1$FXm}k-NqLgzx!o89MZ(L>Qzz!5!`esWW{j(3cKJ!xdLvZAe}+J5myQW z(aPUcVR_Y4cg9%|%jZj~>ukB51vIt%1A7P<^q+xk@uxtA{XhKAqW`Pw%MbFOdwB%? z-vg^zw)~9v8^-}A(OQ)8&oqu+d1JxDemJMsQfhI`#2{NPuPS`QXY`WSW=tn%x5Wo_ z=cN=f%J4ji#y1sJVaIfU0ya3L_RHWT@mLO)m;5iIDX>caJ&x>318+3;f+6(3C;l|5 z)tob$m6~pLX7$BnXLgn!LQ)FR7_66!`M2IplF)inb94q|#rQ4*pAAswr6J^u2E((= zdg()Ifb80OTeD|#B?{f&a$atZrmW>bZQ1Z-G~9YQqJA(L*+8a={feFCIee=*+qWrA zj@VsWrKK@<5Hnh{+IGy~G)U6yb^d+mIbV;@@_6lCc$sHoTFq&&o9}_PC3Vjwfh*vI zT6iJDDp)JBH_-ajh2f9%AL+#>t2nik3AKc+d%@P zrr+M`e+GcygvbU+L@MOJBv4SkV*@5U(=ncgJ$aqo_-oGrWeqmw!1D$3mQ=1_Cs8u! z>o>b<>_%=SkKDE>`4rQ1OKOZ;im|KTMj}}Cx$?STY|DQlQ`Gk)KUXZNrO4K zH4F~Sf?at)0ClalL&Z441MJMCIU!RLO~Md|3D~Kri7>0OOGhn9zgbUQN@Pv6VyLdU zj;J=s81FDL4nW|cG4bx#QE|Vam|I*xz81OjwHBN1=_cWZO zXS?=&fW2jLqA$GA`Zn^en7r;V_}%9A5}GB~yIDp@V=Esf?A(*daK}P1w(77v?*e+6 z+FubF_!qSg1W5_Vt8Qj2+e4$-kP3`8$7I+C{nfhPt*5z`a^GvS3j ztX1aFKd<=e;ko65?Z0%~4~`pi1^aM375bm`_4O6o{;Su2i2rmikC2cn0>hQkTK?yu z^tpRrf&^+|My22np<97JneOBfVvgWPPC+7GDg_9$-~kl~`vWUM*b7jDz+Vmx1-y1D z9^ivpoA3x3gE0&@V~c?1>p3IHsbTx9OGwQCC)>pa(t@lTP!x5Gq7taG<^J5lCdn%8 zc9?dUd4tMBj4qvF_{{dKa^ws>W*a`LQqSpI42^64N{7XY)EW&cInyAdVzG1>qEM}Y z7-eg(Dd_cr?7H@{!bZg|{LW!Rp;}|s1@i+oTH^sOUhxpn|M}2c`q5iDJ^u3KW=Z|M zdb6~leyrRqeR%StcXDjJk$?A>Z@yP4-b&U;>vF4RtV-6JwpF@h?y95-0Chov^q))J z>Y3zq%~dnX)u=VIf?6}}3>9r!Cli*n3pWZn70SoS&Woxd=p?Bs3TI3~nIZt011(v6 zQ3VaTPT}0(>r~Rys7*OU)S|kC!*K`~EvBPrE#xb#=YoLvN2G_uA+a3I6vf}c0hTNa zhk_b7ND>#5RBwptuw|$pXW?4lE2%jf0Bgk*g9Oq`N6!zB8hPi@8NydBAPAL!vYYEG z0<*hxEjX7|oej|Lmg*pD-VUY)JoBXsNQ376f+)?rC<{EtQG=uLFr#*2*BekPI*-eb zRH1|bifROTK5F3<^XgkVr&jC_BoNx8-Cn-2d<6`6lc? z9}GahiUH`OZdb^((?5|hD9j4rkQSSTLXl^NEQg`|AdW6*6wqiu7iKy7wfA?`gXupu z|6JrLP(lAURyS5{`_JXo2l{_6&;0(s_3TE=4M*K}UN!AT-BzQ;HluEfQHQ-~nYF0X zRsMAQ)VIrD05Vg%i>kcVz9h$cdby$YF>_Y2y=`ahm?HL>};d8^Nv zhJlSfOHDp&8hkpH`E?Ze%+RyQ@W^50S;xxLW#j2Ecq;1EY3x*B+gWY_<+OitT0d2q zb>@sZb0(ctrh2!9z}-#NwBodFICJ~gX{z|goxN?cnK#({vqQkL&&*k8=4~_GmYMfF zY|A7wXOQVI$8;HEerxOEw7`5s$ke2??2RT;?5Enu>=#08_FFGA`-$x_OARt@_T?7F zm@ZSy0z=H2W|+4(!kpU#b3Oyi+n8U@ZG1Vm>193JOPA%P%kI);by;k4S!i)tY;WnX zwk)%?EU~mKva@tsS-Nd3Z^M+iKyMmX7MfPN3@e>xm0$brzKF;0|1~9q3v&UklK=O6 zcK*k;mDLCT-+Ot49Ooc!u_5e=;OjH?G9@Q2oj_Zv1PDqWmSU%2b|PaDH3SvAq$lif zOQ5MGt~g*XqS!|=d3>TGsW$c@!7XnI--P${#Ig!EB<#6wFa_)7nV0fdaQXMoM7XT{ zm)A0xGWwLu3n>-ESQEekk)auG6;@)CGYY9;N4+Lo3-al!@4`OuWVB9^Ece#8MI`!7zX* z<2?LksuByz4C1n`Hd|5@8bzznFK41DEi3c=Ib=fh0QIb57 zXM|)E6!Q{E;;1(`Bd~$^Npnh?);z!4Mj@JY^th&oPAc<2$}p4`n1q2yu5ksNn$7zf zn06CIU1*rr>?1;pkZYu<7r7P%eV7Y`8a|LqCY#OKI2ore2_hFCQ*7|W8KoL^MAS_3 zPnu?3QM^qqDe>c|k?{nId~v&S5iEN#!J2KG{DNgXq>R3_X(|Ms7c#W#W&@ZdhmBZK zaYh1WDvxNzO!WXJGgMG~*=%(rHqTZ|p=Ws}y1^NB89npZktf+q${6#l`Iy=gHIzB-o&CIboy97)J6IXi6$M zjOFWB#zymXYbp9OM@315=BTPDQ6=`wlnWux|LaA&pZIUR<&Cvv+x}-`?IHjBy*#(H z|G68v(X9kWH6%xFxlvwfR4g-cNQ~U_q9SQgp{(c;B(P^3g)awaN`{1b0c_-IJ`C*}^3DMAv2>IWc5%RZi6?9h?*!ZzB5{t=LWhn*$@Ks%Huz5EU|w$f|v&@lD9%hW9u>e zAQZB%^NMhcTNPl>YCJN~OJyB`vTZHCm48}3;n*u2?K$;R0=1o6*hey3KmnHDnlf#qpa5oeY+g0SjVW8YHUa^TB1tU2SGi8qX zE=YeCVCU~$NpleV#2tVwCOm&5yFSYJ%myRAba_9JPsOPLZ*8K~MyNqH9)TfQOj4R$ z(8Oqy%`cZwC)W^Udm<;`24B#QgaPE5eG29BO=Mn@*(k~}>%t4&jX{;4F)BG)jmPyG zO|y7xwACzv+AqM&G5c4!yVBryb1C2j)W@& ztFY2GxdfF|+ZzXbGYsO9a6Px3(%En1nlAVU>5YCP?{%-@!8tjl+2Bk~bQBNHe}*@9 zHf5pUIu+kkIo1|R?T!VztO0gF?1mw9mP%nR`!Y%C&)zv@tcd!e8t%YfZ)h5a7u0_T zZW_%mBtG9{xzALj2Y#4we|-kjrm<95lL%k3WPqf5A#X}7k8G)PF z#0;J@|I<-o1d$4A>m`dS>U)SH)P9ZE=K}| z|DiCPe3jWFBLc=u7OOct$>6e-q1l;Wxr;P09NjptB_!xQC3WW?S&ueyH5*4X&G`MO z(X!?Aj#m36ioz@jz+GCfmMo{Upk5?9OK5r)Lq7JDfPCeQW#D#YckXsIcb}5U80MdA zMwA7o%qEc6fNYcA7755tWNnKCj~{Cldinf6bJY6&OK|g9&;RBT8cZ0*mtsy?Oa?Jz zBh6&^4W8y%TnRb}rz=IeB}IhtdDELEaP^aTOyUrTi3AG+E++T@S9&#|G@sgB8mDmX ze@V>*_JSaE@dZsz!}!ub7{@ihnwD6q5evH~koC+n2LVqKubUw9Ao=WDk|P?gCq`lieknn(_d#~nR8V#v`rV6u zmkl0gnr97n;*;O#AQNg&AbWbjfc9l)F%Zv#{lg~X)-C6L%Q zfEtfMDZ>opyT7Gz)Ih~=TDYf^*uPfYc+qu}ljqhWU0nQGX6K-5SK=eCSewgL(2CaEIjA%tXULuSlgz6 zp=01pj`u1d^VLk2apX8Ko|mmOILix@=eqIKSptrP{rOJi8Z9r^YPrI2QHa4y0uwT( z#S24;>r6W3zAMfMj)l+Bf}WV$Y}`x{U#>J6C0A;F`|&cNmYO8gFREGr0eLGb+s0m+ zEuF^6rI+|@6N^tw4&?b45SEe4fu3H&zt+{n5cMtgN(py6O9jO5l(|bEFoy%yUIBPY zu8F1admRfhR{+0xfJFXAa>zD2i|W8JCCDpAFAmKF#7)4ssk0|CZWi+}O+Pb#k^(R} z1&ziHeR1-O+4m+B5t9*^-V_2ZjE9C;gV%vONdy*qdAt)mA&=2_IKGxL<#c?#A2r4M zHfeUy&X?Z|0lG5iwpu=mH)ZFX6Jud?X5ic|J}=T zH}*em6l=j@3Z!b~Jqq(dN-OP#99BbxHbX@gLxuK24r?Kotx(=lNRHb!5i$&fHZ`0+ z9FuLr<6h(qhBnC?#{Prg?xhp-Rk+q{-%4 zkah-A9gFRl*q6M`jnL*XH7GY$DY8^z)+&`&N@5(sCN`rZ1W=_Q7HU2zcGBTJdh!)g zV`;S%KLiA4$mWB15a>&Bji;oEAkksC&@v9=IHa909yS{v)HIIqp7S>wZ9YooDkJ`u z2NCZEI2FyHE72q{8&Y9p4u=mnq|q=tBY)q<* zE2AevePDJcxTUk;G;6lDxb5~RzMzIGM^vZ)vIg^|mqaF<|5w9FDuCKd`T?d+MqgTh zb@NF6*F@GrD>#O)oN;yA!AZ7G&I9ed>6GN52u9{TJwbl`H&(`OW}C5F$X-yWTDHlD zPN$=LINq{QS`Z%oHo3OM+I%ZZTf8P~QwytVuS*X7S#wNyiqr_=rQj*sO3&o3;RM?h8-me9qs`}r>6czI zy>zE=V+*fMdf+;Y+}p6ohLoQg;%wu)(ZXEg#4XsPeDTDMYg=IB$Qv_=!aXZDMP6f) zzzO{M`!5*2f`PbE+QZLVim*QQQo6oMXfyyWhy_q~DS4XG4+O5JUKX5$w1v9$CfONR zt&nZy8X(}hL!M4fPifKt2FqA?$;FVzq_Nq6o0PEFXq>Q7HDnW;}=zi0s6e3s>Jcr>x;7;O8qJ{jQe?2-n zAm4vch11N-Ch5&){@oG1%5FZl3iouSQMa+XUCgDy6n481>lU-g{FWhtQlx`;Oi2?I z6e-i##o3u$5O&oO%Yb*99L&#AmGc`>`;UL`pkZ`Qg2-?3_j;3|0+{F2cL3Pjs{f`b z@NsZ&?L5C{NJ?$sSJ=KY*caNp+sq9bH2?-KB`sSz1tPy{K&l<5AjvA0!4jZp6jJgY z-laW6bxh>}E^kvVd@VNZ=dd!&`b`JR9JiNW5XvS7dYq1 z>`$h9p2w$WJKgQVl_BqOCkWt>WD=r7ETV+dK$1nkTa31@%pR)Lmavg8$0#=p(X?-~t|8cGN;Qw_mk5a|t zvgCD8f;{BCCCcUew?yGh*-)8(63CQ!zEHSGikdoOCfpDZW@auRO!b8dO_te$f$2V?v|QSNA}h@r`LUm zqQz?T8%TC0)ZVhj(5Rt;iP`l~+SBrpa)a99k&4imC%=IJM$>8R0$25QWS6=rkdt_ZkR?HPGV;$2rw$V=dY_o3e=%WbmK=I&38Mg5wg;9 zfJPnn5XA+XDMNvbfV&#K3Q`avl5=|P8e&o3Q5?ytatN;{A+p|b4*^_-n1Gb9+A~uD zHxVc;xm=T6Skz+Kq!z}M40@<(A^gR}>Rg1IpHn%ya6s@T&XPEaCuvyZwjlLSXy(lZ zE680P_}|Rv7*C(?Zq|{Kb|P4yCh{<2wN!3*NAoih)!H*PY3yknLw*=9VXCm-H%Wha z1(Vn!xa^<&mLs(FzyUQ&z)_bLm+n43bFl}@z)&(+V@sATUw)$&U^lwqlpgWC9A9dG zh7Fy?T&Jz}YMrgBDw+EgSIzZ^CW7kE-d7zG2Od&f5y0#bS=T`4Y-(FfZ24=~*e$Bd zO;L}avl-S?lBpUix)_pFy~ssdul`D#Er^Mljm+6=?cKs{W3PzsWnMu@StAl{`>lAtvI!Zq=(u5gym{pMyNqw;<7u?Tz-nwI zQ3LUOR#o?Il3)U=DX=k!D#0ZW3vZLvY?G5siF~Eg0_#3l@7gT6sxT8XC6hWx?=VgPo?u(Fde z$f#1Ds$14p-SC`xXl zCYf7FGLwqr5m$=5M39sd2&4;0>Y5tTkz9B|2rF*KA2p2!`6&fL6)+UqCXG*@R5nT` zVgB@~A!#9ASY|1a(NR-Wm6Dm3voN1LF0aZ-UAwl3Q3ivyS*6q1EWen>njw>i?}YUl zf=mnFg|>3Q5g(1I48^?9)f`F&>@ZBIL?Fvhqh!?i0XtXd99D;4x{3#E8WUmz%go%+ z%zPVcEo}=SCxS0*G6;jpAzw5RagV4m7q$H`(VA`hd8nqyk#3pm%K>-0PurBwk~+oWSfZdpxLP1 zbfYC5%<8U>F;Td$dJ;3*>@0wd%)IKeSRN6oFAM+pO|Uj?w~-Q0z8+aXcGtLaO$t$j zr$cHjzm242#6{ZD&U8lAfkYk%MYCTR)hPvnHRBqG>tbiQC~{O|l8PMd#qoKtNIpOw zz2%YqQNVgxq%&YcapeTKlQUUJ9=s8drE_l3yxqXxd0xOd_=h0!>DB%z zi;CE?JxO!`d@+>C2?ru8E({VKjxag$a5r3sFuuPUvm3)Uvasgg#TOt4KTpE&|AC32 zd^bezTI4b5b34U8xdvlOR*J_=vGI*r?Vr=@o9*wvaBF;Hg*mmk*%JLgA<<(NzdhQM zM&CDEV=p_~?rt4=BYGHQbo-@u^?7Tdd`$7k)##4SCT-H|lYe><>HoOVBfZ`x`yY9G zv?qu7dCQ~$TsuA+4Pe6XP4dbc|0GwR|ND2bZm+zth-*`C<6`qz)_6zMYk`l{+<1rD z6V>nmQfqBc6F!CL0E#-_ru}73^|b&b9R_<+hk_$nBFUFvh$9a z_TpkpVyzrJsirLwE7_T7dKrijvD7(7%oPgp!KXozW?+dME{TFTSyj3?g{6 zoFs&fJ1ZZ$<2GxOMMqUG3;!fOz6wc zO^4T)9-h%z&iSjPBHOQ+2;fnf?pry0u&&QW?wU9uljuB(FC&hq_KKIFWWjLCJ2zSO z+V+};>zAp4#3NG#X-jP~QCPV-7^h?ri;n`YaY_V9hK?$){k$)pk0>v$sAFoHcSB`x zEOzi|C?--U$=V>D6Se?gvPC@~xD{`B5Ou;5Cgd<1{)T|7u0Jyx=oZSwQkn!_ z82ru@UShxNxi)ya4YDI%<{Z@U{fD^lR2_7>r@5|6qOzEw>!LK1`SGIAFSXGxEkM7! z2K`q8`i!?z2ZHFjHWyT2?!Bm`QyO}-dWIE73!fzAV}5Wdy6xle|Cvkz|3347^;UXz z{*TqwwY3NR-+eqnANLE5Xacv8w{KrOBNrP?O=kJisPuDyAWe0J+j?ZTA%gvr7teSs zAr)Swv{jWNz-Zd#U!oB7!MWttPnrJ*gY%u||LLu)_10|vkKTj-$NfA?6%LEt)|=3X z$u$Xl(+PyV!FDs|r?M!JLrEn(U~d9nQXG(gj=ZcOmSF(Q8gE*1Uf|zvRNW+3;#p$< z*?|9C%b)TwnuQkM&>_7d+ob!S551)yy`|IRFHdfk)ZeQ&OB?FP%FWV;CqH^8$Hp7^ zcYpcj`)(k|CoF>kAIyJP;PIyFt|aiNg3lxh{yX6WxhQcvv?pbxhcpvXxW8){Ig?8C zdc9m|W7bl~^Zh0VvL*jjv*G2yw_OJQ?e)rH>9b_?7hu>CM`Q!++8|Sl%1$4r0SneK z%c38MN~FJvB4jr<8aCWN^jD9iRpmybYLIeF7hV#0QASPzhrwFCas7zK^`uRHY!j~y za*z{qgdZADz+m)8X3Gx$Icc!*irDsS20tEmviN0uNs~Pef0W6`(ntUC(qcAP$x6zQ{GR4H3TDAQ)5tao__kGRn!; +declare const require: (moduleName: string) => any; +declare const Buffer: { + from(input: string): { + toString(encoding: string): string; + }; +}; diff --git a/tsconfig.test.json b/tsconfig.test.json new file mode 100644 index 0000000..d316a02 --- /dev/null +++ b/tsconfig.test.json @@ -0,0 +1,7 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "lib": ["ES2017", "DOM"] + }, + "include": ["src/**/*", "test-globals.d.ts"] +}